/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.
| Layer | File | For |
|---|---|---|
| core | the plugin's defaults/profile.toml | everyone |
| profile | your team profile's profile.toml | the team |
| plugin | the plugin's own options, today jira_site | you, every repo |
| user | ~/.claude/kotharo.toml | you, every repo |
| repo | .claude/kotharo.toml, committed | everyone on this repo |
| toolchain | the ### Toolchain section of CLAUDE.md | this repo's tool bindings |
| local | .claude/kotharo.local.toml, gitignored | you, 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 --originOne setting, or every value under a table:
/kotharo:config show --origin autonomy.level/kotharo:config show --origin lanes.small-fixA 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 --localIt 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 --localreset removes a whole layer's file, after showing every key it sets and what each falls back to:
/kotharo:config reset --localSafety 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.