# Install on Linux

One command installs Studio on a Linux server as a background service, with the Codex, Claude Code, Devin and Cursor runtimes. You drive it from the Mac app.

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

*Last updated: 2026-10-25*

On Linux, Studio runs without a window: it is the engine that hosts your projects and runs agents, and you work on it from Studio on your Mac as a remote device. Install it with one command over SSH. It runs on x86_64 and ARM64.

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

The command needs no root. Re-running it upgrades in place and keeps your data.

> **Tip: Starting from the Mac**
>
> Studio on your Mac hands you the same command with sign-in included: open **Settings → Devices & security** and choose **Connect a server**. [Add a server](https://kelrova.com/docs/studio/devices/add-server) walks through that dialog.

## Sign in during the install

Add `--login` to sign the server in to your Kelrova account as part of the install, so it comes up synced and appears in the Mac app:

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

The installer prints a link. Open it in a browser anywhere, log in, and the page shows a code under **Almost there**. Paste the code into the terminal and press Enter. The code expires after a few minutes and only works on the server that asked for it. Sign-in needs an interactive terminal; over SSH, connect with `ssh -t`.

Without `--login`, the server runs local-only. Sign it in later by running the `--login` command again.

## What the installer sets up

| What | Where |
| --- | --- |
| Studio itself | `~/.kelrova/app`, with `kelrova` linked into `~/.local/bin` |
| A background service | The systemd user service `kelrova`, started now and on every boot |
| Automatic updates | `KELROVA_AUTO_UPDATE=1` in `~/.kelrova/env` |
| Codex CLI | `~/.local/bin/codex`, unless a `codex` is already installed |
| Claude Code CLI | `~/.local/bin/claude`, unless a `claude` is already installed |
| Devin CLI | `~/.local/bin/devin`, unless a `devin` is already installed |
| Node.js and the Cursor SDK | Node.js in `~/.local/bin` when no recent one is present, and the SDK under `~/.kelrova` |

The Studio download and the Codex, Claude Code and Devin CLIs are checked against checksums pinned in the installer before anything is unpacked, and a mismatch stops that download. A failed agent download prints the command to install it yourself and does not fail the install.

The installer also adds `~/.local/bin` to `PATH` in your shell startup files. Open a new SSH session to pick it up. Set `KELROVA_NO_MODIFY_PATH=1` to leave those files alone.

The agents still need their accounts. You connect them from the Mac, under **Settings → Agents** with the server selected; see [Connect your agents](https://kelrova.com/docs/studio/getting-started/agents).

## The browser tools

Studio's browser tools need Google Chrome or Chromium on the server. The installer records one it finds. To install Google Chrome when none is present, add `--with-chrome`:

```bash
curl -fsSL https://studio.kelrova.com/install.sh | sh -s -- --with-chrome
```

This uses `apt-get` and works on x86_64 only; on ARM64, install Chromium yourself and run the installer again. You can combine it with `--login`.

## Check the service

```bash
systemctl --user status kelrova
journalctl --user -u kelrova
```

If the server has no systemd user session, the installer says so; run `kelrova headless` yourself instead. If you switched to root with `sudo su`, log in as a regular user and install again.

## Install from the tarball

The Linux downloads on [Studio](https://kelrova.com/studio) are the same build as a `.tar.gz`: `kelrova-<version>-linux-x86_64.tar.gz` or `kelrova-<version>-linux-aarch64.tar.gz`. Use them when you cannot pipe a script into `sh`.

1. **Unpack and install**

   Extract the archive and run `./install.sh` inside it. It copies `kelrova` to `~/.local/bin`.

2. **Sign in**

   Run `kelrova login` and follow the link and code as above.

3. **Start the service**

   Run `kelrova daemon install` to install and start the background service, or `kelrova headless` to run it in the foreground.

The tarball does not install the agent CLIs or turn on automatic updates. The one-line installer does both.

## Next

[Add a server](https://kelrova.com/docs/studio/devices/add-server) shows the server in the Mac app, and [Server requirements](https://kelrova.com/docs/studio/devices/requirements) lists what the server needs.

## Related

- [Add a server](https://kelrova.com/docs/studio/devices/add-server)
- [Server requirements](https://kelrova.com/docs/studio/devices/requirements)
- [Keep servers up to date](https://kelrova.com/docs/studio/devices/updates)
- [Sign in and approve this computer](https://kelrova.com/docs/studio/getting-started/sign-in)
