Project-level .cursor/permissions.json not loaded; ~/.cursor/permissions.json works

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Project-level <workspace>/.cursor/permissions.json does not get loaded properly. In particular, terminalAllowlist is not merged with terminalAllowlist from user-level ~/.cursor/permissions.json, as described in the documentation: permissions.json Reference | Cursor Docs

Result:

  • Commands in the project-level allowlist do not show up in the IDE settings UI (Settings > Agents > Command Allowlist).
  • Cursor keeps asking for permission to run commands that are in the project-level allowlist.

Steps to Reproduce

  1. Have the following permission files (for example):
// <workspace>/.cursor/permissions.json
{
  "terminalAllowlist": [
    "echo"
  ]
}
// ~/.cursor/permissions.json
{
  "terminalAllowlist": [
    "ls"
  ]
}
  1. Ask cursor to run a simple echo command.

  2. Cursor will ask for permission to run an echo command.

Expected Behavior

3: Cursor shouldn’t ask for permission, because the command is in the allowlist on the project-level permissions.json.

Additionally, the list of allowed commands in the settings should contain both echo and ls, but currently only shows ls (see screenshot).

Documentation: permissions.json Reference | Cursor Docs

Screenshots / Screen Recordings


NB: Cursor does recognize the project-level permissions file.

Operating System

Linux

Version Information

Version: 3.7.42
VS Code Extension API: 1.105.1
Commit: 5702c9cfca656d8710fad58402fe37f14345e3a0
Date: 2026-06-15T19:39:42.738Z
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
xterm.js: 6.1.0-beta.256
OS: Linux x64 6.8.0-124-generic

Does this stop you from using Cursor

No - Cursor works, but with this issue

Thanks for the clear write-up and screenshots - this is a real bug, not a misconfiguration. Right now the per-repo <workspace>/.cursor/permissions.json allowlists (terminalAllowlist, mcpAllowlist) aren’t being read or merged. Only the per-user ~/.cursor/permissions.json allowlists are applied, which is why ls shows up but echo doesn’t. The per-repo file’s autoRun section is read, but its allowlists are currently ignored, so the concatenation behavior described in the docs doesn’t match what the build does yet.

Workaround: add the commands to your per-user ~/.cursor/permissions.json terminalAllowlist (you already have ls there, just add echo and anything else). Those are honored and will appear in Settings > Agents > Command Allowlist.

I’ve flagged this with the team so we can either fix the loader to read per-repo allowlists or correct the docs. I’ll update this thread when there’s news.