GEL — Git Experience Local

KotlinCompose MultiplatformDesktopGitJGitDeveloper Tools GitHub

Stone steps with a green railing

Overview

GEL is a local Git GUI built with Kotlin and Compose Multiplatform Desktop. It wraps two interchangeable backends — the git CLI and the JGit library — behind a clean Material 3 interface for the daily local workflow.

No accounts, no remote sync, no reimplemented git internals. Just the parts of Git you actually use every day, in a desktop app that stays out of your way.

The name: gel means come in Turkish, and git means go. Local Git operations, handled by come instead of go.

Features

  • Staging — stage or unstage individual files or everything at once; flat list and directory tree views
  • Diff viewer — side-by-side diff with line numbers, hunk headers, and word-level intra-line highlighting
  • Commit — commit with a message; amend the last commit with one click
  • History — scrollable commit log with full diff on click; filter by message or author
  • Branches — list, switch, create, and delete local branches
  • Stash — stash changes with an optional message; pop or drop stash entries
  • Markdown — renders .md files inline with a preview/diff toggle
  • Dual backend — switch between the git CLI and JGit at runtime

Tech Stack

  • Kotlin 2.1.0
  • Compose Multiplatform Desktop 1.7.0
  • Material 3 design system
  • JGit 7.6.0 — library backend
  • java-diff-utils — word-level diff highlighting
  • Kotlin Coroutines — non-blocking git operations on Dispatchers.IO