# FAQ (/docs/v0.4/faq)



Short answers to what people ask before installing koshi. Each one links to the
page that covers it in full.

## What is koshi? [#what-is-koshi]

koshi is a terminal multiplexer written in Rust. It runs several shells and
programs inside one terminal window and handles pane layouts, tabs, terminal
emulation, scrollback, keyboard shortcuts, mouse input, and process cleanup. It
is MIT licensed and runs on Linux, macOS, and Windows, on x86-64 and ARM64.

See [Introduction](/docs/v0.4/index).

## Does my work survive closing the terminal? [#does-my-work-survive-closing-the-terminal]

Yes. A koshi session runs in its own process, so closing the terminal, losing
an SSH link, or pressing the quit shortcut leaves every pane running. Run
`koshi attach` to rejoin it, from the same machine or another one.

See [Attach and detach](/docs/v0.4/using/attach-and-detach).

## Can two people use one koshi session at the same time? [#can-two-people-use-one-koshi-session-at-the-same-time]

Yes. Several terminals can attach to one session at once, and each keeps its
own focused pane, active tab, fullscreened pane, scroll position, text
selection, lock mode, theme, and keybindings. One person can switch to tab 2
while the other stays on tab 1, and neither moves the other's screen.

See [Your keys, your view](/docs/v0.4/using/per-client).

## Do my keybindings follow me to another machine? [#do-my-keybindings-follow-me-to-another-machine]

Yes. The terminal you sit at reads your own `keybinding.kdl` and decides what
each key means, then sends the session the action name —
`core:new-pane-right` — never the key itself. A session on another machine
works the same way, so you never edit a keybinding file on the far end.

See [Your keys, your view](/docs/v0.4/using/per-client).

## Can koshi attach to a session on another machine? [#can-koshi-attach-to-a-session-on-another-machine]

Yes. `koshi attach --remote <server>` attaches over TLS. The first connection
pins the certificate the server presents, and a later connection presenting a
different one is refused. Access is granted with a token you scope to one
session or all of them, and revoke at any time. A dropped link dials again for
up to two minutes and restores your tabs, focus, and scroll position.

See [Remote sessions](/docs/v0.4/remote) and the
[setup walkthrough](/docs/v0.4/remote/setup).

## How is koshi configured? [#how-is-koshi-configured]

koshi reads four optional KDL files: `koshi.kdl` for app settings,
`themes/<name>.kdl` for colours, `keybinding.kdl` for keys, and
`profile/<name>.kdl` for saved layouts. Each present file declares `version 1`.
With none present, built-in defaults apply. `koshi config check` validates
every file and `koshi config explain <KEY>` describes one setting.

See [Configuration](/docs/v0.4/configuration).

## Can panes show terminal images? [#can-panes-show-terminal-images]

Yes. koshi decodes Kitty graphics protocol, iTerm2 inline images, and Sixel.
Each terminal chooses the protocol it supports. Images keep their placement
through scrolling, scrollback, resizing, and screen switches. A terminal with
no supported protocol shows `terminal image unavailable` in the covered cells.
Set `image-support #false` to disable native image output for that terminal.

See [Terminal images](/docs/v0.4/using/images).

## Does koshi run on Windows? [#does-koshi-run-on-windows]

Yes. koshi ships prebuilt binaries for Linux, macOS, and Windows on x86-64 and
ARM64, and CI tests all three. Install on Windows with Scoop or the PowerShell
release script.

See [Installation](/docs/v0.4/installation).

## Can I control koshi from a shell script? [#can-i-control-koshi-from-a-shell-script]

Yes. Every pane, tab, input, focus, lock, and session operation has a shell
command that works from inside a pane or any other shell, and every list and
inspect command takes `--format json`.

See [CLI conventions](/docs/v0.4/cli).

## How do I update koshi without losing my panes? [#how-do-i-update-koshi-without-losing-my-panes]

Run `koshi update`. Since 0.3.0 it installs the new release and then restarts
each running session into it, keeping the panes, the programs running in them,
and their scrollback; an attached terminal rejoins on its own.
`koshi server-version` shows which sessions moved.

See [Update and versions](/docs/v0.4/cli/update).

## Can other users of my machine reach my sessions? [#can-other-users-of-my-machine-reach-my-sessions]

Only if you turn it on. `allow-other-users #true` in your `koshi.kdl` lets the
other users logged in to the same machine list, attach to, and kill your
sessions, and their own `koshi.kdl` has to say so too. It is off by default.

See [Sharing with other users](/docs/v0.4/using/other-users).

## Something was refused. What went wrong? [#something-was-refused-what-went-wrong]

Run `koshi doctor` first — it rates config, shell, terminal, directories,
router, session directory, and remote access, one row each. For a refused
remote connection, every refusal and its fix is listed on one page.

See [Doctor](/docs/v0.4/cli/doctor) and
[Remote troubleshooting](/docs/v0.4/remote/troubleshooting).

## How much does koshi cost? [#how-much-does-koshi-cost]

Nothing. koshi is free and open source under the MIT licence.
