{
  "markdown": "# bd - Beads\n\n**Distributed graph issue tracker for AI agents, powered by [Dolt](https://github.com/dolthub/dolt).**\n\n**Platforms:** macOS, Linux, Windows, FreeBSD\n\n[![License](https://img.shields.io/github/license/gastownhall/beads)](LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/steveyegge/beads)](https://goreportcard.com/report/github.com/steveyegge/beads)\n[![Release](https://img.shields.io/github/v/release/gastownhall/beads)](https://github.com/gastownhall/beads/releases)\n[![npm version](https://img.shields.io/npm/v/@beads/bd)](https://www.npmjs.com/package/@beads/bd)\n[![PyPI](https://img.shields.io/pypi/v/beads-mcp)](https://pypi.org/project/beads-mcp/)\n\n**Docs:** https://beads.gascity.com/\n\nBeads 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.\n\n```mermaid\nflowchart LR\n    create[\"bd create<br/>new bead\"] --> depgraph[\"dependency<br/>graph\"]\n    depgraph --> ready[\"bd ready<br/>claimable work\"]\n    ready --> claim[\"bd update --claim<br/>agent takes it\"]\n    claim --> close[\"bd close<br/>work done\"]\n    close -->|blockers released| ready\n    depgraph <-->|\"bd dolt push / pull\"| remote[(\"other machines<br/>and agents\")]\n```\n\n## ⚡ Quick Start\n\n```bash\n# Install beads CLI (system-wide - don't clone this repo into your project)\ncurl -fsSL https://raw.githubusercontent.com/gastownhall/beads/main/scripts/install.sh | bash\n\n# Initialize in YOUR project\ncd your-project\nbd init\n\n# Optional: refresh or install richer instructions for your agent\nbd setup codex    # Codex CLI - installs skill, AGENTS.md guidance, and hooks\nbd setup claude   # Claude Code - installs hooks/settings\nbd setup factory  # Factory.ai Droid - creates/updates AGENTS.md\n```\n\n**Note:** Beads is a CLI tool you install once and use everywhere. You don't need to clone this repository into your project.\n\n`bd init` creates or updates `AGENTS.md` by default so agents can discover the beads workflow, and also installs project Claude/Codex 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](docs/getting-started/ide-setup.md).\n\nManual 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.\n\nIf your agent is not covered by `bd setup`, add this minimal `AGENTS.md` section:\n\n```markdown\nThis project uses bd (beads) for issue tracking.\n\n- Run `bd prime` for workflow context and command guidance.\n- Use `bd ready`, `bd show <id>`, `bd update <id> --claim`, and `bd close <id>`.\n- Use `bd remember \"insight\"` for persistent project memory; do not create MEMORY.md files.\n- Do not use markdown TODO lists for task tracking.\n```\n\n## 🛠 Features\n\n* **[Dolt](https://github.com/dolthub/dolt)-Powered:** Version-controlled SQL database with cell-level merge, native branching, and built-in sync via Dolt remotes.\n* **Agent-Optimized:** JSON output, dependency tracking, and auto-ready task detection.\n* **Zero Conflict:** Hash-based IDs (`bd-a1b2`) prevent merge collisions in multi-agent/multi-branch workflows.\n* **Compaction:** Semantic \"memory decay\" summarizes old closed tasks to save context window.\n* **Messaging:** Message issue type with threading (`--thread`), ephemeral lifecycle, and mail delegation.\n* **Graph Links:** `relates-to`, `duplicates`, `supersedes`, and `replies-to` for knowledge graphs.\n\n## 📖 Essential Commands\n\n| Command | Action |\n| --- | --- |\n| `bd ready` | List tasks with no open blockers. |\n| `bd create \"Title\" -p 0` | Create a P0 task. |\n| `bd update <id> --claim` | Atomically claim a task (sets assignee + in_progress). |\n| `bd dep add <child> <parent>` | Link tasks (blocks, related, parent-child). |\n| `bd show <id>` | View task details and audit trail. |\n| `bd prime` | Print agent workflow context and persistent memories. |\n| `bd remember \"insight\"` | Store project memory that `bd prime` injects later. |\n\n## 🔗 Hierarchy & Workflow\n\nBeads supports hierarchical IDs for epics:\n\n* `bd-a3f8` (Epic)\n* `bd-a3f8.1` (Task)\n* `bd-a3f8.1.1` (Sub-task)\n\n**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](#-git-free-usage) below.\n\n**Contributor vs Maintainer:** When working on open-source projects:\n\n* **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.\n* **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.\n\n## 📦 Installation\n\n```bash\nbrew install beads           # macOS / Linux (recommended)\nnpm install -g @beads/bd     # Node.js users\n```\n\n**Other methods:** [install script](docs/getting-started/installation.md#quick-install-script-all-platforms) | [go install](docs/getting-started/installation.md#a-note-on-go-install-capability) | [from source](docs/getting-started/installation.md#build-dependencies-contributors-only) | [Windows](docs/getting-started/installation.md#windows-11) | [Arch AUR](docs/getting-started/installation.md#linux)\n\n**Requirements:** macOS, Linux, Windows, or FreeBSD. See [docs/getting-started/installation.md](docs/getting-started/installation.md) for complete installation guide.\n\n**Upgrading?** Replacing the binary is not always the whole story. Short\nversion: sync remote-backed databases with your current `bd`, back up with\n`bd export --all`, upgrade the binary, then run `bd info --whats-new`,\n`bd hooks install`, and `bd version`. If the upgrade crosses a schema\nmigration on a remote-backed database, exactly one designated clone runs\n`bd migrate` and `bd dolt push`; other clones install the new binary\nand run `bd bootstrap`. See the full\n[upgrade guide](https://beads.gascity.com/getting-started/upgrading)\nor [docs/getting-started/installation.md](docs/getting-started/installation.md#updating-bd).\n\n### Security And Verification\n\nBefore trusting any downloaded binary, verify its checksum against the release `checksums.txt`.\n\nThe install scripts verify release checksums before install. For manual installs, do this verification yourself before first run.\n\nOn 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`.\n\nSee [docs/reference/antivirus.md](docs/reference/antivirus.md) for Windows AV false-positive guidance and verification workflow.\n\n## 💾 Storage Modes\n\nBeads uses [Dolt](https://github.com/dolthub/dolt) as its database. Two modes:\n\n- **Embedded (default)** — `bd init`. Dolt runs in-process, data lives in\n  `.beads/embeddeddolt/`, single writer. Recommended for most users.\n- **Server** — `bd init --server`. Connects to an external `dolt sql-server`\n  for multiple concurrent writers; data lives in `.beads/dolt/`.\n\nCross-machine sync uses `bd dolt push` / `bd dolt pull` against\n`refs/dolt/data` on your git remote; `.beads/issues.jsonl` is an export for\nviewers and interchange, not the source of truth or a backup. Back up and\nmigrate between modes with `bd backup`; reclaim space with `bd prune` /\n`bd purge`.\n\nFull detail — connection flags, sockets, maintenance, backup, and migration —\nin the [Dolt backend guide](docs/architecture/dolt.md).\n\n### Schema Version Guard\n\n`bd` checks the database schema version at open time. If the database has been\nmigrated by a newer binary and an older binary tries to open it, `bd` exits\nwith an actionable error rather than issuing queries that fail with cryptic SQL\nerrors:\n\n````\nschema version mismatch: database is at v45, binary knows up to v42 (3 migrations ahead)\n\n  Your bd binary is stale. Queries for dropped or renamed columns will fail\n  with cryptic SQL errors (e.g. \"column X could not be found in any table in scope\").\n\n  Rebuild from main:\n    CGO_ENABLED=0 go build -tags gms_pure_go ./cmd/bd\n\n  Or install the latest release:\n    CGO_ENABLED=0 go install -tags gms_pure_go github.com/steveyegge/beads/cmd/bd@latest\n\n  To proceed despite the risk (some read commands may still work):\n    BD_IGNORE_SCHEMA_SKEW=1 bd <command>\n    bd --ignore-schema-skew <command>\n````\n\n**When this fires:** only when the database schema is *ahead* of the binary\n(a newer binary migrated the database; this binary doesn't know those\nmigrations). Normal upgrades, where the binary migrates the database forward,\nare unaffected.\n\n**Escape hatch:** `BD_IGNORE_SCHEMA_SKEW=1` (or `--ignore-schema-skew`) bypasses\nthe guard with a warning on stderr. Use this only if you know the forward\nmigrations are additive and safe for your specific workload.\n\n## 🌐 Community Tools\n\nSee [docs/community-tools.md](docs/community-tools.md) for a curated list of community-built UIs, extensions, and integrations—including terminal interfaces, web UIs, editor extensions, and native apps.\n\nSee [docs/related-projects.md](docs/related-projects.md) for adjacent or complementary projects that solve different problems in the same neighborhood.\n\n## 🚀 Git-Free Usage\n\nBeads works without git. The Dolt database is the storage backend — git\nintegration (hooks, repo discovery, identity) is optional.\n\n```bash\n# Initialize without git\nexport BEADS_DIR=/path/to/your/project/.beads\nbd init --quiet --stealth\n\n# All core commands work with zero git calls\nbd create \"Fix auth bug\" -p 1 -t bug\nbd ready --json\nbd update bd-a1b2 --claim\nbd prime\nbd close bd-a1b2 \"Fixed\"\n```\n\n`BEADS_DIR` tells bd where to put the `.beads/` database directory,\nbypassing git repo discovery. `--stealth` sets `no-git-ops: true` in\nconfig, disabling all git hook installation and git operations.\n\nThis is useful for:\n- **Non-git VCS** (Sapling, Jujutsu, Piper) — no `.git/` directory needed\n- **Monorepos** — point `BEADS_DIR` at a specific subdirectory\n- **CI/CD** — isolated task tracking without repo-level side effects\n- **Evaluation/testing** — ephemeral databases in `/tmp`\n\n## 📝 Documentation\n\n* [Documentation site](https://beads.gascity.com/) | [Installing](docs/getting-started/installation.md) | [Sync Concepts](docs/core-concepts/sync-concepts.md) | [Agent Workflow](AGENT_INSTRUCTIONS.md) | [Copilot CLI Setup](docs/integrations/copilot-cli.md) | [Copilot VS Code MCP](docs/integrations/github-copilot.md) | [Articles](ARTICLES.md) | [Sync Branch Mode](docs/reference/protected-branches.md) | [Troubleshooting](docs/reference/troubleshooting.md) | [FAQ](docs/reference/faq.md)\n* [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/gastownhall/beads)\n",
  "bytes": 11019,
  "sha": "a2f98e079bcfc37a91d13f4f28c335ad2682d8717451396d42ab3559d1125d3a",
  "repo_slug": "gastownhall/beads",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/skl_gastownhall_beads_beads_c0d07ece/readme"
}