website/versioned_docs/version-1.0.0/reference/advanced.md
Advanced beads functionality.
Rename issues while preserving references:
bd rename bd-42 bd-new-id
bd rename bd-42 bd-new-id --dry-run # Preview
Updates:
Merge duplicate issues:
bd merge bd-42 bd-43 --into bd-41
bd merge bd-42 bd-43 --into bd-41 --dry-run
What gets merged:
Reduce database size by compacting old issues:
# View compaction statistics
bd admin compact --stats
# Preview candidates (30+ days closed)
bd admin compact --analyze --json
# Apply agent-generated summary
bd admin compact --apply --id bd-42 --summary summary.txt
# Immediate deletion (CAUTION!)
bd admin cleanup --force
When to compact:
View deleted or compacted issues from git:
bd restore bd-42 --show
bd restore bd-42 --to-file issue.json
# Schema info
bd info --schema --json
# Raw database query (advanced — requires dolt sql-server running)
bd dolt sql "SELECT * FROM issues LIMIT 5"
Extend the database with custom tables:
// In Go code using beads as library
storage.UnderlyingDB().Exec(`
CREATE TABLE IF NOT EXISTS custom_table (...)
`)
See EXTENDING.md.
Subscribe to beads events:
# View recent events
bd events list --since 1h
# Watch events in real-time
bd events watch
Events:
issue.createdissue.updatedissue.closeddependency.addedsync.completed# Bootstrap a new database from JSONL
bd init --from-jsonl issues.jsonl
bd list --status open --priority 4 --json | \
jq -r '.[].id' | \
xargs -I {} bd update {} --priority 3
bd list --label "sprint-1" --status open --json | \
jq -r '.[].id' | \
xargs -I {} bd close {} --reason "Sprint complete"
Use beads as a Go library:
import "github.com/steveyegge/beads/internal/storage/embeddeddolt"
store, _ := embeddeddolt.New(ctx, ".beads", "beads", "main")
defer store.Close()
issue, _ := store.GetIssue(ctx, "bd-a1b2")
# Enable WAL mode
bd config set database.wal_mode true
# Increase cache
bd config set database.cache_size 10000
Beads uses Dolt server mode to handle concurrent access from multiple agents. The server manages transaction isolation automatically.
# Start the Dolt server
bd dolt start
# Check server health
bd doctor
In CI/CD environments, beads uses embedded mode by default (no server required):
# Just run commands directly — no special flags needed
bd list