The TUI is what you get with no flags:
lazyagent
It’s the default because it’s the most information-dense interface. The layout is two panels: a session list on the left and a detail view on the right, plus a bottom help bar.

Keybindings
| Key | Action |
|---|---|
| ↑ / k | Move up / scroll up (detail panel) |
| ↓ / j | Move down / scroll down (detail panel) |
| tab | Switch focus between panels |
| + / - | Adjust time window (±10 minutes) |
| f | Cycle activity filter (all → active → waiting → …) |
| / | Search sessions by project path |
| o | Open the selected session’s CWD in your editor |
| c | Copy the resume command to the clipboard |
| r | Rename the session (empty name resets to default) |
| esc | Close detail overlay / dismiss search |
| q / ctrl+c | Quit |
Visual indicators
- Agent prefix — a one-character prefix (π, D, C, X, A, O) identifies which agent produced the session. See Supported agents.
- Activity badge — a colored state label (
idle,thinking,writing, …). See Activity states. - Braille spinner — animates while the session is actively executing.
- Sparkline — a Unicode braille mini-chart of the last N minutes of activity.
Themes
Two themes ship in: dark (default) and light. Switch by setting tui.theme in Configuration:
{
"tui": { "theme": "light" }
}
Every color — panels, activity states, help bar, overlays — is driven by the theme, so both variants are fully coherent.
Combining with other interfaces
The TUI can run side by side with the HTTP API:
lazyagent --tui --api
On macOS you can also combine it with the menu bar app:
lazyagent --tui --gui --api
The GUI detaches into its own process so the terminal stays interactive. See macOS GUI and HTTP API for the companion interfaces.