Cursor CLI reference - Settings
Cursor CLI cli-config.json settings
Cursor CLI documents 46 settings keys, including version, editor.vimMode and permissions.deny. These keys go in Cursor CLI's cli-config.json and the other config files it reads. Each row gives the docs' description, accepted values and an example where one is documented.
Last verified 6 official pagesFull Cursor CLI reference
| Key | Description | Example |
|---|---|---|
version | Required cli-config.json field: config schema version. number (current: 1) Docs: version | {
"version": 1,
"editor": { "vimMode": false },
"permissions": { "allow": ["Shell(ls)"], "deny": [] }
} |
editor.vimMode | Required cli-config.json field that enables Vim keybindings. boolean (default: false) Docs: editor.vimMode | {
"version": 1,
"editor": { "vimMode": true },
"permissions": { "allow": ["Shell(ls)"], "deny": [] }
} |
permissions.deny | Required field listing forbidden operations. Deny rules take precedence over allow rules. string[] Docs: permissions.deny | -no example |
channel | Release channel used for CLI updates. string Docs: channel | -no example |
model | Selected model configuration. object Docs: model | -no example |
maxMode | Persisted preference for max mode in the model picker. boolean Docs: maxMode | -no example |
hasChangedDefaultModel | CLI-managed model override flag. boolean Docs: hasChangedDefaultModel | -no example |
notifications | Sends a terminal notification when the agent finishes or needs input. boolean Docs: notifications | -no example |
hints | Shows CLI hints while the agent is working. boolean Docs: hints | -no example |
rewind | Enables /rewind to restore an earlier message in the session. boolean Docs: rewind | -no example |
suggestNextPrompt | Suggests a follow-up prompt at the end of each turn. boolean Docs: suggestNextPrompt | -no example |
display.showLineNumbers | Shows line numbers in rendered code blocks. boolean Docs: display.showLineNumbers | -no example |
display.showThinkingBlocks | Renders model thinking blocks when available. boolean Docs: display.showThinkingBlocks | -no example |
display.showStatusIndicators | Enables terminal title status indicators. boolean Docs: display.showStatusIndicators | -no example |
display.showStatusLineRunningTime | Shows elapsed running time in the status line. boolean Docs: display.showStatusLineRunningTime | -no example |
approvalMode | Approval mode for tool calls. allowlist | auto-review | unrestricted Docs: approvalMode | -no example |
sandbox.mode | Sandbox mode override. string Docs: sandbox.mode | -no example |
sandbox.networkAccess | Network access setting for sandbox mode. string Docs: sandbox.networkAccess | -no example |
sandbox.readBoundary | Read access mode controlling whether the agent can read files outside the workspace without asking. sandbox.json overrides it. system (default) | workspace Docs: sandbox.readBoundary | -no example |
network.useHttp1ForAgent | Uses HTTP/1.1 with Server-Sent Events instead of HTTP/2 for agent connections, for proxies that do not support HTTP/2 bidirectional streaming. boolean (default: false) Docs: network.useHttp1ForAgent | {
"version": 1,
"editor": { "vimMode": false },
"permissions": { "allow": [], "deny": [] },
"network": {
"useHttp1ForAgent": true
}
} |
attribution.attributeCommitsToAgent | Adds a "Made with Cursor" trailer to Agent commits. Admin-disabled attribution is enforced regardless of local settings. boolean (default: true) Docs: attribution.attributeCommitsToAgent | -no example |
attribution.attributePRsToAgent | Adds a "Made with Cursor" footer to Agent PRs. boolean (default: true) Docs: attribution.attributePRsToAgent | -no example |
autoAcceptWebSearch | cli-config.json setting for the Auto-Accept Web Search permission, letting the agent run web searches without pausing for approval. Also toggled under Permissions in /config. boolean (off by default) Docs: autoAcceptWebSearch | -no example |
statusLine | Points to your own command whose output (with live token usage data) renders in the prompt footer as a custom status line. command Docs: statusLine | -no example |
Shell(commandBase) | Permission token controlling shell commands; commandBase is the first token of the command line. Supports globs and command:args syntax. e.g. Shell(ls), Shell(git), Shell(curl:*) Docs: Shell(commandBase) | Shell(curl:*) |
Read(pathOrGlob) | Permission token controlling read access to files and directories. Supports glob patterns. path or glob Docs: Read(pathOrGlob) | Read(src/**/*.ts) |
Write(pathOrGlob) | Permission token controlling write access to files and directories. Supports glob patterns. path or glob Docs: Write(pathOrGlob) | Write(src/**) |
WebFetch(domainOrPattern) | Permission token controlling which domains the web fetch tool can fetch without prompting. * matches all domains, *.example.com matches subdomains, example.com matches that domain only. domain or pattern Docs: WebFetch(domainOrPattern) | WebFetch(docs.github.com) |
Mcp(server:tool) | Permission token controlling which MCP tools the agent can run, using the server name from mcp.json and the tool name, with * wildcards. server:tool Docs: Mcp(server:tool) | Mcp(datadog:*) |
autoRun.allow_instructions | permissions.json key: plain-English instructions describing actions Auto-review should lean toward allowing. The CLI reads the same permissions.json as the IDE. string[] Docs: autoRun.allow_instructions | -no example |
autoRun.block_instructions | permissions.json key: plain-English instructions describing actions Auto-review should lean toward blocking. string[] Docs: autoRun.block_instructions | {
"autoRun": {
"allow_instructions": [],
"block_instructions": [
"Every AWS CLI command should go through approval first.",
"Every command that modifies Kubernetes resources should go through approval first."
]
}
} |
type (sandbox.json) | sandbox.json sandbox mode, honored by the CLI. workspace_readwrite gives read/write in the workspace, workspace_readonly restricts to read-only, insecure_none disables the sandbox. "workspace_readwrite" (default) | "workspace_readonly" | "insecure_none" Docs: type (sandbox.json) | -no example |
additionalReadwritePaths | sandbox.json: extra paths the agent can read and write. Only applies when type is workspace_readwrite. string[] (default: []) Docs: additionalReadwritePaths | -no example |
additionalReadonlyPaths | sandbox.json: extra paths the agent can read. string[] (default: []) Docs: additionalReadonlyPaths | -no example |
readBoundary | sandbox.json read access mode; workspace asks before reading outside the workspace. Overrides sandbox.readBoundary in cli-config.json. "system" (default) | "workspace" Docs: readBoundary | {
"readBoundary": "workspace",
"additionalReadPaths": ["/opt/shared/design-tokens", "~/notes/*.md"]
} |
additionalReadPaths | sandbox.json Read Allowlist paths and globs the agent can read outside the workspace. Only applies when readBoundary is workspace. string[] (default: []) Docs: additionalReadPaths | -no example |
disableTmpWrite | sandbox.json: when true, removes default write access to /tmp and system temp directories. boolean (default: false) Docs: disableTmpWrite | -no example |
enableSharedBuildCache | sandbox.json: redirects build-tool caches (npm, cargo, pip, etc.) to a shared tmpdir so sandboxed and unsandboxed commands share caches. boolean (default: false) Docs: enableSharedBuildCache | -no example |
networkPolicy.default | sandbox.json: action when no allow/deny rule matches. "allow" | "deny" (default: "deny") Docs: networkPolicy.default | {
"networkPolicy": {
"default": "allow"
}
} |
networkPolicy.allow | sandbox.json: patterns to allow; supports exact domains, wildcards, and CIDR notation. string[] (default: []) Docs: networkPolicy.allow | -no example |
networkPolicy.deny | sandbox.json: patterns to deny. Highest priority; always blocks even if also in allow. string[] (default: []) Docs: networkPolicy.deny | -no example |
setup-worktree | .cursor/worktrees.json generic fallback setup for all operating systems, checked when the CLI creates a worktree. Accepts an array of shell commands or a script path. string[] | string Docs: setup-worktree | {
"setup-worktree": [
"npm ci",
"cp $ROOT_WORKTREE_PATH/.env .env"
]
} |
setup-worktree-unix | .cursor/worktrees.json commands or script path for macOS and Linux; takes precedence over setup-worktree on Unix. string[] | string Docs: setup-worktree-unix | -no example |
setup-worktree-windows | .cursor/worktrees.json commands or script path for Windows; takes precedence over setup-worktree on Windows. string[] | string Docs: setup-worktree-windows | -no example |
enabled_plugins | Key in ~/.cursor/settings.json that points at local plugin folders, so local plugins load without a marketplace. Docs: enabled_plugins | -no example |
user-invocable | SKILL.md frontmatter key; setting it to false hides the skill from / autocomplete and typed /skill-name resolution while keeping it available to the model. boolean Docs: user-invocable | user-invocable: false |
The rest of the Cursor CLI reference
FAQ
How many settings keys does Cursor CLI have?
The official Cursor CLI docs list 46 settings keys, including version, editor.vimMode and permissions.deny. All of them are in the table above, in the docs' order.
What does version do in Cursor CLI?
Required cli-config.json field: config schema version. Values: number (current: 1). Example: {
Where are Cursor CLI settings keys documented?
On 6 official docs pages at cursor.com, last read on October 17, 2026. Every row in the table links the exact section it came from.
More on Cursor CLI
- Cursor CLI in the tools directoryWhat it is, who makes it and how it fits next to other coding agents.
- Cursor CLI errors and fixes18 error messages, quoted verbatim, with the documented fix for each.
- Cursor usage limitsPlan and tier limits for this tool, copied from the official docs.
Use other models in Cursor CLI
Setup guides from the model-in-tool directory, each with the env vars and base URL from official docs.
Sources
Last verified . Names and examples are copied verbatim from the 6 official pages below, and every row above links the exact section it came from.
Newsletter
Know when your tools change
One email per week. New coding agent releases, the flags and commands they add, and what they mean for how you work.