Components Overview
Beads has several components - here’s what they are and when you need them:
How they relate:
- The bd CLI is the core - install it first via Homebrew, npm, or script
- The Plugin enhances Claude Code with slash commands but requires the CLI installed
- The MCP server is an alternative to the CLI for environments without shell access
.beads/ directory in your project only contains the issue database.
Typical setups:
Are they mutually exclusive? No - you can have CLI + Plugin + MCP all installed. They don’t conflict. But most users only need the CLI.
Quick Install (Recommended)
Homebrew (macOS/Linux)
beads formula is the supported Homebrew package. If you
previously installed the old tap formula as bd, see
Migrating from the old Homebrew tap to
switch to the core formula.
Why Homebrew?
- Simple one-command install
- Automatic updates via
brew upgrade - No need to install Go
- Handles PATH setup automatically
Mise-en-place (macOS/Linux/Windows)
You can install beads using mise from the latest GitHub release:-g enables beads globally. To enable project-specific versions, omit it.
Why Mise?
- Same as Homebrew: simple, updates via
mise up, works without Go, handles PATH - Supports all platforms
- Always the latest release
- May optionally use a different release version for specific projects
go install; prefer the release backend above.
Quick Install Script (macOS/Linux/FreeBSD)
- Detect your platform (macOS/Linux/FreeBSD, amd64/arm64)
- Verify downloaded release archives against release
checksums.txt - Fall back to the supported
go installmodes if Go is available - Fall back to building from source if needed
- Guide you through PATH setup if necessary
Comparison of Installation Methods
TL;DR: Use Homebrew if available. Use npm if you’re in a Node.js environment. Use the script for quick one-off installs or CI.
Go Install and Build Dependencies
Use Homebrew, npm, or the install script if you do not specifically needgo install.
go install has two supported modes that give different capabilities:
- Server-mode only (nocgo, simplest):
CGO_ENABLED=0 go install github.com/steveyegge/beads/cmd/bd@latest. Works on any machine with a Go toolchain, no C compiler needed. Produces a server-mode-only binary — you must run an externaldolt sql-serverand usebd init --server. See Dolt for server-mode setup. - Embedded-capable (cgo):
CGO_ENABLED=1 GOFLAGS=-tags=gms_pure_go go install github.com/steveyegge/beads/cmd/bd@latest. Requires a C compiler (gcc/clang on Unix, MinGW on Windows). Produces a binary with the default embedded-Dolt backend —bd initJust Works.
gms_pure_go so go-mysql-server uses Go’s stdlib regexp instead of ICU.
Use the github.com/steveyegge/beads path for go install. The repository now lives under gastownhall/beads, but released Go modules still declare github.com/steveyegge/beads for compatibility.
If you don’t have a preference, brew install beads or the install script give you the embedded-capable build with no fuss.
Build Dependencies (Contributors Only)
These dependencies are only needed if you build from source. If you installed via Homebrew, npm, or the install script, skip this section entirely.
gms_pure_go tag which selects Go’s
stdlib regexp instead of ICU regex. See
ICU-POLICY.md
for details.
macOS (Homebrew):
brew install icu4c (macOS) or sudo apt-get install -y libicu-dev (Linux).
This is not needed for normal development.
Platform-Specific Installation
macOS
Via Homebrew (recommended):Linux
Via Homebrew (works on Linux too):FreeBSD
Via quick install script:Windows 11
Beads ships with native Windows support—no MSYS or MinGW required. Prerequisites:- Go 1.24+ installed (add
%USERPROFILE%\go\binto yourPATH) - Git for Windows
checksums.txt. Go is only required for go install or building from source.
Via go install (server-mode only):
bd on Windows.
Via go install (embedded-capable, needs a Windows CGO toolchain):
gcc or MSYS2 LLVM clang targeting windows-gnu
(clang64/clangarm64). ICU is not required — gms_pure_go selects
Go’s stdlib regexp. Visual Studio cl.exe by itself is not enough because
Go passes GCC-style CGO flags; use a MinGW/MSYS2 toolchain, set CC, or set
WINDOWS_CGO_BINS when building from source.
From source:
- The Dolt server listens on a loopback TCP endpoint
- Allow
bd.exeloopback traffic through any host firewall - Installed from npm,
bdis abd.cmdshim — Node’sexecFile/spawnneedshell: trueto run it (details)
IDE and Editor Integrations
CLI + Hooks (Recommended)
The recommended approach for Claude Code, Cursor, Windsurf, and other editors with shell access:bd initcreates or updatesAGENTS.mdand installs project Claude/Codex integrations by default unless you use--skip-agentsor--stealth- Editor hooks/rules inject
bd primeautomatically on session start - Codex 0.129.0+ uses native
/hooks: SessionStart injectsbd prime, compact hooks mark context stale, and the next prompt after compaction refreshes Beads context once bd primeprovides ~1-2k tokens of workflow context- You use
bdCLI commands directly - Git hooks (installed by
bd init) refresh exports and legacy fallbacks;bd dolt push/pullsyncs the database bd onboardprints the small manual snippet for unsupported agents or custom instruction files
- Context efficient - ~1-2k tokens vs 10-50k for MCP tool schemas
- Lower latency - Direct CLI calls, no MCP protocol overhead
- Universal - Works with any editor that has shell access
bd setup claude --check or bd setup copilot --check.
Claude Code Plugin (Optional)
For enhanced UX with slash commands:- Slash commands:
/beads:ready,/beads:create,/beads:show,/beads:update,/beads:close, etc. - Task agent for autonomous execution
GitHub Copilot
For VS Code with GitHub Copilot, install the MCP server (uv tool install beads-mcp) and create .vscode/mcp.json in your project — or add it to the VS Code user-level MCP config to enable it for all projects. See GitHub Copilot for the complete setup guide, including the user-level config paths per platform.
For the GitHub Copilot CLI terminal integration:
.copilot-plugin/plugin.json and .github/copilot-instructions.md; there is no separate --global or --project mode for Copilot today, and it does not manage ~/.copilot/... paths. See Copilot CLI for the full guide.
MCP Server (Alternative)
Use MCP only when CLI is unavailable (Claude Desktop, Sourcegraph Amp without shell):~/Library/Application Support/Claude/claude_desktop_config.json:
Verifying Installation
After installing, verify bd is working:Troubleshooting
For additional troubleshooting, see Troubleshooting.bd: command not found
bd is not in your PATH:
zsh: killed bd or crashes on macOS
This is typically caused by CGO/SQLite compatibility issues:
MCP server fails to start (standalone beads-mcp)
The Claude Code plugin itself does not bundle an MCP server. If you configured the standalonebeads-mcp server (see MCP Server) and it fails immediately, uv is likely not installed or not in your PATH.
Symptoms:
- Plugin slash commands work, but MCP tools are unavailable
- Error logs show
command not found: uv - Server fails silently on startup
Updating bd
Upgrade checklist:- With your current
bd, sync remote-backed databases before installing the new binary:bd dolt pushbd dolt pull - Back up before migration:
bd export --all -o .beads/backup/pre-migrate-$(date +%Y%m%d).jsonl - Upgrade using the command for your install method below.
- After upgrading:
bd info --whats-newbd hooks installbd version - If crossing a schema migration on a remote-backed database, only the
designated migrator runs:
bd migratebd dolt push
bd bootstrap, not
independently migrate. For the full procedure, see Upgrading.
Quick install script (macOS/Linux/FreeBSD)
PowerShell installer (Windows)
Homebrew
npm
bun
go install
Use whichever mode you installed with originally:From source
brew upgrade
and friends will not move you onto them — fetch the prerelease build explicitly.
For post-upgrade steps (hooks, migrations), see Upgrading.
Uninstalling
To completely remove Beads from a repository, see Uninstalling.Next Steps
After installation:- Initialize a project:
cd your-project && bd init - Learn the basics: See Quick Start
- Configure your agent: See IDE Setup, or run
bd setup --list - Explore examples: Check out the examples/ directory