All pages
On this page

Settings

Settings is the dialog where you turn providers on, set the limits a relay works under, pair relays and choose how a device notifies you. This page is the lookup table: one row per control. How a feature works is explained on the page each row links to.

Opening it #

Open the ⋯ menu in the chat header and choose ⚙️ Settings. You do not need an open conversation. On a fresh install the empty screen has an Open Settings button, and New Chat shows Open Settings → Providers while no provider is ready, so you can turn a provider on before the first chat.

The dialog has seven tabs, in this order: General, Providers, Relays, Previews, Sharing Added in 0.9.11, Notifications and Features. It reopens on the tab you used last, and Providers on the sub-tab you used last. Both are remembered by the browser. The read-only view of a shared conversation has no Settings.

Where a setting is kept #

Stored Meaning
Relay Saved in the relay's database. It applies to every browser that connects to this relay.
This browser Saved in the browser you are using. Another browser or device keeps its own value.
Relay, per device Saved on the relay, but separately for each device that subscribed to notifications.

Only five controls are kept in the browser: Theme, Text scaling, Show Suspend host action, Jump to the end when I send a message and Messages kept per conversation for switching back. Everything else is a relay setting.

How a change is saved #

  • Switches, sliders, selects and options on General, Relays, Sharing, Notifications and Features save the moment you change them. A short notice or a line under the control confirms it.
  • Text fields on General (Relay name, Default CWD for new sessions) and Public address on Relays save when you leave the field.
  • On the Providers sub-tabs, text fields and selects need the sub-tab's own Save … button. The enable switches there save at once.

General #

Control Kind, stored Default Range or options What it does
Theme Select, this browser Dark Dark, Light Colors of the web UI (Appearance). Also sets the installed app's icon and toolbar color.
Text scaling Select, this browser 100% 50% to 150% in 10% steps Scales all text. Ctrl (or Cmd) with the mouse wheel, or a two-finger pinch, change it too, in the same 50% to 150% range; then the select shows the in-between value.
Show Suspend host action Switch, this browser On Shows or hides 💤 Suspend host (Suspending the host) in the ⋯ menu. The entry is shown by default whatever the relay runs on, and nothing hides it for you: the action works only when the relay runs on Windows, and on another system its window says "Host suspend is only available when the relay runs on Windows." with only a Close button. Switch this off on such a relay.
Jump to the end when I send a message Switch, this browser On Added in 0.9.11 Sending a message takes you to the end of the conversation. Off, you stay where you are reading. The transcript never moves by itself while you read further up; see Scrolling.
Messages kept per conversation for switching back Slider, this browser 200 messages 100 to 1,000 in steps of 100, then No limit Added in 0.9.12 How many loaded messages each of the last eight conversations keeps around the place you were reading, so that switching back returns there with the older messages you had loaded. No limit keeps them all, at the cost of the page's memory.
Max turn duration Slider, relay 60 min 0 to 600 min, steps of 5; 0 shows No limit The longest one turn may run before the relay puts it back in the queue. See Turns and the queue.
Background task timeout Slider, relay 4 h 0 to 600 min, steps of 5; 0 shows No limit How long background work alone may keep a session alive after its reply. Then the tasks are stopped. See Turns and the queue.
Mark a background task as quiet after Slider, relay 10 min 1 to 120 min, steps of 1 Added in 0.9.12 A running shell command or monitor that has written nothing for this long gets an amber no output for N min on its row and in its console. See Quiet tasks.
After a relay restart, tell interrupted sessions to carry on Switch, relay Off Added in 0.9.13 A session whose turn a relay restart cut off for good gets one note from the relay once it is back, asking the agent to check what it was doing and carry on. Your message is never sent again; idle, archived and paused sessions get nothing. See Telling an interrupted session to carry on.
Ask after a queued relay restart has waited Select, relay 30 min 5 min, 10 min, 15 min, 30 min, 1 h, 2 h, 4 h, No limit Added in 0.9.13 A queued relay restart waits for the running turns and holds new messages meanwhile. After this long the banner asks whether to restart now, keep waiting or cancel; it never restarts while turns run, and still restarts as soon as they end. No limit waits until the turns end. See When the wait is long.
Keep sub-agent tool output Select, relay 90 days 7 days, 14 days, 30 days, 90 days, Always After this many days the relay removes the tool inputs and results from finished sub-agents' records, once a day. Thoughts, replies, notes and the one-line summary of each call stay.
Autostart (Windows) Three options, relay Off Off; At sign-in — visible terminal after you log on; At system startup — headless, no logon needed Starts the relay by itself. Shown only when the relay runs on Windows (a radio group; it is hidden on other systems). Switching to or from At system startup asks for one admin confirmation on the PC itself; a declined one changes nothing. Added in 0.9.15 The same rules as oar autostart: an entry OAR did not make (a boot task or launcher edited by hand, a task someone else made, a hand-made Startup entry) is never deleted or replaced, and a switch it stands in is refused with the reason; oar autostart <mode> --replace replaces it, keeping a copy. See Autostart.
Relay name Text, relay empty (shown as OAR) up to 60 characters The installed app's name on every device, and the name paired relays know this relay by; while it is empty they see the machine's host name. Reset by emptying it.
Check for updates automatically Switch, relay Off When on, the relay asks oar.sh for the latest version about twice a day. With it off, OAR sends nothing. Locked when OAR_NO_UPDATE_CHECK is set in the relay's environment.
Check for updates Button Checks now, whatever the switch says. The line next to it shows when the last check ran. Disabled when OAR_NO_UPDATE_CHECK is set.
Update Button Appears when a newer version is found, with a release notes link. Installs it with npm and restarts the relay once no turn is running (Updating OAR). Shown only for a global npm install; a git checkout shows a hint to pull and restart instead.
Dismiss Button Hides the found version until a newer one appears. Not offered for a critical update.
Cancel update Button Appears while an update installs. Stops it. An Update log folds out below.
Default CWD for new sessions Text, relay empty (the relay's workspace root) a folder path on the relay's machine The working directory new sessions start in when you pick none. See Starting a conversation.

After an update, a line says Updated to <version>. or that the update did not apply; Dismiss clears it. The terminal twin of the update buttons is oar update.

The auto-compact window is not here. It belongs to each conversation; see Compacting.

Providers #

One sub-tab per provider, in this order: Copilot, OpenAI, Claude, Claude API Added in 0.9.18, Claude Cloud, Grok, Cursor, DeepSeek Added in 0.9.17. Each provider's page explains its controls in depth. Providers shows how to switch them on.

All controls on these sub-tabs are stored on the relay.

Copilot #

Control Kind Default Range or options What it does
GitHub Copilot CLI Status row Shows whether the CLI is found, its version and where it is. It has no buttons: you install and update it with npm on the relay's machine.
Copilot engine Select SDK — default Extension; SDK — default Which engine runs new Copilot conversations. A relay that cannot run the SDK engine uses Extension.
Save Copilot settings Button Saves the engine.

See GitHub Copilot.

OpenAI #

Control Kind Default Range or options What it does
OpenAI API key Password field empty Your key. Leave it empty to keep the saved key.
Enable OpenAI API key for New Chat model selection Switch on after the first save unavailable until a key is saved Offers OpenAI and OpenAI Image in New Chat.
OpenAI model ID Text gpt-4o The default model.
Base URL Text https://api.openai.com/v1 optional Another OpenAI-compatible endpoint.
Save OpenAI settings Button Saves the fields and reads the endpoint's model list.
Remove saved key Button After a confirmation, deletes the key and switches OpenAI off. Refused while an OpenAI conversation has a message.

See OpenAI.

Claude #

Control Kind Default Range or options What it does
Claude Code CLI Status row Shows the CLI's state. Buttons Install, Update, Switch to native installer, Cancel and Dismiss appear as the state needs; an Install log folds out.
Relogin Button Starts a login to a Claude account from the browser: open the login page, paste the code into the field Paste the code from claude.ai, Submit code. Copy link and Cancel are in the same area.
Logout Button After a confirmation, logs the relay host out of Claude.
Enable Claude for New Chat model selection Switch Off Offers Claude in New Chat. Applies at once.
Claude model ID Text claude-sonnet-5 The model a Claude conversation starts with.
Commit attribution Select OAR OAR — Co-authored-by: Open Agent Relay (model); Vanilla — Claude Code's own attribution; Off — no attribution What commits and pull requests made by Claude say about their author.
Claude background command limit Added in 0.9.12 Slider 2 h 30 min to 8 h, in 30-minute steps How long a command Claude runs in the background may take before Claude Code stops it, when Claude gives it no timeout of its own. Added in 0.9.17 It applies to DeepSeek chats too, which run Claude Code as well, and Added in 0.9.18 to Claude API chats. See Background command limit.
Save Claude settings Button Saves the model ID, the attribution and the background command limit.

See Claude and its CLI row.

Claude API Added in 0.9.18 #

Control Kind Default Range or options What it does
Enable Claude API for New Chat and the billing switch Switch on after the first save unavailable until a key is saved Offers Claude API in New Chat and the billing toggle in Claude chats. Applies at once.
The key field under Claude API (Claude Console API key…) Password field empty Your key. Stored on the relay and never sent to browsers. Once a key is saved the field reads Saved API key (enter to replace); leave it empty to keep the saved key.
Default model Select the Claude tab's model if the key offers it, else the first Sonnet the models the key may use The model a Claude API conversation starts with. See Models.
Monthly cap in US dollars (optional) Number empty (No cap) 0.01 to 1,000,000 Refuses new turns on the key once this month's estimated spend reaches it. See Monthly cap.
Save Claude API settings Button Saves the fields. A new key reads the models the key may use.
Refresh models Button Asks Anthropic again which models the key may use.
Remove saved key Button After a confirmation, deletes the key and switches Claude API off. Refused while a Claude API conversation has a message or a queued one.
Claude tab Button Opens the Claude sub-tab. Commit attribution, the background command limit, the effort levels and the compaction window are shared with Claude and set there.

See Claude API.

Claude Cloud #

Control Kind Default Range or options What it does
Enable Claude Cloud for New Chat Switch Off refused while the host has no Claude login Offers Claude Cloud in New Chat and turns on the live account figures in Check Usage.
Claude login Button Jumps to the Claude sub-tab, where the login is changed. Shown, with the account line, once the settings loaded.
Cloud environment Select the account's first active environment, stored when you switch Claude Cloud on the account's environments, shown as name and id The environment new cloud sessions run in.
Default model Select claude-sonnet-5-5 the Claude provider's models without their [1m] variants, plus the default The model a new cloud chat starts with.
Save Claude Cloud settings Button Saves the environment and the model.
Open claude.ai/code Link Opens claude.ai/code in a new tab.

See Claude Cloud.

Grok #

Control Kind Default Range or options What it does
Grok CLI Status row Shows the CLI's state, with Install, Update, Switch to native installer, Cancel and Dismiss as the state needs.
Sign in Button Starts a device-code sign-in on the relay host. The area shows a link, Copy link, the code to confirm and Cancel.
Sign out Button After a confirmation, signs the relay host out of Grok.
Enable Grok for New Chat model selection Switch Off Offers Grok in New Chat. Applies at once.
Grok model ID Text grok-4.5 The model a Grok conversation starts with.
Save Grok settings Button Saves the model ID.
Monthly allowance (USD) Number empty 0 or more, cents Your monthly budget, for the estimated remaining meter in Check Usage.
Billing resets on day of month Number 1 1 to 31 The day the billing cycle starts.
Save allowances Button Saves both fields.
Reset tracked spend Button After a confirmation, clears the spend counted for the cycle. Use it after a change of plan or account.

See Grok and its allowance.

Cursor #

Control Kind Default Range or options What it does
Cursor API key Password field empty Your key. Stored on the relay and never sent to browsers. Leave it empty to keep the saved key.
Enable Cursor for New Chat model selection Switch on after the first save unavailable until a key is saved Offers Cursor in New Chat.
Cursor model ID Text composer-2.5 The model a Cursor conversation starts with.
Save Cursor settings Button Saves the key and the model, and reads the models the key can use.
Remove saved key Button After a confirmation, deletes the key and switches Cursor off. Refused while a Cursor conversation has a message.
Cursor Models pool (USD) Number empty 0 or more, cents Monthly allowance of the Cursor Models pool.
Other Models pool (USD) Number empty 0 or more, cents Monthly allowance of the Other Models pool.
Billing resets on day of month Number 1 1 to 31 The day the billing cycle starts.
Save allowances Button Saves the three fields.
Reset tracked spend Button After a confirmation, re-baselines the tracking. Use it after a change of plan or account.
Dashboard session token (live plan bars) Password field empty, or found on the host The WorkosCursorSessionToken cookie value. Unlocks the live Included in plan bars in Check Usage.
Save token / Remove Buttons Save the token, or delete it after a confirmation.

See Cursor and its usage.

DeepSeek Added in 0.9.17 #

Control Kind Default Range or options What it does
Enable DeepSeek for New Chat model selection Switch on after the first save unavailable until a key is saved Offers DeepSeek in New Chat. Applies at once.
The key field under DeepSeek (DeepSeek API key…) Password field empty Your key. Stored on the relay and never sent to browsers. Once a key is saved the field reads Saved API key (enter to replace); leave it empty to keep that key. See API key.
Default model Select deepseek-flash the models DeepSeek lists; deepseek-flash and deepseek-v4-pro before the first list The model a DeepSeek conversation starts with. See Models.
Commit attribution Select OAR OAR: Co-authored-by: Open Agent Relay (DeepSeek …); Off: no attribution What commits made in DeepSeek chats say about their author.
Monthly budget (optional) Number empty 0 or more, cents; empty or 0 for no budget The budget the Check Usage card measures this calendar month's estimated spend (UTC) against. See Monthly budget.
Budget currency Select USD ($) for a new budget USD ($); CNY (¥); The balance's currency (may change) The currency of the monthly budget.
Starting balance (optional) Number empty 0 or more, cents; empty or 0 to measure from the balance after the last top-up the relay has seen The amount, in the balance's currency, the card's balance bar measures from, for example your first top-up. Saving it reads the balance. A later top-up replaces it; the tab then says it is no longer used until you type an amount in again. See Starting balance.
Advanced → Base URL URL empty: https://api.deepseek.com https://, or http:// on this machine only; no user name, password, query or fragment Another address for DeepSeek's API, for example a proxy. The key is sent there and nowhere else.
Save DeepSeek settings Button Saves the fields. A new key or base URL reads the models DeepSeek lists.
Remove saved key Button After a confirmation, deletes the key and switches DeepSeek off. Refused while a DeepSeek conversation has a message or a queued one.
Import usage export Two file fields (Amount file, Cost file) and a button the two CSV files of DeepSeek's usage export Imports DeepSeek's own figures for the usage card's days they cover. The line under it says what was imported. See Import usage export.

See DeepSeek.

Relays #

Pairing with other OAR relays, and what agents may do across relays. All controls are stored on the relay.

Control Kind Default Range or options What it does
This relay Display Shows the relay name. Change it under General → Relay name.
Public address Text empty; the field's placeholder shows the address of the page you have open, unless it is localhost an https:// address (plain http:// only on loopback and private networks) How other relays reach this one. Saved when you leave the field. Needed for Also add this relay there; if it is still empty when you add a relay, the address of the page you pair from is stored. See Remote relays.
Accept prompts from other relays' agents Switch On When off, agents on paired relays can still read sessions here but cannot send prompts, start sessions, answer questions or stop turns. See Remote relays.
Agents may start and use sessions on this relay Switch Off Lets agents start and use other sessions on this relay with the relay_tool tool. The first one in a conversation asks for your approval. Shown once the relay answers with its settings. See Agent sessions.
Longest wait per tool call Slider 10 min 2 to 60 min, steps of 1 min How long an agent may wait for a session in one call, on this relay or a paired one. Works whether or not the switch above is on. A note beside the switch states how many sessions may work at once per conversation.
Remote relays List empty The paired relays. Each row has an Agents may menu (Read only, Read and prompt, Full) and the buttons Check and Remove, plus an Open link when the relay has a usable address. See Remote relays.
Add a relay Text empty The other relay's web address. Press Enter or Add.
Token of the other relay Password field hidden Shown after Use a different token. Only needed when the other relay's token differs from this relay's.
Use a different token Button Shows the token field.
Also add this relay there Checkbox Checked Pairs both ways: the other relay gets this relay's public address and, if it differs, its token.
Add Button Pairs the relay.

Previews #

Control Kind Default Range or options What it does
Live previews List empty Every preview published on this relay, across all conversations. Each row has Open, Copy link and Close, and Added in 0.9.11 says when the preview was published and last opened. A preview the relay could not check at its start is listed as not served. Previews do not expire by themselves and survive a relay restart; they live until you close them or delete their conversation. Every link is public.

Sharing Added in 0.9.11 #

Your shared conversations and what their links show. All controls are stored on the relay and apply to every link.

Control Kind Default Range or options What it does
Shared conversations List empty Every conversation that has a link, with when it was shared and last opened, how often and by how many viewers. Per row: Copy link, Renew link, Stop sharing and Access log. See Your shared links.
Store viewer IP addresses Switch On Whether new access log entries keep the viewer's IP address. Switching it off offers to remove the addresses already stored.
Paths and file names Three options Hide the path, show the file name Show every path and file name; Hide the path, show the file name; Hide paths and file names What shared links show of the relay host's paths. See Paths and file names.

Previews need setup on the relay first; see preview.

Notifications #

Push notifications are set per device. The page must be opened over HTTPS (or localhost) and the browser must support Web Push, or the section says why it cannot be used. Notifications are sent only while no device has the app in the foreground. All controls are stored on the relay, separately for each device.

Control Kind Default Range or options What it does
Enable push notifications on this device Switch Off Asks the browser for permission and subscribes this device. Switching it off keeps the subscription and stops sending.
Include conversation title Switch Off Adds the conversation's title to the notification.
Message preview Select None (generic text) None (generic text); Truncated; Full text How much of the message the notification shows.
Preview length (characters) Number 80 20 to 500 Length of a truncated preview. Active only with Truncated.
Questions from the agent Switch On Notify when an agent asks you a question. Short choices (up to three) become buttons on the notification.
Turn completed Switch On Notify when a turn finishes. Not sent for a turn that another relay's agent started, or for a turn that answers a relay event.
Turn failed Switch On Notify when a turn fails. Same exceptions as Turn completed.
Boards (plan reviews) Switch On Notify when a plan board waits for review.
CLI went offline Switch Off Notify when the relay loses its connection to the CLI host. Always generic text.
Host suspend fired or was dropped Switch On Notify when a queued host suspend fires or is dropped. Its text is shown whatever Message preview says.
Queued relay restart waited its maximum time Switch On Added in 0.9.13 Notify when a queued relay restart has waited Ask after a queued relay restart has waited and asks what to do. Its text is shown whatever Message preview says.
Devices List empty Every subscribed device with its last delivery. Per row: Rename and Revoke.

The event switches and the content controls are disabled until this device is enabled.

Features #

Feature flags are read once, when the relay starts. A change is saved at once but takes effect only after a relay restart. When a saved value differs from the running relay, a notice appears with a Restart relay button; the restart waits until the running turns finish. Added in 0.9.11 It works from any signed-in browser, and shows the relay's reason when the restart is refused.

A flag can also be pinned by an environment variable of the relay, COPILOT_REMOTE_<NAME>, for example COPILOT_REMOTE_SESSION_WORKER_ROUTING_ENABLED=0. The row then says so and its switch is locked while the variable is set. All flags are stored on the relay.

Label Kind Default Name With it off
Session worker routing Switch On SESSION_WORKER_ROUTING_ENABLED Conversations no longer get a worker process each; all share the older polling pipeline. A stuck conversation can then stall the others. The Copilot SDK engine cannot be used.
Continuation answer routing Switch On SESSION_WORKER_CONTINUATION_ROUTING_ENABLED Answers to a question are no longer checked strictly against the question's conversation, continuation and owning worker, so a stale or cross-wired answer is not rejected.
Worker fallback restart (reserved) Switch Off SESSION_WORKER_FALLBACK_RESTART_ENABLED Reserved. It changes nothing either way.
Generated-image continuity Switch On IMAGE_CONVERSATION_CONTINUITY_ENABLED Follow-ups on generated images lose the link to the image you mean, and Edit this image disappears. See OpenAI.

What needs a restart #

Change Takes effect
Any flag on Features After a relay restart.
Copilot engine For conversations started afterwards. A running session keeps its engine until its worker restarts.
Relogin, Logout, Sign in, Sign out For new sessions. Running Claude or Grok sessions keep the previous account until their workers restart.
Max turn duration, Background task timeout At once, without a restart. A running worker picks the new timeout up with its next message.
Commit attribution With the next message of a running Claude, Claude API or DeepSeek session.
A new DeepSeek API key Added in 0.9.17 Running DeepSeek workers are stopped, also in the middle of a turn, and their next message starts them with the new key.
A new Claude API key Added in 0.9.18 Running Claude API workers are stopped, also in the middle of a turn, and their next message starts them with the new key.
Enable … for New Chat, model IDs, keys For new conversations. What happens to conversations that have not sent a message yet is on each provider's page.
Update The relay restarts itself once no turn is running.
Everything else At once.