GIT, NATIVELY ON MAC

A git client that feels
like macOS, not a shell.

GitKiman is a native SwiftUI Git client built directly on libgit2 — no shelling out to git. Hunk‑level staging, a real commit graph, and AI-drafted commit messages, in one fast, sandboxed app.

Apple Silicon · App Sandbox · 简体中文 · English · 日本語 · Deutsch
design-system ⑂ feature/skeleton-loading
Fetch Pull Push History Changes · 7
HEADfeat(button): add loading skeleton state
a1b2c3d·2h ago
fix(grid): correct column gap on narrow screens
9f8e7d6·5h ago
TREErefactor(theme): extract spacing tokens
4c5d6e7·1d ago
docs: update contribution guide
2b3a4c5·2d ago
Button.swiftUnified
var isLoading: Bool = false
.opacity(configuration.isPressed ? 0.7 : 1)
.opacity(isLoading ? 0.4 : configuration.isPressed ? 0.7 : 1)
.overlay(isLoading ? ProgressView().controlSize(.small) : nil)
.animation(.easeOut(duration: 0.15), value: isLoading)
- Skeleton state not implemented yet
+ FEATURES

Everything a day of git work needs

No tab you have to hunt for, no action buried three menus deep.

++

Hunk‑level staging

Stage a single line, not the whole file. Split or unified diff, your choice.

⑂

Visual commit graph

Branches and merges are visible the moment you open a repo — with a dedicated Tree view per commit.

◧

Diff & blame

Line‑by‑line history for any file, side by side with who changed what, and when.

⇄

Merge & resolve

A real conflict resolver for merges and interactive rebase — no dropping to the terminal.

▤

Partial stash

Shelve just the files you pick. The rest of your working copy stays untouched.

⇵

Pull requests

Open, review and create GitHub PRs without leaving the app.

✺

Commit messages, drafted

AI reads your staged diff and proposes a message — you still hit commit.

⌘

Command palette

⌘K for every action — branch, stash, push, rebase — no mousing around.

- NO SHELL

Talks to git directly. Not through a shell.

Most Git clients wrap the git binary and parse its text output. GitKiman links libgit2 in‑process through SwiftGit2 — every fetch, pull, push and merge is a native call, not a subprocess.

  • No shelling out — git operations run as native libgit2 calls
  • App Sandbox, with access limited to the folders you choose
  • Security‑scoped bookmarks keep access across restarts
  • SSH and HTTPS credentials, multiple accounts per host
UISwiftUI, native toolbar
Git enginelibgit2 via SwiftGit2
PersistenceSwiftData + Keychain
AI commitsAI-drafted, streamed
RemotesGitHub REST API
DistributionSandboxed, Mac App Store
+ LOCALIZATION

Built in four languages, not translated as an afterthought

Every button, sheet and confirmation dialog — not just the marketing page.

ZH-HANS
丢弃改动
Discard changes
EN
Discard changes
丢弃改动
JA
変更を破棄
Discard changes
DE
Änderungen verwerfen
Discard changes
+ GET GITKIMAN

Your repos, native on your Mac.

Currently in private development, heading toward the Mac App Store.

In development — not yet released