KOSHI0.6.0
Keybindings
v0.5keybindingsfield manual

Actions

Built-in action names available to keybindings and how to inspect their scope and targets.

A binding names a full action reference such as core:new-pane-right. Run:

koshi actions list
koshi actions explain core:new-pane-right

list shows actions implemented by the running version. explain shows one action's description, scope, accepted targets, and related CLI command.

Pane actions

ActionResult
core:new-paneNew shell pane in configured direction
core:new-pane-leftNew shell pane left
core:new-pane-downNew shell pane below
core:new-pane-upNew shell pane above
core:new-pane-rightNew shell pane right
core:new-pane-stackedAdd shell pane to focused stack
core:runRun a command in a new pane
core:close-paneClose focused pane
core:close-pane-treeClose pane and every process it started
core:resize-paneResize along an explicit edge
core:resize-pane-leftMove border left
core:resize-pane-downMove border down
core:resize-pane-upMove border up
core:resize-pane-rightMove border right
core:focus-paneFocus an explicit pane
core:focus-pane-leftFocus pane left
core:focus-pane-downFocus pane below
core:focus-pane-upFocus pane above
core:focus-pane-rightFocus pane right
core:begin-pane-placementStart a local preview for moving a pane
core:move-paneSwap a pane with its visible neighbor in one direction
core:place-paneInsert a pane into another tab's tiled layout
core:select-pane-target-leftChoose the pane to swap with on the left
core:select-pane-target-downChoose the pane to swap with below
core:select-pane-target-upChoose the pane to swap with above
core:select-pane-target-rightChoose the pane to swap with on the right
core:select-pane-insertion-leftChoose an insertion edge on the left
core:select-pane-insertion-downChoose an insertion edge below
core:select-pane-insertion-upChoose an insertion edge above
core:select-pane-insertion-rightChoose an insertion edge on the right
core:cycle-pane-placement-spanCycle the split span in the move preview
core:select-next-placement-tabPreview the next visible tab
core:select-previous-placement-tabPreview the previous visible tab
core:confirm-pane-placementAccept the previewed move
core:cancel-pane-placementCancel the previewed move
core:scroll-paneScroll a pane's view by a chosen number of lines
core:scroll-pane-upScroll the focused pane toward its history
core:scroll-pane-downScroll the focused pane toward live output
core:toggle-pane-fullscreenToggle focused-pane fullscreen
core:write-to-paneSend text to a pane

Tab, session, and client actions

ActionResult
core:new-tabCreate tab
core:close-tabClose focused tab
core:focus-tabFocus explicit tab
core:next-tabFocus next tab
core:previous-tabFocus previous tab
core:move-tabMove tab to another index
core:lockEnable pass-through lock mode
core:unlockDisable pass-through lock mode
core:toggle-lockToggle pass-through lock mode
core:mouse-selectToggle mouse-selection mode
core:quitLeave the session; the session keeps running

core:quit detaches this terminal. It ends the session only when auto-close-session #true and no other terminal is attached. There is no action that ends a session outright — use koshi kill-session.

Binding rules

Write the namespace: core:new-tab, not new-tab. Bindings accept no action arguments. Fixed choices belong in the action name; open values such as a pane id, tab index, or text belong to the CLI.

These actions need values that only their CLI command supplies, so a key bound to one never fires, and koshi keys validate and koshi keys conflicts warn about it: core:run, core:resize-pane, core:focus-pane, core:move-pane, core:place-pane, core:scroll-pane, core:write-to-pane, core:focus-tab, and core:move-tab.

keybinding.kdl
version 2

mode "normal" {
    bind "<A-h>" "core:focus-pane-left"
    bind "<A-l>" "core:focus-pane-right"
}

On this page