Configuration Schema Reference

March 5, 2026 · View on GitHub

All cursorDrive.* settings. Source of truth: src/config.ts and package.json.


General

SettingTypeDefaultDescription
cursorDrive.defaultSubMode"plan" | "agent" | "ask" | "direct""agent"Sub-mode applied when Drive activates
cursorDrive.mcp.portnumber (1024–65535)7891Port for the Drive MCP server
cursorDrive.mcp.enableAppsbooleantrueEnable MCP Apps: agent_screen_* tools return _meta.ui for inline UI in chat (Cursor 2.6+). When false, tools return text only.
cursorDrive.wakeWordstring"hey drive"Voice phrase that activates Drive
cursorDrive.submitWordstring"send it"Voice phrase that confirms and submits the prompt

Voice I/O (PRD 1)

TTS

SettingTypeDefaultDescription
cursorDrive.tts.enabledbooleanfalseEnable text-to-speech responses
cursorDrive.tts.backend"webSpeech" | "piper" | "elevenLabs""webSpeech"TTS engine (webSpeech = OS-native via say.js)
cursorDrive.tts.voicestring""Voice name override. macOS: "Alex". Windows: "Microsoft David Desktop"
cursorDrive.tts.speednumber (0.5–2.0)1.0Speech rate multiplier
cursorDrive.tts.maxSpokenSentencesnumber (1–20)3Maximum sentences spoken per response
cursorDrive.tts.interruptOnInputbooleantrueStop speaking when user sends a new message

Prompt processing

SettingTypeDefaultDescription
cursorDrive.sanitizer.maxLengthnumber (100–10000)2000Maximum prompt length in characters before truncation
cursorDrive.promptOptimizer.enabledbooleantrueEnable AI prompt rewriting
cursorDrive.promptOptimizer.autoApprovebooleanfalseSkip approval QuickPick; auto-use optimized prompt

Session + Persona (PRD 2)

SettingTypeDefaultDescription
cursorDrive.agent.namestring"Drive"Agent display name shown in status bar and chat
cursorDrive.agent.verbosity"terse" | "normal" | "verbose""terse"Response compression level
cursorDrive.agent.offerElaborationbooleantrueAppend "Want details?" to terse responses
cursorDrive.agent.maxSpokenSentencesnumber (1–20)3Max sentences spoken per agent response
cursorDrive.agent.personalitystring""Custom personality addendum to system prompt
cursorDrive.agent.sessionMemory.enabledbooleantruePersist session context across turns
cursorDrive.agent.sessionMemory.maxEntriesnumber (5–500)50Maximum turns to keep in memory
cursorDrive.agent.sessionMemory.tokenBudgetnumber (50–5000)500Token budget for injected session context
cursorDrive.agent.proactiveSteering.enabledbooleanfalseAllow agent to suggest next actions unprompted
cursorDrive.agent.proactiveSteering.idleSecondsnumber (5–300)30Seconds of idle before proactive suggestion fires

Multi-Operator (PRD 3)

SettingTypeDefaultDescription
cursorDrive.operators.maxConcurrentnumber (1–10)3Max simultaneous Drive operators (senior workers that can spawn subagents)
cursorDrive.operators.maxSubAgentsPerOperatornumber (1–16)4Max Cursor Task-tool subagents each operator can spawn
cursorDrive.operators.defaultPermissionPreset"standard" | "readonly" | "full""standard"Default permission preset for new operators
cursorDrive.operators.namePoolstring[]["Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta"]Names assigned when spawning (first available used)
cursorDrive.agents.tangentKeywordstring"tangent"Keyword that triggers operator spawning
cursorDrive.agents.visibility"isolated" | "shared" | "collaborative""isolated"Memory sharing policy between operators
cursorDrive.agents.commsAgent.enabledbooleantrueEnable background operator update batching
cursorDrive.agents.commsAgent.updateFrequency"immediate" | "batched" | "onIdle""onIdle"When comms agent delivers updates
cursorDrive.agents.interruptBehavior"immediate" | "finishSentence" | "queue""immediate"How foreground operator handles interrupts
cursorDrive.agents.messageTintsstring[]["blue","green","orange","purple"]Color tints per operator index
cursorDrive.agents.showNameHeadersbooleantrueShow operator name headers in chat
cursorDrive.operators.permissions.default"readonly" | "standard" | "full""standard"Default tool permission preset for operators
cursorDrive.operators.permissions.overridesRecord<string, preset>{}Per-operator permission overrides by name
cursorDrive.agents.subAgentApprovalbooleantrueRequire confirmation before spawning sub-agents

Safety + Configuration (PRD 4)

SettingTypeDefaultDescription
cursorDrive.approvalGates.enabledbooleantrueEnable pre/post approval gate scanning
cursorDrive.approvalGates.warnPatternsstring[]["revert","force push",...]Patterns that trigger a warning confirmation
cursorDrive.approvalGates.blockPatternsstring[]["rm -rf","del /f /s /q",...]Patterns that are hard-blocked
cursorDrive.modeSwitching.voiceEnabledbooleantrueAllow voice-triggered mode switches
cursorDrive.modeSwitching.semanticEnabledbooleanfalseAllow semantic intent to trigger mode switches
cursorDrive.modeSwitching.requireConfirmationbooleantrueShow confirmation before switching modes
cursorDrive.modeSwitching.allowedModesSubMode[]["ask","agent","plan","direct"]Modes the user is allowed to switch to
cursorDrive.privacy.transcriptPersistencebooleanfalsePersist session transcripts (disabled by default per policy)
cursorDrive.privacy.debugModebooleanfalseEnable verbose logging (may include prompt content)
cursorDrive.audit.enabledbooleanfalseWrite audit log
cursorDrive.audit.pathstring".cursor/drive-audit.log"Path for audit log
cursorDrive.audit.maxSizeMBnumber (0.1–100)1Max audit log size before rotation

Default block patterns: rm -rf, del /f /s /q, format c:, rmdir /s

Default warn patterns: revert, undo all, hard reset, reset --hard, force push, push --force, push -f, delete branch, drop database, drop table


Cursor Integration (PRD 5)

SettingTypeDefaultDescription
cursorDrive.agentScreen.enabledbooleantrueEnable the Agent Screen (S-AS) panel
cursorDrive.agentScreen.autoOpenbooleanfalseAuto-open Agent Screen when Drive activates
cursorDrive.agentScreen.displayMode"tab" | "panel" | "bottomLog""tab"How the Agent Screen is displayed (webview vs Output Channel)
cursorDrive.agentScreen.clickBehavior"openInEditor" | "openInNewWindow""openInEditor"Behavior when clicking file paths in the Agent Screen
cursorDrive.agentScreen.showPlanProgressbooleantrueShow plan progress overlay (active plan, TODO counts)
cursorDrive.statusBar.showAgentNamebooleantrueShow active operator name in status bar
cursorDrive.statusBar.showModebooleantrueShow active mode in status bar
cursorDrive.theme.agentTintOpacitynumber (0–1)0.08Background tint opacity for agent messages
cursorDrive.blame.enabledbooleanfalseTrack which agent made each file change

TypeScript types

Defined in src/config.ts:

type SubMode = "plan" | "agent" | "ask" | "direct"
type VerbosityLevel = "terse" | "normal" | "verbose"
type AgentVisibility = "isolated" | "shared" | "collaborative"
type CommsUpdateFrequency = "immediate" | "batched" | "onIdle"
type InterruptBehavior = "immediate" | "finishSentence" | "queue"
type PermissionPreset = "readonly" | "standard" | "full"
type TtsBackend = "webSpeech" | "piper" | "elevenLabs"

Use readConfig(): DriveConfig to read the validated config. Use onConfigChange(handler) to subscribe to changes.