Skip to main content

Configuration Reference (.openexec/config.json)

openexec init creates .openexec/config.json, the per-project configuration file. Most fields are optional — OpenExec runs with sensible defaults, and you opt into the advanced subsystems explicitly.

Below is the full set of fields, grouped by purpose. A minimal config only needs name.

Top-level fields

FieldTypeDescription
namestringProject name (defaults to the directory name).
project_dirstringAbsolute project path (set automatically).
git_enabledboolTrack changes with git (default true).
git_commit_enabledboolAllow OpenExec to make local commits autonomously.
base_branchstringBase branch for work (default main).
release_branch_prefixstringPrefix for release branches, e.g. release/.
feature_branch_prefixstringPrefix for feature branches, e.g. feature/.
executionobjectExecution-engine settings (see below).
quality_gatesobjectProject-level quality gate toggles (see below).

execution

Models and runner

FieldTypeDescription
planner_modelstringModel used for the planning phase.
executor_modelstringModel used for task execution.
reviewer_modelstringModel used for the review stage.
review_enabledboolRun a review stage after execution.
runner_commandstringOverride the loop runner binary: claude, gemini, or codex.
runner_argsstring[]Extra arguments passed to the runner.
exec_modestringRunner permission level: suggest (read-only), workspace-write (default), or danger-full-access (skips all permission prompts).
portintExecution-engine port.
timeout_secondsintDefault per-task timeout for run/start when no flag is given.
worker_countintNumber of concurrent workers for parallel execution.

Lint and test overrides

FieldTypeDescription
lint_commandsstring[]Override the blueprint's lint commands. If empty, the lint stage is skipped (auto-pass).
test_commandsstring[]Override the blueprint's test commands. If empty, the test stage is skipped (auto-pass).

Opt-in subsystems (default: off)

These power the advanced features and are disabled unless you turn them on.

FieldTypeDescription
quality_gates_v2boolAuto-detect the project type (Go / Python / TypeScript / Rust) and run lint/test/format gates.
cache_enabledboolEnable the knowledge cache and tool-result cache (.openexec/cache.db).
predictive_loadboolPre-fetch files likely needed for the task (.openexec/predictive.db).
memory_enabledboolExtract learning patterns from completed stages and reinject them later (.openexec/memory.db).
checkpoint_enabledboolWrite a checkpoint after each stage for crash recovery (.openexec/checkpoints.db).
bitnet_routingboolUse a local 1-bit (BitNet) LLM for intent classification. The model auto-downloads on first use.
bitnet_modelstringPath to the BitNet model file (used when bitnet_routing is on).
toolset_filteringboolRestrict the tool definitions sent to the frontier model to the toolset chosen by the local router (API path only).

Opt-out subsystems (default: on)

These are enabled unless you explicitly set them to false.

FieldTypeDescription
symbol_indexingboolIndex project source into the knowledge base at startup. Defaults to enabled; set false to disable.
local_pre_resolveboolInject referenced symbol signatures into the briefing before the implement stage. Defaults to enabled; set false to disable.

API providers (OpenAI-compatible endpoints)

Use these to drive OpenExec with any OpenAI-compatible HTTP API (OpenAI, Kimi, Mistral, Ollama, vLLM, etc.) instead of a local CLI tool. The named-providers shape is preferred:

{
"execution": {
"providers": {
"kimi": { "base_url": "https://api.moonshot.cn/v1", "api_key": "$KIMI_API_KEY", "model": "moonshot-v1-128k" },
"vllm-local": { "base_url": "http://localhost:8000/v1", "api_key": "local", "model": "qwen2.5-coder" }
},
"active_provider": "kimi"
}
}
FieldTypeDescription
providersmapNamed endpoints; each has base_url, api_key, model.
active_providerstringWhich named provider to use. If omitted and only one provider is defined, that one is used.

API keys may be written inline or as a $ENV_VAR reference (e.g. "$KIMI_API_KEY"), which is resolved from the environment at runtime.

The following legacy fields remain readable for older configs (prefer the named shape above): api_provider, api_base_url, api_key, api_model.

Coordinator (multi-agent execution)

Used when a frontier model decomposes a task and cheaper workers execute subtasks in parallel.

FieldTypeDescription
coordinator_modelstringFrontier model used for planning and merging.
worker_modelstringModel for worker agents (can be cheaper).
worker_api_providerstringProvider for workers (defaults to the main API provider).
worker_api_base_urlstringBase URL for workers (defaults to the main base URL).
worker_api_keystringAPI key for workers (defaults to the main key).

quality_gates

Project-level gates that run outside the openexec.yaml command-based gates. Both default to on; set the toggle to false to disable.

FieldTypeDescription
no_stubsboolRun the no-stubs verifier that blocks placeholder/TODO implementations.
no_stubs_rulesmapPer-rule severity overrides: high, warn, low, or off.
production_readyboolRun the production-readiness checklist (documented env vars, no committed secrets, reversible migrations, session checks on API handlers, health endpoint present).
production_ready_skipstring[]Checklist check IDs to skip.

Example

{
"name": "my-app",
"git_enabled": true,
"base_branch": "main",
"execution": {
"executor_model": "claude-sonnet-4-6",
"exec_mode": "workspace-write",
"quality_gates_v2": true,
"cache_enabled": true,
"checkpoint_enabled": true,
"worker_count": 4
},
"quality_gates": {
"production_ready": true
}
}