Configuration Overview
Loading model
Kompass loads configuration in this order:
- the bundled base config
- the first matching home-directory override file
- the first matching project override file
For both the home directory and the project root, Kompass checks these file names in order:
.opencode/kompass.jsonc.opencode/kompass.jsonkompass.jsonckompass.json
Later layers replace or augment earlier configuration depending on the field.
Main sections
shared
Shared render-time guidance, including:
prApprovevalidation
commands
Controls command availability, template overrides, and adapter-facing command names.
<name>.enabled<name>.name<name>.template- legacy
enabledandtemplatesfields are still recognized for compatibility
agents
Controls bundled agent definitions, enablement, and adapter-facing agent names.
namedescriptionpromptPathpermission
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" } }}