A native macOS Git client, built in the open as a free alternative to Fork.
Status · Install · Highlights · Build · Contributing
Bonsai is under highly active development. The v0 app surface is implemented, and the first GitHub release contains a Developer ID signed and notarized macOS archive.
The v0 goal is practical feature parity with Fork's public macOS feature set: repository management, commit history, staging, rich unified and split diffs, branch/tag/remote workflows, stashes, merge/rebase/cherry-pick/revert, submodules, reflog recovery, file history, blame, conflict assistance, Git-flow, Git LFS, GPG signing, and provider notifications.
Download the latest notarized macOS disk image from
GitHub Releases.
Open the DMG, then drag Bonsai.app to the Applications shortcut.
For v0.1.0, the released assets are:
The release manifest records the build number, source commit, archive size, SHA-256, signing kind, team identifier, and notarization state.
- Native SwiftUI macOS app, packaged from SwiftPM.
- Split and unified diff views with Git diff algorithm controls.
- Commit history with graph lanes, search, changed-file inspection, and revision actions.
- Working tree staging, unstaging, patch copy, discard, ignore, and conflict flows.
- Branches, tags, remotes, worktrees, submodules, stashes, Git LFS, and GitHub repository/notification workflows.
- Spec-driven development: every meaningful feature lands with a focused spec
in
Specs/.
Requirements:
- macOS 14 or newer
- Xcode command line tools
- Swift 5.9 or newer
Build and launch Bonsai:
make runBuild, launch, and verify that the app process is running:
make run-verifyBuild and validate a release-style app bundle without Apple credentials:
make release-verifyExport the fallback .icns from the canonical Icon Composer document:
make app-iconRun the large repository performance smoke:
make perfCheck local distribution credential readiness:
make release-doctor
make release-check-credentials
make release-github-doctor
make release-secret-template
make release-secrets-dry-run
make release-runner-workflow
make release-runnerThe credential checks are expected to fail on machines without a Developer ID
Application certificate and a valid notarytool profile. The workflow runner
check only verifies the no-secret Jarvis toolchain required by GitHub Actions.
Maintainer release setup is documented in Documentation/ReleaseChecklist.md,
Documentation/ReleasePackaging.md, and Documentation/GitHubReleaseSetup.md.
The manual GitHub Release workflow defaults to a Jarvis dry run that builds
and verifies the credential-free archive without entering the protected release
environment or reading Apple release secrets.
Run the standard validation gates before submitting changes:
make validate
make run-verify
make release-verify
make release-verify-archive
make release-verify-artifactsBonsai is developed spec-first. Start with the relevant document in Specs/,
keep implementation slices small, and commit checkpoints as work lands.
Pull requests run on the Jarvis self-hosted macOS ARM64 runner for shell syntax,
swift test, the large-repository performance smoke, and the credential-free
release bundle, archive, and artifact verifiers.
Useful project paths:
Sources/Bonsai/App- app entry point, commands, and scenesSources/Bonsai/Views- native macOS SwiftUI interfaceSources/Bonsai/Stores- observable app state and Git operation flowSources/Bonsai/Services- Git, GitHub, and process execution servicesSources/Bonsai/Support- parsers, rendering helpers, launchers, and policiesTests/BonsaiTests- focused parser, command, workflow, and integration testsDocumentation/ReleasePackaging.md- release packaging, signing, notarization, and artifact verification workflowDocumentation/ReleaseChecklist.md- first public release checklistVERSION- bundle marketing version used by package scripts
Contributions are welcome. Please read
CONTRIBUTING.md before opening a pull request, and keep UI changes aligned with
the interface standards and existing macOS conventions.
See SECURITY.md for supported versions and vulnerability reporting guidance.
MIT. See LICENSE.

