Skip to content

Configuration Overview

Loading model

Kompass loads configuration in this order:

  1. the bundled base config
  2. the first matching home-directory override file
  3. the first matching project override file

For both the home directory and the project root, Kompass checks these file names in order:

  1. .opencode/kompass.jsonc
  2. .opencode/kompass.json
  3. kompass.jsonc
  4. kompass.json

Later layers replace or augment earlier configuration depending on the field.

Main sections

shared

Shared render-time guidance, including:

  • prApprove
  • validation

commands

Controls command availability, template overrides, and adapter-facing command names.

  • <name>.enabled
  • <name>.name
  • <name>.template
  • legacy enabled and templates fields are still recognized for compatibility

agents

Controls bundled agent definitions, enablement, and adapter-facing agent names.

  • name
  • description
  • promptPath
  • permission

tools

Controls built-in tool enablement and per-adapter tool name remapping.

components

Controls reusable template partials and path overrides used during command rendering.

defaults

Shared defaults such as baseBranch.

adapters

Adapter-specific configuration. Today this includes:

  • adapters.opencode.agentMode

Tool alias example

You can keep bundled surfaces enabled but expose them under custom adapter-facing names. OpenCode tool defaults use kompass_<tool>, such as kompass_ticket_load; command and agent defaults use their config keys. Built-in command, component, and agent templates read resolved names from render config values like <%= it.config.tools.ticket_load.name %>.

{
"tools": {
"ticket_sync": {
"enabled": true,
"name": "custom_ticket_name"
}
},
"commands": {
"pr/create": {
"enabled": true,
"name": "open-pr"
}
},
"agents": {
"reviewer": {
"enabled": true,
"name": "code-reviewer"
}
}
}