Terminal UI (TUI)
The interactive terminal UI (roborev tui) is the primary interface for working with roborev reviews. The review queue acts as a ledger: every commit review is recorded, and each entry stays open until you explicitly address and close it. This creates an accountability loop that ensures every line of agent-generated code is reviewed and every finding is resolved.
roborev tui # Open TUIroborev tui --repo # Pre-filter to current reporoborev tui --repo --branch # Pre-filter to current repo + branchroborev tui --repo=/path/to/repo # Pre-filter to specific reporoborev tui --branch=feature-x # Pre-filter to specific branch| Flag | Description |
|---|---|
--repo [path] | Lock filter to a repo. Without a value, resolves to the current repo. |
--branch [name] | Lock filter to a branch. Without a value, resolves to the current branch. |
When set via flags, the filter is locked and cannot be changed in the TUI. This is useful for side-by-side working when you want to focus on a specific repo or branch.
Queue View
| Key | Action |
|---|---|
Up/k, Down/j | Navigate jobs |
PgUp, PgDn | Page through list |
Enter | View review |
l | View job log |
p | View prompt |
m | View commit message |
a | Toggle closed |
c | Add comment |
y | Copy review to clipboard |
x | Cancel running/queued job |
r | Rerun completed/failed/canceled job |
F | Launch fix job (requires advanced.enable_tasks) |
T | Switch to Tasks view (requires advanced.enable_tasks) |
o | Column options (reorder, toggle visibility) |
f | Open filter (repo/branch tree) |
b | Open filter with branches expanded |
h | Toggle hide closed/failed/canceled |
D | Toggle distraction-free mode |
g | Jump to top of queue |
? | Show all commands |
Esc | Clear filters (one layer at a time) |
Ctrl-D | Quit |
q | Quit |
Log View
Press l from the queue view, review view, or prompt view to open the log viewer. For running jobs, the view streams live output as it arrives. Logs are persisted to disk, so they remain available after the job completes and across daemon restarts.
| Key | Action |
|---|---|
Up/k, Down/j | Scroll output |
PgUp, PgDn | Page through output |
Home | Jump to top |
End | Jump to bottom (enables follow mode) |
g | Toggle between top and bottom |
Left, Right | Previous/next job log |
x | Cancel running job |
? | Show all commands |
Esc, q | Back to previous view |
The log view features:
- Follow mode: When a job is still running, the view polls for new output and auto-scrolls to the bottom. Scrolling up disables follow mode; pressing
Endorgre-enables it. - Incremental fetching: Only new bytes since the last fetch are downloaded, keeping the view responsive for long-running jobs.
- Formatted output: NDJSON agent output is rendered as compact progress lines showing tool calls (file reads, edits, bash commands) with a gutter prefix for visual grouping.
Logs are stored in ~/.roborev/logs/jobs/ and can also be viewed from the CLI with roborev log <job-id>. Use roborev log clean to remove old log files.
Filtering
Press f to open the unified filter view, which shows repos as a tree with expandable branch children. Press b to open the filter with branches already expanded for the most relevant repo (active filter > current directory > first repo).
| Key | Action |
|---|---|
Up/k, Down/j | Navigate tree |
Right | Expand repo to show branches |
Left | Collapse repo (works during search too) |
Enter | Apply selected filter |
| Type text | Search repos and branches |
Backspace | Delete search character |
Esc | Close filter |
Branches are lazy-loaded: they fetch from the daemon when you expand a repo or type a search. Searching triggers background branch loads for all repos so matches include branches you haven’t expanded yet.
The current working directory’s repo sorts to the top of the tree, and its current branch sorts to the top of that repo’s branch list.
To start the TUI with closed items already hidden, set hide_closed_by_default = true in ~/.roborev/config.toml. To auto-filter to the current repository on startup, set auto_filter_repo = true. To auto-filter to the current branch or worktree, set auto_filter_branch = true. Both auto-filters add clearable filters (press Esc), and CLI flags (--repo, --branch) take priority when set. See Configuration for details.
Pressing h toggles the hide-closed filter for the current session without changing the config.
Esc clears filters one layer at a time in the order they were applied. Press h again to toggle hide-closed off directly.
Distraction-Free Mode
Press D in the queue view to toggle distraction-free mode. This hides the status line, table header, scroll indicator, and help footer, leaving only the title and the job list. Useful for focusing on reviews when screen space is limited.
The same compact layout activates automatically when the terminal height is below 15 rows.
Column Customization
Press o in the queue or tasks view to open the column options modal. From there you can reorder columns or toggle their visibility.
Custom column order is saved to column_order (queue) and task_column_order (tasks) in ~/.roborev/config.toml. To show separator lines between columns, set column_borders = true.
The queue displays two separate status columns:
- Status: The job’s lifecycle state: Queued (yellow), Running (blue), Done (default), Error (orange), Canceled (gray).
- P/F: The review verdict, shown once the review completes: Pass (green) or Fail (red). This reflects whether the code review found issues, not whether the job itself errored. A job can finish successfully (Status = Done) with a Fail verdict if the reviewer flagged problems.
Mouse Interactions
Mouse support is enabled by default. Click to select rows, double-click to open a review, and use the scroll wheel to navigate lists.
To disable mouse interactions globally, set mouse_enabled = false in ~/.roborev/config.toml. You can also toggle this from within the TUI by pressing o to open the options menu and toggling “Mouse interactions”. The change takes effect immediately and is persisted to your config file.
Review View
Press Enter on a job to view its review.
| Key | Action |
|---|---|
Up/k, Down/j | Scroll content |
Left/h, Right/l | Previous/next review (loads more if at end) |
PgUp, PgDn | Page through content |
a | Toggle closed |
c | Add comment |
y | Copy review to clipboard |
x | Cancel running/queued job |
r | Rerun completed/failed/canceled job |
F | Open inline fix panel (requires advanced.enable_tasks) |
l | View job log |
p | Switch between review/prompt |
m | View commit message |
? | Show all commands |
Esc, q | Back to queue |
Background Tasks
The TUI includes an optional workflow for running fix jobs, applying patches, and rebasing directly from the terminal. This is disabled by default. To enable it, set enable_tasks = true under the [advanced] section in ~/.roborev/config.toml.
See Background Tasks for the full reference.
Prompt View
Press p from the queue view or review view to see the prompt that was sent to the agent, along with the command line used to invoke it.
| Key | Action |
|---|---|
Up/k, Down/j | Scroll content |
Left/h, Right/l | Previous/next prompt |
PgUp, PgDn | Page through content |
p | Switch between prompt/review |
? | Show all commands |
Esc, q | Back to queue |
The prompt header shows the job ID, git ref, and agent. Below the header, the command line used to run the agent is displayed (truncated to terminal width if needed).
Copying Reviews
Press y to copy the review content to your clipboard. This works from both the queue view (on completed jobs) and the review detail view.
The copied content includes a metadata header for reference:
Review #42 /path/to/repo abc1234[review content...]A “Copied to clipboard” message confirms the action. The primary use case is pasting the review into an AI coding agent session (like Claude Code) to address the findings. Other uses include sharing with teammates, pasting into issue trackers, or including in PR descriptions.
Viewing Commit Messages
Press m from either the queue view or review detail view to see the full commit message for the selected job. This is useful for understanding the context of the changes being reviewed.
Keyboard Commands
Press ? at any time to toggle the commands overlay. This displays all available shortcuts for the current view.
Review Screen Layout
The review detail view shows:
Review #42 myrepo (codex: claude-sonnet-4-5-20250929)/path/to/repo abc1234 on feature-branchVerdict: Pass [CLOSED]- Line 1: Review identity: job ID, repo name, agent and model (if explicitly configured)
- Line 2: Location: repo path, git ref, branch
- Line 3: Status: verdict and closed state
Verdicts
Reviews display a Verdict (Pass/Fail) parsed from the AI response:
- Pass (green): Code review passed with no issues
- Fail (red): Issues found that need attention
Rich Markdown Rendering
Reviews and prompts are rendered with full Markdown formatting directly in the terminal. Code blocks display with syntax highlighting, and headings, lists, bold, italic, and inline code all render with appropriate styling.
Code blocks are displayed without word-wrapping — long lines are truncated to the terminal width so diffs and code snippets stay readable. Prose text outside code blocks is word-wrapped naturally.
Tab Width
Tabs in code blocks are expanded to spaces for consistent display. The default width is 2 spaces. To change it, set tab_width in ~/.roborev/config.toml:
tab_width = 4 # Expand tabs to 4 spaces (default: 2, range: 1-16)Terminal Escape Sanitization
Review content from AI agents is sanitized before display. Color and style codes (SGR) are preserved, but potentially harmful escape sequences (cursor movement, terminal title changes, screen clearing) are stripped. This prevents untrusted content from interfering with your terminal.
Adaptive Colors
The TUI automatically adapts to light and dark terminals. Colors are selected based on your terminal’s background to ensure readability in both environments.
Version Mismatch Warning
If the TUI binary version differs from the running daemon version, a persistent red banner displays at the top of the screen. This prevents confusing behavior from stale binaries (common in post-commit hooks). Restart the daemon with roborev daemon restart to resolve.
Workflow
The TUI is designed around a review, address, close cycle:
- Run
roborev tuito open the interface - Navigate to open reviews needing attention
- Press
Enterto read the full review - Address the findings: copy the review (
y) into your agent, use/roborev:fix, or runroborev fix - Press
ato mark the review as closed - Use
hto hide closed items and focus on what remains
Open reviews are your backlog. When the queue is clear, every commit on your branch has been reviewed and every finding has been addressed.
See Also
- Commands Reference: Full command list
- Responding to Reviews: Add comments to reviews
- Event Streaming: Programmatic access to events