| name | beans |
| description | Graph-based issue tracker for task coordination. Use when the project tracks work with beans — creating, querying, claiming, and closing tasks via CLI. |
Beans
Graph-based issue tracker. Beans are nodes, dependencies are edges.
Concepts
- Bean: a task with id, title, type, status, priority, body, and timestamps.
- Bean IDs: type-prefixed —
task-a3f2dd1c, epic-12345678, bug-deadbeef.
- Types: configurable via
beans types. Default: task, bug, epic.
- Status: open → in_progress → closed.
- Dependencies:
A blocks B means B can't start until A is closed.
- Parent/child: epics contain subtasks via
--parent.
- Ready: a bean is ready when all its blockers are closed and it has no open children.
Commands
beans list
beans list --type bug --status open
beans ready
beans show <id>
beans search "query"
beans stats
beans graph
beans create "Title"
beans create "Title" --type bug --body "Details" --parent <epic-id>
beans update <id> --title "New" --priority 0 --body "Updated"
beans close <id> --reason "Fixed in abc1234"
beans delete <id>
beans claim <id> --actor <name>
beans release <id> --actor <name>
beans release --mine --actor <name>
beans dep add <blocker-id> <blocked-id>
beans dep remove <from> <to>
beans types
beans types add spike --description "Time-boxed investigation"
beans types remove spike
beans --json list
beans --json --fields id,title,status list
beans schema
JSON output
--json is a global option. Put it immediately after beans and before the subcommand. Order matters.
beans --json ready
beans --json search "output"
beans --json list | jq -r '.[] | [.id,.title,.status] | @tsv'
Do not put --json after the subcommand:
beans ready --json
beans search "output" --json
Workflow
- Check available work:
beans ready
- Read the bean:
beans show <id>
- Claim it:
beans claim <id> --actor <name>
- Do the work
- Close it:
beans close <id> --reason "Done in <commit>"
Rules
- Always check
beans ready before starting work.
- Claim a bean before working on it.
- One bean per deliverable change.
- Close beans when done — don't leave them dangling.
- If you discover new work, create a new bean for it.
- Use
--json for structured output when integrating programmatically.