Skip to content

docs(cli): permissions and profiles - #404

Open
hongyi-chen wants to merge 4 commits into
hyc/launch-clifrom
hyc/launch-cli-cli-permissions
Open

docs(cli): permissions and profiles#404
hongyi-chen wants to merge 4 commits into
hyc/launch-clifrom
hyc/launch-cli-cli-permissions

Conversation

@hongyi-chen

Copy link
Copy Markdown
Collaborator

Pages changed

  • src/content/docs/cli/permissions-and-profiles.mdx (stub replaced with full draft)

Features covered

  • Permission request cards: yes/no selector, Enter to run, Esc to cancel, Other for replacement guidance
  • Command approval: exact card question, editable proposed command (E to edit; Enter/Esc exits the editor without cancelling the request; approving runs the edited command)
  • Diff approval: per-file inline diffs with +/− counts, multi-file summary header, E expand/collapse all, click headers to toggle
  • Default permission behavior: shell commands use "agent decides" in the CLI (verified in default_profile_for_tui); file edits prompt by default; denylist always prompts and takes precedence
  • /auto-approve: slash command with current-state suffix, Ctrl+Shift+I binding, clickable "▶▶ Auto approve" control on the progress row, opt-in statusline indicator via /statusline, per-conversation scope, question-skipping interplay, safety caution
  • Settings-file execution profiles: agents.execution_profiles TOML table, reserved default key (the CLI always runs with default), field and value reference (snake_case values), allowlist/denylist regexes, whole-collection validation and fallback behavior, local-only (no cloud sync, separate from Warp app Agent Profiles)
  • Cross-links to the canonical Profiles & Permissions page, cli/configuration, cli/models-and-usage, and cli/agent-conversations

Dropped/unconfirmed

  • /fast-forward + fast-forward mode: no such slash command exists in static_commands/commands.rs and no fast-forward surface exists in the TUI crate on master; the "▶▶" control is labeled "Auto approve" and is documented under Auto-approve instead
  • --dangerously-skip-permissions: not present in the warp binary's CLI args on master (only --resume, --api-key, --set-provider-api-key, --clear-provider-api-key, --version, --help); Unattended use section removed
  • computer_use profile field: intentionally omitted from the field list because I could not confirm the computer-use tool is reachable from the CLI; happy to add if eng confirms

Notes for review

  • The page states the command denylist still applies while auto-approve is on. That matches current master (can_autoexecute_command checks the denylist before the run-to-completion override) but contradicts the older note on the GUI Profiles & Permissions page ("Run until completion ignores the denylist entirely"). Worth an eng sanity check, and possibly a follow-up fix to the GUI page.
  • Pre-existing integration-branch issue (not introduced here, affects all cli/ stubs): {{WARP_CLI}} frontmatter tokens render literally in built page titles/descriptions. The vars-transform Vite plugin is registered, but Astro's content layer parses frontmatter outside Vite, so only body-prose {VARS.WARP_CLI} substitutes. Needs a fix on hyc/launch-cli (e.g. a remark plugin or frontmatter preprocessing).

Validation: npm run build passes (363 pages).

Suggested reviewer(s): harry

Co-Authored-By: Oz oz-agent@warp.dev

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 <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Jul 28, 2026
@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jul 28, 2026 10:09pm

Request Review

@oz-for-oss

oz-for-oss Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

@hongyi-chen

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@oz-for-oss oz-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR replaces the CLI permissions stub with a full page covering permission cards, auto-approve, and settings-file execution profiles. The overall structure is appropriate, and no approved spec context was available to compare against.

Concerns

  • The execution profile TOML example can weaken command-approval protections if copied because it replaces the built-in command denylist with only two entries.

Security

  • The sample command_denylist should not imply that rm and curl are sufficient denylist coverage; users need to preserve or intentionally extend the default denylist.

Verdict

Found: 0 critical, 1 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

apply_code_diffs = "agent_decides"
read_files = "agent_decides"
command_allowlist = ['cargo (build|check|test)(\s.*)?']
command_denylist = ['rm(\s.*)?', 'curl(\s.*)?']

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [IMPORTANT] [SECURITY] This example replaces the built-in command denylist with only rm and curl if copied into settings.toml, dropping default prompts for shells, ssh, wget, and other risky commands. Omit this field from the minimal example or explicitly tell readers to preserve/extend the generated default denylist.

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 <oz-agent@warp.dev>
hongyi-chen and others added 2 commits July 28, 2026 15:03
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 <oz-agent@warp.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant