# Koshi 0.3.0 — Keys and actions commands (/docs/v0.3/cli/keys-and-actions)



Keys belong to the terminal you run these from — they read that terminal's
`keybinding.kdl`.

## List shortcuts [#list-shortcuts]

```bash
koshi keys list
koshi keys list --mode normal
koshi keys list --scope default
koshi keys list --scope user
```

`--mode` filters one mode. `--scope` separates built-in bindings from user
overrides.

## Describe one sequence [#describe-one-sequence]

```bash
koshi keys describe "<C-p> l"
```

Shows the mode, the action with its display name and description, its scope
and arguments, the layer it comes from (`defaults` or your `keybinding.kdl`),
and whether it repeats from an open prefix. A sequence that binds nothing in
any mode is refused.

## Find conflicts [#find-conflicts]

```bash
koshi keys conflicts
```

Reports duplicate sequences, shorter prefixes that make longer bindings
unreachable, reserved unlock problems, and warnings. A clean keymap prints
`verdict: apply`.

## Validate a file [#validate-a-file]

```bash
koshi keys validate path/to/keybinding.kdl
```

Parses and checks a keybinding file without adopting it.

## List actions [#list-actions]

```bash
koshi actions list
koshi actions list --format json
```

Lists every action with its internal command and scope.

## Explain one action [#explain-one-action]

```bash
koshi actions explain core:new-pane
koshi actions explain core:new-pane --format json
```

Shows the action's name, description, scope, accepted targets, internal
command, and examples. It takes a bare name (`new-pane`) or a full reference
(`core:new-pane`). A binding in `keybinding.kdl` needs the full reference.
