Skip to content

TUI Commands

The TUI supports vim-style : commands for runtime configuration and control. Type : at the beginning of a line to enter command mode.

Quick Reference

CommandDescription
:set option=valueSet configuration option
:set option?Query current value
:set option??Show modification history
:set option!Toggle boolean option
:set option&Reset to default
:setShow modified options
:set allShow all options
:modelOpen model picker
:model <name>Switch to model
:clearClear conversation
:undo [N]Undo the last N agent turns (default 1)
:export <path>Export session to markdown
:messagesToggle the notification drawer (aliases: :msgs, :notifications)
:paletteOpen command palette (alias: :commands, key: F1)
:pick [source]Open a fuzzy picker (notes, files, commands)
:mcpShow MCP server status
:pluginsShow loaded plugins
:reload [name]Reload a plugin (no name = all)
:configShow current configuration
:lua <expr>Evaluate Lua daemon-side (shorthand: := <expr>)
:quit / :qExit chat
:help [topic]Show help (alias: :h)

An unknown : command shows a warning with a did-you-mean suggestion.

The :set Command

Crucible’s :set command follows Vim conventions for runtime configuration.

Setting Values

:set option=value # Set string/number option
:set option:value # Alternative syntax
:set option value # Space-separated (if unambiguous)

Examples:

:set model=claude-3-5-sonnet
:set thinkingbudget=high

Boolean Options

:set option # Enable boolean option
:set nooption # Disable boolean option (prefix with 'no')
:set option! # Toggle option
:set invoption # Toggle option (alternative)

Examples:

:set thinking # Enable thinking display
:set nothinking # Disable thinking display
:set precognition! # Toggle precognition

Querying Values

:set option? # Show current value
:set option?? # Show modification history
:set # Show all modified options
:set all # Show all options with values

Resetting Values

:set option& # Reset to default value
:set option^ # Pop one modification (undo last change)

Available Options

Model

OptionTypeDescription
modelstringCurrent LLM model (e.g., claude-3-5-sonnet, gpt-4o)

Thinking / Reasoning

OptionTypeDescription
thinkingboolShow thinking/reasoning tokens in this client (TUI-local)
thinkingbudgetpresetToken budget for extended thinking (presets only)

Thinking Budget Presets:

PresetTokensDescription
off0Disable extended thinking
minimal512Brief reasoning
low1024Light reasoning
medium4096Moderate reasoning
high8192Thorough reasoning
maxunlimitedMaximum reasoning

thinkingbudget accepts presets only — a raw token count like :set thinkingbudget=8000 is rejected with the list of valid presets.

Examples:

:set thinkingbudget=high # Use preset
:set thinkingbudget=off # Disable thinking

Display

OptionTypeDescription
syntax_themestringSyntax highlighting theme for code blocks and diffs. Validated against the loaded theme set; derived follows the UI colorscheme
show_diffsboolRender inline diffs for file-edit tool calls
completion_styleenumPopup presentation: auto (minimal anchored boxes for @/[[ completions, full-width panel for / and :), panel, or minimal

Agent Loop

These sync to the daemon and are session-scoped:

OptionTypeDescription
maxiterationsnumber/noneCap on agent loop iterations per turn
executiontimeoutseconds/noneTool execution timeout
outputvalidationstringOutput validation mode
validationretriesnumberRetries when output validation fails

Context Management

OptionTypeDescription
contextbudgetnumber/noneContext token budget (alias: context_budget)
contextstrategyenumtruncate, sliding_window, or summarize
contextwindownumber/noneSliding window size in message pairs
autocompact_threshold0.0–1.0/off/defaultAuto-compaction trigger as a fraction of the context budget

Precognition

OptionTypeDescription
precognitionboolToggle precognition (auto-RAG context injection, daemon-side)
precognition.resultsnumberNumber of precognition results to inject (1–20, default: 5)

Permissions

OptionTypeDescription
perm.show_diffboolShow diffs in permission modals by default
perm.autoconfirm_sessionboolAuto-approve all permissions for the session
perm.full_commandsboolShow the full command/args (wrapped) in permission prompts; off = compact one-line view. Default: on

Unknown Keys

A key the classifier doesn’t recognize is not an error: it is stored locally (so :set key? round-trips) and mirrored into the daemon’s app-config store, so :lua cru.config.get(key) and plugins see the same typed value.

The :model Command

Switch models at runtime:

:model # Open model picker popup
:model <name> # Switch directly to model

The model picker shows available models from your configured provider. Navigate with arrow keys, select with Enter.

Examples:

:model claude-3-5-sonnet
:model gpt-4o
:model llama3.2

Model changes persist for the session and sync to the daemon.

The :pick Command

Open a fuzzy picker popup:

:pick # Pick from notes, files, and commands
:pick notes # Notes from your kiln
:pick files # Workspace files
:pick commands # Slash and REPL commands

Selecting a note inserts a [[wikilink]], a file inserts an @path attachment, and a command puts the command in the input. (:pick sessions is accepted but currently lists nothing — sessions aren’t tracked in TUI state yet.)

Other Commands

:quit # Exit chat (alias: :q)
:help [topic] # Show help (alias: :h; topics: commands, keys, config, tools)
:clear # Clear conversation (start fresh)
:undo [N] # Undo the last N agent turns (also /undo)
:export <path> # Export session to markdown (~ expands)
:messages # Toggle notification drawer
:palette # Open command palette (F1)
:mcp # MCP servers with connection status and tool counts
:plugins # Loaded plugins with state and version
:reload [name] # Reload one plugin, or all when no name given
:config # Show current configuration summary
:lua <expr> # Evaluate a Lua expression in the daemon's plugin
# runtime; result renders as a system message (:= works too)

Configuration Layers

The :set command modifies a runtime overlay on top of your base configuration:

┌─────────────────────────────┐
│ :set commands (runtime) │ ← Highest priority
├─────────────────────────────┤
│ Environment variables │
├─────────────────────────────┤
│ ~/.config/crucible/ │
│ config.toml (user) │
├─────────────────────────────┤
│ Built-in defaults │ ← Lowest priority
└─────────────────────────────┘

Runtime changes do not persist to config files. They last for the current session only.

Modification Tracking

Use :set option?? to see where a value came from:

:set thinkingbudget??
# Output:
# thinkingbudget = high
# [Command] high (2025-01-20 14:30:00)
# [File] medium (base config)

Option Shortcuts

Some options have short aliases:

ShortcutFull Path
model(dynamic — resolved per provider)
thinking(virtual, TUI-only)
thinkingbudgetllm.thinking_budget
syntax_themecli.highlighting.theme

Examples

Quick Model Switch

:model gpt-4o

Enable Extended Thinking

:set thinking
:set thinkingbudget=high

Check Current Config

:set model?
:set thinkingbudget?

Reset to Defaults

:set thinkingbudget&

Debug Configuration

:set all # See everything
:set # See what you changed
:set model?? # See modification history

See Also