/kotharo:config

On this page

/kotharo:config works like git config for Kotharo. It shows each setting and the file it comes from, and sets or removes one after your OK. /kotharo:setup is the guided way to set the common ones; this is the direct way to set any of them.

Where settings live

Settings resolve in seven layers. Each overrides the ones above it. Tables merge and arrays replace.

LayerFileFor
corethe plugin's defaults/profile.tomleveryone
profileyour team profile's profile.tomlthe team
pluginthe plugin's own options, today jira_siteyou, every repo
user~/.claude/kotharo.tomlyou, every repo
repo.claude/kotharo.toml, committedeveryone on this repo
toolchainthe ### Toolchain section of CLAUDE.mdthis repo's tool bindings
local.claude/kotharo.local.toml, gitignoredyou, this repo

Every file is checked like a team profile: it may set only keys the core defaults define, with the same types. A file that breaks this is refused with its error, and nothing changes.

Show settings

Every setting, each line ending with the layer and file it came from:

/kotharo:config show --origin

One setting, or every value under a table:

/kotharo:config show --origin autonomy.level
/kotharo:config show --origin lanes.small-fix

A line starting with ignored: is a value from your team profile that would relax a safety default. Those take effect only from your own file or the repo's, as below.

Set a setting

Name the key, the value and the layer: --repo for this repo and everyone on it, --local for you on this repo, or --user for all your repos. Leave the layer out and it asks.

/kotharo:config set autonomy.level guided --repo
/kotharo:config set roles.dev.tier opus --local

It previews the change first: the value before and after, each with its source, the files it would write, and any warning. A list value is comma separated, such as scope,merge. Only after your OK does it write. If .claude/kotharo.local.toml isn't in .gitignore, it asks whether to add it as part of the same OK.

Setting a tool binding, such as slots.ticketing, with --repo writes the line in the ### Toolchain section of CLAUDE.md, so the repo's bindings stay in one place.

A change to .claude/kotharo.toml or CLAUDE.md is a change to the repo. It shows in git status, and you commit it like any other.

Remove a setting

unset removes one key from one layer, and shows the value it falls back to and where that comes from:

/kotharo:config unset roles.dev.tier --local

reset removes a whole layer's file, after showing every key it sets and what each falls back to:

/kotharo:config reset --local

Safety defaults

A value that relaxes a safety default, such as deploy.dev_auto_deploy = true, takes effect only from your own ~/.claude/kotharo.toml or the repo's committed .claude/kotharo.toml. A team profile can't turn one on for you, and the local file can't hold one or undo a stricter value from a layer above it. The same goes for a looser autonomy level.

Nothing in any layer loosens your CLAUDE.md rules or the core rules.

Next: Adapters. All docs