# Koshi 0.6.0 — Installation (/docs/v0.6/installation)



koshi ships prebuilt binaries for Linux, macOS, and Windows on x86-64 and
ARM64. On Linux the prebuilt binary needs glibc 2.34 or newer, such as Ubuntu
22.04 or Debian 12 and newer. Pick one method below.

## macOS [#macos]

With Homebrew:

```bash
brew install gohyuhan/koshi/koshi
```

Homebrew adds the koshi tap during installation. Upgrade koshi along with your
other outdated packages:

```bash
brew update
brew upgrade
```

Or upgrade only koshi:

```bash
brew upgrade koshi
```

The release script does not install on macOS: it prints the Homebrew command
and stops. A koshi the release script installed earlier stays in
`/usr/local/bin` and updates with `koshi update`. To move it to Homebrew,
delete it with `sudo rm -f /usr/local/bin/koshi`, then run the Homebrew
command.

## Linux [#linux]

```bash
curl --proto "=https" --tlsv1.2 -sSfL \
  https://github.com/gohyuhan/koshi/releases/latest/download/install.sh | bash
```

## Windows [#windows]

With PowerShell:

```powershell
powershell -c "irm https://github.com/gohyuhan/koshi/releases/latest/download/install.ps1 | iex"
```

Run the same command to upgrade, also while koshi runs. The script checks that
the new `koshi.exe` prints the release's version before it replaces anything,
then renames the installed one to `koshi.old` (or `koshi.1.old` and onward
while a koshi still runs from an older backup). Each interactive launch removes
the backups no koshi runs from.

With Scoop:

```powershell
scoop bucket add koshi https://github.com/gohyuhan/scoop-koshi
scoop install koshi/koshi
```

Upgrade after refreshing Scoop:

```powershell
scoop update
scoop update koshi
```

## From source [#from-source]

Building needs Rust 1.96.

```bash
git clone https://github.com/gohyuhan/koshi.git
cd koshi
cargo build --release
./target/release/koshi
```

## Updating in place [#updating-in-place]

```bash
koshi update
```

`koshi update` installs the newer release the way koshi was installed: through
`brew` for a Homebrew install, and by replacing the program file for a Scoop or
release script install. It then restarts each running session into the
installed build, keeping its panes, the programs in them, and their scrollback,
and an attached terminal rejoins on its own. A session that refuses the restart
is named on standard error and keeps the old build until you end it and start
it again.

`scoop update koshi` skips koshi while any koshi from that install runs; run
`koshi update` instead. After a plain `brew upgrade`, each running session
restarts into the new koshi at the next koshi command that reaches it.

```bash
koshi server-version    # which build each running server runs
```

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

## Check the installation [#check-the-installation]

```bash
koshi doctor
```

One row per check — config, shell, terminal, directories, log files, router,
session directory, and remote access — each rated `ok`, `warn`, or `fail`. See
[Doctor](/docs/v0.6/cli/doctor).

<Callout>
  Removing koshi later takes more than deleting the binary — config, logs, cache,
  and runtime files live outside the install directory. See
  [Uninstall](/docs/v0.6/uninstall).
</Callout>
