Git graph and Beads issue tools in one VS Code extension.
No telemetry. Privacy-first. Security-first.
- Shows branches, tags, merges, and uncommitted changes in a Git graph
- Opens commit details, changed files, and diffs
- Adds a Beads view in the Activity Bar
- Lets you switch between Git Graph and Beads from the toolbar
- Lets you refresh, create, close, and sync Beads items inside VS Code
- Shows optional parallel, AI model, SSOT/context, worktree, branch, PR, check, and sync-risk hints on Beads items
- Shows a Beads execution map with Critical Path, dependency edges, parent context, merge/worktree risk, Start AI, Start Parallel, and merge actions
- Open Beads Git Graph: View Git Graph (git log) from the Command Palette.
- Open the Beads view from the Activity Bar.
- Use the toolbar to refresh, sync, or switch views.
If your workspace has a .beads directory, the extension detects it automatically. Set beads-git-graph.bdPath if bd is not on PATH.
The Beads view surfaces optional execution hints from issue fields, metadata, or labels:
parallelizable: trueor labelparallel-okmodel: "gpt-5-codex"or labelmodel:gpt-5-codexssot: "AGENTS.md, .beads/issues.jsonl"or labelssot:AGENTS.mdworktree: "../repo-agent-a"or labelworktree:../repo-agent-abranch: "agent/task-a"or labelbranch:agent/task-apr: 123,check_status: "success", or labels such aspr:#123,checks:successsync_risk: "stale"or labelsync-risk:stale
When you use Start AI, the extension automatically picks the configured or default model, infers SSOT/context from workspace files such as AGENTS.md, .beads/issues.jsonl, README.md, and docs, creates or reuses a git worktree for the task, records model/SSOT/worktree/branch metadata, marks the bead in progress, then opens a GitHub Copilot Background Agent chat session with the bead prompt prefilled. If VS Code cannot open that session automatically, the prompt is copied to the clipboard and Chat is opened as a fallback.
When multiple ready tasks can run in parallel, Start Parallel assigns and starts them in one action. Each task receives its own worktree so the Beads table and graph can show which worktree is expected to carry that agent's changes. Active tasks that are skipped are reported with the reason.
These hints are visual metadata. Beads ready/blocking behavior still comes from issue status and dependencies.
The extension reads SSOT/context from ssot-usage.json, .beads/ssot-usage.json, or .codex/ssot-usage.json before falling back to built-in workspace defaults. The manifest can list default refs and richer context records:
{
"version": 1,
"default": ["bd:${issueId}", "AGENTS.md", ".beads/issues.jsonl", "README.md"],
"contexts": [
{
"id": "agent-rules",
"path": "AGENTS.md",
"use": "Repository-local instructions and workflow rules."
}
]
}Only existing local paths are added; refs such as bd:${issueId} and URLs are kept as-is.
For derived parallel merge tasks, Merge PRs checks the registered agent worktrees and branch PR checks before asking GitHub CLI to auto-merge their branch PRs. It blocks if a worktree is not registered, does not contain origin/main, has uncommitted changes, has no open PR, or has missing, pending, or failing checks.
You can run the same guard manually:
pnpm run worktree-sync:guard -- --base origin/main
The PR CI also runs the guard against the PR head so stale branches fail before merge.