Skip to content

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):

  1. $OPENCODE_CONFIG_DIR/systematic.json (or .jsonc)
  2. <project>/.opencode/systematic.json (or .jsonc)
  3. ~/.config/opencode/systematic.json (or .jsonc)

When both .jsonc and .json exist in the same directory, .jsonc takes precedence.

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-4
null

Model variant identifier

Type: string

Examples:

v2
extended

Sampling temperature (≥0; 0 = deterministic)

Type: number

Examples:

0.1
0.7
0

Nucleus sampling parameter (0 to 1)

Type: number

Examples:

0.9
0.1
1

Agent execution mode

Type: string

Valid values: subagent, primary, all

Examples:

subagent
primary
all

Agent color — named token from OpenCode or 6-digit hex color (#RRGGBB)

Type: string | string

Examples:

primary
#ff6600

Maximum execution steps (positive integer)

Type: integer

Examples:

10
50

Hide agent from UI

Type: boolean

Examples:

true
false

Disable this agent overlay

Type: boolean

Examples:

true
false

Skills enabled for this agent

Type: string[]

Examples:

[
"ce:plan",
"ce:review"
]

Permission overrides per tool

Type: object

Examples:

{
"edit": "allow",
"bash": {
"curl": "allow",
"rm": "deny"
}
}

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"

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.

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.

Array of skill names to disable globally

Type: string[] Default: [] Examples:

[
"ce:plan",
"ce:review"
]

Array of agent names to disable globally

Type: string[] Default: [] Examples:

[
"previous-comments-reviewer",
"cli-readiness-reviewer"
]

Array of command names to disable globally

Type: string[] Default: [] Examples:

[
"deprecated-migration-helper"
]

Bootstrap prompt configuration

Type: object Default: {"enabled":true} Examples:

{
"enabled": true
}
{
"enabled": false,
"file": ".opencode/custom-prompt.md"
}

Enable bootstrap prompt injection into every conversation

Type: boolean Default: true

Examples:

true
false

Path to a custom bootstrap prompt file

Type: string

Examples:

~/.config/opencode/bootstrap.md

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.