Skip to content
Home / Docs / Roadmap

Roadmap

Updated for v0.26.0 (November 2026). CHANGELOG.md is the authoritative record of what shipped in each release; this file tracks direction.

Shipped (0.1.0 → 0.26.0)

  • Repository: open, clone (with progress), recents, search, repository tabs (drag to reorder)
  • Commit: stage files, hunks, and individual lines; unstage, commit, amend; per-repo commit drafts; multi-select in the working copy with bulk stage/unstage/stash/discard; discard for staged files; path filter over changed files and commit files
  • History: virtualized animated graph, find in graph by message, hash or author with an n of m stepper (the lanes never collapse), branch filter, refs/tags/HEAD/merges, file history with a one-click jump to the whole commit
  • Branch: create, delete, rename, checkout (incl. remote), merge, rebase (+continue/abort), interactive rebase (reorder/reword/squash/fixup/drop), cherry-pick (single or multi-commit, optional “(cherry picked from commit …)” reference), reset (soft/mixed/hard) — explicit merges always record a merge commit; abort merge from the commit box
  • Remote: fetch, pull, push, force push, push a branch straight from its tip commit’s menu, push/fetch tags, background auto fetch
  • Conflicts: visual resolver — aligned A/B panes with line numbers, one take-all checkbox per side (mixed while partly picked) plus hover-to-pick lines that land in file order, a Result pane with in-place editing and its own line numbers behind a draggable split, keyboard control (↑/↓, A/B, ⌘⏎), conflict and file navigation that opens the next conflicted file after each save, guards against losing picks and hand edits, AI explanations
  • Worktrees: sidebar section with branch/dirty/missing state, open any worktree as its own tab, create from a branch or commit into a sibling folder, safe remove and prune, branches held elsewhere marked in the sidebar and graph
  • Stash: create (whole tree or chosen files), apply, pop (one click from the toolbar), drop; stashes as rows in the graph with their own node and menu; apply single files from a stash · Tags: create (annotated/lightweight), delete, checkout · Submodules: list & update
  • Built-in PTY terminal at repo root; built-in file editor
  • Diff: inline & side-by-side, syntax highlight, word diff, image diff, find in diff (⌘F), minimap, previous/next change and file navigation (N/P, [/]), opens directly at the first change (no scroll animation), reloads live as the file changes on disk, file history one click from the header; → / ↑ ↓ / ← walk from the graph into a commit’s files and back
  • Settings: sixteen themes (Angkor Dusk default) with accents & zoom, identity profiles (repo-local) with linked accounts, SSH key management & generation, hosting accounts with verified tokens (Secret Service on Linux, missing tokens flagged), AI providers & commit style, keyboard reference
  • Sidebar: accordion sections with pinned headers and collapse-all, row menus on hover and right-click everywhere, empty-state cards; graph display options and column headers; welcome page with keyboard navigation and missing-folder detection
  • AI: provider-agnostic (OpenAI, Anthropic, Gemini, Ollama, LM Studio) plus installed AI CLIs (Claude Code, GitHub Copilot CLI, Codex, Gemini CLI, OpenCode, Antigravity, Cursor CLI) — commit messages, diff/conflict explanations, PR descriptions, review of the staged changes, of one file from its diff, or of a whole commit, with team conventions (global + per-repo .angkorgit/review.md), structured answers (findings by severity, verdict, quoted lines that jump to the code), background execution with stop, full-size reading views
  • Undo/redo for recent operations; drag-and-drop merge/rebase
  • Auto-update: pull-based from GitHub releases, signature-verified
  • Commit signing: SSH and GPG, driven by existing git config (commit.gpgSign, gpg.format, user.signingKey) — covers commit, amend, merge
  • Pull requests: sidebar list, checkout and in-app create with reviewer selection for GitHub, GitLab (incl. self-hosted) and Bitbucket Cloud, through the connected account; browser fallback without one
  • Graph search: message text, a hash or prefix, and author all find matches in the full graph, centered and highlighted, with an n of m control; ⌘F focuses the search
  • Command line: angkorgit / akg installed from Settings — open the current folder, a path, or clone by URL or owner/repo into the app
  • Blame: a pane of file history with a Working copy row, per-hunk authors, jump to the commit, blame at or before any commit
  • External editor: detected editors (VS Code, Cursor, Zed, Sublime, JetBrains, Xcode, GNOME Builder…) from the toolbar, palette and file menus
  • Pull with rebase following pull.rebase, a merge/rebase choice per pull, and a status bar note of the last fetch
  • Fork workflow: “Fast-forward current to this” in the branch menus (enabled only when the branch is strictly behind), every remote fetched on each tab switch, “Open in browser” on a remote and from the palette
  • Provider avatars from the connected account when Gravatar has none; the AI provider and its last connection test in the status bar
  • Upstream workflow: add a remote from the sidebar, pull requests from a fork into its upstream (GitHub, GitLab, Bitbucket Cloud), a remembered clone folder, a right-click menu in the terminal
  • Windows: SSH remotes with ed25519 and ECDSA host keys (libssh2 built on OpenSSL)
  • Fonts: interface, code and terminal fonts picked from what is installed, each shown in its own face, terminal size, one-click reset
  • Edit a commit message in place from the inspector or the graph menu (HEAD amended message-only, older commits rewritten in memory), undoable; a pushed commit asks first because the next push must be forced
  • macOS: the app bundle is signed as a whole so Desktop, Documents and Downloads permissions are remembered; GitHub account form points at fine-grained tokens too
  • Performance: fast startup (splash waits for the app, not a timer; heavy views load on first use), a quiet file watcher, on-demand commit diffs, loading overlay on slow repository switches
  • Inspector: an All files view of the whole tree at a commit or in the working copy with the changed files marked, a change-kind filter on a commit’s files; sidebar section headers with icon tiles and count badges; Push with tags names every tag; auto fetch tries every remote and names the ones that failed
  • Keyboard: → steps through the changes of an open diff; ⌘1 to ⌘9 and ⌘⇧[ / ⌘⇧] switch repository tabs; a per-repository key combination assigned from the tab or welcome menu that opens or switches to it from anywhere, listed in Settings → Shortcuts; ⌘W closes the current tab
  • Repository groups: named, coloured groups on the welcome page and in the tab strip, collapsible, reorderable by drag, opened or closed as a set, with the repository menu and palette following; a list of open tabs once the strip overflows; a horizontal scrollbar for long diff lines; the PR dialog pushes an unpushed branch itself
  • Diff: Ignore whitespace (git diff -w) in the View options menu, with staging stepping aside while it is on; force push from the Push menu asks first; Cursor CLI runs through its node entry on Windows
  • Welcome: scan a folder for repositories at any depth and add them to recents in one go; same-named tabs show the parent folder that tells them apart; ⌘P switches repositories, ⌘T opens one in a new tab
  • Diff: every file of a commit on one scrolling page (File / All files switch), side-by-side rows paired by similarity so an inserted line keeps its own row, minimap in step with the rows
  • Remotes: Pull from / Push to any remote when a repository has several, the default following the branch upstream; a late search result never steals a clicked commit
  • Groups and tabs: Fetch all and Pull all (fast-forward only) for a repository group with a live per-repository summary and cancel; tabs shrink to share a narrow window like a browser’s and, on macOS, sit in the title bar next to the traffic lights; the release notes open inside the app from the status bar bell and the welcome footer
  • Pull preview: after a fetch the pull is tried in memory, so the Pull button warns about conflicts (naming the files) or uncommitted edits in the way (offering to stash just them) before anything moves; follows pull.rebase
  • Submodules follow the recorded commit after pull, checkout, merge, rebase, cherry-pick, revert, hard reset and stash pop; a drifted submodule gets an Update button on its row
  • Syntax highlighting from the shebang for scripts without an extension
  • Git hooks: pre-commit and commit-msg on commit and amend, pre-push on every push, with the hook output shown on failure and a way to go ahead without hooks
  • Graph: rail-style lines, lanes that keep their spacing, chips in their lane colour, a resizable graph column that scrolls sideways, and the sidebar’s branch and tag actions on the graph chips; AI writes a new message while rewording an earlier commit

Next

  • Worktrees: start an installed AI CLI inside a worktree from its row, a per-repo post-create setup command, merged badge with one-step cleanup

Later — Connected (architecture in place, see Architecture.md)

  • Azure DevOps and Bitbucket Server adapters (GitHub, GitLab and Bitbucket Cloud are in)
  • Read-only pull request detail view (commits, CI status, review state)
  • Issue viewer

Later — Power

  • Plugin host (palette commands, sidebar sections, inspector tabs)
  • Multi-repo workspaces
  • Performance: commit-graph file support for instant cold opens

Non-goals: enterprise admin tooling, built-in CI dashboards, in-app code review (commenting, approving and merging live on the forge’s web UI, one click away), anything else that duplicates a forge’s web UI without daily value.