# Configuration

Rho stores persistent config at `~/.rho/config.toml` by default.

```toml
provider = "openai"
model = "gpt-5.5"
max_output_bytes = 12000
auth = "api-key" # or "codex", "anthropic-api-key", or "github-copilot"
reasoning = "medium" # off, minimal, low, medium, high, or xhigh
show_reasoning_output = true
check_for_updates = true
auto_compact = false
compact_threshold_percent = 85
compact_recent_messages = 8
rtk = true
```

## CLI overrides

Passing `--provider`, `--model`, `--auth`, or `--reasoning` updates the config file and makes the choice the future default.

```bash
rho --provider openai --auth api-key --model gpt-5.5
rho --provider openai-codex --auth codex --model gpt-5.5
rho --provider anthropic --auth anthropic-api-key --model claude-sonnet-4-5
rho --provider github-copilot --auth github-copilot --model gpt-4.1
rho --reasoning high
```

These values select [authentication and models](/authentication-and-models).

You can load and save a specific config file with:

```bash
rho --config ~/.rho/config.toml
```

`--no-system-prompt` and `--no-tools` are only available on the command line and apply only to the current run.

## TUI updates

In the [interactive TUI](/interactive-tui), [`/config`](/interactive-tui#commands) opens a picker for configuration values. The `reasoning` row cycles through `off`, `minimal`, `low`, `medium`, `high`, and `xhigh`, saves immediately, and applies to the current session. The `show_reasoning_output` row toggles whether reasoning text is shown in the TUI and applies on the next model call. The `check_for_updates` row toggles startup update checks against GitHub releases. The `max_output_bytes` row opens a numeric input and saves for the next session.

[`/login`](/interactive-tui#commands) stores credentials in the OS credential store, not in this config file. [`/logout`](/interactive-tui#commands) deletes stored credentials. [`/model`](/interactive-tui#commands) saves the selected `provider` and `model`. The picker shows entries from Rho's static [model catalog](/authentication-and-models#providers-and-model-catalog) and cached dynamic provider model lists for providers with available auth, and `/model provider/model` can switch explicitly. GitHub Copilot uses `github-copilot/<model>` names and falls back to static entries when no dynamic cache exists.

## Reasoning options

`reasoning` is the user-facing thinking level. Supported values are `off`, `minimal`, `low`, `medium`, `high`, and `xhigh`. For supported OpenAI Responses providers, `off` omits the reasoning object. Other levels send `reasoning.summary = "auto"`; `minimal` maps to effort `low`, while `low`, `medium`, `high`, and `xhigh` map to matching effort values.

`show_reasoning_output` controls whether streamed reasoning text is displayed and stored in the TUI transcript. It defaults to `true`. Changing it from `/config` applies to the next model call.

## Update checks

`check_for_updates` controls whether Rho checks the latest GitHub release at TUI startup. It defaults to `true`. When a newer version is available, the session header shows an update notice and points to `rho update`.

## Tool output limit

`max_output_bytes` controls how much output Rho keeps from [tool](/tools-workspace) calls such as command output and file reads.

## RTK

`rtk` enables built-in RTK command rewriting when the `rtk` binary is available. It defaults to `true`; set `rtk = false` to leave shell commands unchanged.

## Auto compaction

`auto_compact` enables summarizing older conversation history when the estimated current context approaches the model window. It is disabled by default. `compact_threshold_percent` controls the trigger point, and `compact_recent_messages` controls how many recent messages are kept verbatim after older history is summarized.
