Menus and keys
Every menu the monitor has with its rows in order, and every key it binds, grouped as the in-app help overlay groups them.
The menus
Menu rows — 81 rows exported from
src/tui/menu_model.rs
Gantry
| row | role | generated group | present |
|---|---|---|---|
|
About
help.about |
selectable | — | always |
|
Help
help.keys |
selectable | — | always |
|
Status
run.status |
selectable | — | always |
|
Open shell in worktree
run.shell |
selectable | — | always |
|
Merge committed tip…
run.merge |
disabled | — | always |
|
Resume in place
run.resume_in_place |
disabled | — | always |
|
Abort run…
run.abort |
selectable | — | always |
|
Detach
run.detach |
disabled | — | always |
|
Quit
app.quit |
selectable | — | always |
View
| row | role | generated group | present |
|---|---|---|---|
|
Follow latest
view.follow |
selectable | — | always |
|
Top
view.top |
selectable | — | always |
|
Bottom
view.bottom |
selectable | — | always |
|
Sidebar
view.sidebar |
checkable | — | always |
|
Surface
view.surface |
submenu | — | always |
|
Activity feed
under Surface view.activity |
checkable | — | always |
|
Pattern diagram
under Surface pattern.open |
checkable | — | always |
|
Previous detail
under Surface pattern.detail_prev |
selectable | — | always |
|
Next detail
under Surface pattern.detail_next |
selectable | — | always |
|
Previous pattern
under Surface pattern.prev |
selectable | — | always |
|
Next pattern
under Surface pattern.next |
selectable | — | always |
|
Registered patterns
under Surface view.registered-patterns |
dynamic_submenu | registered_patterns | always |
|
build
under Surface › Registered patterns pattern.select.build |
checkable | registered_patterns | always |
|
careful
under Surface › Registered patterns pattern.select.careful |
checkable | registered_patterns | always |
|
design
under Surface › Registered patterns pattern.select.design |
checkable | registered_patterns | always |
|
goal
under Surface › Registered patterns pattern.select.goal |
checkable | registered_patterns | always |
|
map
under Surface › Registered patterns pattern.select.map |
checkable | registered_patterns | always |
|
milestone
under Surface › Registered patterns pattern.select.milestone |
checkable | registered_patterns | always |
|
ralph
under Surface › Registered patterns pattern.select.ralph |
checkable | registered_patterns | always |
|
redesign
under Surface › Registered patterns pattern.select.redesign |
checkable | registered_patterns | always |
|
steady
under Surface › Registered patterns pattern.select.steady |
checkable | registered_patterns | always |
|
Focus chat
chat.focus |
selectable | — | always |
|
Restore chat
chat.restore |
selectable | — | always |
|
Minimize chat
chat.minimize |
selectable | — | always |
|
Maximize chat
chat.maximize |
selectable | — | always |
|
Filter feed
view.filter_feed |
submenu | — | always |
|
Heartbeats / progress
under Filter feed view.filter.progress |
checkable | — | always |
|
Test output
under Filter feed view.filter.gate |
checkable | — | always |
|
Commits
under Filter feed view.filter.commit |
checkable | — | always |
|
Retries / waits
under Filter feed view.filter.retry |
checkable | — | always |
|
Reviews
under Filter feed view.filter.review |
checkable | — | always |
|
Collapse all cards
view.collapse_all |
selectable | — | always |
|
Expand all cards
view.expand_all |
selectable | — | always |
|
Zoom current card
card.open |
selectable | — | always |
|
Open card artifact
card.open_artifact |
disabled | — | always |
|
Recent events
view.recent_events |
dynamic_submenu | recent_events | always |
|
test red s01
under Recent events view.recent_events.test-red-s01 |
dynamic_selectable | recent_events | always |
|
usage park s01
under Recent events view.recent_events.usage-park-s01 |
dynamic_selectable | recent_events | always |
|
retry s01
under Recent events view.recent_events.retry-s01 |
dynamic_selectable | recent_events | always |
Stats
| row | role | generated group | present |
|---|---|---|---|
|
Progress
stats.progress |
read_only | — | always |
|
Tokens
stats.tokens |
read_only | — | always |
|
Tests
stats.gate |
read_only | — | always |
|
Retries
stats.retries |
read_only | — | always |
|
Open full stats panel
stats.open_panel |
selectable | — | always |
|
Open processes panel
processes.open_panel |
selectable | — | always |
Inspect
| row | role | generated group | present |
|---|---|---|---|
|
Stage logs
agents.session_history |
dynamic_submenu | session_history | always |
|
Execute s01
under Stage logs agents.session_history.execute-s01.unavailable |
dynamic_disabled | session_history | always |
|
Execute s01
under Stage logs agents.session_history.execute-s01 |
dynamic_selectable | session_history | always |
|
Run journal
tools.open_journal |
selectable | — | always |
|
Git activity
git.open_activity |
selectable | — | always |
|
Environment
tools.environment |
selectable | — | always |
|
Open plan
tools.open_plan |
selectable | — | always |
|
Open sprint files
tools.open_sprint_files |
dynamic_submenu | sprint_files | always |
|
01-milestone-driver / 01-mock-loop
under Open sprint files tools.open_sprint_files.01-milestone-driver-01-mock-loop |
dynamic_selectable | sprint_files | always |
|
01-milestone-driver / 02-event-tags
under Open sprint files tools.open_sprint_files.01-milestone-driver-02-event-tags |
dynamic_selectable | sprint_files | always |
|
01-milestone-driver / 03-speed-knob
under Open sprint files tools.open_sprint_files.01-milestone-driver-03-speed-knob |
dynamic_selectable | sprint_files | always |
|
02-final-merge / 01-merge-back
under Open sprint files tools.open_sprint_files.02-final-merge-01-merge-back |
dynamic_selectable | sprint_files | always |
|
02-final-merge / 02-run-complete
under Open sprint files tools.open_sprint_files.02-final-merge-02-run-complete |
dynamic_selectable | sprint_files | always |
|
03-error-modal / 01-key-halt
under Open sprint files tools.open_sprint_files.03-error-modal-01-key-halt |
dynamic_selectable | sprint_files | always |
|
03-error-modal / 02-modal-copy
under Open sprint files tools.open_sprint_files.03-error-modal-02-modal-copy |
dynamic_selectable | sprint_files | always |
|
Open reports
tools.open_reports |
dynamic_submenu | reports | always |
|
demo-test-red.md
under Open reports tools.open_reports.demo-test-red |
dynamic_selectable | reports | always |
|
01-milestone-driver / 02.md
under Open reports tools.open_reports.01-milestone-driver-02 |
dynamic_selectable | reports | always |
|
03-error-modal / 02.md
under Open reports tools.open_reports.03-error-modal-02 |
dynamic_selectable | reports | always |
|
Open ledger
tools.open_ledger |
selectable | — | always |
|
Copy
tools.copy |
submenu | — | always |
|
Copy run name
under Copy tools.copy.run_name |
selectable | — | always |
|
Copy plan id
under Copy tools.copy.plan_id |
selectable | — | always |
|
Copy worktree path
under Copy tools.copy.worktree_path |
selectable | — | always |
|
Copy branch
under Copy tools.copy.branch |
selectable | — | always |
|
Copy status command
under Copy tools.copy.status_command |
selectable | — | always |
|
Copy logs command
under Copy tools.copy.logs_command |
selectable | — | always |
What a menu row is
Menu vocabulary — 2 sets exported from
src/engine/reference_vocabulary.rs
Menu row roles
8 values from src/tui/menu_model.rs
What one row of the menu bar is: whether it can be chosen, whether it is a heading or a submenu, and whether it is one of the rows the monitor generates from live run state. A role is a property of the row itself, not of the moment: an item declared disabled is the one whose action does not apply to this run, while every item's live enabled state is re-derived from the run every frame and is not exported.
| value | as the code writes it | what it means |
|---|---|---|
| selectable | Selectable | An ordinary row you can choose: it runs its action and closes the menu, and it takes the hover highlight. |
| disabled | Disabled | A row whose action does not apply — merging a run that has nothing to merge, detaching a run you own. It is shown greyed rather than hidden, so the whole surface stays legible, and it takes no highlight. |
| read_only | ReadOnly | A row that is text, not a command: a heading or a readout of run state inside a menu. Nothing happens when it is chosen and it takes no highlight. |
| checkable | Checkable | A setting rather than a command: the row carries a tick read from live state, so it doubles as the readout of what it toggles. |
| submenu | Submenu | A row that opens a nested menu of its own. Its children carry it in their parent chain. |
| dynamic_submenu | DynamicSubmenu | A submenu whose children are generated from live run state — the recent events, the stage logs, the sprint files, the reports. Its children come and go with the run; the heading itself is always declared. |
| dynamic_selectable | DynamicSelectable | A generated child row that can be chosen: a specific event to jump to, a specific log or file to open. |
| dynamic_disabled | DynamicDisabled | The stand-in a generated submenu shows while it has nothing to list yet — a single greyed row saying so, rather than an empty dropdown. |
Menu dynamic groups
5 values from src/tui/menu_model.rs
The five families of menu row the monitor generates from live run state rather than declaring one by one. A row belongs to a group when it is that group's submenu heading or one of the rows generated under it, and a group that has nothing to show yet stands as a single disabled row saying so.
| value | as the code writes it | what it means |
|---|---|---|
| registered_patterns | registered-patterns | The View menu's pattern-diagram rows, one per registered pattern, ticking the one the pattern surface is currently drawing. |
| recent_events | recent-events | The View menu's jump-to-a-card rows, one per notable event the run has produced, newest first. |
| session_history | session-history | The Inspect menu's stage-log rows, one per agent session log the run has written, for reading a stage's transcript. |
| sprint_files | sprint-files | The Inspect menu's sprint-file rows, one per brief in the run's orchestration directory. |
| reports | reports | The Inspect menu's report rows, one per report the run has written beside its briefs. |
The keys
Keyboard actions — 84 rows exported from
src/tui/mod.rs
Keyboard action help groups —
5 groups exported from
src/tui/mod.rs
Gantry
| key | action | surface |
|---|---|---|
| ? | Help | — |
| R | Resume in place | — |
| q | Quit | — |
View
| key | action | surface |
|---|---|---|
| End | Follow latest | — |
| g | Top | — |
| G | Bottom | — |
| p | Pattern diagram | — |
| [ | Previous detail | pattern |
| ] | Next detail | pattern |
| N | Previous pattern | pattern |
| n | Next pattern | pattern |
| Tab | Focus chat | — |
| C-r | Restore chat | — |
| C-Down | Minimize chat | — |
| C-Up | Maximize chat | — |
| Enter | Zoom current card | — |
| o | Open card artifact | — |
Stats
The help overlay lists this group with no keys under it: everything in it is reached by opening the menu that carries it.
Inspect
The help overlay lists this group with no keys under it: everything in it is reached by opening the menu that carries it.
Not in a menu
| key | action | surface |
|---|---|---|
| PgUp | Page chat up | — |
| PgDn | Page chat down | — |
| [ | Sidebar up | — |
| ] | Sidebar down | — |
| r | Answer pending prompt… | — |
| Esc | Stop blocked run | — |
pager
| key | action | surface |
|---|---|---|
| q | Close | pager |
| j | Scroll down | pager |
| k | Scroll up | pager |
| PgDn | Page down | pager |
| PgUp | Page up | pager |
| g | Top | pager |
| G | Bottom | pager |
| w | Toggle wrap | pager |
| F | Follow | pager |
| h | Scroll left | pager |
| l | Scroll right | pager |
| 0 | Column 0 | pager |
| Enter | Zoom JSON line | pager |
| / | Search | pager |
| n | Next match | pager |
| N | Previous match | pager |
| Enter | Commit search | pager |
| Esc | Cancel search | pager |
stats_panel
| key | action | surface |
|---|---|---|
| q | Close | stats_panel |
| j | Scroll down | stats_panel |
| k | Scroll up | stats_panel |
| PgDn | Page down | stats_panel |
| PgUp | Page up | stats_panel |
| g | Top | stats_panel |
| G | Bottom | stats_panel |
| Tab | Next row | stats_panel |
| S-Tab | Previous row | stats_panel |
| Enter | Open row / fold section | stats_panel |
git_activity
| key | action | surface |
|---|---|---|
| q | Close | git_activity |
| j | Next commit | git_activity |
| k | Previous commit | git_activity |
| PgDn | Page down | git_activity |
| PgUp | Page up | git_activity |
| g | Top | git_activity |
| G | Bottom | git_activity |
| Enter | Open commit diffstat | git_activity |
pattern
| key | action | surface |
|---|---|---|
| a | Activity feed | pattern |
| k | Scroll up | pattern |
| j | Scroll down | pattern |
| h | Scroll left | pattern |
| l | Scroll right | pattern |
| Tab | Next element | pattern |
| S-Tab | Previous element | pattern |
| Enter | Open source | pattern |
Actions with no key
| key | action | surface |
|---|---|---|
| — | About | — |
| — | Status | — |
| — | Merge committed tip… | — |
| — | Abort run… | — |
| — | Detach | — |
| — | Open shell in worktree | — |
| — | Sidebar | — |
| — | Activity feed | — |
| — | Collapse all cards | — |
| — | Expand all cards | — |
| — | Heartbeats / progress | — |
| — | Test output | — |
| — | Commits | — |
| — | Retries / waits | — |
| — | Reviews | — |
| — | Open full stats panel | — |
| — | Open processes panel | — |