Devices
Pair a Mac or Linux machine with OpenLLM, run the daemon that serves your subscriptions and local models, and manage devices and keys in Devices & keys.
A device is a machine running the OpenLLM daemon. Each device runs under its own sk-llm-… key, so in Devices & keys a key with a daemon on it shows up as a device, and a key without one stays a plain API key. You manage both on the same page. Your account starts with a key named default, created when you set up your vault. While your vault is unlocked, you can copy it again from Devices & keys or Get started.
Devices are where your subscriptions and local models run, and where device chat opens a real terminal. The number of devices online at once depends on your plan. See Device limits.
The daemon
The daemon is the background half of the openllm CLI. It:
- Serves your subscription providers through each vendor's own CLI and login on that machine. See Subscriptions.
- Finds local model servers such as Ollama and LM Studio. See Local models.
- Listens on
http://127.0.0.1:8787. To use another port, setOPENLLM_DAEMON_PORTin~/.openllm/.env. - Keeps an outbound connection to OpenLLM so the dashboard can see the device, send it requests, and open device chat sessions.
The installer registers the daemon as a background service: a launch agent on macOS, a systemd user unit on Linux. It starts at login, restarts if it crashes, and keeps itself up to date unless you turn Auto-update off.
| Command | What it does |
|---|---|
openllm start | Registers and starts the daemon, and walks you through key setup if no key is saved. |
openllm stop | Stops the daemon and turns off its restart at login. It stays stopped until you run openllm start. |
openllm restart | Stops, then starts the daemon. |
openllm status | Shows whether the daemon is registered and running. |
openllmd logs | Shows the daemon log. Add -f to follow it. |
The daemon runs on macOS and Linux. For the full command list, see CLI.
Add a device
To add a device, open Devices & keys and select Add a device. The dialog builds one command for the machine you want to pair.
- In Devices & keys, select Add a device. Your vault must be unlocked, because the command carries your decrypted key.
- Pick the key this machine runs under. Every machine needs its own key. If the key you pick already runs another machine, switch to a free key or select Create a key.
- Choose how the key gets to the machine:
- Not installed yet: a one-line installer that installs the CLI and daemon and pairs them.
- Already installed: copies the key alone, for a terminal waiting at the installer's
API key:prompt. - Using an agent: a prompt to paste into Claude Code, Codex, or another coding agent on that machine.
- Leave Remote terminal on if you want to open device chat on this machine. Turn it off to keep remote sessions disabled.
- Select the copy button, then run or paste the result on the machine.
The install command looks like this. The dialog fills in your real key when you copy it:
curl -fsSL https://www.openllm.sh/install | OPENLLM_DAEMON_PTY_SESSIONS='1' OPENLLM_API_KEY='sk-llm-…' bashThe dialog detects the new device on its own and shows Paired. as soon as the daemon checks in.
On a machine that already has the CLI, save the key with openllm login and start the daemon:
openllm login --startopenllm login prompts for the key without echoing it, replaces any key already saved in ~/.openllm/.env, and restarts a running daemon. Add --pty-sessions to allow remote terminal sessions on this machine.
In the Mac app, use Connect this Mac in the same dialog. It installs OpenLLM on the Mac and pairs it with the selected key.
Running the install command with a key that already runs another machine moves that key to the new machine. It does not add a second device. Pair each machine under a key of its own.
Manage a device
Each row in Devices shows the device name, a status dot (Online, Idle, or Not paired), the daemon version, where it connects from, and when it was last seen. On wide screens the row also shows the subscriptions the device serves, its request count, and its key.
Open Manage on a row for these actions:
| Action | What it does |
|---|---|
| Manage device… | Opens the device's commands. Update (or Re-pair when the device is offline) re-runs the installer under the same key. Remove shows openllm uninstall, which removes the daemon, the CLI, and their local state from that machine. The Auto-update switch lives here too. |
| Connect subscriptions | Opens Providers to sign in to a subscription on this device. |
| Mark as this device | Tells this browser which device it's running on. Subscription sign-ins then use a browser login on this machine instead of a code you copy from another one. Requests are not routed by it. Use Clear 'this device' mark to undo it. |
| Rename | Changes the key's name, which is the device name in the dashboard. |
| Delete key… | Revokes the key in the cloud. Every client using it gets 401 at once. This can't be undone. |
Deleting the key does not uninstall anything. To retire a machine completely, run openllm uninstall on it first, then delete its key.
Some problems show as a chip next to the device name, with the fix inside. These two have a fix button:
- Not secured: select Secure device to bind the device to your vault, so only an unlocked vault can open sessions on it.
- Reset identity: the daemon's identity key changed, so direct connections to it fail. Select Reset daemon identity. The daemon registers its new identity the next time it reports in.
Device limits
Your plan limits how many devices can be connected at the same time: 2 on Free, 5 on Trial and Pro. See Plans and limits.
Only running daemons count. A device counts while its daemon has checked in within about the last 90 seconds. A paired machine that is off, asleep, or stopped holds no slot, so you can pair more machines than your limit. The count next to Devices reads, for example, 2 of 2 online.
When every slot is in use:
- Add a device opens All device slots are in use instead of the pairing dialog, with the devices that hold the slots.
- A daemon that tries to connect is refused with
403device_limit_exceeded. It keeps running and serving its local endpoint, and it connects on its own once a slot frees up. - When a request in the app is refused for this reason, for example in chat, the app shows You're using all your devices: "2 of 2 devices connected at once — run openllmd stop on one to free a slot. Paired devices that aren't running don't count."
To free a slot, stop the daemon on a machine you aren't using:
openllm stopThe slot frees within about 90 seconds. You don't need to delete the device's key, and the machine stays paired for next time. To raise the limit, upgrade to Pro. See Plans and limits.
Check that it works
On the new machine, run openllm status. In Devices & keys, the device shows a green dot and Online.
Common problems
| Symptom | Cause | Fix |
|---|---|---|
| Add a device is greyed out | Your vault is locked | Unlock your vault, then try again. |
| Device shows Idle, or Offline in chat and the device switcher | No daemon has checked in recently | Run openllm start on that machine. See Troubleshooting. |
| Device chat says Sessions off | Remote terminal sessions are off on that machine | Run openllmd sessions on there. See Device mode. |
| Old key chip | The key was created under a previous recovery phrase | Create a new key and re-pair the device. See Troubleshooting. |
Related
Last updated on
Routing and fallback
How OpenLLM turns aliases like ultra into fallback chains, which rate limits (429) and errors move a request to the next model, and how to pin a model.
Chat
Chat with any of your models in the OpenLLM web app with encrypted transcripts, or open a terminal or coding CLI on one of your devices in Device mode.