User Configuration
This page documents the fields available in systematic.json / systematic.jsonc.
The configuration file can be placed in one of three locations (searched in order):
$OPENCODE_CONFIG_DIR/systematic.json(or.jsonc)<project>/.opencode/systematic.json(or.jsonc)~/.config/opencode/systematic.json(or.jsonc)
When both .jsonc and .json exist in the same directory, .jsonc takes precedence.
Agent/Category Overlay Fields
Section titled “Agent/Category Overlay Fields”The agents and categories sections share the same set of per-entry overlay fields.
Each key under agents or categories is an object with the following fields.
(The disable field is only valid under agents, not categories.)
Model identifier in provider/model format, or null to inherit parent model
Type: string | null
Examples:
anthropic/claude-sonnet-4nullvariant
Section titled “variant”Model variant identifier
Type: string
Examples:
v2extendedtemperature
Section titled “temperature”Sampling temperature (≥0; 0 = deterministic)
Type: number
Examples:
0.10.70Nucleus sampling parameter (0 to 1)
Type: number
Examples:
0.90.11Agent execution mode
Type: string
Valid values: subagent, primary, all
Examples:
subagentprimaryallAgent color — named token from OpenCode or 6-digit hex color (#RRGGBB)
Type: string | string
Examples:
primary#ff6600Maximum execution steps (positive integer)
Type: integer
Examples:
1050hidden
Section titled “hidden”Hide agent from UI
Type: boolean
Examples:
truefalsedisable
Section titled “disable”Disable this agent overlay
Type: boolean
Examples:
truefalseskills
Section titled “skills”Skills enabled for this agent
Type: string[]
Examples:
[ "ce:plan", "ce:review"]permission
Section titled “permission”Permission overrides per tool
Type: object
Examples:
{ "edit": "allow", "bash": { "curl": "allow", "rm": "deny" }}$schema
Section titled “$schema”JSON Schema URL for IDE autocomplete. The value is informational only — the loader does not fetch or validate against it. Add this to enable IDE schema activation and field-level autocomplete in editors that support JSON Schema (VSCode, Zed, IntelliJ).
Type: string
Examples:
"$schema": "https://fro.bot/systematic/schemas/v2/systematic-config.schema.json"agents
Section titled “agents”Per-agent configuration overlays keyed by agent name
Type: object
Default: {}
Examples:
{ "correctness-reviewer": { "temperature": 0.1 }}{}Per-entry overlay fields are documented in the Agent/Category Overlay Fields section above.
categories
Section titled “categories”Per-category configuration overlays keyed by category name
Type: object
Default: {}
Examples:
{ "review": { "model": "anthropic/claude-opus-4-7" }}{}Per-entry overlay fields are documented in the Agent/Category Overlay Fields section above.
disabled_skills
Section titled “disabled_skills”Array of skill names to disable globally
Type: string[]
Default: []
Examples:
[ "ce:plan", "ce:review"]disabled_agents
Section titled “disabled_agents”Array of agent names to disable globally
Type: string[]
Default: []
Examples:
[ "previous-comments-reviewer", "cli-readiness-reviewer"]disabled_commands
Section titled “disabled_commands”Array of command names to disable globally
Type: string[]
Default: []
Examples:
[ "deprecated-migration-helper"]bootstrap
Section titled “bootstrap”Bootstrap prompt configuration
Type: object
Default: {"enabled":true}
Examples:
{ "enabled": true}{ "enabled": false, "file": ".opencode/custom-prompt.md"}enabled
Section titled “enabled”Enable bootstrap prompt injection into every conversation
Type: boolean
Default: true
Examples:
truefalsePath to a custom bootstrap prompt file
Type: string
Examples:
~/.config/opencode/bootstrap.mdOffline IDE behavior
Section titled “Offline IDE behavior”The schema’s $id points to the canonical online URL above, so IDEs that prefer fetching the canonical schema may attempt to reach the docs site even when the bundled npm copy is also on disk. If you need strict offline behavior, configure your editor to associate systematic.{json,jsonc} with node_modules/@fro.bot/systematic/dist/schemas/systematic-config.schema.json directly.