CLI Reference
smelt [MESSAGE]
smelt auth
smelt config default
smelt export history [--output <PATH>] <SESSION>
smelt export requests [--output <PATH>] <SESSION>
smelt inspect [--session <ID_OR_PREFIX>] [--port <PORT>] [--open | --no-open]
smelt upgrade [--channel stable|unstable]
smelt upgrade check [--channel stable|unstable]
When a message is provided, it auto-submits on startup. Running with no
arguments and no config file launches the interactive setup wizard.
CLI flags always take precedence over config values. Runtime choices made inside
the TUI, such as /model, are remembered for the next launch unless disabled
with smelt.remember.set(...).
Subcommands
Subcommand
Description
smelt auth
Provider picker for login/logout flows and API-key provider snippets
smelt config default
Print a default init.lua template with built-in setting values and commented examples
smelt export history
Export semantic history rows for a saved session as JSONL
smelt export requests
Export request audit entries for a saved session as JSONL
smelt inspect
Start the local session/request inspector web UI; useful for debugging sessions and provider traces
smelt upgrade
Check for and install the newest smelt build
smelt upgrade check
Check for updates without installing
smelt export history and smelt export requests options:
Flag
Description
<SESSION>
Session id or unique prefix to export
-o, --output <PATH>
Output file path. Defaults to stdout
smelt inspect options:
Flag
Description
-s, --session <ID>
Session id or prefix to open initially
--port <PORT>
Fixed loopback port to bind instead of an ephemeral port
--open
Force opening a browser even when GUI auto-detection is unavailable
--no-open
Do not open a browser; only print the URL
smelt upgrade options:
Flag
Description
--channel stable
Use the newest tagged GitHub release and prebuilt artifact (default)
--channel unstable
Use main and install with cargo install --git ... --branch main
smelt upgrade check accepts the same --channel flag and never installs.
Connection
Flag
Description
--config <PATH>
Path to a custom init.lua
-m, --model <MODEL>
Model to use. With configured providers, prefer provider_name/model_name; with --api-base, use the provider-native model name
--api-base <URL>
API base URL (overrides config)
--api-key-env <VAR>
Env var holding the API key
--type <TYPE>
Provider type: openai-compatible, openai, codex, anthropic-compatible, anthropic, copilot, kimi-code (auto-detected from URL when omitted)
Auto-detection:
URL contains
Detected type
api.kimi.com/coding
kimi-code
api.anthropic.com
anthropic
api.openai.com
openai
chatgpt.com
codex
githubcopilot.com
copilot
anything else
openai-compatible
Behavior
Flag
Description
--mode <MODE>
Starting mode: normal, plan, apply, yolo
--mode-cycle <MODES>
Modes for Shift+Tab cycling (comma-separated)
--reasoning-effort <LEVEL>
Starting reasoning: off, low, medium, high, max
--reasoning-cycle <LEVELS>
Levels for Ctrl+T cycling (comma-separated)
--no-tool-calling
Disable tools (chat-only)
--system-prompt <PROMPT>
Override the system prompt (string or file path)
--no-system-prompt
Disable system prompt and AGENTS.md
--set <KEY=VALUE>
Override a config setting (repeatable; see Settings for valid keys)
Reasoning effort controls how deeply the model thinks before responding.
Supported by Anthropic (thinking), OpenAI (reasoning), openai-compatible,
and anthropic-compatible providers that support reasoning_effort. For OpenAI,
max maps to xhigh. Models that don't support thinking ignore this setting.
Sampling
Flag
Description
--temperature <TEMP>
Sampling temperature
--top-p <VALUE>
Top-p (nucleus) sampling
--top-k <VALUE>
Top-k sampling
Sessions
Flag
Description
-r, --resume [SESSION_ID]
Resume a session (picker if no ID)
--ephemeral
Do not persist this interactive session or show it in resume lists
-w, --worktree [NAME]
Start in a managed git worktree, optionally named NAME
Runtime
Flag
Description
--version / -v
Print the smelt build identity (same as /version)
--headless
No TUI; requires a message argument. See Headless .
--format <FORMAT>
Headless output format: text (default) or json (JSONL events)
--verbose
Show tool output in headless mode
--color <WHEN>
Color output: auto (default), always, never
--log-level <LEVEL>
debug, info, warn, error (default: info)
--bench
Print timing summary on exit