From 54d7fe8647b9ee81a1de616e2298b8fc3a014078 Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Tue, 28 Jul 2026 14:32:32 -0700 Subject: [PATCH 1/7] docs(cli): draft permissions and profiles page Replace the cli/permissions-and-profiles.mdx stub with full content: permission request cards (yes/no/Other), command editing with E and Esc behavior, inline diff approval, /auto-approve (slash command, Ctrl+Shift+I, progress-row control, statusline indicator), and settings-file execution profiles under agents.execution_profiles with the CLI's agent_decides default for shell commands. Dropped from the outline after verifying against warp master: /fast-forward and fast-forward mode (no such slash command or TUI surface) and --dangerously-skip-permissions (flag does not exist on the warp binary). Co-Authored-By: Oz --- .../docs/cli/permissions-and-profiles.mdx | 102 +++++++++++++++--- 1 file changed, 89 insertions(+), 13 deletions(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index 0d68e0cf..49fba8ba 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -1,35 +1,111 @@ --- title: "Permissions and profiles in the {{WARP_CLI}}" description: >- - Control what the agent can do in the {{WARP_CLI}}: permission requests, - auto-approve, fast-forward mode, and execution profiles. + Control what the agent can do in the {{WARP_CLI}}: permission request cards, + auto-approve, and execution profiles in the settings file. --- import { VARS } from '@data/vars'; -{/* TODO(cli-permissions): draft per drafts/warp-cli-launch-plan.md — "cli/permissions-and-profiles.mdx" section. Feature-doc content type. */} - -The {VARS.WARP_CLI} documentation for this page is in progress. +The {VARS.WARP_CLI} uses the same permission model as the Warp app: the agent acts on its own when it's confident an action is safe, and asks for your approval when it isn't. This page covers how permission requests appear in the {VARS.WARP_CLI} and how to tune the agent's autonomy with auto-approve and execution profiles. For the full permission model, including autonomy levels and organization-wide controls, see [Profiles & Permissions](/agent-platform/capabilities/agent-profiles-permissions/). ## How permissions work -{/* TODO(cli-permissions): permission model summary; default behavior; cross-link agent-platform/capabilities/agent-profiles-permissions. */} +Every action the agent proposes, such as running a shell command, editing files, or calling an MCP tool, is checked against your active execution profile before it runs. By default, the {VARS.WARP_CLI} behaves as follows: + +* **Shell commands** - The agent decides. It runs commands it judges safe, such as read-only commands and commands on your allowlist, and asks before anything else. +* **File edits** - The agent shows a diff and asks for approval before applying edits. +* **Reading files** - The agent decides, reading files without prompting in most cases. +* **Denylisted commands** - Commands matching your command denylist (for example `rm`, `curl`, or `ssh`) always require approval. The denylist takes precedence over every other setting, including auto-approve. + +You can change these defaults by editing your execution profile. See [Execution profiles](#execution-profiles) below. ## Approving agent actions -{/* TODO(cli-permissions): permission request cards, command edit/escape behavior, diff approval. */} +When an action needs your approval, the {VARS.WARP_CLI} pauses the conversation and shows a permission card in the transcript. The card states what the agent wants to do, shows the details (the exact command, the file diffs, or the tool call), and moves focus to a **yes**/**no** selector. + +* Press `Enter` to confirm the highlighted option. **yes** approves and runs the action. +* Press `Esc` (or select **no**) to reject the request. The agent continues without running the action. +* Select **Other** to type a reply instead. The agent receives your guidance in place of the proposed action, which is useful when you want it to take a different approach. + +### Reviewing commands + +When the agent asks "Is it OK if I run this command and read the output?", the card shows the proposed command in an editable field: + +* Press `E` to edit the command before it runs. +* While editing, press `Enter` or `Esc` to finish. Finishing returns focus to the **yes**/**no** options without cancelling the request. Press `Esc` again to reject it. +* Approve with **yes** to run the command, including any edits you made. Output streams into the transcript, and commands that keep running expand automatically so you can follow along. + +### Reviewing file edits + +When the agent asks "Is it OK if I make these file edits?", the card shows the proposed diffs inline, with one section per file: + +* Each file header shows the change type, the file name, and added/removed line counts. Multi-file edits are grouped under a summary header, and all diffs start expanded while the request is pending. +* Press `E` to expand or collapse all diffs at once, or click a file header to toggle a single file. +* Approve with **yes** to apply the edits, or reject with **no** or `Esc` to discard them. ## Auto-approve -{/* TODO(cli-permissions): /auto-approve toggle and when to use it. */} +Auto-approve gives the agent full autonomy for the current conversation: proposed actions run immediately, without permission cards, until the task finishes or you turn it off. + +Toggle auto-approve in any of these ways: -## Fast-forward mode +* Run `/auto-approve`. The slash command menu shows whether it's currently on or off. +* Press `Ctrl+Shift+I`. +* Click the **Auto approve** control (`▶▶`) at the right edge of the progress row while the agent is working. -{/* TODO(cli-permissions): fast-forward mode and /fast-forward toggle. */} +Auto-approve applies per conversation, and new conversations start with it off. To see its state at a glance, add the **Auto-approve indicator** to the statusline with `/statusline`. If your profile sets `ask_user_question = "ask_except_in_auto_approve"`, the agent also skips clarifying questions while auto-approve is on. + +:::caution +With auto-approve on, the agent executes commands and applies file edits without review. Commands matching your command denylist still require approval, but everything else runs immediately. Press `Ctrl+C` to stop the agent if it starts doing something you didn't intend. +::: ## Execution profiles -{/* TODO(cli-permissions): settings-file-based execution profiles and defaults. */} +The {VARS.WARP_CLI} reads its permissions from execution profiles stored in the [{VARS.WARP_CLI} settings file](/cli/configuration/). Profiles live under the `agents.execution_profiles` table, and the {VARS.WARP_CLI} always runs with the profile under the reserved `default` key: + +```toml title="settings.toml" +[agents.execution_profiles.default] +name = "Default" +execute_commands = "agent_decides" +apply_code_diffs = "agent_decides" +read_files = "agent_decides" +command_allowlist = ['cargo (build|check|test)(\s.*)?'] +command_denylist = ['rm(\s.*)?', 'curl(\s.*)?'] +``` + +Edit the file directly, or ask the agent to change its own permissions and it will update the settings file for you. The {VARS.WARP_CLI} picks up saved changes automatically. + +Profiles in the {VARS.WARP_CLI} are local to your machine: they never sync to the cloud, and they are separate from the Agent Profiles you configure in the Warp app. You can define additional profiles in the file, but the {VARS.WARP_CLI} currently always runs with `default`. + +### Permission values + +Most permission fields accept one of three values: + +* **`agent_decides`** - The agent acts on its own when it's confident and asks when it's uncertain. +* **`always_ask`** - Every action of this type requires approval. +* **`always_allow`** - Actions of this type run without prompting. + +### Profile fields + +* **`execute_commands`** - Permission to run shell commands. +* **`apply_code_diffs`** - Permission to apply file edits. +* **`read_files`** - Permission to read files. +* **`mcp_permissions`** - Permission to call MCP servers. +* **`write_to_pty`** - Permission to type into running interactive commands. Also accepts `ask_on_first_write`. +* **`ask_user_question`** - Whether the agent may pause to ask clarifying questions: `always_ask`, `ask_except_in_auto_approve`, or `never`. +* **`run_agents`** - Permission to launch child agents: `always_ask`, `always_allow`, or `never_allow`. +* **`command_allowlist`** - Regular expressions for commands that run without approval. +* **`command_denylist`** - Regular expressions for commands that always require approval, regardless of other settings. +* **`directory_allowlist`** - Directories the agent may read without approval. + +Profiles also hold per-profile model overrides such as `base_model`. See [Models and usage in the {VARS.WARP_CLI}](/cli/models-and-usage/) for how the {VARS.WARP_CLI} resolves models. + +:::note +The profile collection is validated as a whole. If any profile contains an invalid value, the {VARS.WARP_CLI} keeps the last valid configuration while it's running and falls back to the built-in default profile on the next launch, until the file is fixed. +::: -## Unattended use +## Related pages -{/* TODO(cli-permissions): flags for skipping permissions — confirm shipped before merge; include safety caution. */} +* [Profiles & Permissions](/agent-platform/capabilities/agent-profiles-permissions/) - The full permission model, autonomy levels, and allowlist/denylist behavior. +* [Configuring the {VARS.WARP_CLI}](/cli/configuration/) - The settings file, themes, statusline, and keybindings. +* [Agent conversations in the {VARS.WARP_CLI}](/cli/agent-conversations/) - How tool calls, diffs, and agent questions render in the transcript. From 7246e442fc8a2e1ebed2294203ac4842377bc381 Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Tue, 28 Jul 2026 14:44:28 -0700 Subject: [PATCH 2/7] docs(cli): use literal Warp CLI in frontmatter title and description The vars transform does not apply to frontmatter parsed by Astro's content layer, so {{WARP_CLI}} tokens rendered literally in built titles. Replace them with the literal product name; body prose keeps {VARS.WARP_CLI}. Co-Authored-By: Oz --- src/content/docs/cli/permissions-and-profiles.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index 49fba8ba..8ec9f6e0 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -1,7 +1,7 @@ --- -title: "Permissions and profiles in the {{WARP_CLI}}" +title: "Permissions and profiles in the Warp CLI" description: >- - Control what the agent can do in the {{WARP_CLI}}: permission request cards, + Control what the agent can do in the Warp CLI: permission request cards, auto-approve, and execution profiles in the settings file. --- import { VARS } from '@data/vars'; From 6c04c2f6b8e837ff06b45eae7fff9654036a0e1a Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Tue, 28 Jul 2026 15:06:43 -0700 Subject: [PATCH 3/7] docs(cli): rename to Warp Agent CLI in frontmatter Update the literal product name in the title and description to the confirmed launch name. Body prose renders the new name via the merged WARP_CLI var value. Co-Authored-By: Oz --- src/content/docs/cli/permissions-and-profiles.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index 8ec9f6e0..43accf60 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -1,8 +1,8 @@ --- -title: "Permissions and profiles in the Warp CLI" +title: "Permissions and profiles in the Warp Agent CLI" description: >- - Control what the agent can do in the Warp CLI: permission request cards, - auto-approve, and execution profiles in the settings file. + Control what the agent can do in the Warp Agent CLI: permission request + cards, auto-approve, and execution profiles in the settings file. --- import { VARS } from '@data/vars'; From 155726663ed5e26b839f00a3578a44c830881fed Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Wed, 29 Jul 2026 15:49:37 -0700 Subject: [PATCH 4/7] docs(cli): fix denylist example in permissions page Remove command_denylist from the minimal execution-profile example: a copied short list would replace the built-in default denylist and drop prompts for other risky commands. Add a caution explaining that omitting the field keeps the defaults and setting it replaces them, so users should extend the generated list instead. Addresses PR #404 review comment 3669356200. Co-Authored-By: Oz --- src/content/docs/cli/permissions-and-profiles.mdx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index 43accf60..6fe021ea 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -70,9 +70,12 @@ execute_commands = "agent_decides" apply_code_diffs = "agent_decides" read_files = "agent_decides" command_allowlist = ['cargo (build|check|test)(\s.*)?'] -command_denylist = ['rm(\s.*)?', 'curl(\s.*)?'] ``` +:::caution +Setting `command_denylist` replaces the built-in default denylist, which covers `rm`, `curl`, `wget`, `eval`, `ssh`, shells, and other risky command patterns. Omitting the field keeps the defaults. To deny additional commands, extend the generated list in your settings file rather than writing a short list from scratch. +::: + Edit the file directly, or ask the agent to change its own permissions and it will update the settings file for you. The {VARS.WARP_CLI} picks up saved changes automatically. Profiles in the {VARS.WARP_CLI} are local to your machine: they never sync to the cloud, and they are separate from the Agent Profiles you configure in the Warp app. You can define additional profiles in the file, but the {VARS.WARP_CLI} currently always runs with `default`. From 24d9d0557da2227b5e8892d0960a36fe98f0b854 Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Wed, 29 Jul 2026 16:07:41 -0700 Subject: [PATCH 5/7] docs(cli): polish permissions page name density Use "the CLI" after the intro's first full product-name mention, keeping the full name where the contrast with the Warp app matters and in page title link text. Fold two trailing "See [X]." sentences into their preceding sentences. Co-Authored-By: Oz --- .../docs/cli/permissions-and-profiles.mdx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index 6fe021ea..c0f36ed9 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -6,22 +6,22 @@ description: >- --- import { VARS } from '@data/vars'; -The {VARS.WARP_CLI} uses the same permission model as the Warp app: the agent acts on its own when it's confident an action is safe, and asks for your approval when it isn't. This page covers how permission requests appear in the {VARS.WARP_CLI} and how to tune the agent's autonomy with auto-approve and execution profiles. For the full permission model, including autonomy levels and organization-wide controls, see [Profiles & Permissions](/agent-platform/capabilities/agent-profiles-permissions/). +The {VARS.WARP_CLI} uses the same permission model as the Warp app: the agent acts on its own when it's confident an action is safe, and asks for your approval when it isn't. This page covers how permission requests appear in the CLI and how to tune the agent's autonomy with auto-approve and execution profiles. For the full permission model, including autonomy levels and organization-wide controls, see [Profiles & Permissions](/agent-platform/capabilities/agent-profiles-permissions/). ## How permissions work -Every action the agent proposes, such as running a shell command, editing files, or calling an MCP tool, is checked against your active execution profile before it runs. By default, the {VARS.WARP_CLI} behaves as follows: +Every action the agent proposes, such as running a shell command, editing files, or calling an MCP tool, is checked against your active execution profile before it runs. By default, the CLI behaves as follows: * **Shell commands** - The agent decides. It runs commands it judges safe, such as read-only commands and commands on your allowlist, and asks before anything else. * **File edits** - The agent shows a diff and asks for approval before applying edits. * **Reading files** - The agent decides, reading files without prompting in most cases. * **Denylisted commands** - Commands matching your command denylist (for example `rm`, `curl`, or `ssh`) always require approval. The denylist takes precedence over every other setting, including auto-approve. -You can change these defaults by editing your execution profile. See [Execution profiles](#execution-profiles) below. +You can change these defaults by [editing your execution profile](#execution-profiles). ## Approving agent actions -When an action needs your approval, the {VARS.WARP_CLI} pauses the conversation and shows a permission card in the transcript. The card states what the agent wants to do, shows the details (the exact command, the file diffs, or the tool call), and moves focus to a **yes**/**no** selector. +When an action needs your approval, the CLI pauses the conversation and shows a permission card in the transcript. The card states what the agent wants to do, shows the details (the exact command, the file diffs, or the tool call), and moves focus to a **yes**/**no** selector. * Press `Enter` to confirm the highlighted option. **yes** approves and runs the action. * Press `Esc` (or select **no**) to reject the request. The agent continues without running the action. @@ -61,7 +61,7 @@ With auto-approve on, the agent executes commands and applies file edits without ## Execution profiles -The {VARS.WARP_CLI} reads its permissions from execution profiles stored in the [{VARS.WARP_CLI} settings file](/cli/configuration/). Profiles live under the `agents.execution_profiles` table, and the {VARS.WARP_CLI} always runs with the profile under the reserved `default` key: +The CLI reads its permissions from execution profiles stored in its [settings file](/cli/configuration/). Profiles live under the `agents.execution_profiles` table, and the CLI always runs with the profile under the reserved `default` key: ```toml title="settings.toml" [agents.execution_profiles.default] @@ -76,9 +76,9 @@ command_allowlist = ['cargo (build|check|test)(\s.*)?'] Setting `command_denylist` replaces the built-in default denylist, which covers `rm`, `curl`, `wget`, `eval`, `ssh`, shells, and other risky command patterns. Omitting the field keeps the defaults. To deny additional commands, extend the generated list in your settings file rather than writing a short list from scratch. ::: -Edit the file directly, or ask the agent to change its own permissions and it will update the settings file for you. The {VARS.WARP_CLI} picks up saved changes automatically. +Edit the file directly, or ask the agent to change its own permissions and it will update the settings file for you. The CLI picks up saved changes automatically. -Profiles in the {VARS.WARP_CLI} are local to your machine: they never sync to the cloud, and they are separate from the Agent Profiles you configure in the Warp app. You can define additional profiles in the file, but the {VARS.WARP_CLI} currently always runs with `default`. +Profiles in the {VARS.WARP_CLI} are local to your machine: they never sync to the cloud, and they are separate from the Agent Profiles you configure in the Warp app. You can define additional profiles in the file, but the CLI currently always runs with `default`. ### Permission values @@ -101,10 +101,10 @@ Most permission fields accept one of three values: * **`command_denylist`** - Regular expressions for commands that always require approval, regardless of other settings. * **`directory_allowlist`** - Directories the agent may read without approval. -Profiles also hold per-profile model overrides such as `base_model`. See [Models and usage in the {VARS.WARP_CLI}](/cli/models-and-usage/) for how the {VARS.WARP_CLI} resolves models. +Profiles also hold model overrides such as `base_model`, covered in [Models and usage in the {VARS.WARP_CLI}](/cli/models-and-usage/). :::note -The profile collection is validated as a whole. If any profile contains an invalid value, the {VARS.WARP_CLI} keeps the last valid configuration while it's running and falls back to the built-in default profile on the next launch, until the file is fixed. +The profile collection is validated as a whole. If any profile contains an invalid value, the CLI keeps the last valid configuration while it's running and falls back to the built-in default profile on the next launch, until the file is fixed. ::: ## Related pages From 0ec0f014b6603c6f945ab773208abaf253a5174c Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Wed, 29 Jul 2026 16:25:44 -0700 Subject: [PATCH 6/7] docs(cli): trim UI-mechanics narration from permissions page Cut self-evident selector mechanics (Enter to confirm, Esc to reject), output-streaming and diff-header narration, and the slash-menu state sentence. Keep the non-obvious behaviors: Other for replacement guidance, E to edit commands and toggle diffs, the Esc-while-editing gotcha, and all defaults and cautions. Co-Authored-By: Oz --- .../docs/cli/permissions-and-profiles.mdx | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index c0f36ed9..d73b7e21 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -21,27 +21,15 @@ You can change these defaults by [editing your execution profile](#execution-pro ## Approving agent actions -When an action needs your approval, the CLI pauses the conversation and shows a permission card in the transcript. The card states what the agent wants to do, shows the details (the exact command, the file diffs, or the tool call), and moves focus to a **yes**/**no** selector. - -* Press `Enter` to confirm the highlighted option. **yes** approves and runs the action. -* Press `Esc` (or select **no**) to reject the request. The agent continues without running the action. -* Select **Other** to type a reply instead. The agent receives your guidance in place of the proposed action, which is useful when you want it to take a different approach. +When an action needs your approval, the CLI pauses the conversation and shows a permission card in the transcript: what the agent wants to do, the details (the exact command, the file diffs, or the tool call), and a **yes**/**no** selector. Select **Other** to type a reply instead; the agent receives your guidance in place of the proposed action, which is useful when you want it to take a different approach. ### Reviewing commands -When the agent asks "Is it OK if I run this command and read the output?", the card shows the proposed command in an editable field: - -* Press `E` to edit the command before it runs. -* While editing, press `Enter` or `Esc` to finish. Finishing returns focus to the **yes**/**no** options without cancelling the request. Press `Esc` again to reject it. -* Approve with **yes** to run the command, including any edits you made. Output streams into the transcript, and commands that keep running expand automatically so you can follow along. +When the agent asks "Is it OK if I run this command and read the output?", the card shows the proposed command in an editable field. Press `E` to edit the command before it runs; approving then runs your edited version. While editing, `Enter` or `Esc` returns to the options without cancelling the request. ### Reviewing file edits -When the agent asks "Is it OK if I make these file edits?", the card shows the proposed diffs inline, with one section per file: - -* Each file header shows the change type, the file name, and added/removed line counts. Multi-file edits are grouped under a summary header, and all diffs start expanded while the request is pending. -* Press `E` to expand or collapse all diffs at once, or click a file header to toggle a single file. -* Approve with **yes** to apply the edits, or reject with **no** or `Esc` to discard them. +When the agent asks "Is it OK if I make these file edits?", the card shows the proposed diffs inline, one section per file. Press `E` to expand or collapse all diffs at once. ## Auto-approve @@ -49,7 +37,7 @@ Auto-approve gives the agent full autonomy for the current conversation: propose Toggle auto-approve in any of these ways: -* Run `/auto-approve`. The slash command menu shows whether it's currently on or off. +* Run `/auto-approve`. * Press `Ctrl+Shift+I`. * Click the **Auto approve** control (`▶▶`) at the right edge of the progress row while the agent is working. From d6bd6e12b0e91c78bee41edee0c598ea0949b12b Mon Sep 17 00:00:00 2001 From: Hong Yi Chen Date: Wed, 29 Jul 2026 16:32:35 -0700 Subject: [PATCH 7/7] docs(cli): cut remaining UI narration from approval sections Merge the Reviewing commands and Reviewing file edits subsections into Approving agent actions, keeping only the non-obvious behaviors (Other as replacement guidance, E shortcuts, Esc-while-editing). Drop the card anatomy description, the quoted card questions, and the progress-row auto-approve control bullet; fold the remaining toggles into a sentence. Addresses PR #404 comments 3678712189, 3678714624, 3678709662. Co-Authored-By: Oz --- .../docs/cli/permissions-and-profiles.mdx | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/content/docs/cli/permissions-and-profiles.mdx b/src/content/docs/cli/permissions-and-profiles.mdx index d73b7e21..6eda2899 100644 --- a/src/content/docs/cli/permissions-and-profiles.mdx +++ b/src/content/docs/cli/permissions-and-profiles.mdx @@ -21,25 +21,15 @@ You can change these defaults by [editing your execution profile](#execution-pro ## Approving agent actions -When an action needs your approval, the CLI pauses the conversation and shows a permission card in the transcript: what the agent wants to do, the details (the exact command, the file diffs, or the tool call), and a **yes**/**no** selector. Select **Other** to type a reply instead; the agent receives your guidance in place of the proposed action, which is useful when you want it to take a different approach. +When an action needs your approval, the agent pauses and shows a permission card with the proposed command or file edits. Beyond approving or rejecting it, you can: -### Reviewing commands - -When the agent asks "Is it OK if I run this command and read the output?", the card shows the proposed command in an editable field. Press `E` to edit the command before it runs; approving then runs your edited version. While editing, `Enter` or `Esc` returns to the options without cancelling the request. - -### Reviewing file edits - -When the agent asks "Is it OK if I make these file edits?", the card shows the proposed diffs inline, one section per file. Press `E` to expand or collapse all diffs at once. +* Select **Other** to reply with guidance instead of running the action; the agent adjusts its approach based on what you type. +* Press `E` on a command card to edit the proposed command; approving then runs your edited version. While editing, `Esc` exits the editor without rejecting the request. +* Press `E` on a file-edits card to expand or collapse all diffs. ## Auto-approve -Auto-approve gives the agent full autonomy for the current conversation: proposed actions run immediately, without permission cards, until the task finishes or you turn it off. - -Toggle auto-approve in any of these ways: - -* Run `/auto-approve`. -* Press `Ctrl+Shift+I`. -* Click the **Auto approve** control (`▶▶`) at the right edge of the progress row while the agent is working. +Auto-approve gives the agent full autonomy for the current conversation: proposed actions run immediately, without permission cards, until the task finishes or you turn it off. Toggle it with `/auto-approve` or `Ctrl+Shift+I`. Auto-approve applies per conversation, and new conversations start with it off. To see its state at a glance, add the **Auto-approve indicator** to the statusline with `/statusline`. If your profile sets `ask_user_question = "ask_except_in_auto_approve"`, the agent also skips clarifying questions while auto-approve is on.