Discovery commands
List sessions, tabs, panes, and clients or inspect one complete record as a table or JSON.
Every list and inspect command accepts --format table or --format json.
Table is the default.
List
koshi list-sessions
koshi list-sessions --remote work
koshi list-tabs --session <NAME_OR_ID>
koshi list-panes --session <NAME_OR_ID>
koshi list-clients --session <NAME_OR_ID>| Command | Output |
|---|---|
list-sessions | Session ids and names, the machine each runs on, and the owner of another user's session |
list-tabs | Tab ids and names, and the id and name of the owning session |
list-panes | Pane, tab, and session ids and names; tiled panes first, then floating panes |
list-clients | Client ids and owning sessions |
For scripts:
koshi list-panes --format jsonA time prints as RFC 3339 UTC text, such as 2026-11-01T04:22:56Z, in both
formats. In a table an absent value prints as - and a list of ids as its
count; in JSON an absent value is null and a list of ids is the whole list.
A floating pane prints float in the tab column of list-panes and - in
tab_name; --format json writes null for both.
Inspect
koshi inspect session <NAME_OR_ID>
koshi inspect tab <NAME_OR_ID>
koshi inspect pane <PANE_ID>
koshi inspect client <CLIENT_ID>inspect prints one full record. Add --format json for machine-readable
output. inspect pane shows a pane's command in full, arguments included.
The server column
list-sessions names each session's machine: local for a session on this
machine, else the saved server it runs on. A bare koshi list-sessions sweeps
every saved server and appends what answered. The sweep waits two seconds in
total, not two seconds per server. A server whose connection failed, and a
server that did not answer, are named on standard error and their sessions are
left out. See Remote sessions.
The owner column names the user id of another user of this machine whose
session you can reach, such as 1001, and - for every other session.
--format json carries it as owner_user_id. Such a session can also be
named as <user id>/<session id>, such as 1001/session-3f2a….
Names and ids
Session and tab arguments take either the generated name or the printed id. An id is never re-read as a name. A name that several targets share is refused, and the error lists every matching id. Pane and client arguments take ids only.
Ending a session
koshi kill-session lives on Session commands,
beside attach and detach.
Reading running state
For the whole picture — every session's tabs, panes, and clients at once, or a
tab's solved rectangles — use
koshi debug.