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

# Developer Tools

> JetKVM's developer features: Developer Mode for SSH access, DFU mode for firmware updates, and Serial Console for low-level debugging.

**Only on JetKVM.** JetKVM Mini has no SSH or shell.

JetKVM is open to tinkering. SSH into the device, flash your own firmware, or read its serial console while it boots.

## Developer Mode

Developer Mode turns on SSH access. JetKVM only accepts key-based logins, so you need an SSH key; your JetKVM password doesn't work over SSH.

**Developer Mode weakens security.** Turn it off when you're done.

### Create and copy an SSH key

**Windows**

1. Open the Start menu, type **PowerShell** and open **Windows PowerShell**.
2. Create a key:  
```  
ssh-keygen -t ed25519  
```
3. Press **Enter** to save it in `C:\Users\your-name\.ssh`. If it asks to overwrite, type `n`: you already have a key, so skip to the last step.
4. Type a passphrase and press **Enter**, then type it again. Nothing shows as you type. To skip the passphrase, press **Enter** twice.
5. Copy your public key to the clipboard:  
```  
Get-Content ~\.ssh\id_ed25519.pub | Set-Clipboard  
```  
It's the `.pub` file. Never share the one without `.pub`; that's your private key.

**macOS**

1. Press **Command-Space**, type **Terminal** and press **Return**.
2. Create a key:  
```  
ssh-keygen -t ed25519  
```
3. Press **Enter** to save it in `~/.ssh`. If it asks to overwrite, type `n`: you already have a key, so skip to the last step.
4. Type a passphrase and press **Enter**, then type it again. Nothing shows as you type. To skip the passphrase, press **Enter** twice.
5. Copy your public key to the clipboard:  
```  
pbcopy < ~/.ssh/id_ed25519.pub  
```  
It's the `.pub` file. Never share the one without `.pub`; that's your private key.

**Linux**

1. Open a terminal.
2. Create a key:  
```  
ssh-keygen -t ed25519  
```
3. Press **Enter** to save it in `~/.ssh`. If it asks to overwrite, type `n`: you already have a key, so skip to the last step.
4. Type a passphrase and press **Enter**, then type it again. Nothing shows as you type. To skip the passphrase, press **Enter** twice.
5. Print your public key, then select and copy the whole line, starting with `ssh-ed25519`:  
```  
cat ~/.ssh/id_ed25519.pub  
```  
It's the `.pub` file. Never share the one without `.pub`; that's your private key.

### Add the key to JetKVM

1. In the JetKVM web interface, open **Settings** and then **Advanced**.
2. Check **Developer Mode**.
3. Paste the key into **SSH Public Key** and click **Update SSH Key**.

### Connect

1. In the same terminal, run this with your JetKVM's IP address, shown on its front display:  
```  
ssh root@<jetkvm-ip-address>  
```
2. The first time, SSH asks if you trust the device. Type `yes` and press Enter.
3. If you set a passphrase, enter it when asked.

You're in a lightweight Linux system: **BusyBox** provides the shell and tools, and **Dropbear** the SSH server.

## DFU mode

DFU (Device Firmware Update) mode flashes firmware over USB, without booting the installed system. Use it to test your own builds or to recover a device that won't start.

To flash your own build, follow DFU recovery and select your `.img` in place of the recovery image:

* [DFU recovery](https://jetkvm.com/docs/advanced-usage/factory-reset-dfu)

## Serial Console

The serial console shows boot messages, system logs and other low-level output. Use it to debug the boot process or test new features.

JetKVM carries its serial console over the SBU pins of its USB-C port. To read it, plug a USB-C SBU serial adapter such as USB-Cereal between JetKVM and your computer, set it to 3.3 V, and open its serial port at 115200 baud. If nothing appears, flip the adapter's plug.

* [USB-Cereal at Soldered: Ships from the EU](https://soldered.com/products/usb-cereal)
* [USB-Cereal at Crowd Supply: Ships from the US](https://www.crowdsupply.com/soldered/usb-cereal)