Core features:
- Dependency-aware issue tracking with SQLite backend
- Ready work detection (issues with no open blockers)
- Dependency tree visualization
- Cycle detection and prevention
- Full audit trail
- CLI with colored output
Security and correctness fixes applied:
- Fixed SQL injection vulnerability in UpdateIssue (whitelisted fields)
- Fixed race condition in ID generation (added mutex)
- Fixed cycle detection to return full paths (not just issue IDs)
- Added cycle prevention in AddDependency (validates before commit)
- Added comprehensive input validation (priority, status, types, etc.)
- Fixed N+1 query in GetBlockedIssues (using GROUP_CONCAT)
- Improved query building in GetReadyWork (proper string joining)
- Fixed P0 priority filter bug (using Changed() instead of value check)
All critical and major issues from code review have been addressed.
🤖 Generated with Claude Code
1.6 KiB
1.6 KiB
Beads Quickstart
Get up and running with Beads in 2 minutes.
Installation
cd ~/src/beads
go build -o beads ./cmd/beads
./beads --help
Your First Issues
# Create a few issues
./beads create "Set up database" -p 1 -t task
./beads create "Create API" -p 2 -t feature
./beads create "Add authentication" -p 2 -t feature
# List them
./beads list
Add Dependencies
# API depends on database
./beads dep add bd-2 bd-1
# Auth depends on API
./beads dep add bd-3 bd-2
# View the tree
./beads dep tree bd-3
Output:
🌲 Dependency tree for bd-3:
→ bd-3: Add authentication [P2] (open)
→ bd-2: Create API [P2] (open)
→ bd-1: Set up database [P1] (open)
Find Ready Work
./beads ready
Output:
📋 Ready work (1 issues with no blockers):
1. [P1] bd-1: Set up database
Only bd-1 is ready because bd-2 and bd-3 are blocked!
Work the Queue
# Start working on bd-1
./beads update bd-1 --status in_progress
# Complete it
./beads close bd-1 --reason "Database setup complete"
# Check ready work again
./beads ready
Now bd-2 is ready! 🎉
Track Progress
# See blocked issues
./beads blocked
# View statistics
./beads stats
Database Location
By default: ~/.beads/beads.db
You can use project-specific databases:
./beads --db ./my-project.db create "Task"
Next Steps
- Add labels:
./beads create "Task" -l "backend,urgent" - Filter ready work:
./beads ready --priority 1 - Search issues:
./beads list --status open - Detect cycles:
./beads dep cycles
See README.md for full documentation.