A fully vibe-coded Git client. Free.
The whole of git β graph, staging by line, rebase, worktrees, submodules, LFS β with a UI that shows you git instead of hiding it.
Warning
Honest disclaimer. Gitcito is young. GitHub is the battle-tested path: issues, milestones, notifications, inline CI and project fields are GitHub-only. GitLab (gitlab.com) now gets the full PR detail screen too β review, comment, approve and merge. Bitbucket and Azure DevOps can list and create PRs/MRs, but their detail/review/merge screens are not built yet. OpenAI and Anthropic each speak their own API; the remaining AI providers use an OpenAI-compatible call shape and are unverified. If it breaks: well, it works on my machine. PRs welcome. π
Grab the latest build from gitcito's site or Releases β the macOS build is signed and notarised.
Then, optionally, open repositories from your terminal:
gitcito . # open this folder
gitcito ~/code/api -n "API" # β¦with a display name
gitcito . -g "Work" # β¦inside a group tabInstall the shim from the command palette: βK β Install 'gitcito' command in PATH.
A complete client, not a subset. Everything below is built, documented and in the app today β the ordinary things done properly, which is most of what using git actually is.
Command palette (βK) |
Fuzzy-jump to any branch, commit, file or action. |
| Commit graph | Octopus merges drawn properly, windowed for huge histories, focus modes (linear, hide merged branches, solo), "new since last fetch" marks. |
Code search (ββ§F) |
git grep across the tree, or a history pickaxe. |
| Blame & history | Per-file, with follow-the-line and "reblame before this commit". |
| Commit notes | Annotate a commit that is already pushed, without rewriting it. |
| Insights | Commits/day, contributors, weekly churn, file hotspots. |
| Commit composer | Conventional, Gitmoji, Ticket, Plain⦠even Caveman. Co-author picker, message recall, live linter. Amend and undo from the graph menu prefill it. |
| Staging | Whole files, hunks, or individual lines β and the same precision to unstage, discard, revert or apply one hunk or a few lines, each undoable. File-list headers split the count by modified / added / deleted. |
| Conflict resolver | Three panes, per-line picking, a conflict-by-conflict navigator, editable output. |
| Xcode project merge | A project.pbxproj conflict merged by object identity instead of by line β and refused, by name, where a build setting genuinely diverged. |
| Lockfile conflicts | Podfile.lock, Package.resolved, yarn.lock and friends: take a side, and the command that regenerates it, instead of merging a graph nobody solved. |
| External diff & merge tools | Hand a file to Kaleidoscope, Beyond Compare, Meld β read straight from git's own tool list. |
| Edit any commit | Rewrite a past commit's files or message in place β cascade previewed before anything moves, merges replayed with their recorded resolutions. |
| Interactive rebase | Drag to reorder, squash, fixup, reword, edit or drop. |
| Stacked branches | Graphite-style chains, edited as a route: a start branch and one stop per level, added, swapped, reordered or removed from typeaheads β then one click pushes every level and opens/retargets the chained PRs, registering them as a native GitHub stack where that exists and carrying stack navigation in every body where it does not. |
| Git flow | Start and finish features, releases and hotfixes β merges, tag and cleanup in one step, undoable. |
| Merge options | -X ours, whitespace-blind merges, squash, -s subtree β and the commits behind a conflict. |
| Recovery | Reflog, WIP snapshots of the whole tree β untracked files included, taken automatically before every destructive action β guided bisect, or hand the search to git bisect run, and one-click removal of the stale .lock file a crashed git left behind. |
| Local CI | Run the repo's GitHub Actions on your machine with act before pushing β including against a commit or range you're not on, via throwaway worktrees, with the run cost stated up front. |
| Remove a file from history | A leaked key or a 400 MB blob out of every commit β measured first, backed up, undoable. |
| File attributes | .gitattributes with a UI: line endings, merge=union, export-ignore, readable diffs for Word, Excel, JSON and the UTF-16 .strings git calls binary (converter included), and clean/smudge filters gated behind a dry run. |
| Replace & graft | Shorten a clone's history without rewriting a byte β reversible, and honest about what it hides. |
| Object explorer | Walk blobs, trees, commits and refs β the layer beneath the graph, read-only. |
| Repository maintenance | Where the disk went β packed, loose, unreachable β and what gc, repack, prune or fsck would do about it. |
| Remove untracked files | git clean as a dry run: every path sized, ignored files apart and unselected, Trash by default. |
| Repositories | Every repository Gitcito has ever opened, plus folders you scan, in one searchable list β open, favourite, recent, and per workspace. |
Go to repository (βJ) |
Jump to any open repository by name, folder or branch β group members included, most recently used first. |
| Groups & workspaces | Tabs with folders nested to any depth, colour-coded, fetch-all per subtree. Browser-like tab sizing, opt-in auto-grouping of worktrees. Right-click a repository for alias, worktrees, GitHub, terminal and remove. |
| Tab images | Give a repository a small picture from its own files, and show tabs as image, name or both. |
| Pull or push any branch | Catch a branch up or publish it from its right-click menu, without checking it out first. |
| Untracked-branch repair | A pull that stops on "no tracking information" offers the fix as a button β link the branch to its remote, or push it if the remote has never seen it. |
| Pull requests | Create on GitHub, GitLab, Bitbucket and Azure DevOps. Review, comment, approve and merge on GitHub. |
| Plumbing, with a UI | Stashes, tags, worktrees, submodules, LFS, sparse-checkout, patches, hooks. |
| Subtrees | Vendor another repo into a directory β and remember where it came from, which git does not. |
| Bundles & archives | The repository as one file git can clone from β or a tree as a zip, honouring export-ignore. |
| Credential helper | Git's own password store β why https keeps asking, and the plaintext file nobody meant to have. |
| SSH keys | See which key the agent is holding, generate one, test the host β the auth path tokens never covered. |
Commit messages, PR descriptions and branch names from the actual diff Β·
hover to explain an identifier Β·
AI edit of just the lines you select, applied to the editor
draft for review Β· PR review
whose findings must anchor to a real path:line or get rejected Β·
a repo wiki where every claim cites its file Β·
repository chat that answers from files and commits
you pin as context, asks for more evidence instead of guessing, links every answer
back to the lines it read, and can propose Git actions β up to merge, rebase,
revert, cherry-pick, and opt-in push, pull request and
stacked-PR submit β plus reviewed file CRUD, each drawn as
a widget you approve under always-ask, auto-safe, or auto-all rules and can undo
as one plan (or from an error toast's "fix with AI").
Several accounts at once β an OpenAI key for commit
messages, Claude for chat, a local Ollama for the rest β with model lists fetched
live from each provider. OpenAI, Anthropic, Google Gemini, OpenRouter, Groq,
Mistral, Ollama, any compatible endpoint, or a signed-in CLI
you already pay for instead of an API key.
Themes in light and dark, plus AI-generated ones Β·
screen-reader and keyboard accessibility Β·
rebindable shortcuts Β·
a native macOS menu bar that shows the keys you actually
bound Β· profiles
for separate identities Β·
author avatars β Gravatar where it exists, a generated
blob drawn offline where it does not, and a title-bar face that reacts to
conflicts, half-finished rebases, a detached HEAD and piles left to grow Β·
integrated terminal with splits Β·
A real CLI β gitcito . opens a repo, gitcito blame src/api.ts -l 84 opens it there, gitcito doctor answers in the terminal with
an exit code your CI can use, and gitcito editor install makes Gitcito the
editor git commit and git rebase -i open Β·
Repository rules β an optional .gitcito.json
carries the house rules with the clone: protected branches, commit scopes,
tracker links, a push checklist, and a doctor that tells a newcomer why the
project does not run yet Β·
Todos β a private checklist per repository, marked in
the sidebar and the status bar, and never written into the repo Β·
Sidebar panes β open sections share leftover height
equally, each scrolling on its own; collapsed ones stay as headers, so they
never drift off screen Β·
Bookmarks β remembered places in the code that
re-locate themselves when the line moves, and say so when it is gone Β·
Open in your editor β repo, file, or the exact line
you right-clicked, with Xcode projects and other packages
treated as one item rather than a folder to dig through Β·
Problems β what your project's own analyzers
(tsc, dart analyze, ESLint, Clippy, go vet, Ruff) say, in a dock at the
bottom, with a toggle for "only the files I changed" Β·
Code TODOs β every TODO, FIXME and HACK the
source carries, in the same dock, grouped by tag, by folder, or by the owner in
TODO(cgm) Β·
Run & debug from your .vscode/launch.json β
inputs that read current values from JSON/YAML files, compounds as parallel
sessions, stopAll, serverReadyAction, a
hot reload button for the runtime you actually launched,
and a run target picker for the phone or simulator Β·
Dev tools embedded on the repository's own tab β
Flutter DevTools, dart devtools, Prisma Studio and friends, from the address
the session announces Β·
previews for Markdown, Word, Excel, PDF, video and images β
plus Info.plist and .entitlements as a key/value outline, and a
project.pbxproj as the targets, file tree and build settings it really is Β·
open-source licenses for every package the build ships,
readable in the app.
Gitcito has no backend. Tokens and vault entries are encrypted with your OS keychain β and before it ever touches that keychain it tells you what for and lets you say no; the app keeps working either way. Nothing is synced or phoned home. The only network calls are to your Git host and, if you turn it on, your AI provider. Details in Security & secrets.
Team sharing works the same way: secure share packs secrets, commit notes, and whole workspace layouts into one encrypted file a teammate imports β no server in between.
Built into the app, in every language it speaks β the Help button in the
status bar, or βK β Help. It is the same Markdown you can
read right here in the repository, offline and
versioned with the code.
Contributions welcome β CONTRIBUTING.md has the working agreement: commit format, the translation rule, the test fixtures, and when a change has to update the handbook.
ROADMAP.md β what might come next, what it would cost, and what is deliberately out of scope. Ideas welcome as issues.
Gitcito is free, MIT-licensed and has no backend, no telemetry and nothing to
upsell β so there is nothing to buy. If it saves you an afternoon of git reflog,
you can pay for the next one instead:
Sponsorship funds the Apple Developer certificate the signed macOS builds need, the time that goes into the handbook, and the translations. Not sponsoring costs you nothing β bug reports, issues and pull requests are worth as much.
MIT.
Made by MyAppDesk with π
