# Config commands (/docs/v0.1/cli/config)



## Find the directory [#find-the-directory]

```bash
koshi config path
```

Prints the config directory for the current platform.

## Explain a setting [#explain-a-setting]

```bash
koshi config explain koshi.pane.min-cols
koshi config explain keybinding.chord-timeout-ms
koshi config explain theme.colors.accent
koshi config explain profile.version
```

Keys include their file kind. An unknown key exits with a usage error and
suggests the nearest known key.

## Check every file [#check-every-file]

```bash
koshi config check
```

Scans:

```text
koshi.kdl
keybinding.kdl
themes/*.kdl
profile/*.kdl
```

It reports all read and schema errors together and changes nothing. Each path
must be a regular file or a symlink to one.

## Migrate schemas [#migrate-schemas]

```bash
koshi config migrate
```

Migration validates every file before writing, applies each registered version
step in order, and validates after each step. Bad KDL, bad values, or a missing
step stops the run before any file is written.

Changed files use atomic replacement one at a time. Symlinks remain symlinks
and their targets change. A write error lists files already completed and marks
the failed file as possibly changed.

Current schema version is `1`, so valid version `1` files stay unchanged.
