Sift is a native macOS Git diff viewer — a fast desktop app for reviewing local commit, branch, and working-tree diffs in a clean, GitHub-style Files changed view. Open any repository, switch branches, leave inline review comments, and route them straight to your coding agent over MCP.
Built as a Tauri v2 app: a lightweight Rust backend (git orchestration + live file-watching + an MCP server) serving a React frontend inside a native window.
- 📂 Open any repo — native folder picker (⌘O) + an Open Recent menu
- 🔀 Branch aware — see the current branch and switch with a real
git checkout(guarded against a dirty tree) - 🟢 Uncommitted by default — opens on
HEAD → working tree, with an Include Untracked toggle so new files show up too ↔️ Split / Unified views with word-level intra-line highlighting and syntax highlighting- 🔄 Auto-reload — the diff refreshes itself the moment you commit, stage, or edit files (FSEvents → SSE)
- 📝 Rendered previews by default — Markdown renders as a live preview, and HTML files open in a sandboxed web-view preview (like a browser) — flip back to the raw diff anytime
- 🖼️ More viewers — images, notebooks, and Mermaid diagrams
- 💬 Review comments — inline threads, copy-as-prompt, or route them to an AI agent (below)
- 🤖 MCP for coding agents — expose your comments to Claude Code, Codex, or any MCP client
- 🌗 Light / dark toggle, viewed-file tracking, keyboard navigation
- 💾 Persistent — runs on a fixed local port, so comments, viewed state, and settings survive restarts
Sift runs a built-in MCP server (Streamable HTTP) so a running coding agent can fetch the review comments you post in the app, act on them, and mark them resolved. Works with any MCP-capable agent:
Claude Code
claude mcp add --transport http sift http://127.0.0.1:4966/mcpCodex (~/.codex/config.toml)
[mcp_servers.sift]
url = "http://127.0.0.1:4966/mcp"Then ask your agent to pull your comments. Tools exposed:
list_review_comments— open comments for the current repo + diff (auto-marks them delivered)resolve_comment/reopen_commentget_review_context— current repo, branch, diff selection, and comment counts
Configure it in Settings → AI Routing: enable/disable, auto-deliver on read, scope (repo + diff view by default, or repo + branch, or repo), and whether to include outdated comments. The exact connect command (with the live port) is shown there too.
pnpm install
npx vite build # build the frontend (dist/client)
cd native && cargo tauri dev # run the desktop appcd native && cargo tauri build --bundles app # -> native/target/release/bundle/macos/Sift.appSift is a derivative work of difit by yoshiko-pg, used under the MIT License. difit's excellent GitHub-style diff-review UI is the foundation Sift is built on — Sift wraps it in a native macOS app with a Rust backend, live file-watching, branch switching, and MCP comment routing. Huge thanks to yoshiko-pg and the difit project. 🙏
MIT — see LICENSE. Copyright © 2025 @yoshiko-pg/difit and © 2026 AltSlate Labs.
