Settings
Syntic Code is configured through settings.json files. Settings cascade — project overrides user, user overrides system defaults.
File Locations
| Path | Scope | Precedence |
|---|---|---|
<repo>/.syntic/settings.local.json | Per-developer override (gitignored) | Highest |
<repo>/.syntic/settings.json | Project (committed) | High |
~/.syntic/settings.json | User | Medium |
/etc/syntic/settings.json | System (managed by IT) | Low |
A managed enterprise policy file at /etc/syntic/managed.json always wins. Use it to enforce non-negotiable rules.
Schema
{
"model": {
"default": "kimi-k2-6",
"fallback": "claude-sonnet-4-6",
"temperature": 0.2
},
"permissions": {
"mode": "approve",
"allow": [
"Bash(npm test:*)",
"Bash(git status)",
"Read(**)",
"Edit(**)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(git push --force:*)"
]
},
"hooks": {
"PreToolUse": [],
"PostToolUse": [],
"Stop": []
},
"mcpServers": {},
"skills": {
"enabled": ["writing-migrations", "writing-skills"],
"disabled": []
},
"telemetry": {
"enabled": true,
"endpoint": "https://telemetry.syntic.ai"
},
"ui": {
"theme": "dark",
"fontSize": 14,
"statusLine": "syntic-default"
}
}Common Settings
Switch Models Globally
{ "model": { "default": "kimi-k2-6" } }See Models for the full provider matrix.
Permission Mode
| Mode | Description |
|---|---|
approve | Default — prompt for state-changing tools |
plan | Plan Mode — no writes without explicit exit |
accept-edits | Auto-accept Edit/Write within the allow-list |
bypass | No prompts (use with hooks for safety) |
Allow / Deny Patterns
Patterns use glob-like matching:
{
"allow": ["Bash(npm test:*)", "Bash(git diff:*)", "WebFetch(domain:github.com)"],
"deny": ["Bash(curl:*)", "Edit(.env)"]
}deny always wins over allow.
Skill Allowlist
{
"skills": {
"enabled": ["writing-migrations", "@acme/internal-deploy"],
"directories": ["~/.syntic/skills", "./skills"]
}
}CLI Access
syntic config get model.default
syntic config set model.default kimi-k2-6
syntic config list --scope projectEnvironment Variable Overrides
Any setting can be overridden via env var using uppercase dot-to-underscore conversion:
SYNTIC_MODEL_DEFAULT=claude-sonnet-4-6 syntic
SYNTIC_PERMISSIONS_MODE=plan synticEnv vars > settings.local > settings (project) > user > system.
Related
- Permissions — Detailed permission patterns
- Hooks — Hook configuration schema
- Models — Model and provider IDs