# Add a server

Run one command on the server, sign it in, approve your Mac there with a six-digit code, then give it an agent login.

*Where in Studio: Studio → Settings → Devices & security → Connect a server*

*Last updated: 2026-10-25*

Choose **Connect a server**, run the command it shows on your Linux server, and sign the server in to your account. Then approve your Mac on the server once, and give the server a login for the agent you want to run there. Check the [requirements](https://kelrova.com/docs/studio/devices/requirements) first.

*Studio → Settings → Devices & security*

1. **Open Connect a server**

   In Studio, open **Settings** → **Devices & security** and choose **Connect a server** at the top right. The button appears only while Studio is signed in.

2. **Run the command on the server**

   Choose **Copy command**, SSH into the server as the user who should own the projects, and paste it:

   ```sh
   curl -fsSL https://studio.kelrova.com/install.sh | sh -s -- --login
   ```

   Use an SSH session with a terminal (`ssh -t`), because the sign-in reads a code from the keyboard.

3. **Sign in**

   The installer prints a sign-in link. Open it in a browser on any machine, for example your Mac, and sign in with the **same Kelrova account** Studio uses. Paste the code the browser shows back into the server's terminal.

4. **Wait for the server to appear**

   The dialog shows **Waiting for your server to come online…** until the server reports in, then names it as connected. The server is listed under **Computers** on **Devices & security**. Choose **Close**.

5. **Approve your Mac on the server**

   Signing in does not let your Mac control the server; the server has to approve your Mac once.

   1. On the server, run `kelrova access pair`. It opens the server's pairing window for 3 minutes. If the shell does not find `kelrova` yet, open a new SSH session or run `~/.local/bin/kelrova access pair`.
   2. In Studio, select the server in the device list. Under **Access**, the **Access from this device** row reads **Pairing required**. Choose **Request access**. If the row is missing, choose **Refresh** at the top of the page.
   3. Studio shows a six-digit code. The terminal on the server names your Mac, marked as unverified, and asks for the code. Type the code there.

   The dialog then reads that the server approved your access, and the row reads **Approved**. If the pairing window was not open yet, Studio shows **Start pairing on** the server's name with the command to run; run it and choose **Try again**.

6. **Give the server an agent login**

   Agent logins stay on the device that uses them, so the server needs its own. Open **Settings** → **Agents** and pick an agent that has an account on your Mac:

   - **Codex**: under **Other devices**, choose **Copy Codex login to** and pick the server. Your Mac's Codex login is sealed to the server before it is sent.
   - **Claude Code**, **Cursor** or **Devin**: under **Other devices**, choose **Add Claude Code account on** (or **Add Cursor account on**, **Add Devin account on**) and pick the server. The sign-in starts for the server, and the login stays there.

   The **Connect a server** dialog also offers **Copy Codex login to this server** as its last step. It works once the server has approved your Mac.

Next, [start a session on the server](https://kelrova.com/docs/studio/devices/run-remote).

## What the installer sets up

The installer puts everything in your home directory. The steps that need root, keeping the service running after you log out and installing Chrome, use `sudo` only when it works without a password prompt.

- Studio in `~/.kelrova/app`, and the `kelrova` command in `~/.local/bin`. It adds `~/.local/bin` to `PATH` in your shell startup files, so open a new SSH session to use `kelrova`. To leave those files alone, set `KELROVA_NO_MODIFY_PATH=1`.
- The systemd user service `kelrova`, which runs Studio in the background, restarts it after a failure and starts it at boot.
- Automatic updates, turned on in `~/.kelrova/env`. See [Keep servers up to date](https://kelrova.com/docs/studio/devices/updates).
- The agent CLIs that are not already installed: Codex, Claude Code and Devin, and Node.js 22 with the Cursor SDK.
- Google Chrome, only with `--with-chrome`. See [Server requirements](https://kelrova.com/docs/studio/devices/requirements).

Running the installer again upgrades Studio in place and keeps everything in `~/.kelrova`.

> **Tip: Install now, sign in later**
>
> The shorter command `curl -fsSL https://studio.kelrova.com/install.sh | sh` installs Studio without signing in. It then runs local-only, and nothing syncs. To sign it in later, run the command with `sh -s -- --login`, as above.

## If something goes wrong

| What you see | What to do |
| --- | --- |
| `sign-in did not finish, so the engine runs local-only` | Run the install command with `--login` again, in an SSH session with a terminal. |
| `the kelrova service failed to restart` | Check `systemctl --user status kelrova` and `journalctl --user -u kelrova`. |
| `systemd user session not available` | Log in as a regular user rather than through `sudo su`, or start Studio yourself with `kelrova headless`. |
| `could not enable linger` | Run the `sudo loginctl enable-linger` command the installer prints, so Studio keeps running after you log out. |
| The server never appears in Studio | Make sure it signed in to the same account as your Mac, and that it can reach Kelrova over HTTPS. |
| **Request access** fails | Open the pairing window on the server first with `kelrova access pair`, then choose **Try again** within 3 minutes. |

## Related

- [Server requirements](https://kelrova.com/docs/studio/devices/requirements)
- [Start sessions on a server](https://kelrova.com/docs/studio/devices/run-remote)
- [Approved devices and signatures](https://kelrova.com/docs/studio/trust/approved-devices)
- [Connect your agents](https://kelrova.com/docs/studio/getting-started/agents)
