Settings & Themes
The terminal UI has two layers of settings: its own UI preferences (themes), and agent configuration options (models, reasoning, servers) that the agent advertises through ACP.
UI settings
Section titled “UI settings”Stored in ~/.wisp/settings.json:
{ "theme": { "file": "catppuccin.tmTheme" }}Override the home directory with WISP_HOME:
export WISP_HOME=~/my-wisp-configThemes
Section titled “Themes”Themes are TextMate .tmTheme files. Place them in ~/.wisp/themes/ and reference by filename in settings.
Directory~/.wisp/
- settings.json
Directorythemes/
- catppuccin.tmTheme
- dracula.tmTheme
- nord.tmTheme
The theme colors the entire UI: conversation text, syntax highlighting, diff rendering, status line, and overlays.
Settings overlay
Section titled “Settings overlay”Open with /settings. The overlay shows all configurable options:
- Model — Select which LLM model to use (if the agent supports multiple)
- Reasoning effort — Set thinking budget (also cyclable with
Tab) - Mode — Switch agent modes (also cyclable with
Shift+Tab) - MCP servers — View connected servers and their status
- Provider logins — Authenticate with providers that require it
These options are advertised by the agent — the terminal UI discovers them at session start. Different agents may expose different options.
How agent config works
Section titled “How agent config works”The terminal UI doesn’t know about models or reasoning levels directly. Instead:
- The agent sends
SessionConfigOptionentries describing available settings - The UI renders them in the settings overlay
- When you change a value, the selection is sent back to the agent
- The agent applies the change
The Tab (reasoning) and Shift+Tab (mode) shortcuts cycle through the most common agent-provided options.
Authentication
Section titled “Authentication”Some agents or MCP servers require authentication. The settings overlay shows:
- Provider logins — Start OAuth flows or enter API keys
- MCP server auth — Authenticate individual MCP servers
Authentication state is managed by the agent, not stored locally.