Skip to content
Docs navigation: RightNow Agent / Configuration

Configuration

DocsRightNow AgentConfiguration Updated

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
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.

FileRole
<RIGHTNOW_HOME>/config.tomlactive configuration
<RIGHTNOW_HOME>/requirements.tomluser requirements; pinned values win over config.toml
<RIGHTNOW_HOME>/managed_config.tomluser copy of managed configuration
.rightnow/config.tomlproject MCP servers, plugins, permission rules, and the MCP output cap
<RIGHTNOW_HOME>/pager.tomlTUI appearance
<RIGHTNOW_HOME>/installer.tomlinstaller and update state
config/rightnow.tomlsource 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. <RIGHTNOW_HOME>/managed_config.toml
  3. <RIGHTNOW_HOME>/config.toml
  4. <RIGHTNOW_HOME>/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 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

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:

KeyShippedWhen omitted
config_versionShipped: 6When omitted: 0
warm_daemonShipped: trueWhen omitted: false
warm_daemon_persistentShipped: falseWhen omitted: false
one_call_transactionsShipped: trueWhen omitted: false
preload_named_filesShipped: trueWhen omitted: false
workspace_mapShipped: trueWhen omitted: false
act_firstShipped: falseWhen omitted: false
retry_recoverable_tool_failuresShipped: trueWhen omitted: false
bounded_prompt_slimmingShipped: trueWhen omitted: false
dynamic_toolsShipped: trueWhen omitted: false
context_packingShipped: not setWhen omitted: false
eager_toolsShipped: trueWhen omitted: false
turn_model_call_limitShipped: 24When omitted: 12
turn_time_budget_secsShipped: 600When omitted: 30
turn_repeated_failure_limitShipped: 3When omitted: 2
turn_spend_limit_microcentsShipped: 5000000When omitted: no cap; 0 also disables it
web_fetchShipped: trueWhen omitted: true when config_version > 0
web_search_engineShipped: duckduckgoWhen omitted: duckduckgo when config_version > 0
disallowed_toolsShipped: image and video generation toolsWhen omitted: the same four tools when config_version > 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
[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. Check the RunInfra key resolution when credentials overlap.

What the [compat] keys turn off is on Project Rules.

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 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.

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; for external telemetry, see 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.