A modernised git interface for macOS — view pull requests, worktrees, branches and stashes at a glance
Version control is the heart of software development. The core ledger concept behind git source control is robust and battle tested but modern tooling and interfaces have not kept up with the rapid increase in volume and velocity of code being generated by coding agents and modern software development teams empowered with AI tools. Ledger is your command & control radar for overseeing changes made by multiple local and remote coding agents.
- macOS (Apple Silicon, zip): Releases
- Linux (Ubuntu/Debian x64, .deb): Releases
- Linux (AppImage x64, optional): Releases — may require
fuse3on some distros - Windows (NSIS installer): Built on a Windows runner; grab the Windows asset from Releases when available
macOS first launch: macOS may warn the app is “damaged” or “from the internet”. Right-click → Open (sometimes twice) or:
xattr -cr ~/Downloads/Ledger*.zipThen move Ledger to Applications.
- View open PRs from GitHub (via
ghCLI) - Filter by status: Open, Drafts, All
- See PR details, reviews, and inline diffs
- Create PRs directly from branches
- View and navigate to git worktrees
- Detect AI agent workspaces (Cursor, Claude, etc.)
- See change stats per worktree
- Convert worktree changes to branches
- View all local and remote branches with metadata (commit dates, counts)
- Filter: All, Local Only, Unmerged
- Sort: Name, Last Commit, First Commit, Most Commits
- Double-click to switch branches with auto-stash
- View commit history with graph visualization
- Stage/unstage files with diff preview
- Commit with message and description
- Reset to previous commits
- View, apply, and pop stashes
- Preview stash contents
- Convert stash to branch
- Auto-stash for common operations (switching/pulling) where safe
- PR Preview (“virtual merge”) to answer “what would this branch contribute right now?”
- Leapfrog-style flows for staying current without losing context
- Mailmap support for consistent commit author names
See: Opinionated Git Behaviors
- macOS (Apple Silicon)
gitavailable on PATH- GitHub CLI (
gh) — optional, for PR integration
- Ledger runs locally and shells out to
git/ghfor operations. - Auth and network access (for GitHub) are handled by
ghand your git remote configuration.
You can download the source code of Ledger to contribute your ideas or fork Ledger to customize it for yourself.
# Clone the repository
git clone https://github.com/peterjthomson/ledger
cd ledger
# Install dependencies
npm install
# Start development server
npm run dev| Command | Description |
|---|---|
npm run dev |
Start development with hot reload |
npm run lint |
Run ESLint |
npm run format |
Format code with Prettier |
npm test |
Run E2E tests |
npm run build:mac:arm64 |
Build for Apple Silicon |
ledger/
├── app/ # Renderer process (React UI)
│ ├── app.tsx # Main React component
│ ├── styles/ # CSS styles
│ └── types/ # TypeScript declarations
├── lib/ # Main process (Electron)
│ ├── main/ # Main process code
│ └── preload/ # Preload scripts
├── tests/ # E2E tests (Playwright)
└── docs/ # Documentation
See CONTRIBUTING.md for detailed development guidelines.
- Electron — Cross-platform desktop framework
- React 19 — UI library
- TypeScript — Type-safe JavaScript
- simple-git — Git operations
- GitHub CLI — Pull request data
- Playwright — E2E testing
MIT — see LICENSE for details.
Built with the electron-react-app template.