beads v0.60.0
Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), Windows (AMD64 & ARM64), Android/Termux (ARM64), and FreeBSD.
Installation
Homebrew (macOS/Linux):
brew install beadsQuick Install (macOS/Linux/FreeBSD):
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iexManual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.
Changelog
Features
- 43bca27 feat: JSON-aware error output + JSONL schema validation + contract tests (GH#2499)
- 71d7ae5 feat: add --design-file flag for reading design from files
- 12dc4e0 feat: add --destroy-token for safe non-interactive re-init (GH#2497)
- 9dc875a feat: add --list and --doc flags to bd help for CLI doc generation (GH#2527)
- 0cf8666 feat: add GitHub Issues integration (tracker plugin) (GH#2373)
- ac9ac70 feat: add bd context command and safe-first error guidance (fix-merge PR #2496)
- 0bb3bf2 feat: add workspace identity preflight and bd bootstrap command (GH#2438, GH#2372)
- efd7568 feat: bd bootstrap executes recovery actions instead of printing advice
- 2df714f feat: bd done treats last arg as reason
- 21e23bc feat: epic close guards, merge re-parenting, and progress display
- b7cc484 feat: replace hash-derived dolt ports with OS-assigned ephemeral ports (GH#2415)
- 5e1d4b9 feat: search external_ref in bd search (GH#2494)
- 3a2d351 feat: support global ~/.config/beads/PRIME.md fallback (GH#2330)
Bug Fixes
- 0c12f46 Merge PR #2390: fix(deps): update github.com/dolthub/driver digest to bbe1450
- dbbe212 Merge PR #2408: fix(worktree): skip .gitignore append when parent directory pattern covers
- c3e7057 Merge PR #2413: fix(deps): update opentelemetry-go monorepo to v1.42.0
- 93841bd Merge PR #2417: fix: bd mol wisp reports wrong count when RootOnly=true
- 3502cb4 Merge PR #2432: fix: use Root().PersistentFlags() to check --json in PersistentPreRun
- 1d25504 Merge PR #2440: fix: replace stale 'bd sync' references in CLI help, setup generators, and docs
- 1ffbd0f Merge PR #2443: fix(list): --json flag ignored when --tree defaults to true
- f1e6073 Merge PR #2529: fix(deps): update github.com/dolthub/driver digest to 669bd7f
- 8130756 fix(deps): migrate glamour to v2 (charm.land/glamour/v2)
- 4c43d96 fix(deps): update github.com/dolthub/driver digest to 669bd7f
- dc0b180 fix(deps): update github.com/dolthub/driver digest to bbe1450
- 555abde fix(deps): update github.com/dolthub/driver digest to ecee5fd
- 7f03975 fix(deps): update module golang.org/x/sync to v0.20.0
- 1a328cb fix(deps): update module golang.org/x/sys to v0.42.0
- db967a0 fix(deps): update module golang.org/x/term to v0.41.0
- 8962de5 fix(deps): update opentelemetry-go monorepo to v1.42.0
- 257c052 fix(deps): update testcontainers-go monorepo to v0.41.0
- a333dca fix(docs): purge stale bd sync/import/--branch refs + add CI doc validation (GH#2522)
- f7061f9 fix(docs): remove stale --branch flag and SQLite refs from QUICKSTART (GH#2522) (#2525)
- 1fb6b95 fix(dolt): auto-commit pending changes before pull to prevent merge errors (GH#2474)
- c195a5e fix(list): --json flag ignored when --tree defaults to true
- 15a9d16 fix(list): --json flag ignored when --tree defaults to true
- 44118a8 fix(list): --json flag ignored when --tree defaults to true (bd-03r)
- 45fcd51 fix(nix): use go mod edit instead of sed for version patching
- 656a3e5 fix(worktree): skip gitignore append when parent dir pattern already covers entry
- f88c298 fix: Dolt test suite stability — eliminate container crashes and cascading failures (hq-33riy)
- c9998fc fix: TestDoltStoreDependencies uses same-type issues for blocks dep (GH#1495)
- cf9f78d fix: TestProtocol_FieldsRoundTrip timezone-aware date assertions
- 8386380 fix: YAML config prefix takes precedence over DB in shared-server mode (GH#2469)
- 7d06e6c fix: add BEADS_DOLT_PORT fallback in GetDoltServerPort() (GH#2486)
- 396c944 fix: add shared Dolt server mode for multi-repo/agent setups (GH#2416)
- 69573b8 fix: add test coverage for quoted label values with colons (bd-wnr1)
- 1d7bf35 fix: add timeout and graceful DB-missing handling to git hook shims
- d00c310 fix: auto-clear stale pinned flag on status transition
- 0ba22ae fix: auto-resolve metadata merge conflicts on bd dolt pull (GH#2466)
- 401da9d fix: backfill project_id into pre-GH#2372 Dolt stores via bd doctor --fix (GH#2490)
- 9b04d6c fix: bd children includes closed children by default (GH#2481)
- 12cfd5c fix: bd doctor --fix regenerates missing metadata.json (GH#2482)
- 766fe2f fix: bd doctor detects stale .legacy hook sidecars calling removed bd hook (GH#2398)
- 61ddbe3 fix: bd dolt remote add/list/remove operate on wrong directory (GH#2306, GH#2311)
- d1549d9 fix: bd export crash on zero-time timestamps + stale bd sync refs (GH#2488, GH#2493)
- 3dbf3c7 fix: bd lint accepts non-empty acceptance_criteria field without heading (GH#2468)
- c12ccea fix: bd mol wisp reports wrong count when RootOnly=true
- a84f7c3 fix: block bd doctor --fix at Gas Town town root (GH#2450)
- 2c24ce6 fix: block data-dir in server mode + fix doctor --clean --json (GH#2438)
- a5a751f fix: clean formatting drift
- 36a3ecd fix: create .beads/ dir in server mode with external BEADS_DOLT_* env vars (GH#2519)
- fbbaa5e fix: detect WSL and MINGW/MSYS/CYGWIN in install.sh
- eae64ca fix: detect backup files on database-not-found and after bd init (GH#2327)
- 4537e07 fix: exclude reparented children from molecule auto-close (GH#2480)
- e6019d9 fix: hide --allow-stale no-op flag from help output
- e56fc50 fix: idle-monitor preserves port across restart cycles (bd-xvg)
- 9604d30 fix: init guard allows fresh clones with committed metadata.json (GH#2433, GH#2441)
- 9d65ac8 fix: merge --metadata with existing metadata instead of replacing (GH#2423)
- 141119a fix: move KillStaleServers inside flock to prevent journal corruption (GH#2430)
- 4591600 fix: move auto-push state to local file, preventing metadata merge conflicts (GH#2466)
- 5227eab fix: preserve dependency metadata in JSONL backups (GH#2487)
- a7755e5 fix: prevent bd init from creating DB on another project's Dolt server (GH#2336)
- 4df17ca fix: remove idle monitor and activity signal daemon infrastructure (GH#2452)
- 100962f fix: remove stale 'sync' from noDbCommands breaking sync subcommands (GH#2419)
- 3e20e7e fix: replace dangerous --force suggestion in init guard error message
- 31bae5a fix: replace hash-derived dolt ports with OS-assigned ephemeral ports (GH#2415)
- b7bd6d6 fix: replace stale 'bd sync' references with bd dolt push/commit (GH#2435)
- cd2f500 fix: replace stale bd migrate --to-dolt with bd init --from-jsonl (GH#2333)
- bdbbb4b fix: restore --allow-stale as no-op flag for gt compatibility
- de483f4 fix: restore denormalized JSONL from bd export without data loss (GH#2479)
- b515661 fix: skip sleep in CI/non-interactive environments
- 5a454ae fix: suppress pre-existing gosec false positives with nolint directives
- 2d3ce08 fix: sync CLI remotes into SQL server on store open (GH#2315)
- 56cd587 fix: typo in --design-file error message ("stin" -> "stdin")
- 491242c fix: update cliDir() → CLIDir() after linter rename
- 491c276 fix: use CLIDir for dolt remote operations instead of root Path (GH#2306, GH#2311)
- 0c96d89 fix: use Root().PersistentFlags() for all persistent flag checks in PersistentPreRun (GH#2514)
- fc8ea14 fix: use Root().PersistentFlags() to check --json flag in PersistentPreRun
- c4b897d fix: use absolute path for core.hooksPath so worktree hooks work (GH#2414)
- 67d6786 fix: use explicit DOLT_ADD to prevent config corruption from stale working set (GH#2455)
- f0078a0 fix: warn on Dolt endpoint drift during auto-start (GH#2399)
- 6615c71 fix: wrap DOLT_PULL in explicit transaction for autocommit compat (GH#2501)
Others
- 59fe98d /cmd/bd: use interface instead of struct
- ef8c464 /internal/storage/embeddeddolt/schema.go: wip, need test
- 48cb332 /internal/storage/embeddeddolt/store.go: change witConn a bit
- eeb97ae /internal/storage/embeddeddolt: add schema test
- 185eac1 /internal/storage/embeddeddolt: cleanup
- 8b24dcf /internal/storage/embeddeddolt: remove dolt commit stuff in migrations
- 44a3868 /internal/storage/embeddeddolt: wip, schema migrations
- d5b754b /internal/storage/storage.go: fix store name
- 6500eae /internal/storage: add interfaces for methods not covered by Storage
- 57b1f0e Add 'bd done' as alias for 'bd close'
- 725002a Fix config package shadow in compact command
- 14df21b Fix repo-local Dolt ports across doctor paths (#2403)
- 1ea190e Follow redirect target when cleaning stale lock files
- 7ba3a05 Merge PR #2401: Follow redirect target when cleaning stale lock files
- e823b52 Merge PR #2437: Fix config package shadow in compact command
- 96a2f6f Prefer stable branch worktrees for BEADS_DIR
- 9d5eaee Stabilize BEADS_DIR paths from detached commit worktrees
- 33ce6bf Support ai.api_key config as fallback for ANTHROPIC_API_KEY env var
- 61bf8e5 Update internal/storage/annotation_queries.go
- 9437d4f Update internal/storage/embeddeddolt/store.go
- 1fd4f6c bd: backup 2026-03-05 22:39
- 2fe0527 bd: backup 2026-03-05 22:54
- 7d7f6e7 bd: backup 2026-03-05 23:09
- 5ab8038 bd: backup 2026-03-05 23:24
- dff98e4 bd: backup 2026-03-05 23:39
- 598cc85 bd: backup 2026-03-05 23:54
- d799ccf bd: backup 2026-03-06 00:09
- f18fa46 bd: backup 2026-03-06 00:42
- 68f524f bd: backup 2026-03-06 00:57
- b2ebf9a bd: backup 2026-03-06 01:12
- 2961eaa chore(deps): bump glamour v0.10.0 to v1.0.0
- f0bb3ab chore(deps): migrate huh v0.8 to charm.land/huh/v2 (GH#2471)
- 6d6f208 cleanup: add timeout and comment to worktree normalization helpers
- 986334f cleanup: remove 3-way merge engine remnants (GH#2391)
- 84494b7 cleanup: remove daemon infrastructure remnants (GH#2431)
- a5a1071 cleanup: remove remaining daemon references missed by GH#2431
- db5bae6 perf: speed up close-time template subgraph loading (GH#2458)
- ba03db0 refactor: remove --allow-stale no-op flag and stale docs (w-bd-002)
- 97e0ee9 refactor: remove dead sync mode scaffolding (GH#2485)