# Configuration

[Docs](https://www.rightnowai.co/docs) / [RightNow Agent](https://www.rightnowai.co/docs/agent) / [Configuration](https://www.rightnowai.co/docs/configuration)

Updated 2026-10-17

> **Release status**
>
> RightNow Agent, the terminal coding agent, is paused. Its guides stay online as reference.

Inspect configuration in an existing installation before changing its files.

## Inspect current settings

**Text**

```text
rightnow doctor
```

Expected: a terminal report with any configured model and endpoint facts.

Check the file locations and precedence below before editing a setting.

## Configuration files

The effective product home comes from a non-empty `RIGHTNOW_HOME`, an eligible legacy home, or the platform default. The default is `%USERPROFILE%\.rightnow` on Windows and `~/.rightnow` on macOS and Linux.

An eligible legacy home is the legacy home variable, or a legacy home directory that has a `config.toml` while `.rightnow` does not exist.

**Configuration files**

| File | Role |
| --- | --- |
| &lt;RIGHTNOW\_HOME&gt;/config.toml | active configuration |
| &lt;RIGHTNOW\_HOME&gt;/requirements.toml | user requirements; pinned values win over config.toml |
| &lt;RIGHTNOW\_HOME&gt;/managed\_config.toml | user copy of managed configuration |
| .rightnow/config.toml | project MCP servers, plugins, permission rules, and the MCP output cap |
| &lt;RIGHTNOW\_HOME&gt;/pager.toml | TUI appearance |
| &lt;RIGHTNOW\_HOME&gt;/installer.toml | installer and update state |
| config/rightnow.toml | source template, embedded in the binary |

## Precedence and project scope

File layers merge in this order; later layers win:

1. System managed\_config.toml (macOS and Linux)
2. &lt;RIGHTNOW\_HOME&gt;/managed\_config.toml
3. &lt;RIGHTNOW\_HOME&gt;/config.toml
4. &lt;RIGHTNOW\_HOME&gt;/requirements.toml
5. System requirements.toml (macOS and Linux)
6. macOS managed preferences

CLI flags and environment variables then follow field-specific resolvers; the [configuration reference](https://www.rightnowai.co/docs/config-reference) gives each key's order.

Project configuration is limited to MCP servers, plugins, permission rules, and `[mcp] max_output_bytes`. It is read from `.rightnow/config.toml` in each directory from the repository root to the working directory.

Project MCP servers use the nearest definition by server name. Trusted project plugin paths and project disabled entries extend the user configuration. Permission rules merge by severity, with deny above ask above allow.

## Synchronization rules

Every start seeds a missing `config.toml` from the shipped template, then synchronizes it. The template requires `[rightnow].config_version = 6`.

- A config without `config_version` counts as version 0 and is upgraded. A non-integer or negative version is rejected.
- An older valid config is backed up, keeps owner values and unknown keys, gains missing template keys, and advances to version 6. On all platforms the upgrade also re-pins four keys to the template value when the user value differs: `turn_time_budget_secs`, `turn_model_call_limit`, `turn_repeated_failure_limit`, and `act_first`. A tuned value is reset once, at the upgrade.
- Version 6 with missing required keys, or a version newer than 6, is reported and left untouched.
- The active file is re-read before replacement. A concurrent change aborts the upgrade and keeps the backup.
- Startup prints only the upgrade summary; `config sync` also prints each re-pinned key.

## Build from source

The following examples require a binary built from the RightNow Agent source.

Explicit sync of a version-5 file outside the active home (startup has already synchronized the active one):

**rightnow: configuration sync**

Windows

```text
RightNow config upgrade: re-pinned [rightnow].turn_time_budget_secs from 45 to 600.
RightNow config upgrade: re-pinned [rightnow].turn_model_call_limit from 7 to 24.
RightNow config upgrade: re-pinned [rightnow].turn_repeated_failure_limit from 1 to 3.
RightNow config upgrade: re-pinned [rightnow].act_first from true to false.
RightNow upgraded config version 5 to 6. Backup: <backup-path>
```

### Synchronize the source template

From the RightNow Agent repository root in Windows PowerShell, synchronize the default home file against the source template by passing `config sync`, `--config` with `$HOME\.rightnow\config.toml`, and `--template` with `.\config\rightnow.toml` to your binary built from source.

If your effective product home is different, replace the `--config` path with that home's `config.toml`. `config sync` runs before the main parser, so it may not appear in help output.

## Shipped template

`[rightnow]` values in `config/rightnow.toml`, and what the parser uses when a key is omitted:

**Shipped template values**

| Key | Shipped | When omitted |
| --- | --- | --- |
| config\_version | 6 | 0 |
| warm\_daemon | true | false |
| warm\_daemon\_persistent | false | false |
| one\_call\_transactions | true | false |
| preload\_named\_files | true | false |
| workspace\_map | true | false |
| act\_first | false | false |
| retry\_recoverable\_tool\_failures | true | false |
| bounded\_prompt\_slimming | true | false |
| dynamic\_tools | true | false |
| context\_packing | not set | false |
| eager\_tools | true | false |
| turn\_model\_call\_limit | 24 | 12 |
| turn\_time\_budget\_secs | 600 | 30 |
| turn\_repeated\_failure\_limit | 3 | 2 |
| turn\_spend\_limit\_microcents | 5000000 | no cap; 0 also disables it |
| web\_fetch | true | true when config\_version &gt; 0 |
| web\_search\_engine | duckduckgo | duckduckgo when config\_version &gt; 0 |
| disallowed\_tools | image and video generation tools | the same four tools when config\_version &gt; 0 |

Turn limits clamp to 1 to 1024 model calls, 1 to 86400 seconds, and 2 to 16 repeated failures. Spend is in microcents: one millionth of a cent.

The template's other sections:

**TOML**

```toml
[memory]
enabled = true

[memory.embedding]
model = ""

[ui]
voice_keybind_enabled = false
theme = "rightnow-night"

[compat.claude]
skills = false
rules = false
agents = false

[compat.cursor]
skills = false
rules = false
agents = false

[cli]
auto_update = false

[features]
remote_fetch = false
telemetry = false
turn_summary = false

[agent]
system_prompt_label = "RightNow"
```

- `model = ""` keeps memory embeddings off, so memory search is full-text only.
- `voice_keybind_enabled = false` keeps push-to-talk dictation off.
- `auto_update = false` keeps background updates off; manual updates remain available.
- `remote_fetch = false` turns off optional remote model-catalog fetches. It does not disable the model API, web tools, MCP servers, hooks, or custom providers.
- `telemetry = false` turns off the outbound telemetry path. It keeps the `logs/unified.jsonl` diagnostic log under the effective product home.
- `turn_summary = false` skips the extra model call that writes a summary after each turn.

Provider and model entries are on [Providers](https://www.rightnowai.co/docs/providers). Check the [RunInfra key resolution](https://www.rightnowai.co/docs/authentication#runinfra-key-resolution-caption) when credentials overlap.

What the `[compat]` keys turn off is on [Project Rules](https://www.rightnowai.co/docs/project-rules#shipped-compatibility).

## Startup defaults

Before any command runs, the installed binary exports the resolved home as `RIGHTNOW_HOME` and its legacy twin. For agent launches (no subcommand, `agent`, or `dashboard`) it also sets:

- Web fetch on: an unset `RIGHTNOW_WEB_FETCH` falls back to its legacy alias, then to `1`.
- `RIGHTNOW_WEB_SEARCH_ENGINE` to `duckduckgo` when unset or empty.
- `--disallowed-tools` with `image_gen`, `image_edit`, `image_to_video`, and `reference_to_video`, unless you pass that flag.

These defaults outrank `web_fetch`, `web_search_engine`, and `disallowed_tools` in `config.toml`. To change them, set `RIGHTNOW_WEB_FETCH=0`, set `RIGHTNOW_WEB_SEARCH_ENGINE` to `brave`, pass your own `--disallowed-tools`, or pass `--disable-web-search` to remove both web tools.

The Windows source launcher sets the same defaults. It takes the home from a non-empty `RIGHTNOW_HOME`, then the legacy home variable, then `%USERPROFILE%\.rightnow`, with no legacy-directory fallback.

It prefers `RIGHTNOW_WEB_FETCH` for web fetch, otherwise its legacy alias, otherwise `1`, then synchronizes both names.

Neither it nor the installed binary adds `--system-prompt-override`; [Session-only rules](https://www.rightnowai.co/docs/project-rules#session-only-rules) explains what an override changes when a session resumes.

## Notifications

Notifications are focus-gated by default and fire for a completed turn or required approval after three seconds unfocused.

Configuration selects the terminal protocol, event list, custom hooks, title items, progress display, and macOS or Linux sleep prevention; the keys are under `[ui.notifications]` in the [configuration reference](https://www.rightnowai.co/docs/config-reference).

Run `/doctor` in the affected session when notifications do not arrive; it reports the detected protocol, focus issues, relevant file, and available fixes. If it cannot start, see [Troubleshooting](https://www.rightnowai.co/docs/troubleshooting); for external telemetry, see [Monitoring](https://www.rightnowai.co/docs/monitoring).

## Removed local-runtime keys

These `[rightnow]` keys belonged to the local runtime that 1.0.4 removed. The parser ignores each one with a warning; back up the config and delete them.

- model\_backend
- cascade
- persistent\_prefix\_cache
- workspace\_grounded\_grammars
- verification\_parallel\_candidates
- warm\_daemon\_model\_keep\_alive\_seconds
- warm\_daemon\_model\_prewarm
- warm\_daemon\_model\_prewarm\_on\_battery
- llama\_server\_auto\_start
- llama\_server\_fallback\_model
- llama\_server\_root
- llama\_server\_target\_model
- llama\_server\_draft\_model
- llama\_server\_speculative
- llama\_server\_spec\_draft\_n\_max
- llama\_server\_spec\_draft\_n\_min
- llama\_server\_spec\_draft\_p\_min
- llama\_server\_parallel\_slots
- llama\_server\_context\_size
- ollama\_parallel\_requests
- rpc\_pool\_workers
- rpc\_pool\_enabled
- rpc\_pool\_deep\_tier\_only
- device\_profile

## Next step

Look up the exact key and its precedence in the [configuration reference](https://www.rightnowai.co/docs/config-reference).

## Previous

[Parallel Chores](https://www.rightnowai.co/docs/parallel-chores)

## Next

[Providers](https://www.rightnowai.co/docs/providers)
