A fast, keyboard-first Git client — built for reviewing what AI coding agents do to your code.
Website · Download · Roadmap · Commercial license
Strand is a native, cross-platform Git client (Tauri 2 + Rust + React) with a dedicated surface for reviewing an agent's changes: whole-file-context diffs, a review queue, and worktree-aware baselines that include what the agent already staged or committed. It's also a complete everyday Git client — staging, commit graph, interactive rebase, stashes, tags — and it's keyboard-first, but never keyboard-only: almost every action works from the keyboard alone, and the mouse stays first-class.
- Review view (⌘4) — read an agent's changes as whole files with the edits inline, not isolated hunks. A file-tree queue tracks what you've reviewed, and a pinnable baseline captures everything since a commit — including work the agent already staged or committed.
- Worktrees (⌘5) — an overview of every worktree with its branch, ahead/behind, dirty count, and one-click Review pinned where the branch diverged from main — built for reviewing agents' per-feature worktrees. Worktree tabs of one repo group together in the tab strip.
- Everyday Git — staging with per-change-block stage / discard / unstage inline in the diff, fetch / pull / push with streaming progress, branches, tags, stashes, remotes, cherry-pick, revert, merge, and a fully keyboard-operable interactive rebase (reorder, reword, squash, fixup, drop) with conflict-pause Continue / Abort.
- Commit graph — SVG lanes with branch/tag chips, inline stash nodes, a resizable commit detail panel, in-graph search by message / author / hash, and a reflog browser for recovering commits orphaned by a reset or rebase.
- Command palette (⌘K) — fuzzy search across commands, branches, tags, files, commits, and recent repos, with scope filtering and full keyboard + screen-reader operability.
- File view — highlighted source,
--followhistory, compare any two revisions, blame, and rendered previews for markdown and SVG. - Comfortable to live in — multi-repo tabs persisted across launches, native macOS menubar, open in your editor or terminal, settings (⌘,) for appearance / diff / git / integrations, in-app updates.
- Fast by design — reads go through gix,
writes through git2 and your system
git. Performance targets live inPRD.md§8 and are measured indocs/perf-baseline.md.
Strand is in alpha. It opens and works on large real-world repos daily,
but expect rough edges. The bigger known gaps: the file-tree sidebar,
full-history content search (-G/-S), stash-to-branch, and
interactive-rebase edit (pause to amend). Strand is currently dark-only;
theming arrives with the public beta. See ROADMAP.md for
the milestone view and TASKS.md for the granular list.
Download the latest release for macOS (universal), Windows, or Linux
(.deb / .rpm / .AppImage) from
GitHub Releases.
Prerequisites:
- Rust stable (
rustup default stable) - Node ≥ 20 and pnpm ≥ 9
- Platform deps for Tauri 2: see https://v2.tauri.app/start/prerequisites/
pnpm install
pnpm tauri:dev # full app: Vite + Rust + native shell
pnpm dev # frontend only, in a regular browser
pnpm tauri:build # installers in target/release/bundleThe frontend detects when it isn't running inside Tauri and disables IPC
calls, so pnpm dev is useful for UI work without a Rust build.
strand/
├── crates/
│ ├── strand-core/ # Git engine (gix for reads, git2 for writes)
│ └── strand-tauri/ # Tauri 2 app shell + IPC commands
├── ui/ # Vite + React + TypeScript frontend
├── website/ # landing page for strand.danielss.dev (no build step)
├── docs/ # design notes, perf baseline, packaging
├── PRD.md # product spec
├── ROADMAP.md # milestones and status
├── TASKS.md # granular work list
└── AGENTS.md # working agreement for AI/dev agents
Issues and pull requests are welcome. Before diving in:
PRD.mdexplains what Strand is and the bar it has to clear — performance targets in §8 are not aspirational.AGENTS.mdis the working agreement. It's written for AI agents but applies to humans too: surgical diffs, simplicity first, and every new surface keyboard-operable.- The visual identity lives in
ui/src/styles/as design tokens — no hardcoded colors.
Strand is dual-licensed:
- AGPL-3.0 for the public distribution. Anyone can read, build, modify, and use the source under the standard AGPL terms.
- Commercial license (one-time purchase) for companies that prefer not to take on AGPL obligations or want to support development.
The app is fully functional for everyone — no feature gating, no nag dialogs,
no trial period. The commercial license is honor-system: free for individuals,
appreciated for company use. See COMMERCIAL.md for
details.