Personal project — built for my own use. Source is public under MIT, but I'm not accepting issues, PRs, or feature requests.
- Open and close local repositories without changing their contents.
- Persistent, reorderable multi-repository tabs and a recent-repositories list.
- Lane-colored commit history with search, commit metadata, changed-file lists, and syntax-highlighted word-level diffs.
- Read-only working-tree status for staged, unstaged, untracked, and conflicted files, with diff viewing.
- Automatic filesystem watching plus manual refresh.
- Light, dark, and system themes.
Etch intentionally does not stage, commit, discard, switch branches, or perform network and other repository-mutating operations. Use the Git CLI or another client when you need to make changes.
Requires Bun, Rust, and the Tauri prerequisites for your OS.
bun install
bun run tauri buildInstaller artifacts land in src-tauri/target/release/bundle/.
For development:
bun run tauri devBuilds are not code-signed/notarized.
macOS — if it refuses to open with "Etch.app is damaged" or "developer cannot be verified":
xattr -dr com.apple.quarantine /Applications/Etch.appWindows — SmartScreen shows "Windows protected your PC". Click More info → Run anyway.
Tauri 2 (Rust core) + Vite + React 19 + TypeScript. Tailwind v4, shadcn/ui, Base UI, Radix, lucide. Bun, Biome, Vitest.
Built and maintained by @Joselay. Recent commits on main are signed with my personal SSH key and show a Verified badge on GitHub.
If you fork or copy this code, MIT requires you to keep the copyright notice. Please don't strip it and republish as your own original work.
MIT — Copyright (c) 2026 Joselay.

