Skip to main content
ClaudeWave
EN, English
gastownhall / Subagents

beads

Beads - A memory upgrade for your coding agent

  • 28.1k stars
  • 1.9k forks
  • 1,511 open issues
  • Language: Go
  • License: MIT
  • updated

Install

Terminal
git clone https://github.com/gastownhall/beads && cp beads/*.md ~/.claude/agents/
  1. Clone the repository and copy the agent .md definitions into ~/.claude/agents (or .claude/agents inside a project).
  2. Start a new Claude Code session to load the agents.
  3. Delegate work to them with the Task/Agent tool or by name.

Editor's note

Beads is a distributed, graph-based issue tracker built specifically for AI coding agents, using Dolt, a version-controlled SQL database, as its storage backend. The CLI tool, installed via Homebrew, npm, or an install script, provides commands such as `bd ready`, `bd create`, `bd update --claim`, and `bd remember` that let agents track tasks, dependencies, and project memory across long-horizon work sessions without relying on markdown TODO lists. It integrates with Claude Code via `bd setup claude`, which installs hooks and settings directly into a project, and also supports Codex, Cursor, Factory.ai, and other agents. Hash-based task IDs like `bd-a1b2` prevent merge collisions in multi-agent or multi-branch workflows, and a compaction feature applies semantic memory decay to summarize old closed tasks and preserve context window space. A stealth mode lets individual contributors use Beads locally without committing any files to a shared repository. Developers working on long-running AI-assisted projects, particularly those involving parallel agents or open-source collaboration, are the primary audience.

Installable items

2 items in this repository

beadsSkill

>

Install

>-

Install
README

Subagents overview

Full README on GitHub

bd - Beads

Distributed graph issue tracker for AI agents, powered by Dolt.

Platforms: macOS, Linux, Windows, FreeBSD

License Go Report Card Release npm version PyPI

Docs: https://beads.gascity.com/

Beads provides a persistent, structured memory for coding agents. It replaces messy markdown plans with a dependency-aware graph, allowing agents to handle long-horizon tasks without losing context.

flowchart LR
    create["bd create<br/>new bead"] --> depgraph["dependency<br/>graph"]
    depgraph --> ready["bd ready<br/>claimable work"]
    ready --> claim["bd update --claim<br/>agent takes it"]
    claim --> close["bd close<br/>work done"]
    close -->|blockers released| ready
    depgraph <-->|"bd dolt push / pull"| remote[("other machines<br/>and agents")]

⚡ Quick Start

# Install beads CLI (system-wide - don't clone this repo into your project)
curl -fsSL https://raw.githubusercontent.com/gastownhall/beads/main/scripts/install.sh | bash

# Initialize in YOUR project
cd your-project
bd init

# Optional: refresh or install richer instructions for your agent
bd setup codex    # Codex CLI - installs skill, AGENTS.md guidance, and hooks
bd setup claude   # Claude Code - installs hooks/settings
bd setup factory  # Factory.ai Droid - creates/updates AGENTS.md

Note: Beads is a CLI tool you install once and use everywhere. You don't need to clone this repository into your project.

bd init creates or updates AGENTS.md by default so agents can discover the beads workflow, and also installs the project Claude Code, Codex, and Cursor integrations unless you pass --skip-agents or --stealth. Use bd setup --list to see supported integrations, including bd setup codex, bd setup factory, bd setup claude, bd setup mux, bd setup cursor, and more. See Agent and IDE setup.

Manual copy-paste is only for unsupported agents, existing projects where you cannot rerun bd init/bd setup, or custom instruction files. In those cases, run bd onboard and paste the printed snippet into the file your agent reads.

If your agent is not covered by bd setup, add this minimal AGENTS.md section:

This project uses bd (beads) for issue tracking.

- Run `bd prime` for workflow context and command guidance.
- Use `bd ready`, `bd show <id>`, `bd update <id> --claim`, and `bd close <id>`.
- Use `bd remember "insight"` for durable project facts; keep per-operator preferences in your harness's own memory.
- Do not use markdown TODO lists for task tracking.

🛠 Features

  • Dolt-Powered: Version-controlled SQL database with cell-level merge, native branching, and built-in sync via Dolt remotes.

  • Agent-Optimized: JSON output, dependency tracking, and auto-ready task detection.

  • Zero Conflict: Hash-based IDs (bd-a1b2) prevent merge collisions in multi-agent/multi-branch workflows.

  • Compaction: Semantic "memory decay" summarizes old closed tasks to save context window.

  • Messaging: Message issue type with threading (--thread), ephemeral lifecycle, and mail delegation.

  • Graph Links: relates-to, duplicates, supersedes, and replies-to for knowledge graphs.

📖 Essential Commands

CommandAction
bd readyList tasks with no open blockers.
bd create "Title" -p 0Create a P0 task.
bd update --claimAtomically claim a task (sets assignee + in_progress).
bd dep addLink tasks (blocks, related, parent-child).
bd showView task details and audit trail.
bd primePrint agent workflow context and persistent memories.
bd remember "insight"Store project memory that bd prime injects later.

🔗 Hierarchy & Workflow

Beads supports hierarchical IDs for epics:

  • bd-a3f8 (Epic)

  • bd-a3f8.1 (Task)

  • bd-a3f8.1.1 (Sub-task)

Stealth Mode: Run bd init --stealth to use Beads locally without committing files to the main repo. Perfect for personal use on shared projects. See Git-Free Usage below.

Contributor vs Maintainer: When working on open-source projects:

  • Contributors (forked repos): Run bd init --contributor to route planning issues to a separate repo (e.g., ~/.beads-planning). Keeps experimental work out of PRs.

  • Maintainers (write access): Beads auto-detects maintainer role via SSH URLs or HTTPS with credentials. Only need git config beads.role maintainer if using GitHub HTTPS without credentials but you have write access.

📦 Installation

brew install beads           # macOS / Linux (recommended)
npm install -g @beads/bd     # Node.js users

Other methods: install script | go install | from source | Windows | Arch AUR

Requirements: macOS, Linux, Windows, or FreeBSD. See docs/getting-started/installation.md for complete installation guide.

Upgrading? Replacing the binary is not always the whole story. Short version: sync remote-backed databases with your current bd, back up with bd export --all, upgrade the binary, then run bd info --whats-new, bd hooks install, and bd version. If the upgrade crosses a schema migration on a remote-backed database, exactly one designated clone runs bd migrate schema and bd dolt push; other clones install the new binary and run bd bootstrap. See the full upgrade guide or docs/getting-started/installation.md.

Security And Verification

Before trusting any downloaded binary, verify its checksum against the release checksums.txt.

The install scripts verify release checksums before install. For manual installs, do this verification yourself before first run.

On macOS, scripts/install.sh preserves the downloaded signature by default. Local ad-hoc re-signing is explicit opt-in via BEADS_INSTALL_RESIGN_MACOS=1.

See docs/reference/antivirus.md for Windows AV false-positive guidance and verification workflow.

💾 Storage Modes

Beads uses Dolt as its database. Two modes:

  • Embedded (default) — bd init. Dolt runs in-process, data lives in .beads/embeddeddolt/, single writer. Recommended for most users.

  • Server — bd init --server. Connects to an external dolt sql-server for multiple concurrent writers; data lives in .beads/dolt/.

Cross-machine sync uses bd dolt push / bd dolt pull against refs/dolt/data on your git remote; .beads/issues.jsonl is an export for viewers and interchange, not the source of truth or a backup. Back up and migrate between modes with bd backup; reclaim space with bd prune / bd purge.

Full detail — connection flags, sockets, maintenance, backup, and migration — in the Dolt backend guide.

Schema Version Guard

bd checks the database schema version at open time. If the database has been migrated by a newer binary and an older binary tries to open it, bd exits with an actionable error rather than issuing queries that fail with cryptic SQL errors:

schema version mismatch: database is at v45, binary knows up to v42 (3 migrations ahead)

  Your bd binary is stale. Queries for dropped or renamed columns will fail
  with cryptic SQL errors (e.g. "column X could not be found in any table in scope").

  Rebuild from main:
    CGO_ENABLED=0 go build -tags gms_pure_go ./cmd/bd

  Or install the latest release:
    CGO_ENABLED=0 go install -tags gms_pure_go github.com/steveyegge/beads/cmd/bd@latest

  To proceed despite the risk (some read commands may still work):
    BD_IGNORE_SCHEMA_SKEW=1 bd <command>
    bd --ignore-schema-skew <command>

When this fires: only when the database schema is ahead of the binary (a newer binary migrated the database; this binary doesn't know those migrations). Normal upgrades, where the binary migrates the database forward, are unaffected.

Escape hatch: BD_IGNORE_SCHEMA_SKEW=1 (or --ignore-schema-skew) bypasses the guard with a warning on stderr. Use this only if you know the forward migrations are additive and safe for your specific workload.

🔌 HTTP Backend (experimental)

A workspace can also talk to a remote bd serve over HTTP instead of opening a local Dolt database — useful for a thin client against a shared server, or for embedding beads in another program as a library.

# Point this workspace at a server (verifies the server first; writes nothing on failure)
bd connect https://bd.example.com --expect-project-id my-project

# The everyday commands work the same way: create, show, list, update, close,
# dependencies (including `bd dep tree`), comments, ready/count queries, and
# batch apply all round-trip over the wire with the same semantics as a local
# database. So does `bd ready --claim`, except against an older server or while
# any issue holds an unsatisfied external ref: then it lists and claims in two
Topics
agentsclaude-codecoding
Frequently asked

What people ask about beads

What is gastownhall/beads?

gastownhall/beads is subagents for the Claude AI ecosystem. Beads - A memory upgrade for your coding agent It has 28.1k GitHub stars and its last recorded update is dated 2026-10-23.

How do I install beads?

You can install beads by cloning the repository (https://github.com/gastownhall/beads) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is gastownhall/beads safe to use?

Our security agent has analyzed gastownhall/beads and assigned a Trust Score of 100/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains gastownhall/beads?

gastownhall/beads is maintained by gastownhall. The last recorded GitHub activity is dated 2026-10-23, with 1511 open issues.

Are there alternatives to beads?

Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.

Maintain this repo? Show its Trust Score in your README

The badge shows this repository's current Trust Score and verdict, and links back to this page. It follows the catalogue data: nobody can buy or edit the score it displays.

ClaudeWave Trust Score for gastownhall/beads
Markdown (README)
[![ClaudeWave Trust Score for gastownhall/beads](https://claudewave.com/api/badge/gastownhall-beads)](https://claudewave.com/en/repo/gastownhall-beads)
HTML
<a href="https://claudewave.com/en/repo/gastownhall-beads"><img src="https://claudewave.com/api/badge/gastownhall-beads" alt="ClaudeWave Trust Score for gastownhall/beads" width="320" height="64"></a>

What the badge means and how the score is computed