> Documentation index: https://jetkvm.com/llms.txt

# Updates

> JetKVM updates itself over the air. Check for updates yourself, install a specific version or try the dev channel.

JetKVM checks for updates on its own, installs them when no one is connected, and restarts to finish. Stable releases are signed by JetKVM, and the device checks the signature before installing one.

## Update JetKVM

### Automatic updates

**Auto Update**, under **Settings** \> **General**, is on by default. The device checks 15 minutes after it starts, then every hour, and waits while someone is connected.

New versions reach devices in stages, so yours may update a few days after a release. Until then, **Check for Updates** won't show it either.

### Check for updates

Click **Check for Updates**, under **Settings** \> **General**, and install from there. The device restarts and the page reconnects.

### Install a specific version

To go back to an older version, for example, open **Settings** \> **Advanced** \> **Update to Specific Version**. Versions are on the releases page for [JetKVM](https://github.com/jetkvm/kvm/releases) and for [JetKVM Mini](https://github.com/jetkvm/mini/releases).

| Device      | What you update                                             |
| ----------- | ----------------------------------------------------------- |
| JetKVM      | The app, the system or both, picked under What to update.   |
| JetKVM Mini | Its single firmware image, so there's one version to enter. |

Auto Update then turns off, so the device doesn't update past your version. Turn it back on under **Settings** \> **General**.

### Dev channel

Turn on **Dev Channel Updates**, under **Settings** \> **Advanced**, for new builds before everyone else. They're less tested, so expect the occasional bug.

## If an update won't install on JetKVM

If updating from the web interface fails, you can install the latest stable app from the command line. This needs Developer Mode.

* [Developer Mode](https://jetkvm.com/docs/advanced-usage/developing#developer-mode)

### Open a shell on JetKVM

Connect over SSH, or click **Web Terminal** in the action bar.

### Run the upgrade

The command asks for the newest app for your model, checks the download against its SHA-256 checksum and restarts JetKVM to install it.

```
JETKVM_SKU="$(cat /etc/jetkvm-sku 2>/dev/null || printf jetkvm-v2)" && \
set -- $(wget -qO - "https://api.jetkvm.com/releases?deviceId=manual-update&sku=$JETKVM_SKU&appVersion=%3E%3D0.0.0" | sed -n 's/.*"appUrl":"\([^"]*\)".*"appHash":"\([^"]*\)".*/\1 \2/p') && \
test "$#" -eq 2 && \
TMPFILE="$(mktemp)" && \
wget "$1" -O "$TMPFILE" && \
printf '%s  %s\n' "$2" "$TMPFILE" | sha256sum -c - && \
chmod +x "$TMPFILE" && mv "$TMPFILE" /userdata/jetkvm/jetkvm_app.update && \
reboot
```

This skips the staged rollout. Use it only when the normal update doesn't work.

## Extensions

Extensions don't update over the air. They rarely need to; flash them over USB:

* [ATX Power Control](https://jetkvm.com/docs/advanced-usage/ota-updates-atx)
* [DC Power Control](https://jetkvm.com/docs/advanced-usage/ota-updates-dc)