High-performance, AI-assisted git graph visualisation for VS Code.
Status: Preview release ready · M6 complete · See PROGRESS.md
Why another git graph extension?
VS Code's current options each have a gap:
| Option | Strength | Gap |
|---|---|---|
| Git Graph (mhutchie) | Intuitive UI, complete operations | ~5 years unmaintained, no open-source licence, slow on large repos |
| VS Code built-in (1.93+) | Official, zero-install | Feature-light, no AI |
| GitLens | Deep editor integration | Monolithic, graph is one feature among many, commercial |
Git Braid fills the gap: a focused, lightweight extension that is fast on huge repos and brings AI-assisted history understanding.
Two core differentiators:
- Performance — 10k–100k commit repos remain smooth. Rust core reads the git object database directly (via gitoxide); a Canvas virtualised renderer paints only the visible window.
- AI assistance — release-notes generation, merge-conflict context summaries. Uses VS Code's Language Model API (no key required) with BYO-key fallback (Anthropic, OpenAI, Gemini, Groq).
Features
- Commit graph — virtualised Canvas renderer; smooth scrolling on repos with 100k+ commits; bezier lane curves, merge rings, ref chips
- Commit detail — metadata, ref labels, changed-file list with A/M/D badges, click-to-diff (uses VS Code's built-in diff viewer)
- Full-history search — find by subject, author, or OID prefix; auto-loads
commits on demand to reach a match (
Cmd/Ctrl+F) - Write operations — checkout, branch/tag CRUD, merge, rebase, cherry-pick,
revert, reset (soft/mixed/hard), stash apply/pop/drop — all via the
gitCLI - Context menu — right-click any commit for the full write-op menu
- Copy actions — copy commit hash / short hash / subject / full message
- Multi-repo workspaces — auto-detects repos; picker for multi-root workspaces
- AI release-notes — pick two refs → AI generates Markdown release notes; two privacy modes (metadata-only vs +diff stat); consent modal per run
- Settings —
dateFormat,graphColors,ai.provider,ai.model,ai.defaultDiffStat
Architecture
Git Braid is a four-layer system: a Rust core (gitoxide) walks the ODB directly
and encodes batches as flat binary buffers; a napi-rs native addon bridges Rust to
the TypeScript extension host; the host manages VS Code commands, the webview panel,
and AI features; and the webview's Canvas renderer paints only the visible window at
60fps. Write operations shell out to the git CLI; reads never spawn a subprocess.
See docs/architecture.md for the full architecture record: component diagram, data-flows, binary protocol, tech-stack table, and hard constraints.
Development quickstart
Prerequisites: Rust 1.80+, Node.js 20+, pnpm 9+.
# Clone
git clone https://github.com/FWcloud916/vscode-git-braid
cd vscode-git-braid
# Install JS dependencies
pnpm install
# Build the TypeScript extension + webview (includes native vendor step)
pnpm run build
# Run Rust tests
cargo test --workspace
# Check Rust formatting + lints
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
# Type-check TypeScript
pnpm run typecheck
# Lint TypeScript
pnpm run lint
# Run in VS Code Extension Development Host
# Press F5 in VS Code, then run "Git Braid: Open Graph" from the command palette.
Build the native addon locally
# Debug build (faster; for local development)
pnpm run build:napi:debug
# Release build (for packaging)
pnpm run build:napi
Package a local .vsix
# Builds release addon + vendors it, then packages for the current platform
pnpm run package
Project roadmap
| Milestone | Description | Status |
|---|---|---|
| M0 | Rust core: gitoxide log walk + topo sort | ✅ |
| M1 | Layout algorithm + napi binding | ✅ |
| M2 | Canvas virtualised renderer — MVP demo | ✅ |
| M3 | Commit detail / diff / refs / find | ✅ |
| M4 | Write operations + context menu | ✅ |
| M5 | First AI feature (release-notes generation) | ✅ |
| M6 | Marketplace publish (preview) | ✅ |
See PROGRESS.md for detailed task-level status.
Clean-room notice
Git Braid is a clean-room reimplementation of the Git Graph concept. It is not a fork of any existing extension. See CONTRIBUTING.md for the clean-room development policy.
Contributing
See CONTRIBUTING.md. All contributors must follow the clean-room discipline and sign off commits under the MIT licence.
Licence
MIT © Git Braid contributors