Skip to content

poolcamacho/Maple

Maple

CI Platform Swift License: MIT Stars Forks Issues Last Commit GitHub Sponsors

A free, fast, native macOS Git client built with SwiftUI. Inspired by GitExtensions, designed to feel at home on macOS.

Maple History tab with commit graph and diff

Why Maple

Most Git GUIs on macOS are Electron based, locked behind a subscription, or oversimplified to the point of hiding what Git actually does. Maple is none of those. It shells out to the git binary you already have, shows the full topology of your history, and stays out of the way when you know what you are doing.

Features

  • Real commit graph. Lane assignment, curved edges per parent, merge nodes rendered as a ring so joins stay legible across busy histories.
  • Interactive staging. Tick a checkbox on any hunk header — or any individual + / - line — and stage only what you want. Cmd+S stages (or unstages) the current selection. Works in reverse too: view the staged diff and surgically peel changes back into the working tree.
  • Diff viewer with Blame toggle. Syntax coloured hunks, line numbers, and per line author / hash / date when Blame is on.
  • Merge and rebase with conflict UX. Detects UU, AA, DD automatically, shows an operation banner with Abort / Continue / Skip, and lets you resolve per file with Use Ours or Use Theirs.
  • Branch management. Local and remote branches, checkout (including remote to local tracking), create, rename, delete.
  • Stash support. Save, pop, apply, drop with custom messages.
  • Auto refresh. FSEvents watcher on .git/ picks up changes made outside the app.
  • Adaptive layout. The toolbar, sidebar, and panels collapse gracefully from a wide desktop down to a compact laptop window.

Screenshots

Merge conflict resolution

Merge conflict view with operation banner and per file Use Ours / Use Theirs

Branch management

Branches tab with local and remote branches

Requirements

  • macOS 14.0+ (Apple Silicon recommended, Intel supported)
  • Xcode 26+ (Swift 6.3 toolchain; required for isolated deinit)
  • Git installed (ships with Xcode Command Line Tools)

Getting started

git clone https://github.com/poolcamacho/Maple.git
cd Maple
open Maple.xcodeproj

Build and run from Xcode with Cmd+R.

Architecture

Models/     Pure Sendable data (AppState, GitModels, StashModels)
Services/   GitService (actor, runs git via Process),
            GitCoordinator (@MainActor, orchestration),
            command extensions, CommitGraphBuilder,
            ConflictParser, FileWatcher
Views/      One file per view, all async work through the coordinator
Utils/      FolderPicker, DateExtensions

Roadmap

Done

  • Direct integration with the git binary via Process, with hardened stdin and pipe cleanup
  • Live git status, git log, git diff parsing
  • Commit, push, pull, fetch
  • Branch create, checkout, delete, rename
  • Stash save, pop, apply, drop
  • Auto refresh via FSEvents
  • Responsive layout with adaptive breakpoints
  • Separated architecture (Models / Services / Views / Utils)
  • Blame view with per line author, hash, date
  • Commit graph with real branch topology
  • Merge and rebase with conflict resolution UI
  • Interactive staging — hunk level (select hunks with checkboxes, stage or unstage)
  • Interactive staging — line level (pick individual + / - lines within a hunk)
  • Cmd+S stages / unstages the current selection

Next

  • Tag management (create, list, delete)
  • Search filtering (commits, files)
  • Clone from URL
  • Remote management (add, remove, configure)
  • Keyboard shortcuts (Cmd+Enter commit, command palette)
  • Persist open repositories between sessions
  • Settings and preferences
  • Signed and notarized releases

Contributing

Contributions are welcome. See CONTRIBUTING.md for the workflow and CODE_OF_CONDUCT.md for community expectations. Security issues go through the private flow in SECURITY.md.

Sponsor

Maple is developed on nights and weekends. If it saves you time, consider sponsoring on GitHub so it stays free and actively maintained.

License

MIT

About

A free, fast, native macOS Git client built with SwiftUI. Full commit graph with real topology, inline diff/blame, merge & rebase with conflict resolution.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors

Languages