Captured: February 2026 (from initial design sessions)
-
What does the recent commit graph look like?
- Where are branches and tags?
- What's the topology of recent work?
-
What are my working directories, and how are they dirty?
- Submodule status at a glance
- Worktree status at a glance
-
What am I working on committing right now?
- Staged vs unstaged files
- Current commit message draft
- Staging/unstaging files
- Committing
- Pushing to one or more remotes
- Fetching
- Coordinating merges and rebases
- Inspecting changes from individual commits
| Constraint | Rationale |
|---|---|
| Mouse-first, vim-optional | "Mouse and scroll should be all that is needed to navigate and control" |
| Rich Vulkan GUI | Not a CLI/TUI - take advantage of GPU rendering |
| Multiple repositories in parallel | "See at a glance what the various submodules are doing" |
| Primary + secondary repo model | One repo as primary focus, secondary repos can be focused when needed |
| Information-dense | Maximize useful information without wasting screen space |
Small commits should be visually distinct from large commits. Show +N/-M line counts inline.
Use a cheap LLM (Claude Haiku or local model) to generate abbreviated descriptions of changesets. Each working tree or dirty directory can get a quick tagline explaining the changes.
- Vulkano for rendering (custom pipeline, no egui)
- Custom font/widget system (no external UI framework)
- git2-rs for git operations
- Native-only (no WASM compatibility needed)
- Worktrees — sidebar section with Jump to Branch, Remove, Open Terminal (partial)
- Submodules — sidebar section with Update, Delete, Open Terminal (partial)
- Next: Deeper worktree/submodule interaction (see design work ahead)
- Commit graph visualization (topology, time-based spacing, pills, search)
- Branch/tag management (create, delete, checkout, merge, rebase, cherry-pick)
- Staging workflow (file/hunk staging, commit, amend, revert, reset)
- Push/pull/fetch operations (async with toast notifications)
- Stash management (push/pop/apply/drop via keyboard and sidebar)
- Merge conflict resolution
- Interactive rebase
- Pull request integration
- LLM-generated commit messages
- Command palette