Architecture
Cerebro is organized as a Rust workspace with three crates.
Crates
cerebro
The main CLI tool. Entry point that:
- Parses command-line arguments
- Coordinates collection and generation
- Manages the cache
crates/cerebro/src/
├── main.rs # Entry point
├── cli.rs # CLI argument parsing
├── config.rs # Configuration loading
├── cache.rs # Cache management
├── collectors/ # Data collection
└── generators/ # Output generation
cerebro-core
Shared types used across crates:
- Configuration structures
- Cache models
- Common utilities
cerebro-mcp
MCP (Model Context Protocol) server for OpenCode integration.
Allows AI assistants to query your cerebro dashboard directly.
Data Flow
flowchart TD
subgraph Config["Configuration"]
C[config.toml]
end
subgraph Collect["Collectors"]
O[OpenCode] --> S[Session history]
G[Git] --> CMT[Commits, files]
T[TODOs] --> TC[TODO/FIXME comments]
end
subgraph Generate["Generators"]
D[Dashboard] --> MD[Markdown]
J[Journal] --> MJ[Markdown]
P[Periodic] --> MP[Markdown]
end
subgraph Out["Output"]
ODIR[~/cerebro-dashboard/]
end
C --> Collect
Collect --> Generate
Generate --> Out
Collection Sources
| Source | Data Collected |
|---|---|
| OpenCode | Session history, AI interactions |
| Git | Commits, file changes, branch activity |
| TODOs | TODO, FIXME, HACK, XXX comments |
| Manual Notes | Status, journal entries, intent |