Skip to content

Guide · Open source

How to use beads: install bd, set up agents and track work

Updated · written with AI from the project's own documentation and checked against our catalogue data

Beads is an open-source tool, invoked as the bd command, that gives coding agents a persistent, structured memory. Instead of loose markdown TODO lists, tasks are stored as a dependency-aware graph of linked issues in a version-controlled database powered by Dolt. This guide shows you how to install bd, initialize it in a project, connect your agent, and run the basic create, claim, and close workflow.

Beadsgastownhall/beads · ★ 28.4k · MIT

Quick start

  1. 1Install bd. Run brew install beads on macOS or Linux, or npm install -g @beads/bd if you use Node.js.
  2. 2Go to your project. Change into the project directory you want agents to work in. Do not clone the beads repository into it.
  3. 3Initialize beads. Run bd init. This creates or updates AGENTS.md and installs integrations unless you pass --skip-agents or --stealth.
  4. 4Connect your agent. Run bd setup for a supported agent, or paste the snippet from bd onboard into the file your agent reads.
  5. 5Create and find work. Use bd create to add tasks and bd ready to list the ones with no open blockers.
  6. 6Claim and close tasks. Use bd update <id> --claim to take a task, then bd close <id> when it is done.
  7. 7Sync when needed. Use bd dolt push and bd dolt pull to share the task graph through your git remote.

What beads is and who it is for

Beads provides persistent memory for coding agents. It replaces messy markdown plans with a dependency-aware graph so an agent can work through long, multi-step tasks without losing context.

It fits developers who run agents such as Claude Code or Codex on multi-step projects, and teams that want agents and humans to share one task list across machines or branches. It is more than most people need for a simple personal to-do list.

  • Good fit: multi-step agent work, shared task lists across machines, planning kept out of pull requests.
  • Poor fit: a simple personal to-do list, or teams that cannot run a CLI tool or manage schema upgrades across clones.

Install the bd CLI

Beads is a CLI tool you install once and use everywhere. The README recommends Homebrew on macOS and Linux, and offers npm for Node.js users. You do not need to clone the repository into your project.

The README lists platforms as macOS, Linux, Windows and FreeBSD. It also lists other methods, including an install script, go install, building from source, and an Arch AUR package, all documented in the installation guide.

brew install beads npm install -g @beads/bd

Initialize beads in your project

Change into your project directory and run bd init. By default this creates or updates AGENTS.md so agents can discover the beads workflow, and it installs the project Claude Code, Codex and Cursor integrations unless you pass --skip-agents or --stealth.

Data is stored in .beads/. With the default embedded mode, Dolt runs in-process and data lives in .beads/embeddeddolt/.

  • Use bd init --stealth to use beads locally without committing files to the main repo.
  • Use bd init --contributor on a fork to route planning issues to a separate repo, such as ~/.beads-planning, so experimental work stays out of PRs.
  • Use bd init --server to connect to an external dolt sql-server for multiple concurrent writers.
cd your-project bd init

Connect your coding agent

For supported agents, you can run bd setup with the matching name. Run bd setup --list to see all supported integrations.

If your agent is not covered, the README suggests adding a short AGENTS.md section that points the agent at bd prime, bd ready, bd show, bd update --claim and bd close, and tells it not to use markdown TODO lists for task tracking.

  • bd setup codex installs a skill, AGENTS.md guidance and hooks.
  • bd setup claude installs hooks and settings.
  • bd setup factory creates or updates AGENTS.md.
  • Run bd onboard to print a snippet for agents that are not supported.
bd setup codex bd setup claude bd setup factory

Use the core commands: create, ready, claim, close

Tasks are called issues or beads. bd ready lists tasks with no open blockers. An agent claims work with bd update --claim, which sets the assignee and marks the task in progress. When the work is done, bd close releases any blockers that depended on it.

Priority is set with -p, where 0 is the highest. You can link tasks with bd dep add, and bd show displays details and the audit trail. Use bd remember to store durable project facts that bd prime injects later.

  • bd create "Title" -p 0 creates a P0 task.
  • bd dep add <child> <parent> links tasks as blocks, related or parent-child.
  • bd prime prints agent workflow context and persistent memories.
bd ready bd create "Title" -p 0 bd update <id> --claim bd show <id> bd close <id> bd remember "insight"

Sync across machines and understand the storage

Cross-machine sync uses bd dolt push and bd dolt pull against refs/dolt/data on your git remote. The README notes that .beads/issues.jsonl is an export for viewers and interchange, not the source of truth or a backup.

Before upgrading, the README advises syncing remote-backed databases with your current bd, backing up with bd export --all, upgrading the binary, then running bd info --whats-new, bd hooks install and bd version. Back up and migrate between storage modes with bd backup.

  • Hierarchical IDs such as bd-a3f8, bd-a3f8.1 and bd-a3f8.1.1 model epics, tasks and sub-tasks.
  • Hash-based IDs are meant to prevent merge collisions across branches and agents.
  • Verify downloaded binaries against the release checksums.txt before first run.
bd dolt push bd dolt pull bd export --all

What people use it for

  • Keeping a coding agent on track across a long, multi-step feature without relying on chat history.
  • Letting an agent and a human share one task list across two machines or branches.
  • Keeping planning issues for an open-source contribution in a separate repo so they stay out of pull requests.
  • Storing durable project facts with bd remember so they are injected into later agent sessions via bd prime.

Frequently asked questions

Is beads free to use?

The README states that beads is MIT licensed and its source is on GitHub under gastownhall/beads. The README does not describe pricing, so check the license file in the repository for terms.

How do I install beads?

The README recommends brew install beads on macOS and Linux, and npm install -g @beads/bd for Node.js users. Other methods such as the install script, go install and building from source are described in the installation guide.

What are the requirements for beads?

The README lists macOS, Linux, Windows and FreeBSD as supported platforms and does not list other prerequisites. The installation guide has the full details.

Does beads work with Claude Code and Codex?

Yes. The README says bd setup claude and bd setup codex install integrations for those agents, and bd init installs the project Claude Code, Codex and Cursor integrations by default.

What is the difference between beads and a markdown TODO list?

Beads stores tasks as a dependency-aware graph in a version-controlled database, with commands like bd ready to show unblocked work. The README says agents should not use markdown TODO lists for task tracking when beads is set up.

Why is bd prime or bd init not working for my agent?

If your agent is not covered by bd setup, the README suggests adding a minimal AGENTS.md section and running bd onboard to get a snippet to paste. Upgrade mismatches can cause a schema version error, which the README says to fix by rebuilding or installing the latest release, or by using BD_IGNORE_SCHEMA_SKEW=1 as a risky override.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Beads suits developers and teams who run coding agents on long, multi-step projects and want task memory kept in the repository. It is more than most people need for a personal to-do list, and teams that cannot manage CLI tooling or careful schema upgrades across clones should choose something simpler.

Install options & downloads