Beads (bd)
Distributed, Dolt-backed (Git-like) graph issue tracker for AI coding agents. Persistent memory with dependency-aware task tracking.
Quick Start
Install: brew install beads or use the install scripts/binaries from the GitHub repo.
# Initialize in repo (humans run once)
bd init
# Tell your agent
echo "Use 'bd' for task tracking" >> AGENTS.md
When to Use
- AI agent needs persistent task memory across sessions
- Tracking dependencies between tasks (
blocks:, depends_on:)
- Multi-agent/multi-branch workflows (hash-based IDs prevent conflicts)
- Incremental delivery with molecules/gates
- Sync issues with GitLab, Linear, Jira, GitHub
Essential Commands
| Command |
Action |
bd ready |
List tasks with no open blockers |
bd ready --explain |
Explain why tasks are or are not ready |
bd ready --gated |
Tasks waiting at gate checkpoints |
bd ready --exclude-type=X |
Exclude specific issue types |
bd create "Title" -p 0 |
Create P0 task |
bd show <id> |
View task details and audit trail |
bd update <id> --status=X |
Update status (open/in_progress/done) |
bd close <id> |
Close task |
bd close <id> --claim-next |
Close current task and claim next |
bd dep add <child> <parent> |
Link tasks (blocks, related, parent) |
bd list |
List issues (default: 50, non-closed) |
bd list --format json |
JSON output (alias for --json) |
bd show --current |
Show active issue (no ID needed) |
bd update <id> --claim |
Atomically claim issue for work |
bd note <id> "text" |
Append note (shorthand) |
bd import -i <file> |
Import JSONL incrementally |
bd sync |
Sync database state |
bd dolt pull |
Pull latest DB changes (advanced) |
bd dolt push |
Push DB changes (advanced) |
bd bootstrap |
Repair/bootstrap workspace identity |
bd context |
Show current workspace/task context |
bd kv set <key> <value> |
Store key-value pair |
bd kv get <key> |
Retrieve stored value |
bd dolt show |
Show Dolt connection/remote settings |
bd config set-many |
Apply multiple config changes in one step |
bd ado sync |
Sync with Azure DevOps work items |
bd ado status |
Check Azure DevOps sync status |
bd ado projects |
List Azure DevOps projects |
bd gitlab sync |
Sync with GitLab |
bd github sync |
Sync with GitHub Issues |
bd remember |
Write persistent agent memory |
bd recall |
Read persistent agent memory |
bd purge |
Delete closed ephemeral beads (wisps) |
Hash-Based IDs
Issues use hash-based IDs like bd-a1b2 to prevent merge conflicts:
bd create "Fix login bug" -p 1
# Created: bd-x7k3
bd show bd-x7k3
Hierarchical IDs
bd-a3f8 (Epic)
bd-a3f8.1 (Task)
bd-a3f8.1.1 (Sub-task)
Use bd children <id> to view hierarchy.
References
| File |
Purpose |
| workflow.md |
Daily operations, status flow, sync |
| authoring.md |
Writing quality issues, EARS patterns |
| molecules.md |
Molecules, gates, formulas, compounds |
| sync.md |
Dolt sync, upgrades, and integrations |
Key Concepts
Dolt as Database
Beads stores issues in a Dolt database. Team synchronization happens via Dolt-style
pull/push, not by committing JSONL files into your repo history.
Dependency Graph
bd dep add bd-child bd-parent --blocks # child blocks parent
bd dep add bd-a bd-b --related # related items
bd ready # only shows unblocked work
Molecules (Advanced)
Molecules group related issues with gates for incremental delivery:
bd mol create "Feature X" --steps=3 # Create 3-step molecule
bd mol progress bd-xyz # Check progress
bd mol burn bd-xyz # Complete molecule
Stealth Mode
Use Beads locally without committing to repo:
bd init --stealth
Contributor vs Maintainer
# Contributor (forked repos) — separate planning repo
bd init --contributor
# Maintainer auto-detected via SSH/HTTPS credentials
Configuration
Config stored in .beads/config.yaml:
The exact schema evolves between releases. Prefer using CLI helpers to inspect
and validate your current setup:
bd dolt show to see current Dolt connection/remote settings
bd dolt test to validate connectivity
bd doctor / bd doctor --deep for health checks
Storage Backend (Dolt)
Beads uses Dolt as its primary backend. Depending on your setup, Dolt can run:
- Embedded (single-writer, no daemon)
- Server mode (multi-writer)
Use bd doctor (and bd doctor --server when applicable) to validate your
environment. For legacy stores, use bd migrate workflows.
Agent Integration
Tell Agent About Beads
Add to AGENTS.md:
## Task Tracking
Use `bd` for task tracking. Run `bd ready` to find work.
Agent-Optimized Output
BD_AGENT_MODE=1 bd list --json # Ultra-compact JSON output
bd list --json # Standard JSON output
MCP Plugin
Beads includes Claude Code MCP plugin for direct integration.
Release Highlights (1.2.2)
- Recovery release: v1.2.0/v1.2.1 were published without release testing; v1.2.2 re-releases the tested 1.1 line under a higher version, so every install channel moves onto tested code. The 1.2.x-only features (work leases, events journal, sync federation, HTTP API server, provenance events) are not in this release — they return in a tested future release.
- If you ran v1.2.1 and hit
schema version mismatch: database is at v65, binary knows up to v53: roll the schema cursor back to v53 (see docs/RECOVERY-1.2.1.md), or use the BD_IGNORE_SCHEMA_SKEW=1 stopgap — see references/sync.md. Upgrade every machine/clone to v1.2.2 before recovering, or a leftover 1.2.1 binary will silently re-migrate the database.
Release Highlights (1.1.0)
- Safer migrations: schema-change detection so database migrations no longer apply silently, plus read-only enforcement across all layers.
- Sync repair: repair for previously problematic pull merges, and compaction now archives before discarding information.
- New commands/flags:
bd metrics (with a consent notice) and idempotent --init-if-missing initialization.
Release Highlights (1.0.3–1.0.4)
- Workflow/config ergonomics:
bd -C changes working directory before running, bd close gains --reason-file, and setup/bootstrap flows gain better remote/server config handling.
- Linear sync: OAuth client-credentials, idempotency markers, stale-data signaling, per-workspace sync locks, richer type mappings, and batch create/update make larger sync loops safer and faster.
- Security/export defaults: Beads now refuses to write secret keys into git-tracked config, and exports exclude memories and ephemeral wisps by default unless you opt back in.
- Dependencies/data paths: JSONL bulk dependency add and several hook/bootstrap/init fixes reduce friction in automated and shared-server environments.
Release Highlights (1.0.0–1.0.2)
- Distribution: precompiled binaries now cover Linux, macOS (Intel/Apple Silicon), Windows (AMD64/ARM64), Android/Termux, and FreeBSD.
- Automation:
bd init --non-interactive / --role and bd bootstrap --non-interactive improve CI/cloud-agent setup.
- Workflow:
bd ready --explain, bd config set-many, batch dependency listing, and comma-separated status filters improve agent ergonomics.
- Authoring/modeling:
spike, story, and milestone are now first-class issue types; custom statuses/types moved to normalized tables.
- Integrations/sync: GitLab sync adds better dedup + epic→milestone mapping, ADO sync respects more filters, and embedded/shared-server recovery got safer.
Release Highlights (0.62.0–0.63.3)
- Azure DevOps integration:
bd ado CLI commands (sync, status, projects) for work item tracking.
- Embedded Dolt support: dep, duplicate, epic, graph, supersede, swarm operations work without a running Dolt server.
- Custom status categories: configure active/wip/done/frozen status groupings.
bd note command: shorthand for appending notes to issues.
--exclude-type flag: filter by issue type on bd ready and bd list.
--format json alias: alternative to --json flag for consistency.
- Audit log: captures close reason; status changes logged to
interactions.jsonl.
- Memories in export/import: round-trip includes agent memories.
- Init defaults: AGENTS.md defaults to minimal profile;
--agents-profile flag added.
- Quality/lifecycle commands: surfaced in prime, template, and doctor.
- Validation on close:
--validate checks --acceptance field; validation.on-close config.
Release Highlights (0.61.0)
bd close --claim-next shortens the common close-and-claim-next loop for agents.
bd create gains --skills, --context, and --no-history for richer task creation and optional Dolt-history suppression.
bd import adds incremental JSONL import for portability and recovery workflows.
bd init / bd bootstrap can auto-detect the Beads database from the repository git origin.
- Dolt/server-mode sync improves credential pass-through, runtime port reporting, and health checks.
- Config and backup handling are safer, including proper project+user config merge and
BD_BACKUP_ENABLED=false support.
Critical Commands
# What to work on
bd ready # Unblocked tasks
bd ready --pretty # Formatted output
# Create with dependencies
bd create "Task B" --blocks bd-a1b2
bd create "Task C" --context "Need schema review" --skills "python,sql"
# Doctor (fix issues)
bd doctor # Check health
bd doctor --fix # Auto-fix problems
bd sync # Sync DB state
bd import -i backup.jsonl # Incremental JSONL import
bd dolt pull # Pull latest changes (advanced)
bd dolt push # Push to remote (advanced)
Anti-patterns
| ❌ Wrong |
✅ Correct |
priority: high |
-p 1 (P0-P4 numeric) |
| Manual JSON editing |
Use bd commands |
Ignoring bd ready |
Always check blockers first |
Skipping bd sync |
Sync before/after work |
| Creating without deps |
Declare --blocks upfront |
Links
1---2name: beads3description: Beads (bd) Dolt-backed issue tracker for agent task memory. Covers CLI ops, molecules, Dolt sync, Linear/Jira/GitLab. Use when tracking tasks and dependencies with the Beads CLI, syncing issues via Dolt, or integrating with Linear/Jira/GitLab. Keywords: bd, beads, Dolt, issue tracker.4---5
6# Beads (bd)
7
8Distributed, Dolt-backed (Git-like) graph issue tracker for AI coding agents. Persistent memory with dependency-aware task tracking.
9
10## Quick Start
11
12Install: `brew install beads` or use the install scripts/binaries from the [GitHub repo](https://github.com/gastownhall/beads).
13
14```bash
15# Initialize in repo (humans run once)
16bd init
17
18# Tell your agent
19echo "Use 'bd' for task tracking" >> AGENTS.md
20```
21
22## When to Use
23
24- AI agent needs persistent task memory across sessions
25- Tracking dependencies between tasks (`blocks:`, `depends_on:`)
26- Multi-agent/multi-branch workflows (hash-based IDs prevent conflicts)
27- Incremental delivery with molecules/gates
28- Sync issues with GitLab, Linear, Jira, GitHub
29
30## Essential Commands
31
32| Command | Action |
33| ----------------------------- | ----------------------------------------- |
34| `bd ready` | List tasks with no open blockers |
35| `bd ready --explain` | Explain why tasks are or are not ready |
36| `bd ready --gated` | Tasks waiting at gate checkpoints |
37| `bd ready --exclude-type=X` | Exclude specific issue types |
38| `bd create "Title" -p 0` | Create P0 task |
39| `bd show <id>` | View task details and audit trail |
40| `bd update <id> --status=X` | Update status (open/in_progress/done) |
41| `bd close <id>` | Close task |
42| `bd close <id> --claim-next` | Close current task and claim next |
43| `bd dep add <child> <parent>` | Link tasks (blocks, related, parent) |
44| `bd list` | List issues (default: 50, non-closed) |
45| `bd list --format json` | JSON output (alias for `--json`) |
46| `bd show --current` | Show active issue (no ID needed) |
47| `bd update <id> --claim` | Atomically claim issue for work |
48| `bd note <id> "text"` | Append note (shorthand) |
49| `bd import -i <file>` | Import JSONL incrementally |
50| `bd sync` | Sync database state |
51| `bd dolt pull` | Pull latest DB changes (advanced) |
52| `bd dolt push` | Push DB changes (advanced) |
53| `bd bootstrap` | Repair/bootstrap workspace identity |
54| `bd context` | Show current workspace/task context |
55| `bd kv set <key> <value>` | Store key-value pair |
56| `bd kv get <key>` | Retrieve stored value |
57| `bd dolt show` | Show Dolt connection/remote settings |
58| `bd config set-many` | Apply multiple config changes in one step |
59| `bd ado sync` | Sync with Azure DevOps work items |
60| `bd ado status` | Check Azure DevOps sync status |
61| `bd ado projects` | List Azure DevOps projects |
62| `bd gitlab sync` | Sync with GitLab |
63| `bd github sync` | Sync with GitHub Issues |
64| `bd remember` | Write persistent agent memory |
65| `bd recall` | Read persistent agent memory |
66| `bd purge` | Delete closed ephemeral beads (wisps) |
67
68## Hash-Based IDs
69
70Issues use hash-based IDs like `bd-a1b2` to prevent merge conflicts:
71
72```bash
73bd create "Fix login bug" -p 1
74# Created: bd-x7k3
75
76bd show bd-x7k3
77```
78
79### Hierarchical IDs
80
81```
82bd-a3f8 (Epic)
83bd-a3f8.1 (Task)
84bd-a3f8.1.1 (Sub-task)
85```
86
87Use `bd children <id>` to view hierarchy.
88
89## References
90
91| File | Purpose |
92| --------------------------------------- | ------------------------------------- |
93| [workflow.md](references/workflow.md) | Daily operations, status flow, sync |
94| [authoring.md](references/authoring.md) | Writing quality issues, EARS patterns |
95| [molecules.md](references/molecules.md) | Molecules, gates, formulas, compounds |
96| [sync.md](references/sync.md) | Dolt sync, upgrades, and integrations |
97
98## Key Concepts
99
100### Dolt as Database
101
102Beads stores issues in a Dolt database. Team synchronization happens via Dolt-style
103`pull`/`push`, not by committing JSONL files into your repo history.
104
105### Dependency Graph
106
107```bash
108bd dep add bd-child bd-parent --blocks # child blocks parent
109bd dep add bd-a bd-b --related # related items
110bd ready # only shows unblocked work
111```
112
113### Molecules (Advanced)
114
115Molecules group related issues with gates for incremental delivery:
116
117```bash
118bd mol create "Feature X" --steps=3 # Create 3-step molecule
119bd mol progress bd-xyz # Check progress
120bd mol burn bd-xyz # Complete molecule
121```
122
123### Stealth Mode
124
125Use Beads locally without committing to repo:
126
127```bash
128bd init --stealth
129```
130
131### Contributor vs Maintainer
132
133```bash
134# Contributor (forked repos) — separate planning repo
135bd init --contributor
136
137# Maintainer auto-detected via SSH/HTTPS credentials
138```
139
140## Configuration
141
142Config stored in `.beads/config.yaml`:
143
144The exact schema evolves between releases. Prefer using CLI helpers to inspect
145and validate your current setup:
146
147- `bd dolt show` to see current Dolt connection/remote settings
148- `bd dolt test` to validate connectivity
149- `bd doctor` / `bd doctor --deep` for health checks
150
151## Storage Backend (Dolt)
152
153Beads uses Dolt as its primary backend. Depending on your setup, Dolt can run:
154
155- Embedded (single-writer, no daemon)
156- Server mode (multi-writer)
157
158Use `bd doctor` (and `bd doctor --server` when applicable) to validate your
159environment. For legacy stores, use `bd migrate` workflows.
160
161## Agent Integration
162
163### Tell Agent About Beads
164
165Add to `AGENTS.md`:
166
167```markdown
168## Task Tracking
169
170Use `bd` for task tracking. Run `bd ready` to find work.
171```
172
173### Agent-Optimized Output
174
175```bash
176BD_AGENT_MODE=1 bd list --json # Ultra-compact JSON output
177bd list --json # Standard JSON output
178```
179
180### MCP Plugin
181
182Beads includes Claude Code MCP plugin for direct integration.
183
184## Release Highlights (1.2.2)
185
186- **Recovery release**: v1.2.0/v1.2.1 were published without release testing; v1.2.2 re-releases the tested 1.1 line under a higher version, so every install channel moves onto tested code. The 1.2.x-only features (work leases, events journal, sync federation, HTTP API server, provenance events) are **not** in this release — they return in a tested future release.
187- **If you ran v1.2.1** and hit `schema version mismatch: database is at v65, binary knows up to v53`: roll the schema cursor back to v53 (see `docs/RECOVERY-1.2.1.md`), or use the `BD_IGNORE_SCHEMA_SKEW=1` stopgap — see `references/sync.md`. Upgrade every machine/clone to v1.2.2 **before** recovering, or a leftover 1.2.1 binary will silently re-migrate the database.
188
189## Release Highlights (1.1.0)
190
191- **Safer migrations**: schema-change detection so database migrations no longer apply silently, plus read-only enforcement across all layers.
192- **Sync repair**: repair for previously problematic pull merges, and compaction now archives before discarding information.
193- **New commands/flags**: `bd metrics` (with a consent notice) and idempotent `--init-if-missing` initialization.
194
195## Release Highlights (1.0.3–1.0.4)
196
197- **Workflow/config ergonomics**: `bd -C` changes working directory before running, `bd close` gains `--reason-file`, and setup/bootstrap flows gain better remote/server config handling.
198- **Linear sync**: OAuth client-credentials, idempotency markers, stale-data signaling, per-workspace sync locks, richer type mappings, and batch create/update make larger sync loops safer and faster.
199- **Security/export defaults**: Beads now refuses to write secret keys into git-tracked config, and exports exclude memories and ephemeral wisps by default unless you opt back in.
200- **Dependencies/data paths**: JSONL bulk dependency add and several hook/bootstrap/init fixes reduce friction in automated and shared-server environments.
201
202## Release Highlights (1.0.0–1.0.2)
203
204- **Distribution**: precompiled binaries now cover Linux, macOS (Intel/Apple Silicon), Windows (AMD64/ARM64), Android/Termux, and FreeBSD.
205- **Automation**: `bd init --non-interactive` / `--role` and `bd bootstrap --non-interactive` improve CI/cloud-agent setup.
206- **Workflow**: `bd ready --explain`, `bd config set-many`, batch dependency listing, and comma-separated status filters improve agent ergonomics.
207- **Authoring/modeling**: `spike`, `story`, and `milestone` are now first-class issue types; custom statuses/types moved to normalized tables.
208- **Integrations/sync**: GitLab sync adds better dedup + epic→milestone mapping, ADO sync respects more filters, and embedded/shared-server recovery got safer.
209
210## Release Highlights (0.62.0–0.63.3)
211
212- **Azure DevOps integration**: `bd ado` CLI commands (sync, status, projects) for work item tracking.
213- **Embedded Dolt support**: dep, duplicate, epic, graph, supersede, swarm operations work without a running Dolt server.
214- **Custom status categories**: configure active/wip/done/frozen status groupings.
215- **`bd note` command**: shorthand for appending notes to issues.
216- **`--exclude-type` flag**: filter by issue type on `bd ready` and `bd list`.
217- **`--format json` alias**: alternative to `--json` flag for consistency.
218- **Audit log**: captures close reason; status changes logged to `interactions.jsonl`.
219- **Memories in export/import**: round-trip includes agent memories.
220- **Init defaults**: AGENTS.md defaults to minimal profile; `--agents-profile` flag added.
221- **Quality/lifecycle commands**: surfaced in prime, template, and doctor.
222- **Validation on close**: `--validate` checks `--acceptance` field; `validation.on-close` config.
223
224## Release Highlights (0.61.0)
225
226- `bd close --claim-next` shortens the common close-and-claim-next loop for agents.
227- `bd create` gains `--skills`, `--context`, and `--no-history` for richer task creation and optional Dolt-history suppression.
228- `bd import` adds incremental JSONL import for portability and recovery workflows.
229- `bd init` / `bd bootstrap` can auto-detect the Beads database from the repository git origin.
230- Dolt/server-mode sync improves credential pass-through, runtime port reporting, and health checks.
231- Config and backup handling are safer, including proper project+user config merge and `BD_BACKUP_ENABLED=false` support.
232
233## Critical Commands
234
235```bash
236# What to work on
237bd ready # Unblocked tasks
238bd ready --pretty # Formatted output
239
240# Create with dependencies
241bd create "Task B" --blocks bd-a1b2
242bd create "Task C" --context "Need schema review" --skills "python,sql"
243
244# Doctor (fix issues)
245bd doctor # Check health
246bd doctor --fix # Auto-fix problems
247
248bd sync # Sync DB state
249bd import -i backup.jsonl # Incremental JSONL import
250
251bd dolt pull # Pull latest changes (advanced)
252bd dolt push # Push to remote (advanced)
253```
254
255## Anti-patterns
256
257| ❌ Wrong | ✅ Correct |
258| --------------------- | --------------------------- |
259| `priority: high` | `-p 1` (P0-P4 numeric) |
260| Manual JSON editing | Use `bd` commands |
261| Ignoring `bd ready` | Always check blockers first |
262| Skipping `bd sync` | Sync before/after work |
263| Creating without deps | Declare `--blocks` upfront |
264
265## Links
266
267- [Releases](https://github.com/gastownhall/beads/releases)
268- [Documentation](https://github.com/gastownhall/beads#readme)
269- [Community Tools](https://github.com/gastownhall/beads/blob/main/docs/COMMUNITY_TOOLS.md)