81aa3016495f19a1263e728f98afd9134387f6dd
* fix(syncbranch): support bare repos and worktrees with git-common-dir Replace hardcoded .git/beads-worktrees/ path with dynamic detection using git rev-parse --git-common-dir. This correctly handles: - Regular repositories (.git is a directory) - Git worktrees (.git is a file pointing elsewhere) - Bare repositories (no .git directory, repo IS the git dir) - Worktrees of bare repositories The new getBeadsWorktreePath() helper uses git's native API to find the shared git directory, ensuring beads worktrees are created in the correct location regardless of repository structure. Updated functions: - CommitToSyncBranch - PullFromSyncBranch - CheckDivergence - ResetToRemote Fixes #639 * test(syncbranch): add regression tests for getBeadsWorktreePath Add comprehensive tests for the worktree path calculation to ensure proper handling of various repository structures: - Regular repos: uses .git/beads-worktrees path - Bare repos: uses <bare-repo>/beads-worktrees (no .git subdirectory) - Worktrees: uses main repo's .git/beads-worktrees (git-common-dir) - Fallback: legacy behavior when git command fails - Relative paths: ensures absolute path conversion These tests ensure the fix for GH#639 doesn't regress. --------- Co-authored-by: Charles P. Cross <cpdata@users.noreply.github.com>
…
…
bd - Beads
Distributed, git-backed graph issue tracker for AI agents.
Beads provides a persistent, structured memory for coding agents. It replaces messy markdown plans with a dependency-aware graph, allowing agents to handle long-horizon tasks without losing context.
⚡ Quick Start
# Install (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
# Initialize (Humans run this once)
bd init
# Tell your agent
echo "Use 'bd' for task tracking" >> AGENTS.md
🛠 Features
- Git as Database: Issues stored as JSONL in
.beads/. Versioned, branched, and merged like code. - Agent-Optimized: JSON output, dependency tracking, and auto-ready task detection.
- Zero Conflict: Hash-based IDs (
bd-a1b2) prevent merge collisions in multi-agent/multi-branch workflows. - Invisible Infrastructure: SQLite local cache for speed; background daemon for auto-sync.
- Compaction: Semantic "memory decay" summarizes old closed tasks to save context window.
📖 Essential Commands
| Command | Action |
|---|---|
bd ready |
List tasks with no open blockers. |
bd create "Title" -p 0 |
Create a P0 task. |
bd dep add <child> <parent> |
Link tasks (blocks, related, parent-child). |
bd show <id> |
View task details and audit trail. |
bd quickstart |
Interactive guide for AI agents. |
🔗 Hierarchy & Workflow
Beads supports hierarchical IDs for epics:
bd-a3f8(Epic)bd-a3f8.1(Task)bd-a3f8.1.1(Sub-task)
Stealth Mode: Run bd init --stealth to use Beads locally without committing files to the main repo. Perfect for personal use on shared projects.
📦 Installation
- npm:
npm install -g @beads/bd - Homebrew:
brew install steveyegge/beads/bd - Go:
go install github.com/steveyegge/beads/cmd/bd@latest
Requirements: Linux (glibc 2.32+), macOS, or Windows.
🌐 Community Tools
- beads_viewer - Keyboard-driven terminal UI with kanban board, insights panel, and graph view. Built by @Dicklesworthstone.
- beads.el - Emacs UI to browse, edit, and manage beads. Built by @ctietze.
- beads-ui - Local web interface with live updates and kanban board.
npx beads-ui start. Built by @mantoni. - bdui - Real-time terminal UI with tree view, dependency graph, and vim-style navigation. Built by @assimelha.
- perles - Terminal UI with BQL (Beads Query Language) and multi-view kanban. Built by @zjrosen.
- vscode-beads - VS Code extension with issues panel and daemon management. Built by @jdillon.
📝 Documentation
Languages
Go
95%
Python
3.7%
Shell
0.7%
JavaScript
0.3%
PowerShell
0.1%