| Crates.io | beads-rs |
| lib.rs | beads-rs |
| version | 0.1.26 |
| created_at | 2025-12-13 20:41:01.692383+00 |
| updated_at | 2025-12-22 05:51:05.000452+00 |
| description | A distributed work-item database for agent swarms, using git as the sync layer |
| homepage | https://github.com/delightful-ai/beads-rs |
| repository | https://github.com/delightful-ai/beads-rs |
| max_upload_size | |
| id | 1983389 |
| size | 1,021,674 |
a rust redesign of beads. distributed issue tracker for agent swarms, backed by git. conflicts are impossible.
curl -fsSL https://raw.githubusercontent.com/delightful-ai/beads-rs/main/scripts/install.sh | bash
prebuilt binaries for x86_64 linux and apple silicon. other platforms auto-fallback to cargo.
cargo install beads-rs # cargo
mise use -g ubi:delightful-ai/beads-rs[exe=bd] # mise
nix run github:delightful-ai/beads-rs # nix
in any git repo:
bd init
bd setup claude # or cursor or aider
then, ask your coding agent to run bd onboard, and you're done!
beads lets agents coordinate work and defer problems to the next session with a fresh context window. 50 agents on one codebase need to see the same task list - who's working on what, what's blocked, what's done.
the go version works for one human with occasional sync. beads-rs is designed for swarms: one daemon per machine shares state across all clones instantly. no sqlite, everything lives in git on refs/heads/beads/store.
this means agents never push to main when updating beads. no merge conflicts on your code branches. beads-rs just works, and gets out of the way.
alpha, but designed for reliability first. stress tested on my workflows.
beads-rs is a drop-in replacement for core workflows. the main difference is the sync model - agents never need to run bd sync, beads can't have merge conflicts, and it works across machines automatically.
what's missing:
| feature | status |
|---|---|
| agent mail (real-time multi-agent) | not yet |
| multi-repo state sharing | not yet |
| jira integration | not yet |
| doctor/repair commands | not yet |
| config system | partial (auto-upgrade) |
| templates | not yet |
| compaction/decay | not yet |
if you need agent mail or multi-repo, use the original.
bd migrate from-go --input .beads/issues.jsonl --dry-run
# if that looks good, run
bd migrate from-go --input .beads/issues.jsonl
# and you're good!
more details in MIGRATION.md.
requirements:
origin remote (recommended; local-only works too)where data lives:
refs/heads/beads/storestate.jsonl, tombstones.jsonl, deps.jsonl, meta.json$XDG_RUNTIME_DIR/beads/daemon.sock or ~/.beads/daemon.sock or /tmp/beads-$uid/daemon.socksync model:
bd sync is just "wait for flush", not a workflow stepbd setup claude
bd setup cursor
bd setup aider
bd upgrade
auto-upgrade is enabled by default and controlled by a toml config:
$XDG_CONFIG_HOME/beads-rs/config.toml (or ~/.config/beads-rs/config.toml).
beads reads a single config file:
~/.config/beads-rs/config.toml
example:
auto_upgrade = true
override location with BD_CONFIG_DIR. disable auto-upgrade for a single run with
BD_NO_AUTO_UPGRADE=1.
CLI_SPEC.md - cli surface / compatibility goalsSPEC.md - storage model + invariantsMIGRATION.md - migrate from beads-go{
inputs.beads-rs.url = "github:delightful-ai/beads-rs";
outputs = { self, nixpkgs, beads-rs, ... }: {
nixpkgs.overlays = [ beads-rs.overlays.default ];
# then pkgs.beads-rs or pkgs.bd is available
};
}
to update: nix flake update beads-rs
MIT