Free Claude Code Settings Generator
A Claude Code settings generator creates a ready-to-paste settings.json or settings.local.json file for permissions, environment variables, model defaults, statusLine commands, and team-safe configuration.
Start with a permission profile
Generates local JSON only. No API call, no login, no upload.
Settings
Generated settings
.claude/settings.json
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"includeCoAuthoredBy": true,
"cleanupPeriodDays": 30,
"autoUpdatesChannel": "stable",
"permissions": {
"allow": [
"Read(*)",
"Grep(*)",
"Glob(*)",
"LS(*)",
"Edit(*)",
"Write(*)",
"Bash(npm run lint)",
"Bash(npm run test *)",
"Bash(npm run build)",
"Bash(git status)",
"Bash(git diff *)"
],
"ask": [
"Bash(git push *)",
"Bash(npm install *)",
"Bash(pnpm add *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(rm -rf *)",
"Bash(sudo *)"
]
},
"env": {
"BASH_DEFAULT_TIMEOUT_MS": "600000"
}
}Permission rules
Merge command
Writes the generated values without deleting existing env or permission blocks.
TARGET=".claude/settings.json"
mkdir -p $(dirname "$TARGET")
node <<'NODE'
const fs = require('fs');
const path = require('path');
const target = ".claude/settings.json".replace(/^~\//, process.env.HOME + '/');
const incoming = {
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"includeCoAuthoredBy": true,
"cleanupPeriodDays": 30,
"autoUpdatesChannel": "stable",
"permissions": {
"allow": [
"Read(*)",
"Grep(*)",
"Glob(*)",
"LS(*)",
"Edit(*)",
"Write(*)",
"Bash(npm run lint)",
"Bash(npm run test *)",
"Bash(npm run build)",
"Bash(git status)",
"Bash(git diff *)"
],
"ask": [
"Bash(git push *)",
"Bash(npm install *)",
"Bash(pnpm add *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(rm -rf *)",
"Bash(sudo *)"
]
},
"env": {
"BASH_DEFAULT_TIMEOUT_MS": "600000"
}
};
fs.mkdirSync(path.dirname(target), { recursive: true });
const current = fs.existsSync(target) ? JSON.parse(fs.readFileSync(target, 'utf8')) : {};
const merged = { ...current, ...incoming };
if (current.permissions || incoming.permissions) {
merged.permissions = { ...(current.permissions || {}), ...(incoming.permissions || {}) };
}
if (current.env || incoming.env) {
merged.env = { ...(current.env || {}), ...(incoming.env || {}) };
}
fs.writeFileSync(target, JSON.stringify(merged, null, 2) + '\n');
NODEHow to generate Claude Code settings.json
- Pick the settings scope. Choose user, project, or local scope depending on whether the config should be personal, shared with the repository, or private to one checkout.
- Choose a permission profile. Start from conservative, developer, or CI review defaults, then edit allow, ask, and deny rules for the repository.
- Add optional behavior settings. Set model, output style, cleanup period, update channel, attribution, statusLine command, and environment variables.
- Copy the generated JSON. Copy settings.json or download it, then place it at the scope-specific path shown by the generator.
- Merge without deleting existing config. Use the generated merge command when you already have env or permission blocks that should be preserved.
What this settings file controls
Claude Code reads settings from user, project, local, and managed scopes. This generator focuses on the portable JSON keys teams usually need when standardizing local agent behavior.
permissions- allow, ask, or deny specific tools and command patterns.env- set environment variables for Claude Code sessions and spawned subprocesses.statusLine- run a command that prints a one-line terminal status display.modelandoutputStyle- set session defaults where your team wants consistency.
Frequently Asked Questions
What is a Claude Code settings generator?
+
A Claude Code settings generator creates a ready-to-use settings.json or settings.local.json file for Claude Code, including permissions, environment variables, model preferences, statusLine configuration, and team-safe defaults.
Where does Claude Code settings.json go?
+
User settings go in ~/.claude/settings.json, shared project settings go in .claude/settings.json, and private project overrides go in .claude/settings.local.json.
Should permissions go in settings.json or settings.local.json?
+
Team-safe rules belong in .claude/settings.json. Personal allowances, temporary experiments, and machine-specific paths belong in .claude/settings.local.json.
What is the safest default permission profile?
+
The conservative profile is safest for new repositories because it allows read-only discovery and asks before edits, package installs, git operations, or other project-changing commands.
Does this tool send my settings anywhere?
+
No. The generator runs in your browser, stores preferences in localStorage, and creates copyable JSON without sending the generated settings to Tornic.
Settings shape one session. Tornic runs the workflow.
Claude Code settings make one agent session more predictable. Tornic turns Claude, Codex, and Cursor CLI subscriptions into repeatable workflows with clear steps, stable handoffs, and no surprise API bills.
Try Tornic