All pages
On this page

Relay modes

A relay mode tells the agent how to work on your next message: ask first, only plan, work as a normal coding agent, or keep going without stopping. You pick the mode in the composer for every message, so you can plan in one message and let the agent implement in the next.

The four modes #

Mode What the agent does
ask Asks clarifying questions before it starts to implement, and does not guess where an answer would change the result.
plan Drafts a plan and does not implement it unless you ask. Reading the code is allowed.
agent Works as an interactive coding agent and uses its tools. When it needs clarification, it asks through a question card. This is the default.
autopilot Acts directly on the request and keeps going. It asks only when your input is truly blocking.

A question in any mode shows as a question card. Even in autopilot the agent is told to ask this way when it truly needs you.

In plan, the reply ends with a Plan ready for review board under the plan, with the actions Implement in autopilot, Stop here and prompt myself and Stop here. The first two set the conversation's mode, autopilot for the first and agent for the second, and send a message that carries the plan out. Stop here sends nothing and leaves the mode as plan. See The plan board.

Choosing a mode #

  • The composer has a Mode picker with Agent, Ask, Plan and Autopilot. The mode applies to the message you send next.
  • You can change it between any two messages. Each message carries the mode that was selected when you sent it.
  • The choice is kept per conversation. When you open a conversation again, the picker shows the mode it was last used with.
  • A new conversation starts with the mode you last picked in this browser, or Agent if you never picked one.
  • The picker is hidden in a shared, read-only view and in a Claude Cloud chat. An OpenAI Image chat still shows all four modes, but they have no effect there.

What a mode changes for agent tools #

  • relay_tool. In ask and plan, every write action of relay_tool (send, create_session, answer_question, stop, archive) asks you with a question card first. In agent and autopilot it does not, unless another rule of that tool applies.
  • A question card that nobody answers. After the card's timeout, the agent is told: "[No user response before timeout — continue according to the current relay mode.]" What it does then is up to the agent and the mode's instructions. The timeout itself is on the ask_user page.

By provider #

Every mode is a request to the agent; some providers also enforce part of it. The table shows how each provider carries a mode out.

Provider plan ask autopilot agent
GitHub Copilot and OpenAI, SDK engine Native plan mode, plus a prompt instruction. Anything that is not read-only is refused. Prompt instruction. Each action that is not read-only asks you first. Native autopilot mode, plus a prompt instruction. Normal mode, plus a prompt instruction.
GitHub Copilot and OpenAI, extension engine Prompt instruction only. Prompt instruction only. Prompt instruction only. Prompt instruction only.
Claude The Agent SDK's plan permission mode. Added to the system prompt. Added to the system prompt. Default behavior.
Claude Cloud No modes. No modes. No modes. The only mode.
DeepSeek Added in 0.9.17 As Claude. As Claude. As Claude. As Claude.
Cursor The SDK's native plan mode. Instruction in the message text. Instruction in the message text. Default, nothing added.
Grok Instruction in the message text. Instruction in the message text. Instruction in the message text. Default, nothing added.
OpenAI Image No effect. No effect. No effect. No effect.

GitHub Copilot and OpenAI, SDK engine #

This engine holds the most strictly. Besides the instruction, OAR passes the mode to the Copilot runtime (plan as plan mode, autopilot as autopilot mode, the others as the normal interactive mode) and decides every permission request itself:

  • A request that only reads is approved in every mode.
  • In agent and autopilot, everything else is approved.
  • In plan, anything else is refused. The agent is told that the conversation is in plan mode, that reading is allowed, and that it should describe the change instead or ask you to switch to agent mode.
  • In ask, anything else shows a question card, "Copilot wants to run: ... Approve this action?", with Approve and Deny. You can type a reason instead of pressing Deny, and the agent receives it. If the card times out unanswered, the agent is told that nobody was available.

On this engine a Plan ready board also comes from a reply in ask when nothing was approved in that turn and the reply reads as a plan.

The permission check follows the mode of the message that opened the running turn. If you send a message in another mode while that turn is running, the agent is told the new mode, but approvals and refusals stay on the first mode until the turn ends.

GitHub Copilot and OpenAI, extension engine #

The mode reaches the agent as text at the start of the message. OAR sets no Copilot mode and checks no permissions on this engine, so how strictly a mode holds depends on the agent following the instruction. A plan turn still produces a Plan ready board when the agent ends it with the plan.

Claude #

  • plan uses the Agent SDK's own plan permission mode, so the provider enforces it. When the agent finishes its plan, the board appears and the turn ends for your review. The agent does not roll into implementation.
  • ask and autopilot are sentences added to the system prompt. agent adds nothing.
  • Claude runs every tool without asking you, in all modes. ask does not turn tool use into approvals; it makes the agent ask questions.

A mode change takes effect with the next message that starts a turn. A message you send into a turn that is still running does not change the mode, whatever the picker says; the new mode applies from the turn after. The system prompt is fixed when the session process starts. A change to or from ask or autopilot starts a fresh process at once if nothing is running there. While background tasks or queued follow-ups are alive, the turn runs with the earlier prompt instead, so ask and autopilot may take effect only after those finish (plan switches at once either way).

Claude Cloud #

A Claude Cloud chat has no relay modes. The session runs under the cloud's own permission mode, and the composer hides the picker.

DeepSeek #

Added in 0.9.17 A DeepSeek chat runs Claude Code on the relay host, so it takes the mode exactly as a Claude chat does: plan is Claude Code's plan permission mode and ends with the Plan ready for review board, ask and autopilot are added to the system prompt, and a mode change takes effect at the same moments.

Cursor #

  • plan runs the message in the SDK's native plan mode. Every other mode runs as the normal agent mode.
  • The SDK has no place for standing instructions, so for ask and autopilot OAR puts a line starting [Relay mode: ...] in front of your message. It does this only when the mode changes. When you move from one of these modes to another mode, the next message carries a line that says the earlier mode's instructions no longer apply.
  • A plan turn shows a Plan ready board when the final reply looks like a plan.

Grok #

Grok has no mode that OAR can set. All three modes other than agent work through a [Relay mode: ...] line in front of your message, added when the mode changes. This includes plan: the agent is asked to produce a plan before it changes code and to outline steps rather than implement. Nothing stops it from editing files anyway, and OAR approves every permission request Grok makes in every mode. A plan turn shows a Plan ready board when the final reply looks like a plan.

OpenAI Image #

An image chat sends your prompt to the OpenAI Images API, which has no notion of modes. The mode has no effect there.

When the mode changes #

A mode applies from the next message on. On the providers that add an instruction when the mode changes (Copilot, Cursor, Grok), the instruction stays in force until you change the mode again; repeat messages in the same mode do not carry it again. For a turn that is already running, see the notes under Claude (which apply to DeepSeek too) and the SDK engine of GitHub Copilot and OpenAI above. For the other providers this page does not say.