Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Environment
- Cursor: 3.11.19 (macOS arm64)
- Run Mode UI: Settings → Agents → Approvals & Execution
- Config:
~/.cursor/permissions.json+~/.cursor/sandbox.json
Summary
When ~/.cursor/permissions.json defines a non-empty terminalAllowlist and/or mcpAllowlist, Auto-review (with Sandbox) becomes non-selectable. Only Allowlist and Allowlist (with Sandbox) remain usable. Run Everything is correctly disabled (banner mentions this), but Auto-review is also locked out — which the banner does not mention.
This contradicts the public docs, which describe Auto-review as allowlist → sandbox → classifier and show terminalAllowlist + autoRun used together (permissions.json reference, Run Modes).
Expected
I should be able to select Auto-review (with Sandbox) so that:
- allowlisted commands run immediately,
- other eligible shell commands run in the sandbox,
- the rest go to the classifier (steered by
autoRun).
Actual
autoRun in the same file has no effect because Auto-review cannot be selected.
Notes / UX issues
- The banner only warns about Run Everything; it does not say Auto-review is also unavailable.
- Auto-review still appears in the list, which suggests it should be choosable.
- Hover/tooltip can imply admin disablement even when the only cause is a local
permissions.json(no team admin policy).
What we tried
Setting undocumented "approvalMode": "unrestricted" (parsed by the client but not in the public field table) broke the Run Mode control entirely (no options shown). Removing that key restored Allowlist / Allowlist (with Sandbox), with Auto-review still locked. Do not recommend this as a workaround.
Why this matters
Projects that want a checked-in / copy-pasteable allowlist (stable command surface) cannot use the documented Auto-review composition. They are forced into pure Allowlist modes, so autoRun classifier steering is dead while the file owns the allowlist.
Ask
Please either:
- Fix: allow Auto-review when
permissions.jsondefines allowlists (allowlist as tier 1, as docs describe), and update the banner to match; or - Document: if this lock is intentional, state clearly that a non-empty file allowlist forces Allowlist-only modes and that
autoRunonly applies when allowlists are IDE-managed (not in the file).
Steps to Reproduce
- Create
~/.cursor/permissions.jsonwith a non-emptyterminalAllowlist(and/ormcpAllowlist). - Open Settings → Agents → Approvals & Execution.
- Banner appears: allowlists are set by the file; Run Everything is disabled while the file defines allowlists.
- Open the Run Mode dropdown:
- Allowlist — selectable
- Allowlist (with Sandbox) — selectable
- Auto-review (with Sandbox) — visible but not selectable
- Run Everything (Unsandboxed) — disabled (as documented by the banner)
autoRun in the same file has no effect because Auto-review cannot be selected.
Expected Behavior
With a file like:
{
"terminalAllowlist": ["git", "ls"],
"autoRun": {
"allow_instructions": ["Read-only git commands are fine."],
"block_instructions": ["Never auto-approve rm -rf."]
}
}
I should be able to select Auto-review (with Sandbox) so that:
- allowlisted commands run immediately,
- other eligible shell commands run in the sandbox,
- the rest go to the classifier (steered by
autoRun).
Screenshots / Screen Recordings
Operating System
MacOS
Version Information
Version: 3.11.19
VS Code Extension API: 1.125.0
Commit: bf249e6efb5b097f23d7e21d7283429f0760b740
Date: 2026-07-12T21:39:24.175Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.256
OS: Darwin arm64 25.5.0
For AI issues: which model did you use?
Grok 4.5 High
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor
