macOS
System requirements
macOS 12 or later · Apple Silicon and Intel, one universal build · Requires system Git 2.38.0+ · No network required
Supported platforms
One platform, four releases of it, both architectures native.
| Version | Apple Silicon | Intel | Notes |
|---|---|---|---|
| macOS 15 Sequoia | Supported | Supported | |
| macOS 14 Sonoma | Supported | Supported | |
| macOS 13 Ventura | Supported | Supported | |
| macOS 12 Monterey | Supported | Supported | The Command Line Tools ship Git 2.37.1: below the floor. Install a newer Git first. |
| macOS 11 Big Sur and earlier | Not supported | Not supported | Below the platform floor. The application will not launch. |
- Supported
- Not supported
One universal disk image contains both architectures, native. There is nothing to choose between and no Rosetta translation involved.
There is no Windows build and no Linux build. The application has one bundle target, and the filesystem watcher that feeds the Flight Recorder is built on macOS file-system events. This page does not print a support matrix for platforms the application has never been compiled for.
Git 2.38.0 or newer, already installed
GitAegis does not bundle Git and never downloads one. It runs the Git on your machine, with your SSH configuration and your keychain credentials.
Check.
shellgit --version2.38.0 or higher and you are finished. Below it, GitAegis names the newest Git it found and the path it found it at, and refuses to open a repository rather than starting an operation it cannot complete safely.
macOS 12: the Command Line Tools gotcha.
Monterey’s Command Line Tools ship Git 2.37.1. One patch release below the floor. Git is installed, Git works, and Git is still too old. This is the single most common reason a first launch fails.
shellbrew install git git --versionWhere GitAegis looks.
Four absolute paths, in a fixed order (the figure shows them) taking the first Git at or above the floor.
Your
PATHis not consulted, and there is no setting that names a binary. That is whybrew install gitis enough on macOS 12 with no shell changes, and why a Git that lives only under a version manager is invisible to GitAegis.Why 2.38.0.
The floor is set by the Git plumbing GitAegis depends on to read and write repository state safely, and by behaviour it needs to be deterministic. Running below it would mean either silently degrading recovery or discovering the gap during an operation. Neither is acceptable, so the check happens at launch.
At launch: probe four absolute paths, in order
/usr/bin/git/opt/homebrew/bin/git/usr/local/bin/git/opt/homebrew/opt/git/bin/git
PATH is never consulted. The first Git at or above 2.38.0 wins.
Found one
GitAegis runs that Git, with your SSH configuration and your keychain credentials.
Found none at or above the floor
GitAegis says so on startup, naming the newest Git it found and the path it found it at. No repository opens.
Git LFS is a separate install
GitAegis reads LFS status, accounts for missing objects, reads locks, and fetches LFS content. It does not ship git-lfs, and Git does not include it.
Without git-lfs present, the LFS surfaces say LFS is not installed rather than showing nothing or showing wrong numbers. Repositories using LFS still open; pointer files appear as pointer files.
Locks are read-only in GitAegis. It shows you who holds one. It does not take or release locks: use the git lfs command line for that.
brew install git-lfs
git lfs installHardware
The floor is modest. The number that matters is disk, and it tracks your uncommitted work rather than your repository.
- Memory
- 4 GB of RAM will run GitAegis. 8 GB is the sensible floor for a working machine, and 16 GB is what you want if your repositories are large or you keep several open. GitAegis’s own footprint is small; Git’s is not, and a large diff is Git’s memory, not ours.
- Disk: capsules
- This is the number that matters. A capsule holds refs, the index, staged changes, working changes, untracked files, and operation state, so its size tracks the size of your uncommitted work rather than the size of the repository. On a normal working repository, capsules are small. On a repository with a large untracked build directory that is not in
.gitignore, they are not: putting build output in.gitignoreshrinks them immediately. - Disk: free space
- Keep at least 2 GB free. If a capsule cannot be written, the operation is refused: that is the guarantee working correctly, but a full disk turns it into a wall.
- Display
- 1280 × 800 or larger. The interface is laid out for a 1280-wide window and works down to 1024 with panels collapsed. The UI scales 80–200% independently of your system setting.
- Accessibility
- Full keyboard navigation, visible focus, VoiceOver support, and
prefers-reduced-motionrespected.
Network requirements
None. Not “mostly none”, and not “only for telemetry”.
GitAegis local Git work needs no account and no service. If you choose to sign in, the app contacts only its configured GitAegis account gateway; Git traffic still goes directly to the remotes you configured.
So there is no host to allow-list, no proxy to configure, and no licence check that could fail and stop you committing. GitAegis works permanently offline because it has no other mode.
Git’s own traffic is separate from all of this. fetch, pull, push, and clone reach the remotes you configured, using your credentials, over your network. That is Git, not GitAegis.
What there is to configure
- Hosts to allow-list
- None
- Proxy settings
- None
- Licence check
- None
- Update or telemetry endpoint
- None
Known unsupported configurations
Stated here so you find out now rather than during an operation.
Not supported
- Operating systems below the floor
- macOS 11 and earlier. There is also no Windows or Linux build, not an older one, not a beta one, none.
- 32-bit anything
- The build is 64-bit only, Apple Silicon and Intel.
- Git below 2.38.0
- Detected at launch and refused, including macOS 12's Command Line Tools Git 2.37.1. GitAegis names the newest Git it found and the path it found it at, rather than starting an operation it cannot finish safely.
- A Git that is not in one of the four probed locations
- A Git installed by Nix, asdf, mise, or into a custom prefix is not found, because GitAegis resolves an absolute path rather than reading your PATH, and there is no setting to name one. Install a Git into one of the probed locations.
- Headless and remote-desktop use
- GitAegis is a desktop application and needs a graphical session. There is no server mode, no web mode, and no command-line companion.
- Repositories on network filesystems and cloud-sync folders
- SMB, NFS, Dropbox, iCloud Drive, OneDrive and Google Drive are not supported for active repositories. File watching is unreliable across those boundaries, so the Flight Recorder misses changes, and their file-locking semantics can break Git's own atomicity assumptions. GitAegis will open such a repository and will warn you. Recovery is weaker there, and saying so is better than implying otherwise.
- Case-conflicting paths on a case-insensitive filesystem
- A repository containing paths that differ only by case behaves the way Git behaves on macOS: badly. GitAegis does not fix this and does not pretend to.
- Hooks you rely on, during a repair
- Hooks run as Git runs them in normal operation. In Safe Mode, core.hooksPath is pinned to /dev/null, so hooks do not run while you repair a repository. .gitattributes content filters cannot be wholesale disabled at all.
- Very large working trees
- GitAegis delegates to your Git, which is as fast as your Git is. But capsule capture time tracks the size of your working tree, so a repository with an enormous number of untracked files makes every risky operation wait longer. That is the design working as intended, and it is worth knowing before you rebase a 40 GB checkout.
Compatibility questions
Free edition · No account required
A recovery capsule before every risky Git operation.
You see the exact commands before they run, and the operation is refused if the capsule cannot be written.
Requires Git 2.38.0 or newer, already installed.
Every risky operation, in this order
- Previewthe exact commands, shown before anything runs
- Capsulerefs, index, staged and working changes, untracked files, operation state: written to disk first
- Executethe commands as shown, or not at all
- Journalplan, commands, capsule id, outcome