Skip to content

Global UI

Global UI covers the parts of Herald that stay consistent while you move between tabs. Learn this page first if the interface feels dense: it explains where status lives, how focus moves, and why some panels appear or disappear at smaller terminal sizes.

Herald is a Bubble Tea terminal app with a persistent title-row tab strip, optional folder or calendar rail, main content panels, optional chat panel, bottom status bar, context-sensitive key hints, and compact centered overlays for help, settings, and cleanup configuration. Browsing happens in Timeline, Contacts, or Calendar; cleanup review is a Timeline grouping mode, and Compose is a transient writing screen launched from Timeline.

Herald is keyboard-first, but it is not keyboard-only. You can click tabs and rows, scroll previews, and use visible hints while you learn; the keyboard remains complete when you want speed.

AreaWhat it showsNotes
Title rowHerald plus 1 Timeline, 2 Contacts, and 3 Calendar when Calendar is available.The active tab is highlighted. F1 opens Timeline, F2 opens Contacts, F3 is a temporary Contacts alias, F4 opens Calendar, and mouse clicks switch tabs when the terminal sends mouse events.
Top sync stripCurrent startup or live sync phase.Appears when Herald is loading while some visible data is already available.
Folder sidebarIMAP folder tree with unread and total counts.Visible mainly on Timeline when the terminal is wide enough.
Calendar railMini month, calendar source groups, colored swatches, enabled state, counts, and filter scope.Visible on Calendar when the terminal is wide enough.
Main panelsThe active view content.Timeline can split into list/preview layouts; Contacts uses list/detail panels.
Chat panelRight-side AI chat input and transcript.Opens with g when AI is configured and the terminal is wide enough; c remains a legacy alias outside Timeline text and Compose contexts.
Status barFolder breadcrumb, AI chip, search/grouping state, deletion progress, sync countdown, demo/dry-run/log flags.Confirmation prompts temporarily replace normal status.
Key hintsThe currently valid keys for the focused tab, panel, or overlay.Hints wrap to at most two lines.
Compact overlaysScrollable or form-based modals opened with ?, S, Settings Sync & Cleanup launchers, or rule preview actions.They stay centered over the current screen at supported sizes; at very small sizes Herald shows the minimum-size guard.

Herald main layout with Timeline and sidebar

KeyContextPreconditionsResult
F1 / F2 / F3 / F4Main TUIVisible data can be interacted with.Switches to Timeline, Contacts, Contacts legacy alias, or Calendar from any main tab or Compose screen.
1 / 2 / 3Browse contextsVisible data can be interacted with and no text field owns the keys.Switches to Timeline, Contacts, or Calendar. In the quick reply picker, chooses replies 1-3.
qBrowse contextsNo text input is being edited.Quits Herald after cleanup.
ctrl+cGlobalAny state.Quits Herald after cleanup, including from text inputs and overlays.
tab / ctrl+iMost tabsVisible data can be interacted with.Cycles focus forward through visible panels.
shift+tabMost tabsVisible data can be interacted with.Cycles focus backward through visible panels.
B / fTimelineVisible data can be interacted with.Toggles the folder sidebar when Timeline can render it.
g / cMain UINot loading and width allows the chat panel.Toggles AI chat and focuses its input; g is the advertised key so Timeline can keep c for Compose.
L / lMain UIVisible data can be interacted with.Toggles the log viewer overlay.
ctrl+r / rMain UINot loading.Refreshes the current folder and clears Timeline chat filters.
SMain UISettings overlay is not already open.Opens settings as a compact centered overlay over the current screen.
tMain UIAI classifier is configured and work is available.Starts folder classification.
?Main UI and Herald-owned overlaysVisible data can be interacted with.Opens context-sensitive shortcut help; pressing ?, esc, or q closes it.
escMain UI and overlaysA transient state is active.Closes the most specific state first, such as quick reply, visual mode, full-screen preview, chat filter, Timeline preview, search, Compose AI panel, Compose status message, or the Compose screen itself.

Mouse controls are convenience shortcuts over the same model as keyboard focus and selection. They are useful for trackpad-heavy terminal sessions, SSH clients that forward mouse events, and browser terminal sessions such as ttyd.

Mouse actionContextResult
Click a top tabMain UISwitches to Timeline, Contacts, or Calendar when available.
Click a folder/sidebar rowTimeline with sidebar visibleSelects the folder and loads it.
Click a Timeline rowTimeline tableSelects the row and opens the split preview.
Scroll over Timeline rowsTimeline tableMoves the Timeline cursor by small steps and refreshes the open preview.
Scroll over an email previewTimeline previewScrolls the message body.
Click a Calendar mini-month dayCalendar railSelects that day or visible range.
Click a Calendar eventCalendar viewsSelects the event; double-click opens the full detail view.
Click a Calendar checkbox or swatchCalendar railShows or hides that calendar where supported and persists the visible-calendar selection.
Scroll over Calendar rows or eventsCalendar viewsMoves through the visible calendar list or event stack in small steps.
Click an OSC 8 email linkTerminal-supported email preview linksOpens the original URL through the terminal.

Press m in Timeline or Calendar to temporarily release Herald’s mouse capture for terminal-native text selection. Press m again to restore Herald’s clickable and scrollable navigation.

Mouse navigation and clickable email links in Herald

  1. Press 1, 2, or 3, or use the corresponding function-key aliases when available.
  2. Watch the tab bar highlight move.
  3. Use the bottom key hints to learn the active tab’s controls.

Browse contexts also accept 1, 2, and 3 as visible tab aliases. F3 remains a temporary Contacts alias, while F4 mirrors Calendar where function keys are easier to reach than number keys.

  1. Open a screen with multiple panels, such as Timeline with the sidebar visible.
  2. Press tab to move focus to the next panel.
  3. Press shift+tab to move focus back.
  4. Use j/k or arrow keys; navigation applies to the focused panel.
  1. Press g from a wide terminal.
  2. Type a mailbox question.
  3. Press enter to send.
  4. Press esc or tab to close or leave chat focus.
  1. Press l.
  2. Scroll with j/k or arrow keys.
  3. Press l again to close.
  1. Press ? for shortcut help, S for settings, or choose Settings > Sync & Cleanup for cleanup configuration.
  2. Scroll or move through the overlay with its local controls when its content is taller than the modal.
  3. Press esc or the documented close key to return to the same tab, panel, or underlying overlay state.
StateWhat you seeWhat to do
Startup loadingA loading banner, progress text, optional progress bar, elapsed time, and q quit hint.Wait for sync or press q.
Visible-data loadingExisting cached rows remain visible and a top sync strip explains current IMAP work.Continue reading cached data while sync completes.
Minimum terminalA size guard replaces the normal UI below roughly 60x15.Resize the terminal.
Sidebar auto-hiddenStatus includes a sidebar hidden notice.Widen the terminal or press B when the tab supports the sidebar.
Chat unavailable at sizeStatus says chat is hidden at this size.Widen the terminal before pressing g again.
AI unavailableAI chip reads off/down or AI actions show a concise error.Configure AI or continue using non-AI mail features.
Logs overlayLog viewer is on top of the current tab and status includes Logs ON.Press l or Alt+L to close.
Compact modalHelp, settings, automation rule editors, prompt editors, cleanup manager, or dry-run previews are centered over the current screen.Use the overlay’s local keys; at 50x15, resize until the minimum-size guard clears.
Calendar railCalendar source groups and swatches are shown beside the current calendar view.Press tab to focus the rail, then space to show or hide a calendar.
ConfirmationStatus bar asks for y confirm or n/Esc cancel.Confirm only if the described action matches your intent.

The global UI reads cached message metadata, folder counts, sync state, deletion progress, AI scheduler state, and logs generated by the current Herald process. Opening chat can send a compact mailbox context to the configured AI provider. Opening settings can read and write config fields, credentials, tokens, and provider keys.

If a key seems to do nothing, press ? to open shortcut help or check the bottom key hints and focused panel. Many keys are context-sensitive: for example, space expands a folder when the sidebar is focused but selects the highlighted Timeline row when Timeline is focused.

If a panel disappeared, check terminal width. Herald hides the sidebar or refuses to open chat when there is not enough room to render the remaining mail view.

If a prompt will not close, press esc first. If that does not apply, ctrl+c still quits globally. Plain q quits from browse contexts, but it is normal text inside Compose and search inputs.

Chat panel open beside Timeline

Log viewer overlay open

Narrow terminal size guard