# GitWarren

> A local-first desktop app for reviewing AI-written code in your git worktree before it becomes a commit, with an MCP server so agents can participate in the review.

GitWarren is a cross-platform desktop application built by Klarluft B.V. that lets developers review code changes — including uncommitted, staged, and untracked files — directly on their own machine before anything is pushed to GitHub. It is free and open source under GPL-3.0, with the source available at github.com/klarluft/gitwarren-app. The tool is created and maintained by Michal Wrzosek and is currently at v0.1.6.

## What It Is

GitWarren fills a gap that every other code review tool leaves open: the moment between when a coding agent finishes its work and when that work becomes a commit. Traditional review tools — GitHub pull requests, GitLab merge requests — require a commit, a push, and an open PR before you can read a diff. GitWarren reads the git worktree directly, folding staged, unstaged, and untracked files into a single reviewable diff on your own machine. No account is required, no data leaves your computer, and all review state is stored in a single SQLite file in your application-data directory.

## Local-First Architecture

The "local by construction" design is a deliberate constraint, not a limitation:

- **No account, no server.** Nothing to sign up for; the app is one person's tool on one machine.
- **Nothing cached.** Every branch name, commit, and diff is read from git at the moment it is displayed, so nothing goes stale.
- **One SQLite file.** Reviews and comments live in a single file (`gitwarren.db`) in the OS application-data directory. Deleting it removes GitWarren entirely without touching any repository.
- **Multi-machine reach.** GitWarren can reach repositories on other machines over SSH, WSL, or a Tailscale tailnet — reviews live where the code does, not on a central server.

## Agent Participation via MCP

GitWarren ships an MCP (Model Context Protocol) server over stdio. Pointing Claude Code, Codex, or any MCP-compatible client at it gives the agent access to seventeen tools — the same service layer the UI uses — including opening reviews, reading discussions, replying in threads, leaving line comments, and resolving threads. Agent comments are always attributed as machine-written, with the tool name taken from the MCP handshake (`clientInfo.name`) rather than from whatever the model calls itself. Two concurrent agent sessions are kept distinct by a per-session ID minted at startup. The MCP server can run independently of the desktop app; both share the same SQLite database.

## Reviewing Uncommitted Work

The core feature is the ability to review a branch against itself — where the merge base of a ref with itself is its own tip, so the diff is exactly what the worktree holds that has not been committed. GitWarren uses `git worktree list --porcelain` to find whichever worktree holds the head branch, then reads staged, unstaged, and untracked changes from that location. Untracked files are listed with `git ls-files --others --exclude-standard` and rendered as whole-file additions. Three diff views are available: committed only, all changes (committed + uncommitted), and uncommitted only.

## Stack and Deployment Model

GitWarren is built on Electron 44 with TypeScript, React 19, Tailwind CSS v4, and SQLite via `better-sqlite3` and Drizzle ORM. The UI and MCP server both call one shared service layer (`src/core/services/`) — neither surface contains repository or review logic of its own. The desktop app is available as:

- macOS (Apple Silicon and Intel DMG, also via `brew install --cask klarluft/tap/gitwarren`)
- Windows (NSIS installer, x64 and arm64)
- Linux (AppImage, x86_64 and arm64)

A headless CLI (`gitwarren serve`) serves the same review UI in a browser tab for machines without a screen or for users who prefer not to install an Electron app. The CLI is available via `npx gitwarren` or `brew install klarluft/tap/gitwarren-cli`.

## Update: v0.1.6

The latest release is v0.1.6, published on 2026-09-08. The repository was created in September 2026 and has seen active development, with the last push on 2026-09-11. The project is featured on Product Hunt. Auto-update is built in (checks on launch and every 6 hours, downloads in the background, applies on next restart); on macOS, auto-update requires a signed build. The release pipeline produces installers for all three platforms plus daemon tarballs for headless deployment and an npm package for the CLI.

## Features
- Review uncommitted, staged, and untracked git changes before committing
- MCP server over stdio for agent participation in code reviews
- Local-first: no account, no server, no data leaves your machine
- Multi-machine reach over SSH, WSL, or Tailscale tailnet
- Three diff views: committed, all changes, uncommitted only
- Untracked file review rendered as whole-file additions
- Threaded comments with line anchoring and re-anchoring as code moves
- Agent comments always attributed with tool name from MCP handshake
- Two concurrent agent sessions kept distinct by per-session ID
- Single SQLite file for all review state
- File tree navigation with fold/unfold and reviewed-file tracking
- Expand hidden diff lines (like GitHub's unfold)
- Open file in editor (VS Code, Cursor, Windsurf, Zed, Sublime, JetBrains)
- Image attachments in comments (PNG, JPEG, GIF, WebP)
- Headless CLI mode (gitwarren serve) for browser-based review
- Auto-update on launch and every 6 hours
- Homebrew cask for macOS installation
- Deep link support (gitwarren:// protocol) for linking to specific reviews

## Integrations
Claude Code, OpenAI Codex, Cursor, Windsurf, VS Code, Zed, Sublime Text, JetBrains, Tailscale, SSH, WSL, Git, GitHub Releases, Homebrew, npm

## Platforms
WINDOWS, MACOS, LINUX, IOS, WEB, API, VSC_EXTENSION, JETBRAINS_PLUGIN, CLI

## Pricing
Open Source

## Version
v0.1.6

## Links
- Website: https://gitwarren.com
- Documentation: https://github.com/klarluft/gitwarren-app
- Repository: https://github.com/klarluft/gitwarren-app
- EveryDev.ai: https://www.everydev.ai/tools/gitwarren
