koshi0.1.0
Using koshi

Panes

Open, place, focus, resize, stack, fullscreen, and close koshi panes from keys or the CLI.

Each pane owns one process, terminal screen, and scrollback buffer. Splitting a pane keeps the existing pane and places a new one beside it.

Open a pane

KeysPlacement
<C-p> hLeft
<C-p> jBelow
<C-p> kAbove
<C-p> lRight
<C-p> nlayout.new-pane-direction

From a shell:

koshi new-pane --direction right
koshi new-pane --stacked
koshi run --direction down -- cargo watch -x test

new-pane starts the default shell. run starts the command after --. Both print the new pane id. Omit a target inside koshi to split the current pane; outside koshi, pass --pane, --tab, or --session unless exactly one session is running.

A shell pane inherits the working directory of the pane it splits. A command pane runs the command and arguments you gave after --.

Focus and resize

KeysResult
<C-p> ←↓↑→Focus the nearby pane
<C-s> ←↓↑→Move one border one cell

Focus is per client: two terminals attached to one session may look at different panes.

koshi focus-pane --pane <PANE_ID>
koshi resize-pane --pane <PANE_ID> --direction right --size 4

A positive resize grows toward the direction. A negative value shrinks from that side.

Stack and fullscreen

--stacked adds a pane to the focused pane's stack. Stack members share one rectangle; one is expanded and the others appear as one-row headers.

Alt+f fills the tab with the focused pane. Press it again to restore the layout.

koshi toggle-pane-fullscreen

Close a pane

<C-p> x closes the focused pane and its process tree.

koshi close-pane --pane <PANE_ID>
koshi close-pane --pane <PANE_ID> --force

Closing a pane promotes its sibling into the freed space. Closing the last pane closes its tab; closing the last tab ends the session.

Send input

koshi input --pane <PANE_ID> "cargo test"
koshi input --pane <PANE_ID> --no-enter "git status"

input types text into a pane and presses Enter by default. --no-enter leaves it at the prompt.

On this page