Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

SourceData Collected
OpenCodeSession history, AI interactions
GitCommits, file changes, branch activity
TODOsTODO, FIXME, HACK, XXX comments
Manual NotesStatus, journal entries, intent