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

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    │
└─────────────────────────────────────────────────────┘

Main views

KeyAction
j / ↓Next item in sidebar
k / ↑Previous item in sidebar
TabCycle focus between sidebar and content
Shift+TabCycle focus backward
EnterSwitch to selected view from sidebar
1 / gDashboard
2Projects
3Journal
4TODOs
5 / GConfig

Leader key

Press Space then a letter to jump directly:

SequenceAction
Space dDashboard
Space pProjects
Space jJournal
Space tTODOs
Space cConfig

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

KeyAction
Right / lMove focus from sidebar to content
Left / hMove 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:

KeyTab
1Sessions
2Commits
3TODOs
TabNext tab
Shift+TabPrevious 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.

KeyAction
j / ↓Next entry
k / ↑Previous entry
gFirst entry
GLast entry
EnterView full entry
iEdit journal for the selected project
EscClose 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

KeyAction
rRefresh data from all sources
bRun cerebro build, which generates the dashboard
qQuit
?Toggle help overlay
EscClose 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 onDoes
A sidebar viewSwitches to it, the same as pressing Enter there
A project row on the DashboardOpens that project, the same as Enter
A tab in the Projects viewSwitches section, the same as 1/2/3
A session, commit, TODO or journal rowSelects it and opens its preview, the same as Enter
The first breadcrumb in a previewGoes back to the list, the same as Esc
A toastDismisses that toast
The help overlay or the build logCloses 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 j and k now belong to it, which is the same rule l uses.
  • 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