Terminal TUI

August 14, 2026 · View on GitHub

The full chat interface for using OpenProgram without leaving the terminal. This page covers entering and exiting, keyboard shortcuts, and slash commands.

Terminal TUI

Entering and exiting

openprogram tui      # straight into the terminal chat (alias: openprogram chat)
openprogram          # bare invocation first asks: terminal UI or web UI

The release CLI always has the Python terminal interface. Source-development installations can additionally build the Node.js Ink interface on macOS and Linux. Both connect to the same local worker over WebSocket and share sessions with the Web UI. Windows release installation is not supported.

Exit: /quit, or press Ctrl-C twice quickly while idle.

To resume a past session: use /resume inside the TUI to pick one; session ids are listed by openprogram sessions list. (The openprogram --resume <id> flag currently takes effect only for --print one-shots, not when launching the interactive TUI.)

Keys

KeyAction
EnterSend
Alt+EnterNewline
EscClear the input line; abort the current turn while generating
Ctrl-C (while generating)Three-stage stop: first press warns, second stops gracefully, third forces
Ctrl-C double press (idle)Exit
/ Input history; navigate up/down when the completion menu is open
TabAccept file / slash-command completion
(at end of line) or Ctrl+EAccept the autocomplete suggestion
Ctrl+RSearch saved contexts
Shift+TabCycle permission profiles (ask → acceptEdits → plan → auto)
Ctrl+KCommand palette (covers all slash commands)
PageUp / PageDown, Ctrl+U / Ctrl+DScroll back by page / half page
Home / EndJump to top / bottom

Slash commands

Type / to trigger completion. Common ones:

CommandAction
/helpCommand list
/model, /fetch-modelsSwitch model, re-fetch the model list
/effortAdjust thinking effort (levels in thinking effort)
/new, /resume, /sessions, /sessionNew session, resume, session list, current session info
/rewindRoll the session back to a message
/compact, /context, /clearCompact context, view context, clear screen
/permissions, /sandboxPermission profiles and sandbox
/login <provider>, /logoutProvider login / logout (see auth and credentials)
/agents, /agentManage / switch agents
/mcp, /tools, /memorySame data as the corresponding Web UI pages
/costToken usage for this session
/export, /copyExport the session, copy a reply
/config, /theme, /bellSettings, theme, notification sound
/doctorHealth check
/channel, /attach, /detach, /connectionsChat-channel hookup and session routing
/quitExit

Also available: /search, /review, /diff, /init, /browser, /welcome. The /help output is the authoritative full list.

Beyond these built-ins, the completion menu also lists every command from the unified command registry — skills, MCP prompts, plugin commands, and your own command files under ~/.openprogram/commands/ or <project>/.openprogram/commands/ (markdown with optional YAML frontmatter). Running one expands its body and sends it as the message, exactly like the Web composer: the TUI and the Web UI read the same registry, so a command defined once appears in both.