Terminal User Interface guide
Launch the terminal UI with:
cerebro tui
Or run the standalone binary directly:
cerebro-tui
The Terminal User Interface provides a rich, interactive terminal interface for browsing all your project activity data, including sessions, commits, TODOs, journal entries, and manual notes, without leaving your terminal.
Layout
┌─────────────────────────────────────────────────────┐
│ Cerebro TUI │
├──────────┬──────────────────────────────────────────┤
│ Dashboard│ [Content area: changes per view] │
│ Projects │ │
│ Journal │ │
│ TODOs │ │
│ Config │ │
├──────────┴──────────────────────────────────────────┤
│ r refresh b build Space leader q quit ? help │
└─────────────────────────────────────────────────────┘
Navigation
Main views
| Key | Action |
|---|---|
j / ↓ | Next item in sidebar |
k / ↑ | Previous item in sidebar |
Tab | Cycle focus between sidebar and content |
Shift+Tab | Cycle focus backward |
Enter | Switch to selected view from sidebar |
1 / g | Dashboard |
2 | Projects |
3 | Journal |
4 | TODOs |
5 / G | Config |
Leader key
Press Space then a letter to jump directly:
| Sequence | Action |
|---|---|
Space d | Dashboard |
Space p | Projects |
Space j | Journal |
Space t | TODOs |
Space c | Config |
The leader key is active everywhere except during text input, such as journal
editing, note editing, or form input. Press Esc to cancel a pending leader
sequence.
Focus management
| Key | Action |
|---|---|
Right / l | Move focus from sidebar to content |
Left / h | Move focus from content to sidebar |
Views
Dashboard
Summary of all projects with session counts, commit counts, and TODO counts.
Press Enter on a project to drill into its detail view.
Projects
Without a selected project, the view shows a list of all projects with activity
counts. Navigate with j/k, press Enter to select.
After selecting a project, three tabs appear:
| Key | Tab |
|---|---|
1 | Sessions |
2 | Commits |
3 | TODOs |
Tab | Next tab |
Shift+Tab | Previous tab |
Within each tab, navigate items with j/k. Press Enter on a TODO to preview
its full context. Press e to edit the project’s status/next notes. Press Esc
to deselect and return to the project list.
Journal
Shows journal entries from all projects. Date headers, such as ### 2026-04-25,
group the entries, or the view shows a single entry per project if no date
headers exist.
| Key | Action |
|---|---|
j / ↓ | Next entry |
k / ↑ | Previous entry |
g | First entry |
G | Last entry |
Enter | View full entry |
i | Edit journal for the selected project |
Esc | Close preview / cancel edit |
Journal entries come from ## Journal sections in your project notes files under
content/notes/projects/. If no journal sections exist, the view is empty.
TODOs
Aggregates TODOs from all projects. Navigate with j/k, press Enter to
preview the full TODO with file context. Press Esc to close preview.
Config
Toggle project active/inactive status and add new projects. The TUI writes changes to config.toml on disk.
Global commands
| Key | Action |
|---|---|
r | Refresh data from all sources |
b | Run cerebro build, which generates the dashboard |
q | Quit |
? | Toggle help overlay |
Esc | Close overlays, go back |
Mouse support
The keyboard is the primary way in. Mouse support is there for the moments where pointing is faster than remembering, and every click does what a key already did.
| Click on | Does |
|---|---|
| A sidebar view | Switches to it, the same as pressing Enter there |
| A project row on the Dashboard | Opens that project, the same as Enter |
| A tab in the Projects view | Switches section, the same as 1/2/3 |
| A session, commit, TODO or journal row | Selects it and opens its preview, the same as Enter |
| The first breadcrumb in a preview | Goes back to the list, the same as Esc |
| A toast | Dismisses that toast |
| The help overlay or the build log | Closes it |
The scroll wheel moves the selection in any list or table under the cursor.
Three things are deliberate:
- Nothing is dismissed by accident. A click lands on whichever layer is drawn on top, so a click on a toast dismisses the toast rather than selecting the row hiding under it. The note editor is inert to clicks entirely: a stray click outside the panel would throw away what you had typed.
- Clicking content moves the keyboard there. Pointing at a list is a reasonable
expectation that
jandknow belong to it, which is the same ruleluses. - Scrolling is selection, not panning. The wheel moves the highlighted row, and the list scrolls far enough to keep it visible. There is no free-scroll view of a list you have not selected into.
If your terminal forwards the wheel to the shell instead of the application, or you would rather not have mouse capture at all, the keyboard paths above do everything equal. Capture is enabled when the interface starts and restored when it exits.
What the Terminal User Interface does
- Browse OpenCode sessions, git commits, and TODOs per project
- View project status and next-session notes
- Edit status and next notes directly from the TUI
- Read journal entries from daily logs
- Toggle project active/inactive status
- Add new projects to config
- Refresh data on demand
- Build the markdown dashboard from the TUI
What the Terminal User Interface doesn’t do yet
- Session message content: Sessions show titles and timestamps but not individual messages
- Session preview: Can’t view the conversation inside a session
- Commit diff: Shows commit messages but not file changes
- TODO editing: Can view TODOs but not mark them complete, since they are code comments
- Search/filter: No text search across sessions, commits, or TODOs yet
- Activity graph: No heatmap or timeline visualization
- Multi-project comparison: Can’t view two projects side by side
- Git branch info: Doesn’t show current branch or uncommitted changes per project