name: update-cursor-settings
description: Modify Cursor/VSCode user settings in settings.json. Use when user wants to change editor settings, preferences, themes, font size, tab size, keybindings, or mentions "settings", "preferences", "theme", "font", "format on save", "auto save", or "cursor config".
disable-model-invocation: true
effort: low
Updating Cursor Settings
This skill guides you through modifying Cursor/VSCode user settings. Use this when the user wants to change editor settings, preferences, configuration, themes, keybindings, or any settings.json values.
Check existing first
Before modifying settings, check:
- Read current settings:
cat ~/.config/Cursor/User/settings.json 2>/dev/null | head -50 # Linux
cat ~/Library/Application\ Support/Cursor/User/settings.json 2>/dev/null | head -50 # macOS
- Check for workspace settings:
cat .vscode/settings.json 2>/dev/null
- Understand current state:
- What's the current value of the setting?
- Are there conflicting workspace settings?
Why: Preserve existing settings. Only modify what's requested.
Settings File Location
| OS | Path |
|---|
| macOS | ~/Library/Application Support/Cursor/User/settings.json |
| Linux | ~/.config/Cursor/User/settings.json |
| Windows | %APPDATA%\Cursor\User\settings.json |
Before Modifying Settings
- Read the existing settings file to understand current configuration
- Preserve existing settings - only add/modify what the user requested
- Validate JSON syntax before writing to avoid breaking the editor
Modifying Settings
Step 1: Read Current Settings
// Read the settings file first
const settingsPath = "~/Library/Application Support/Cursor/User/settings.json";
// Use the Read tool to get current contents
Step 2: Identify the Setting to Change
Common setting categories:
- Editor:
editor.fontSize, editor.tabSize, editor.wordWrap, editor.formatOnSave
- Workbench:
workbench.colorTheme, workbench.iconTheme, workbench.sideBar.location
- Files:
files.autoSave, files.exclude, files.associations
- Terminal:
terminal.integrated.fontSize, terminal.integrated.shell.*
- Cursor-specific: Settings prefixed with
cursor. or aipopup.
Step 3: Update the Setting
When modifying settings.json:
- Parse the existing JSON (handle comments - VSCode settings support JSON with comments)
- Add or update the requested setting
- Preserve all other existing settings
- Write back with proper formatting (2-space indentation)
Example: Changing Font Size
If user says "make the font bigger":
{
"editor.fontSize": 16
}
Example: Enabling Format on Save
If user says "format my code when I save":
{
"editor.formatOnSave": true
}
Example: Changing Theme
If user says "use dark theme" or "change my theme":
{
"workbench.colorTheme": "Default Dark Modern"
}
Important Notes
-
JSON with Comments: VSCode/Cursor settings.json supports comments (// and /* */). Parse accordingly and write the comments back; dropping them loses the user's notes.
-
Restart May Be Required: Some settings take effect immediately, others require reloading the window or restarting Cursor. Inform the user if a restart is needed.
-
Backup: For significant changes, consider mentioning the user can undo via Ctrl/Cmd+Z in the settings file or by reverting git changes if tracked.
-
Workspace vs User Settings:
- User settings (what this skill covers): Apply globally to all projects
- Workspace settings (
.vscode/settings.json): Apply only to the current project
Common User Requests → Settings
| User Request | Setting |
|---|
| "bigger/smaller font" | editor.fontSize |
| "change tab size" | editor.tabSize |
| "format on save" | editor.formatOnSave |
| "word wrap" | editor.wordWrap |
| "change theme" | workbench.colorTheme |
| "hide minimap" | editor.minimap.enabled |
| "auto save" | files.autoSave |
| "line numbers" | editor.lineNumbers |
| "bracket matching" | editor.bracketPairColorization.enabled |
| "cursor style" | editor.cursorStyle |
| "smooth scrolling" | editor.smoothScrolling |
Workflow
- Read the settings file for the current OS (path table above)
- Parse the JSON content
- Add/modify the requested setting(s)
- Write the updated JSON back to the file
- Inform the user the setting has been changed and whether a reload is needed