Empryoempryo.beta
surfaces

Terminal UI

The interactive Empryo TUI: keybindings, the chat input, tabs, panels, the status bar, forge modes, mouse support, and the embedded Neovim editor.

Run empryo in a repository and the full terminal UI opens: a chat thread, a live status bar, up to five tabs, and dozens of panels — all keyboard-driven, all over a live Genome. It is built on OpenTUI (React for the terminal).

Keybindings

Global shortcuts work from the chat view. When a panel or modal is open, only Ctrl+C stays live.

KeysAction
Ctrl+K / Ctrl+HOpen the command palette (search every command).
Ctrl+LSwitch the LLM model.
Ctrl+DCycle the forge mode.
Ctrl+SBrowse and install skills.
Ctrl+GGit menu.
Ctrl+PBrowse and restore sessions.
Ctrl+EToggle the editor panel.
Ctrl+TNew tab.
Ctrl+WClose the current tab.
Ctrl+NNew session (saves the current one first).
Ctrl+1Ctrl+9Switch to tab N.
Ctrl+[ / Ctrl+]Previous / next tab.
Ctrl+BRewind to the previous checkpoint (code + conversation).
Ctrl+FStep forward / return to live.
Ctrl+XAbort the running generation.
Ctrl+OExpand or collapse all code and reasoning blocks.
Ctrl+CCopy the selection, or exit when there is none.
Ctrl+Shift+CCopy the selection (never exits).
Meta+ROpen the error log (Alt+R on Linux).

The checkpoint keys are the time machine: every prompt is a git-tagged checkpoint, so Ctrl+B / Ctrl+F move code and chat together.

Chat input

KeysAction
EnterSubmit the prompt.
/ Prompt history (when the cursor is on the first / last row).
Tab / Shift+TabCycle tabs (when no autocomplete is open).
Ctrl+RFuzzy-search prompt history.
Ctrl+V / Alt+VPaste an image from the clipboard as an attachment.
Alt+S / Alt+PStash the current draft / pop the most recent one.
@Mention a file — opens a fuzzy file picker.
/Start a slash command, with inline autocomplete.

Forge modes

The mode shapes how the agent works. Cycle with Ctrl+D or set one with /mode. The active mode persists per project.

ModeBehavior
defaultImplements directly.
architectRead-only. Designs and analyzes: current architecture, proposal, risks, recommendation.
socraticRead-only. Investigates, then asks probing questions before implementing.
challengeRead-only. A constructive adversary that challenges assumptions.
planRead-only research and planning. Produces a plan and confirms before executing.
autoContinuous autonomous execution. Destructive actions still confirm.

Read-only modes keep the full tool set but refuse edits and shell writes at execution time.

Tabs

Up to five tabs run side by side, each its own conversation lane on the same repository. They share the Genome and memory and coordinate file edits through cross-tab claims so two tabs never clobber the same file silently.

  • Ctrl+T opens a tab (names it first); /tab new works too.
  • Ctrl+W closes the current tab; a busy tab asks first. The last tab can't be closed.
  • Ctrl+19, Ctrl+[ / Ctrl+], or clicking the tab bar switch tabs.
  • /tab rename renames; drag or moveTab reorders.

All tabs persist into one session, each owning a slice — reopen and your tabs come back.

Panels and modals

Everything beyond the chat thread is a panel. Open the command palette (Ctrl+K) to reach any of them by name, or use the slash command shown.

Model picker

Ctrl+L or /models — pick a provider and model, with live availability.

Command palette

Ctrl+K — fuzzy-search every command and panel.

Sessions

Ctrl+P or /session history — browse and restore past sessions.

Skills

Ctrl+S or /skills — search, install, and load skills.

Git

Ctrl+G or /git — status, diff, commit, branch, stash, and more.

Router

/router — assign a different model to each task slot.

MCP

/mcp — connected MCP servers, their tools, and reconnect.

LSP

/lsp — install, restart, and inspect language servers.

Genome

/genome — the code graph status: files, symbols, ranking.

Memory

/memory — browse, pin, and clear cross-session memory.

Status dashboard

/status or /context — tokens, context window, dispatch, system health.

Terminals

/terminals — a floating terminal manager.

There are over thirty panels in all — the full set is reachable from the command palette and the command reference.

Status bar

The header and footer keep live telemetry in view:

  • Model — provider and model, with a proxy› or gateway› prefix when routed.
  • Git — branch with a * dirty marker, green when clean, amber when dirty.
  • Mode — the active forge mode badge (single-tab) or per-tab badges (multi-tab).
  • Context bar — a gauge of context-window usage that turns warning-toned past 50% and red past 85%, a compaction spinner, and a checkpoint-browsing indicator.
  • Cost — running session cost (or FREE / Local for local models), greener when cache hits are high.

The footer also rotates keybinding hints and discovery tips.

Mouse support

  • Click and drag to select text; the selection is copied (OSC-52 + native clipboard). Right-click copies and clears.
  • The scroll wheel scrolls the chat with momentum and sticks to the bottom on new output.
  • Click the tab bar to switch, close, or open tabs.
  • Click inside the editor pane to focus it; click the chat to focus back.

Embedded Neovim

Ctrl+E opens a real Neovim instance beside the chat, connected over msgpack-RPC. It is an opt-in add-on (empryo addon install neovim).

  • The agent and the editor share state: AI edits trigger a buffer reload, and the agent can drive the editor through the editor tool — navigate, rename, format, read diagnostics, and more.
  • /editor split cycles the editor/chat width (40/50/60/70%); /nvim-config switches between Empryo's bundled config and your own.
  • When the editor is focused, keystrokes go straight to Neovim; Ctrl+E and Ctrl+C bring focus back to chat.

Next