Rusty Beads
A Git-backed graph issue tracker for AI coding agents, written in Rust.
Rusty Beads is a Rust implementation of steveyegge/beads, providing a powerful issue tracking system designed specifically for AI coding agents with features like dependency graphs, semantic compaction, and a context store for caching file summaries, symbol indexes, and project metadata.
Features
- Issue Management - Create, update, and track issues with rich metadata (30+ fields)
- Dependency Graphs - Model complex task relationships with automatic cycle detection
- Context Store - Git-aware caching for file summaries, symbols, and project context
- Semantic Compaction - 3-level compaction to reduce context size while preserving essential info
- SQLite Storage - Fast, reliable local storage with WAL mode for concurrent access
- JSONL Export - Git-friendly format for version control and collaboration
- Background Daemon - JSON-RPC server over Unix sockets for concurrent access
- Hash-based IDs - Collision-free identifiers in
bd-xxxxformat
Installation
As a CLI Tool
As a Library
Add to your Cargo.toml:
[]
= "0.1"
Quick Start
CLI Usage
# Initialize a new beads repository
# Create issues
# View ready (unblocked) work
# Add dependencies
# List issues
# Update and close issues
# Use the context store
Library Usage
use ;
use Result;
Context Store
The context store helps AI agents cache and retrieve contextual information with automatic git-aware invalidation:
use ;
use json;
use Result;
Architecture
rusty-beads/
├── src/
│ ├── lib.rs # Public API and documentation
│ ├── main.rs # CLI entry point
│ ├── types/ # Core data types (Issue, Status, Dependency, etc.)
│ ├── storage/ # SQLite backend + JSONL import/export
│ ├── context/ # Context store with git-aware invalidation
│ ├── idgen/ # Hash-based ID generation (bd-xxxx)
│ ├── compact/ # Semantic compaction (3 levels)
│ ├── daemon/ # Background RPC server
│ ├── git/ # Git integration utilities
│ └── cli/ # Command-line interface
CLI Commands
| Command | Description |
|---|---|
bd init |
Initialize a new .beads directory |
bd create |
Create a new issue |
bd show <id> |
Show issue details |
bd list |
List issues with filters |
bd ready |
Show unblocked issues ready for work |
bd update <id> |
Update an issue |
bd close <id> |
Close an issue |
bd delete <id> |
Soft-delete (tombstone) an issue |
bd dep add/remove/list |
Manage dependencies |
bd label add/remove/list |
Manage labels |
bd stats |
Show repository statistics |
bd compact |
Run semantic compaction |
bd daemon start/stop/status |
Manage background daemon |
bd config |
Manage configuration |
bd context get/set/list/clear |
Manage context store |
Context Store Namespaces
The context store organizes data into namespaces:
| Namespace | Prefix | Description |
|---|---|---|
| File | file: |
File-level context (summaries, AST, symbols) |
| Symbol | symbol: |
Symbol definitions (functions, classes, types) |
| Project | project: |
Project-level context (architecture, patterns) |
| Session | session: |
Session context (recent decisions, working files) |
| Agent | agent: |
Agent-specific context (preferences, learned patterns) |
| Custom | custom: |
User-defined context |
Git-Aware Invalidation
The context store automatically invalidates cached entries when:
- File modification time (mtime) changes
- File has uncommitted git changes
- Git HEAD commit changes
- TTL expires
Issue Types
Rusty Beads supports various issue types for different use cases:
bug,feature,task,epic,chore- Standard issue typesmolecule,gate,agent,role,rig- AI agent-specific typesconvoy,event,merge_request,slot- Advanced workflow types
Dependency Types
Model complex relationships between issues:
blocks- Issue A blocks issue Bparent_child- Hierarchical relationshiprelates_to- General relationshipduplicates- Duplicate issuessupersedes- Replacement relationship- And 14 more specialized types
Storage
- SQLite with WAL mode for concurrent access
- JSONL export for git-friendly version control
- Dirty tracking for incremental exports
- Content hashing for change detection
Development
# Build
# Run tests
# Generate documentation
# Run with debug logging
RUST_LOG=debug
Inspired By
This project is a Rust implementation inspired by steveyegge/beads, the original Go implementation.
License
MIT License - see LICENSE for details.