Innesta — Git, made native.
Git for macOS. Native, fast, built for your flow.
Launch price
Diffs you can actually read.
Inline or side by side, with synced line numbers, syntax colouring, a minimap when the patch runs long, and the exact changed part marked inside the line. Stage a hunk or a single change: point at it in the gutter, or drag across a block and apply it in one step. Images preview in place, huge files stay responsive, and anything you want more room for opens in a window of its own.

No blind pulls. No blind pushes.
Before a pull, Innesta fetches and lists the files about to land. Before a push, the ones about to leave. Both carry an Open Diff button that puts the whole change in a window of its own, so you decide with the real diff in front of you — and a force push makes you type the branch name first.

Every commit, one search away.
The graph draws lanes you can actually follow — branches, merges and all — and only renders what's on screen, so scrolling stays smooth. Search the full text of your history and narrow it down by author, file or branch. Pick any two commits and see exactly what changed between them.

CI pipelines and Pull requests, always under control.
Connect GitHub or GitLab once and your pull requests, merge requests and pipeline runs live in the sidebar, refreshing every ten seconds while a run is going and every minute when none is, so a new run turns up without a manual refresh. Open a job and its log streams in underneath — terminal colours intact, searchable with ⌘F. Read-only on purpose: Innesta never merges, retries or cancels anything for you.

Releases, without the checklist.
Start a feature, a release or a hotfix and Innesta handles the ritual. A release finds your version in package.json, Cargo.toml, pyproject.toml, Info.plist — or wherever a pattern you define puts it — bumps it, merges into main, writes the annotated tag and merges back into develop. It checks first for anything that would go wrong — conflicts, uncommitted work, commits you never pushed.

Commit messages, written on your Mac.
On a Mac with Apple Intelligence, Innesta drafts the message from what you staged — on the device. No account, no API key, no bill. Prefer a different model? Give permission once and it uses the Claude Code or Codex CLI already on your Mac. Pick the voice: imperative, Conventional Commits, gitmoji, descriptive, or whatever this repo already does.
Feature by feature,
the daily work.
Sync, spelled out
Three toolbar buttons: Sync with Remote fetches, Pull and Push carry a badge with the commits waiting. Repository ▸ Sync (⇧⌘S) reads the two counts and runs fetch, pull, push, or both — and pushes only if the pull came out clean.
Undo is the default
Discarded changes, hard resets and deleted branches all keep a recoverable backup for 7 days. Each one shows you what it removes first — the exact diff, or the commits at risk.
Conflicts in three panes
Ours on the left, theirs on the right, your result in the middle. One action clears the hunks that were never really a choice — you both made the same edit, or only one side moved — and the resolution is staged for you once the last real conflict is decided.
Blame with a heat map
Annotations in the gutter, shaded by age — the warmer the line, the more recently it changed. Click one for the commit and the diff it came from.
⌘K, then anything
The command palette holds the actions you use most, and shows the shortcut for every command that has one. Type
innesta .in a repo folder to open it — same window if it's already open.A real Mac app
SwiftUI and AppKit, not a website in a box. Spotlight finds your commits, Quick Look previews diffs from Finder, and your credentials live in the Keychain.
The whole list.
Repository
- Open, clone, or init
- Drag and drop a folder
- Recents with live branch status
- Opens from any subfolder
- Playground for trying things out
Working copy
- Stage files, folders, or all
- Stage a hunk or a single change
- Drag the gutter to stage a block
- Flat list or folder tree
- Amend with a preview
- Discard and reset with a backup
- Add to .gitignore from a row
- Commit signing, GPG or SSH
- Refreshes when files change
- Commit with ⌘⏎
Diff review
- Inline or side by side
- Synced line numbers
- Syntax highlighting
- Changed ranges within the line
- Soft wrap, whitespace, minimap
- Context lines, or the whole file
- Large diffs stay responsive
- Image previews in place
- Diff Review in its own window
Commit messages
- Drafted from the staged diff
- On-device Apple Intelligence
- Claude Code or Codex CLI
- Imperative, Conventional, gitmoji
- Descriptive, or match the repo
- Per-repository AI settings
Branches and merges
- Switcher with search, local and remote
- Create, rename, delete
- Delete shows the commits at risk
- Restore a deleted branch
- Merge, squash merge, rebase
- A default strategy you set once
- Auto-stash on a dirty switch
- Auto-stash restored on return
- Git Flow features, releases, hotfixes
Conflicts and recovery
- Three panes — ours, result, theirs
- Accept ours or theirs
- Settle the simple hunks at once
- Resolution staged for you
- Badges to reach the next conflict
- Backups for discard, reset, delete
- Seven-day retention
Sync and remotes
- Sync works out fetch, pull or push
- Safe pull, fetch first
- Your work stashed and put back
- Push with a file preview
- Force push with lease only
- Multiple remotes
- Share links via the Share Sheet
Providers and CI
- GitHub and GitLab OAuth
- Pull and merge requests, read-only
- Actions and pipeline runs
- Job logs, streamed and coloured
- Search a log with ⌘F
- Self-hosted GitLab, GitHub Enterprise
- Bitbucket and Azure DevOps links
History and search
- Full-text commit search
- Filter by author, file, branch
- Scope to a branch, no checkout
- Compare any two commits
- Revert a commit or merge, no rewrite
- Per-file blame, shaded by age
- Commit graph with readable lanes
Stash, tags, reflog
- Stash with your own message
- Read a stash before applying
- Annotated and lightweight tags
- Push tags selectively
- Delete a local tag
- Reflog to find lost commits
macOS
- SwiftUI and AppKit, no Electron
- ⌘K command palette
- Open a repo from the terminal
- Spotlight finds your commits
- Quick Look diffs from Finder
- Shortcuts and Focus Filters
- Menu bar extra with status
- Dock menu with your recents
Privacy and updates
- Credentials in the Keychain
- Diagnostics off by default
- Consent before any external AI
- Signed and notarised by Apple
- Updates arrive in the app