All pages
On this page

Providers at a glance

A provider is the agent behind a conversation. OAR runs eight of them: GitHub Copilot, OpenAI with your own key (with OpenAI Image), Claude, Claude API, Claude Cloud, Cursor, Grok and DeepSeek. They share the same chat, queue, history and file browser. What differs is where the agent runs, what it needs from you, and which features it supports. This page puts the providers side by side.

The providers #

GitHub Copilot. The default, and always available. The agent runs on the relay's machine and uses the Copilot CLI's login there. It has two engines, set in Settings → Providers → Copilot → Copilot engine: SDK (a headless worker per conversation, the default since 0.9.2 when the relay can run it) and Extension (the Copilot CLI in a terminal session with OAR's extension). The SDK engine supports more of the features below. See GitHub Copilot.

OpenAI (BYOK). The Copilot agent, on either engine, pointed at an OpenAI-compatible endpoint with your own API key. It needs the key and a model ID, and takes an optional base URL, all on the OpenAI sub-tab. See OpenAI.

OpenAI Image (BYOK). A chat whose replies are images. No agent runs: the relay calls the OpenAI Images API itself, with the same key. Under a generated image, Edit this image iterates on it.

Claude. The Claude Agent SDK, in a worker per conversation on the relay's machine. It uses the Claude login there, which you can switch on the Claude sub-tab, so there is no key to enter. Switch it on with Enable Claude for New Chat model selection. See Claude.

Claude API Added in 0.9.18. The same Claude agent, billed to a Claude Console API key instead of your subscription. Paste the key into the Claude API sub-tab. A Claude chat can move between the subscription and the key between turns, and an optional monthly cap stops spending on the key.

Claude Cloud Added in 0.9.7. Experimental and off by default. Claude Code runs in a sandbox at Anthropic, on its own clone of a GitHub repository, and results come back as branches. Nothing on your machine is visible to it. It needs the relay machine's Claude login (a claude.ai account) with GitHub connected, and it is billed to that account. Switch it on with Enable Claude Cloud for New Chat. See Claude Cloud.

Cursor. The Cursor Agent SDK, in a worker per conversation on the relay's machine. It needs your Cursor API key, pasted into the Cursor sub-tab, and Enable Cursor for New Chat model selection.

Grok. The Grok CLI, driven on the relay's machine with the account the CLI is signed in to. You can sign in and out from the Grok sub-tab. Switch it on with Enable Grok for New Chat model selection.

DeepSeek Added in 0.9.17. Claude Code on the relay's machine, pointed at DeepSeek's Anthropic-compatible API with your DeepSeek API key, so it has the Claude features below. It needs no Claude login and no CLI of its own: paste the key into the DeepSeek sub-tab. Turns are billed to the DeepSeek account.

Switching providers on #

Open Settings → Providers. The tab has one sub-tab per provider, in this order: Copilot, OpenAI, Claude, Claude API, Claude Cloud, Grok, Cursor, DeepSeek. Each holds that provider's settings, login and the switch that offers it in New Chat. OpenAI and OpenAI Image share the OpenAI sub-tab.

Each conversation uses one provider. You choose it when you start the conversation, and it stays with it after the first message. The composer shows which one it is and offers only that provider's models. To use another provider, start another conversation. Added in 0.9.18 The one exception: a Claude chat can switch between the subscription and the Claude API key and keep its session. See Starting a conversation.

Switching Claude, Claude API or Grok off, or removing the OpenAI, Cursor, DeepSeek or Claude API key, moves conversations that have not sent a message yet back to Copilot. Switching OpenAI, Cursor or DeepSeek off without removing the key moves nothing. Conversations that are running, and those of other providers, are left alone. Claude Cloud is the exception: switching it off only takes it out of New Chat, and its conversations stay as they are.

What each provider can do #

OpenAI (BYOK) is the Copilot agent, so it has the Copilot columns. OpenAI Image is not in the table: see the section after the notes.

Claude API is the Claude agent on another bill, so it has the Claude column, with two differences: no usage-limit pause, and its own card in Check Usage.

Copilot, SDK Copilot, extension Claude Claude Cloud Cursor Grok DeepSeek
Steering a running turn Yes No Yes No No No Yes
Question cards Yes Yes Yes Yes Yes No Yes
Multi-select questions Yes Partial Yes Yes Yes No Yes
Plan board Yes Yes Yes No Yes Yes Yes
Background tasks panel Yes No Yes No No Yes Yes
Sub-agent viewer Partial Partial Yes Partial Partial Partial Yes
Relay modes Yes Prompt only Yes No Yes Prompt only Yes
Attachments Yes Yes Yes Images only Yes Paths only Yes
Told to embed media in replies Yes No Yes No Yes Yes Yes
Context window display Yes Yes Yes Yes Yes Yes Yes
Card in Check Usage Yes Yes Yes Yes Yes Yes Yes
Automatic compaction Yes Not shown Yes Line only Not shown Not shown Yes
relay_tool Yes Yes Yes No Yes Yes Yes
preview API only Yes Yes No Yes Yes Yes
Working folder and file browser Yes Yes Yes No Yes Yes Yes
Resuming after a restart Yes By session id Yes Yes Yes Yes Yes

Notes on the table:

  • Steering. On the Yes providers, a message sent during a turn goes into that turn and the send button reads Steer. On the others the message waits behind the turn and the button reads Queue. See Turns and the queue and While a turn runs.
  • Multi-select. On Copilot's extension engine there is no multi-select question of its own, but a choice card that accepts free text has a Select several switch.
  • Plan board. The Plan ready for review board appears when an agent finishes a plan in plan mode. On Copilot's SDK engine it also appears in ask when nothing was approved in the turn. Of its buttons, Implement in autopilot switches the conversation to autopilot, Stop here and prompt myself to agent, and Stop here leaves the mode unchanged. A Claude Cloud chat has no relay modes, so it has no plan board. See The plan board.
  • Background tasks panel. The composer's task panel lists work that outlives the reply that started it. A Claude Cloud agent can have background work, and its results arrive as continuation replies, but there is no panel. Added in 0.9.12 A shell command's row opens its console. Grok's panel lists its terminals that run longer than two seconds.
  • Sub-agent viewer. It opens a sub-agent's thoughts, tool calls and reply. Claude and DeepSeek record everything. On the other providers it shows what the provider reports, so the record can have gaps. A Claude Cloud sub-agent's own reply text is not published. Stopping a single sub-agent works for backgrounded ones on Claude and DeepSeek and for background tasks on Copilot's SDK engine. Elsewhere you stop the whole turn.
  • Relay modes. Prompt only means the mode reaches the agent as an instruction and nothing enforces it. Yes on Claude, DeepSeek and Cursor means plan is the SDK's own plan mode; the other modes are instructions. How each provider carries a mode out is on Relay modes.
  • Attachments. Claude Cloud takes only images (JPEG, PNG, GIF or WebP, up to 5 MB each) and refuses a turn with any other attachment. On Grok, files reach the agent as paths in the message text, not as content. On Copilot's SDK engine, Claude and Cursor, images up to 5 MB are sent inline and other files are passed as references or paths for the agent to read. DeepSeek does the same on DeepSeek Flash; DeepSeek V4 Pro takes no images and gets them as paths. Copilot's extension engine embeds every image inline, whatever its size.
  • Told to embed media in replies. Agents are told they can show a picture, video or audio file inline by writing its absolute path as a Markdown image. Copilot's extension engine and Claude Cloud get no such instruction.
  • Context window display. The 🧠 button shows how much of the window is used. Claude and DeepSeek show exact categories. Copilot shows a coarser split. A Claude Cloud chat reports one figure after each turn, without categories.
  • Card in Check Usage. 📊 Check Usage has one tab per provider that reports usage. OpenAI (BYOK) has no tab of its own: from an OpenAI chat the dialog opens on the first tab. Cursor's figures are estimates against allowances you enter. Grok shows the live plan usage when the account reports it, plus an estimate if you enter a monthly budget. Claude Cloud shows the account's cloud credit. DeepSeek shows the account's balance and an estimate of this relay's DeepSeek spend, see DeepSeek's usage card. Claude API shows an estimate of this relay's spend on the key, see Claude API's usage card. Per-reply usage lines exist only for Copilot.
  • Automatic compaction. Yes on Claude and DeepSeek means an auto-compact window you can set; DeepSeek compacts at 400K unless you set one. On Copilot's SDK engine, activity lines show it. Line only means Claude Cloud shows a line when the session reports one. Not shown means OAR neither triggers nor marks a compaction. /compact works the same on every provider. See Compacting a conversation.
  • relay_tool and preview. These are OAR's own agent tools. On Copilot's SDK engine the agent has no preview tool and is told how to call the relay's preview API instead. See Agent tools → By provider. Typing /preview in the composer works with every provider.
  • Working folder and file browser. A Claude Cloud agent works on a clone in a sandbox, so there is no working directory to change and no session folder to browse. Its Repository and Branch take the folder's place.
  • Resuming after a restart. On the extension engine the Copilot CLI is started again with the conversation's session id. What each provider resumes is on Restarts and resuming.

OpenAI Image #

An image chat has none of the agent features above. The relay generates the images, so there are no agent tools, no relay modes (they have no effect), no plan board and no background tasks. New Chat asks for Quality and Size where other providers ask for reasoning effort.

Installing or updating a provider's CLI #

Some providers run a command-line program on the relay's machine. If it is missing, a turn would otherwise fail and leave you needing a shell on that machine. The Copilot, Claude and Grok sub-tabs therefore have a CLI row at the top that shows the installed version and where it is. The rows are named GitHub Copilot CLI, Claude Code CLI and Grok CLI. Cursor has no row, because it needs no CLI. DeepSeek and Claude API have none either: they run the Claude Code build of the Agent SDK, or the one the Claude Code CLI row installed.

CLI Buttons
Grok CLI Install when it is missing, Update when it is there
Claude Code CLI Install, Update, and Switch to native installer
GitHub Copilot CLI None. It is managed with npm on the machine, so install and update it from a shell there.

What the buttons do:

  • Install and Update ask you to confirm first. The confirmation names the exact command and the folder it writes into. The commands are the vendors' own install one-liners and their own update commands, fixed in the relay: nothing you type reaches a shell. They run on the relay's machine as the relay's user, never with sudo.
  • The output streams into the panel as it happens. Closing the dialog or watching from another device does not lose it. Only one install runs at a time on a relay.
  • When it finishes, the relay finds the program and uses it for new sessions without a restart. Sessions that were already running keep the program they started with.
  • Switch to native installer appears for Claude only when claude doctor reports that an npm install sits in a folder the relay's user cannot write to. It runs claude install. The npm copy stays where it is.

Buttons on failure replies #

When a turn fails for one of a few known reasons, the failure reply carries buttons that go straight to the fix:

The reply says Buttons
The Grok CLI is missing Install Grok CLI (opens the same confirmation as the sub-tab), Grok settings
Grok is not signed in Sign in to Grok, Grok settings
Claude is not signed in, or the Claude account refused the turn (billing, organization not allowed, account on hold, verification required, no access) Claude settings
DeepSeek refused the turn for the balance (relay.deepseek-balance) Top up DeepSeek, DeepSeek settings
DeepSeek did not accept the API key (relay.deepseek-api-key) DeepSeek settings
Added in 0.9.18 A Claude API turn did not run: no key, Claude API off, or the monthly cap reached (relay.claude-api-not-configured, relay.claude-api-cap-reached) Claude API settings, Switch to subscription
Added in 0.9.18 Anthropic refused a Claude API turn: the key, the credit, billing, a spend or rate limit Claude API settings, Add funds, Console billing or Console limits, as fits; see Claude API's error codes

Grok settings, Claude settings and DeepSeek settings open the matching sub-tab under Settings → Providers. Top up DeepSeek opens DeepSeek's top-up page; see DeepSeek's error codes. For Claude, that is where Relogin and the account shown there are. Other failures have no button.

Choosing a provider #

  • Pick Claude Cloud when the agent should work on a GitHub repository without touching your machine. It sees only what is pushed, and its results come back as branches.
  • Pick Claude API to run Claude chats on a Console key, billed per token, or to carry on a Claude chat on the key when the subscription's usage limit is reached.
  • Pick Claude, Claude API, DeepSeek or Copilot's SDK engine when you want to steer a turn that is running and watch background tasks in the task panel.
  • Grok has no question cards: an agent that needs an answer asks in its reply text.
  • Pick OpenAI Image to make or edit pictures.
  • Pick OpenAI (BYOK) to run the Copilot agent against your own OpenAI-compatible endpoint and key.
  • Pick Cursor to use your Cursor account's models. It needs an API key and no CLI.
  • Pick DeepSeek to run Claude Code's agent on DeepSeek's models, paid from a DeepSeek balance. Its thinking cannot be switched off.
  • Claude, Claude API and DeepSeek are the only providers with an auto-compact window setting and the full record of a sub-agent.