bea-rs
Contents
bea-rs (binary name bea, pronounced “bears” 🐻) is a file-based task tracker for developers
and AI coding agents. Tasks are plain Markdown files with YAML frontmatter stored in a
.bears/ directory — no database, fully git-friendly, and equally usable from the terminal
or as an MCP server.
It was inspired by Steve Yegge’s Beads but reshaped to fit my own workflow. Like Aphid, it’s written in Rust.
Why
Most task trackers live in a database or a SaaS product. That’s awkward when an AI agent
needs to read and update tasks in the same repository it’s working in. bea-rs keeps tasks
next to the code, version-controlled with the rest of the project, and exposes the same
operations to both a human at the terminal and an agent over MCP.
Task format
Each task is a Markdown file at .bears/{id}-{slug}.md:
- Statuses —
open,in_progress,done,blocked,cancelled - Types —
task(default) orepic(groups child tasks viaparent) - Priorities —
P0(critical) throughP3(low). A task inherits the highest priority of anything that depends on it, so a P3 blocking a P0 is treated as P0.
CLI
Every command also accepts --json for machine-readable output.
MCP server
bea mcp exposes the same operations as MCP tools over stdio, so AI coding agents can list
ready work, create tasks, update statuses, manage dependencies, and search — without needing
to learn the file format. Register it with Claude Code via claude mcp add:
Install
Or grab a pre-built binary:
|