Sessions
A koshi session owns tabs, panes, and the processes inside them; clients attach to it and can be driven from any shell.
A session is one running koshi. It owns tabs, each tab owns a layout of panes, and each pane owns one process with its own terminal screen and scrollback. A client is a terminal attached to that session.
session
└── tab
└── pane ── process, screen, scrollbackStart one
koshi # one tab, one shell pane
koshi --profile dev # tabs and panes from profile/dev.kdlSee what is running
Every list and inspect command takes --format table (default) or
--format json.
koshi list-sessions
koshi list-tabs
koshi list-panes
koshi list-clientskoshi inspect session <SESSION_ID>
koshi inspect tab <TAB_ID>
koshi inspect pane <PANE_ID>
koshi inspect client <CLIENT_ID>Targeting
Inside koshi, a command with no target uses the current session, tab, pane, or client. Outside koshi, give a target unless exactly one session is running — in that case koshi picks it.
Create commands print the ids they made: new-pane and run print one pane id,
new-tab prints its tab id and root pane id. Those ids are what you feed back
into --pane, --tab, and --session.
End one
koshi kill-session # the only running session
koshi kill-session <NAME> # a named oneClosing the last pane in a tab closes the tab. Closing the last tab ends the session.