Configuration

Creor reads settings from creor.json files at multiple levels. Higher-priority sources override lower ones, so you can set organization defaults while letting individual projects fine-tune behavior.

Config Files

Creor uses creor.json or creor.jsonc (JSON with comments) for configuration. You can place these files at the project level, inside a .creor/ directory, or in your home directory for global defaults.

A minimal config file only needs the $schema field for editor autocompletion:

1
2
3
{
"$schema": "https://creor.dev/config.json"
}

Tip

Use creor.jsonc if you want to add inline comments. Both formats are supported everywhere Creor looks for config.

Config Hierarchy

Creor merges configuration from multiple sources. Each level overrides the one below it. From lowest to highest priority:

PrioritySourceDescription
1 (lowest)Remote .well-known/creorOrganization defaults fetched from a well-known URL during auth
2Managed config/etc/creor (Linux), /Library/Application Support/creor (macOS), or %ProgramData%\creor (Windows) — admin-controlled, enterprise deployments
3Global user config~/.creor/creor.json — your personal defaults across all projects
4CREOR_CONFIG fileA custom path set via the CREOR_CONFIG environment variable
5Project creor.jsoncreor.json or creor.jsonc in the project root (checked into the repo)
6.creor/ directory.creor/creor.json inside the project — also loads agents, skills, and plugins from subdirectories
7CREOR_CONFIG_CONTENTInline JSON passed as an environment variable
8Runtime configChanges applied via the PATCH /config API at runtime
9 (highest)Managed directoryEnterprise managed directory always wins — it overrides everything above

Array fields like plugin and instructions are concatenated across levels rather than replaced, so global plugins are always included alongside project-specific ones.

Note

Creor also loads agents from .creor/agents/*.md, skills from .creor/skills/*/SKILL.md, and plugins from .creor/plugins/*.ts in every config directory it scans.

Key Sections

model

Set the default model in provider/model format. You can also set a smaller model for background tasks like title generation.

1
2
3
4
{
"model": "anthropic/claude-sonnet-4-20250514",
"small_model": "anthropic/claude-haiku-3-5"
}

provider

Override provider settings — custom base URLs, API keys, or model routing.

1
2
3
4
5
6
7
8
9
10
11
{
"provider": {
"openai": {
"api_key_env": "MY_OPENAI_KEY"
},
"custom-ollama": {
"api_url": "http://localhost:11434/v1",
"models": ["llama3:70b"]
}
}
}

agent

Customize built-in agents or define new subagents. See the Subagents page for full details.

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"agent": {
"build": {
"model": "anthropic/claude-sonnet-4-20250514",
"temperature": 0.3
},
"review": {
"description": "Read-only code reviewer",
"mode": "subagent",
"prompt": "You are a code reviewer. Read code and provide feedback."
}
}
}

permission

Control which tools require confirmation, are auto-allowed, or are denied entirely. Each tool can be set to ask, allow, or deny. You can also use glob patterns for file-specific rules.

1
2
3
4
5
6
7
8
9
10
11
12
{
"permission": {
"bash": "ask",
"edit": "allow",
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny"
},
"websearch": "allow"
}
}

skills

Point Creor at additional skill directories or remote skill URLs.

1
2
3
4
5
6
{
"skills": {
"paths": ["./custom-skills", "~/shared-skills"],
"urls": ["https://example.com/.well-known/skills/"]
}
}

hooks

Run shell commands at specific lifecycle events. See the Hooks page for details.

1
2
3
4
5
6
7
8
9
10
11
{
"hooks": {
"tool.execute.after": [
{
"command": "prettier --write $HOOK_TOOL_OUTPUT",
"matcher": "Edit",
"description": "Auto-format after edit"
}
]
}
}

mcp

Configure Model Context Protocol servers — local stdio-based or remote URL-based. See the MCP page.

sandbox

OS-level sandboxing for bash commands. Enabled by default on macOS and Linux with kernel-level enforcement.

1
2
3
4
5
6
7
8
9
10
{
"sandbox": {
"enabled": true,
"filesystem": {
"writable_roots": ["/tmp/builds"],
"denied_paths": ["~/.ssh", "~/.gnupg"]
},
"network": "allow"
}
}

Other Settings

FieldTypeDescription
share"manual" | "auto" | "disabled"Control session sharing behavior
autoupdateboolean | "notify"Auto-update behavior
snapshotbooleanEnable file snapshots for undo
repo_map_enabledbooleanInject workspace file tree into system prompt (default: true)
project_context_enabledbooleanInject framework/dependency context (default: true)
git_context_enabledbooleanInject git branch/commit context at session start
format_enabledbooleanAuto-format files after AI edits (default: true)
default_agentstringDefault agent name (falls back to "build")
auto_routebooleanAuto-route messages to the best agent via LLM classification
disabled_providersstring[]Providers to exclude
enabled_providersstring[]When set, ONLY these providers are loaded
usernamestringCustom display name in conversations

Full Example

A typical project-level .creor/creor.json covering the most common settings:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
"$schema": "https://creor.dev/config.json",
"model": "anthropic/claude-sonnet-4-20250514",
"small_model": "anthropic/claude-haiku-3-5",
"default_agent": "build",
"auto_route": true,
"format_enabled": true,
"repo_map_enabled": true,
"share": "manual",
"permission": {
"bash": "ask",
"edit": "allow",
"read": {
"*": "allow",
"*.env": "deny"
},
"websearch": "allow"
},
"agent": {
"build": {
"temperature": 0.2
},
"review": {
"description": "Read-only code reviewer",
"mode": "subagent",
"permission": {
"edit": "deny",
"bash": "deny"
}
}
},
"hooks": {
"tool.execute.after": [
{
"command": "npx prettier --write \"$HOOK_TOOL_OUTPUT\"",
"matcher": "Edit",
"description": "Format after edit"
}
]
},
"mcp": {
"github": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-github"],
"environment": {
"GITHUB_TOKEN": "your-token"
}
}
},
"plugin": ["devflow-rag@latest"],
"sandbox": {
"enabled": true,
"network": "allow"
}
}

Environment Variables

Many settings can be controlled via environment variables. These are evaluated at startup and can override file-based config.

VariableDescription
CREOR_CONFIGPath to a custom config file
CREOR_CONFIG_CONTENTInline JSON config (overrides file-based config)
CREOR_CONFIG_DIRAdditional config directory to scan
CREOR_CLIENTClient identifier: "cli", "desktop", etc. (default: "cli")
CREOR_PERMISSIONJSON permission overrides
CREOR_DISABLE_PROJECT_CONFIGSet to "true" to ignore project-level config
CREOR_DISABLE_DEFAULT_PLUGINSSet to "true" to skip built-in plugins
CREOR_DISABLE_AUTOCOMPACTSet to "true" to disable automatic context compaction
CREOR_DISABLE_PRUNESet to "true" to disable output pruning
CREOR_DISABLE_LSP_DOWNLOADSet to "true" to skip auto-downloading LSP servers
CREOR_DISABLE_EXTERNAL_SKILLSSet to "true" to skip remote skill loading
CREOR_SANDBOXSet to "true" to force sandbox mode
CREOR_SANDBOX_NETWORK"allow" or "deny" for sandbox network policy
CREOR_ENABLE_EXASet to "true" to enable Exa web search
CREOR_MODELS_URLCustom URL for the models registry
CREOR_MODELS_PATHLocal path to a models registry file
CREOR_SERVER_USERNAMEHTTP basic auth username for the engine server
CREOR_SERVER_PASSWORDHTTP basic auth password for the engine server
CREOR_EXPERIMENTALSet to "true" to enable all experimental features
CREOR_EXPERIMENTAL_PLAN_MODESet to "true" to enable plan mode agent
CREOR_TELEMETRYSet to "true" to enable anonymous telemetry

Warning

Environment variables like CREOR_PERMISSION and CREOR_CONFIG_CONTENT expect valid JSON strings. Malformed JSON will be silently ignored.

Runtime Config

You can change configuration at runtime using the PATCH /config API endpoint. These changes are persisted to a config.json file in the engine's instance directory and take the second-highest priority in the merge order, just below managed config.

Creor also watches .creor/creor.json for external edits. When the file changes on disk, the engine automatically reloads all configuration, agent definitions, and permissions without requiring a restart.