Skip to content

Terminal surface

The Mjolnir TUI is a single control surface for conversations and the infrastructure behind them. It stays responsive while sessions launch, resume, stop, or run work in the background.

Mjolnir terminal dashboard with Sessions, unopened Conversation and Prompt regions, Targets, Quota, and shortcut footer arranged vertically
From top to bottom: Sessions, the Conversation and Prompt regions, Targets, Quota, and a context-sensitive shortcut footer.

At startup, Mjolnir opens the session whose agent spoke most recently and puts the cursor in Prompt.

Tab moves focus down through Sessions → Prompt → Targets → Quota. Shift+Tab moves in reverse. The transcript is not a tab stop, so focus changes never take the composer away merely to scroll conversation history.

Use Page Up and Page Down to scroll the transcript from any focused pane. A mouse wheel scrolls the surface under the pointer. Clicking a row selects it, and double-clicking a session opens it. Dragging across transcript or pane text copies that surface’s selection to the available system or terminal clipboard.

Each list supports the same navigation keys:

KeysAction
/ or j / kSelect the previous or next row
Ctrl+P / Ctrl+NSelect the previous or next row
Home / EndSelect the first or last row

Pane-specific actions are deliberately small:

FocusKeyAction
SessionsEnterOpen the selected session
SessionsSpaceFold or unfold the selected project
Sessions19Fold or unfold the numbered project
TargetsEnter or eOpen target actions, including test and rename
QuotaEnter or eEdit the selected profile configuration ID

Sessions, Targets, and Quota each have minimized (), standard (), and maximized () title-bar controls. Click a control, or focus the pane and press Alt+Z to cycle through the three sizes.

  • A minimized Targets or Quota pane becomes a one-line summary.
  • A minimized Sessions pane becomes a compact three-column grid.
  • Only one support pane can be maximized at a time.
  • Prompt keeps the conversation’s working space; a maximized support pane receives the remaining room and the other bands stay at their minimum.

Alt+G toggles a dashboard preset. When all panes are standard, it maximizes Sessions and minimizes Targets and Quota. When sizes have been customized, it restores all three to standard. Tab changes only focus and never changes a pane’s size.

Function keys and Alt chords work no matter which dashboard pane has focus:

KeyAction
F1Open help; ? also opens it when a non-Prompt pane has focus
F2Open the command palette
F3Switch workspace
F4Show the web viewer address and access code
F5Refresh all target capacity and profile quota data
Alt+NCreate a session
Alt+SResume any non-live session through the resume picker
Alt+AMark all session activity as read
Alt+XCancel the selected session’s in-flight launch, resume, or stop operation
Alt+ZCycle the focused support pane’s size
Alt+GToggle the dashboard pane preset
Alt+QDetach this terminal while the daemon and sessions continue

Esc is not a detach key. It closes a dialog or, from the conversation, cancels the active agent turn or shell command. Alt+X is different: it cancels a lifecycle operation such as launch or resume.

Press F2 to expose both shortcut-backed and palette-only actions. Commands for the selected session come first, followed by commands for the focused pane and then global commands.

Mjolnir command palette with selected-session, pane, and global actions grouped together over the dashboard
Type to filter commands. Unavailable actions remain visible with the reason they cannot run.

Use / or Ctrl+P / Ctrl+N to select a command, Enter to run it, and Esc to close the palette. Selected-session actions include Rename session, Container settings for container-backed sessions, Move, Stop, and Force destroy. Move opens a preparation and confirmation flow for a compatible profile or target; it keeps the logical session while rebuilding a fresh environment. Stop asks for confirmation; Force destroy permanently removes the session, its target, and its recovery archive. The palette is also how you discover useful commands that have no dedicated key.

The Prompt pane is a multiline editor with completion, history, and transcript controls.

KeyAction
EnterSend now, or queue while the active turn is running
Shift+Enter / Alt+EnterInsert a newline
TabAccept a completion, or move to the next pane when none is offered
EscCancel the running turn or shell command
Page Up / Page DownScroll the transcript
/ Move within multiline input or walk prompt history
Ctrl+RSearch prompt history; Alt+R changes the search scope
Alt+TToggle the transcript between rendered and raw text
Alt+VStart or stop dictation when voice input is available
Ctrl+VPaste the system clipboard
Ctrl+A / Ctrl+EMove to the start or end of the line
Ctrl+B / Ctrl+FMove back or forward one character
Alt+B / Alt+FMove back or forward one word
Ctrl+H / Ctrl+DDelete before or after the cursor
Ctrl+W / Alt+DDelete the word before or after the cursor
Ctrl+U / Ctrl+KDelete to the start or end of the line
Ctrl+YYank the most recently killed text
Ctrl+CSave the current draft to history and clear Prompt
Ctrl+P / Ctrl+NMove to the previous or next line, then through history

Inside history search, Ctrl+R or selects an older match, Ctrl+S or selects a newer match, Enter accepts it, and Esc or Ctrl+C cancels the search.

Start a message with ! to run the remainder through bash -lc inside the selected session’s target and workspace:

!git status --short

The command runs independently of an active agent turn, so it does not block the harness. Mjolnir streams bounded live output into the transcript and saves the result there. After the command finishes, its result is included once as hidden context with the next prompt you submit, letting the agent respond to what the command found without copying the output into Prompt.

Press Esc to cancel a running shell command. The same ! syntax works in the web viewer, where a Cancel button replaces the terminal key. A shell command has the permissions of the selected target, so review destructive commands just as you would in a directly attached shell.

Press F1 for scrollable contextual help and Esc to close it. The footer is generated from the same command registry: pane-local commands appear first, Alt chords second, and function keys last. On a narrow terminal, the leftmost hints disappear first while the global function keys remain visible.

If Alt shortcuts arrive as Esc followed by a letter, configure the terminal to send Meta. In iTerm2 set the left Option key to Esc+; in Terminal.app enable Use Option as Meta key. Under tmux, a short escape delay keeps chords responsive:

set -sg escape-time 10

For session states and recovery behavior, continue to sessions. The CLI reference covers non-interactive commands, while troubleshooting covers key handling, target failures, and viewer connectivity.