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