# Koshi 0.2.0 — Introduction (/docs/v0.2)



koshi is a terminal multiplexer. 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.

Each pane holds its own process, its own terminal screen, and its own
scrollback. Tabs hold layouts of panes. A session holds tabs.

## The session outlives the terminal [#the-session-outlives-the-terminal]

A session runs in its own process. Your terminal is a **client** attached to
it. Close the terminal, lose the SSH link, or press the quit shortcut, and the
session keeps running with every pane alive.

```bash
koshi                  # start a session and attach this terminal to it
koshi detach           # leave it running
koshi attach           # come back to it
```

Several terminals can watch one session at once, each with its own focused
pane, its own tab, and its own colours.

## What is built in [#what-is-built-in]

Panes, tabs, layouts, keybindings, themes, and saved layouts ship with the
program. There is no plugin to install before koshi becomes useful.

* **Sessions** — run in their own process, survive the terminal, and take
  several attached clients at once.
* **Panes** — split left, right, up, or down; stack several in one slot;
  fullscreen one and restore the layout afterwards.
* **Tabs** — create, close, move, and switch.
* **Keyboard** — multi-key shortcuts, a leader you choose, on-screen hints, and
  conflict checks.
* **Mouse** — focus panes, drag borders, scroll, select text, copy through
  OSC 52 even over SSH.
* **Config** — four optional KDL files for settings, colours, keys, and saved
  layouts, read per terminal.
* **Control from a shell** — open panes, move tabs, send input, and inspect a
  running session from outside it.

## Requirements [#requirements]

|                      |                                    |
| -------------------- | ---------------------------------- |
| Platforms            | Linux, macOS, Windows              |
| Architectures        | x86-64, ARM64                      |
| Terminal             | true colour and 256-colour support |
| Building from source | Rust 1.96                          |

## Next [#next]

<Cards>
  <Card title="Installation" href="/docs/v0.2/installation" description="Homebrew, Scoop, the release script, or from source." />

  <Card title="Quick start" href="/docs/v0.2/quick-start" description="One session, one split, one tab, and back out again." />

  <Card title="Attach and detach" href="/docs/v0.2/using/attach-and-detach" description="Leave a session running and rejoin it later." />

  <Card title="CLI" href="/docs/v0.2/cli" description="Every command and what it prints." />
</Cards>
