Cursor

Cursor settings: settings.json, Cursor Settings and the ~/.cursor config files

How do I find and edit Cursor's settings files?

Cursor has two settings surfaces: the Cursor Settings panel (Ctrl/Cmd + Shift + J) for AI and agent features, and the VS Code style editor settings opened with Preferences: Open Settings (UI). Agent tooling is configured with JSON files in ~/.cursor for your user and in .cursor inside a project, such as mcp.json, permissions.json, hooks.json and cli-config.json. You can import your VS Code extensions, themes, settings and keybindings in one click.

Open Cursor Settings and editor settings

  • Cursor Settings: press Ctrl/Cmd + Shift + J, or open the Command Palette (Ctrl/Cmd + Shift + P) and type "Cursor Settings".
  • Editor settings: open the Command Palette and run "Preferences: Open Settings (UI)".
  • Profiles: run "Preferences: Open Profiles (UI)" to manage, import or export profiles.

Cursor is built on the VS Code codebase, so editor keys such as editor.formatOnSave go in your user settings.json.

settings.json

{
  "security.workspace.trust.enabled": true,
  "editor.formatOnSave": true
}

Import your VS Code setup

  • Press Ctrl/Cmd + Shift + J to open Cursor Settings.
  • Go to General, then Account.
  • Under VS Code Import, click Import. This brings over extensions, themes, settings and keybindings.

For more control, export a profile in VS Code, then in Cursor run Preferences: Open Profiles (UI), choose Import Profile, paste a GitHub Gist URL or select the file, and activate the profile.

The activity bar is horizontal by default. Set workbench.activityBar.orientation to vertical and restart Cursor to change it.

MCP servers: mcp.json

  • Global: ~/.cursor/mcp.json, for tools available in every project.
  • Project: .cursor/mcp.json in the project root, for project specific tools.

~/.cursor/mcp.json

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "mcp-server"],
      "env": {
        "API_KEY": "value"
      }
    }
  }
}

Agent auto-run rules: permissions.json

  • Global: ~/.cursor/permissions.json applies everywhere.
  • Project: <workspace>/.cursor/permissions.json applies to that workspace. Commit it to share rules with teammates.
  • When both exist, their arrays are combined. Cursor re-reads the files when they change and supports JSONC comments.
  • Keys include mcpAllowlist (server:tool entries) and terminalAllowlist (command prefixes).
  • A key in the file overrides the matching in-app allowlist. The docs call these allowlists best-effort, not a security boundary.

~/.cursor/permissions.json

{
  "terminalAllowlist": ["git", "npm", "pnpm", "make"],
  "mcpAllowlist": ["github:*"]
}

Cursor CLI: cli-config.json

  • macOS and Linux: ~/.cursor/cli-config.json
  • Windows: $env:USERPROFILE\.cursor\cli-config.json
  • Project: <project>/.cursor/cli.json (only permissions can be set at project level).
  • CURSOR_CONFIG_DIR sets a custom directory.

~/.cursor/cli-config.json

{
  "version": 1,
  "editor": { "vimMode": false },
  "permissions": {
    "allow": ["Shell(ls)", "Shell(echo)"],
    "deny": ["Shell(rm)"]
  }
}

Other files Cursor reads from ~/.cursor

  • ~/.cursor/hooks.json: user hooks (project version is .cursor/hooks.json).
  • ~/.cursor/sandbox.json: sandbox settings (project version is .cursor/sandbox.json).
  • ~/.cursor/skills/: user skills (project version is .cursor/skills/).
  • ~/.cursor/agents/: user subagents (project version is .cursor/agents/).

Sources

More on Cursor

Other guides

Cursor: allow all terminal commandsClaude Code: allow commands without promptsCodex CLI: approval and sandbox modesGemini CLI: YOLO mode, auto_edit and allowing specific shell commandsCursor Privacy Mode: telemetry, training and data retentionClaude Code telemetry and data retention: what is sent and how to turn it offGemini CLI: turn off usage statistics and telemetryCLAUDE.md: where it goes, how it loads, and how it works with AGENTS.mdClaude Code hooks: format on save, block risky edits, get notifiedClaude Code subagents: create one, limit its tools, and call itAdd MCP servers to Cursor with mcp.json: Keep files out of Cursor with .cursorignore: Configure Codex with config.toml: Configure Gemini CLI with settings.json: Add MCP servers to Claude Code (claude mcp add, .mcp.json, scopes): Claude Code custom slash commands and skills (SKILL.md): GitHub Copilot custom instructions: Adding MCP servers to GitHub Copilot: Claude Code settings.json: file locations, precedence, and key settingsClaude Code plugins and marketplaces: install, create, and shareGemini CLI extensions and custom commands: Configuring OpenCode with opencode.json: Cline Rules: workspace, global, and conditional rulesKiro steering files: .kiro/steering, inclusion modes, and AGENTS.mdZed agent: instruction files, MCP servers, tool permissions, and ACP agentsCursor CLI: install, headless mode, permissions and CIAider: CONVENTIONS.md, .aider.conf.yml and API keysJunie guidelines, MCP and the Action Allowlist: Amp AGENTS.md, settings.json and MCP: Configure Goose extensions, hints, recipes and permissions: Customize OpenHands with skills, AGENTS.md, setup.sh and MCP: Configure Factory Droid CLI: AGENTS.md, settings.json, autonomy, custom droids and MCPConfigure Qwen Code: settings.json, providers, QWEN.md, MCP and approval modesCursor hooks: hooks.json, beforeShellExecution, afterFileEdit and exit codesCursor sandbox: sandbox.json, network allowlist and run modesCursor browser agent: @browser, browser automation and approval modesCursor subagents: .cursor/agents, frontmatter, built-in Explore, Bash and BrowserCursor telemetry and OpenTelemetry export (Privacy Mode, OTLP, Analytics API): Cursor rules setup: .cursor/rules, .mdc frontmatter, globs, alwaysApply and AGENTS.md

Get the weekly agent stack update

New official MCP servers, spec changes and harness releases, checked against the source. One email a week, no fluff.

Reviewed Oct 9, 2026. Settings change often; the linked vendor docs are the source of truth.