# Claude desktop vs CLI on Linux: run the long jobs open source

> Claude Desktop and the Claude Code CLI sit on one account and divide the work by job. On Linux the split turns on what each job needs from the machine. Kortix, the open-source AI Operating System, covers the job that has to outlive the laptop.

URL: https://claudedesktoplinux.com/agent-on-linux

## Three routes, five questions that decide between them

Kortix keeps the agent off your machine; the app and its repackagings keep it on the machine in front of you.

| | Kortix (recommended) | Claude Desktop for Linux (beta) | Repackaged builds (.rpm, AppImage, Nix flake, AUR) |
| --- | --- | --- | --- |
| Open source | Yes. Read it, fork it, audit it. | No. Anthropic's own app, under its licence. | The repackaging is open; the app inside stays Anthropic's. |
| What you install | Nothing for a browser session. The CLI if you want it. | The `claude-desktop` package, which pulls QEMU, OVMF and virtiofsd. | An .rpm, AppImage, Nix flake or AUR package of the same app. |
| Where the work runs | On a cloud computer. One isolated sandbox per session. | In a QEMU virtual machine, hosted by the app on your machine. | In that same local virtual machine, on the same host. |
| What happens when the lid closes | The run keeps going. The machine stays up without you. | Hosted by the desktop app, on the machine in front of you. | The same app, repackaged, on the same host. |
| Who reviews the result | A person merges the change request. Merge is default-deny for agents. | The account holder, signed in as themselves, in the app. | The same person, on the same account, in the same window. |
| How you reach it | A browser tab, the CLI, or a Slack or Teams thread. | The app window, launched from the desktop as `claude-desktop`. | The same window, from a launcher the package adds. |

Sources are Anthropic's Linux docs and download page, the repackaging repository and the AUR entry, checked October 2026.

## What a session does with the repo, in the docs' own words

`What a session does with the repo, in the docs' own words`

```
A session runs one agent in its own sandbox.
The sandbox clones the repo and works on a new branch.
The branch name is the session_id, a UUID with no prefix.
The agent commits, pushes the session branch, and opens a change request against the project's default branch.
A person with the project.gitops.merge permission reviews the change request and merges it into the default branch.
```

Source: https://kortix.com/docs

Quoted from Kortix's docs, checked October 2026, shortened by deletion only.

## Two surfaces on one account, and a job that decides

Claude Desktop is Anthropic's graphical app. The Claude Code CLI is the terminal program that works against a repo. Both belong to the same account. The desktop app runs Claude Code too. Anthropic's download page says Claude Code "runs directly in the desktop app", and `/desktop` moves a CLI conversation into the app ([download page](https://claude.com/download)). Chat is available on every plan, including Free, while Claude Code and Cowork need Pro, Max, Team or Enterprise.

So the choice between the two is not about which program exists on Linux. The surfaces differ in what they ask of the machine. The heaviest ask belongs to Cowork, and chat and repo work ask less. Anthropic's Linux page states it in one sentence: "On Linux, Cowork runs those tasks in a virtual machine that the desktop app hosts with QEMU and KVM" ([Anthropic's Linux docs](https://code.claude.com/docs/en/desktop-linux)).

## A ten-minute question needs a tab and nothing else

A question asked and answered in ten minutes is chat. Chat runs on Free, so no plan decision enters the choice. The desktop app adds a window, a dock entry and Quick Entry. That hotkey works on X11; on native Wayland it needs the desktop's GlobalShortcuts portal ([download page](https://claude.com/download)). A browser tab needs neither the install nor the portal. It works on a Chromebook, inside a container host and on a server, and gives the same answers.

What the desktop app buys on this job is access speed: one keystroke instead of a tab. Whether that is worth an install and a distribution check is a judgment about your habits. It is the one part of this split that no documentation settles.

## A repo task needs a filesystem and a toolchain

Claude Code is the surface for work that reads files, runs tests and commits. It is a terminal program, so it inherits the shell: your git config, your compiler, your test runner, your keys. That works on every distribution, and it is the route Anthropic names for the ones it does not package: "On distributions that aren't Debian-based, such as Fedora or Arch, run the CLI instead" ([Anthropic's Linux docs](https://code.claude.com/docs/en/desktop-linux)).

Sign-in follows the same line. The desktop app takes a claude.ai subscription or the organization's SSO, and "for API-key authentication, use the CLI". The desktop app can host the same repo work, and on Ubuntu 22.04 or later and Debian 12 or later it will. Outside those two families the app is somebody else's repackaging. The CLI runs wherever the repo already lives. [The Ubuntu and Debian page](/ubuntu-debian) has the install, and [the Arch and Fedora page](/arch-fedora-nixos) has the packaging question.

## A run that must outlive the lid needs a machine that stays up

This is the job that separates the routes. Cowork is Anthropic's name for Dispatch and longer agentic work. On Linux it runs in a virtual machine the desktop app hosts with QEMU and KVM. QEMU is a process on your own computer. The guest it boots runs inside that process tree. A suspend, a logout or a reboot ends the run, because it ends the desktop session.

An hour-long task on a laptop has a ceiling set by the laptop's uptime. Two machines make that ceiling obvious. One is a laptop that closes at the end of the day. The other is a server, which has no desktop session to host the app. Cowork stays closed there however much RAM it has. [The KVM page](/cowork-linux-kvm) walks the device checks the app makes at launch, and [the ChromeOS and container page](/containers-chromeos-servers) covers the hosts whose kernel cannot supply the devices.

For a run that has to survive both a closed lid and a reboot, the machine has to be somewhere other than the one on your desk. That is the whole of the argument for moving the third job off the laptop, and it says nothing about the other two.

## Where an open source session puts that machine

Kortix is the open-source AI Operating System: your agents, their skills, your company memory, and every connector in one git repo you own, with the agents working on real cloud computers. A session is the unit of work, and its computer is provisioned for the run. One isolated sandbox per session. Each session has its own isolated machine and branch. The sandbox clones the repo and works on a new branch, so an open run never touches your checkout. Session work reaches `main` through a change request. Merge is default-deny for agents. Slack and Microsoft Teams are live. Email is experimental, per project.

A session starts from the web app, the CLI, or a message in Slack or Teams. The run continues after you close the window, because the machine is not the window. [Read the docs](https://kortix.com/docs) covers starting one.

What that costs is metered by the run. Credits pay for the agent computer: the cloud machine where your agent runs code, browses and edits files. It bills per second while it runs and costs nothing while it is stopped ([pricing](https://kortix.com/pricing)). A task that takes forty minutes bills for forty minutes. A finished session bills for nothing while it sits idle.

## The split, taken one job at a time

Chat stays where it is cheapest: a browser tab, on any distribution, with no install to keep current. Repo work stays in the CLI, next to the toolchain and the branch you are already on, unless the machine is Ubuntu or Debian and you prefer the window. The long run goes to a session on a cloud computer, started from wherever you happen to be.

That arrangement keeps the Claude desktop app for the readers it suits. It answers the Linux question without asking the operating system to change. The session route runs the third job. It does not put a Claude chat window on your desktop, and it does not run Anthropic's app, so the two routes are chosen per job rather than swapped for one another. A reader who wants the app for chat and Cowork on a machine that passes the checks should keep it. A reader whose agent work has outgrown the machine in front of them has somewhere to put it.

## Two questions readers ask before they pick a surface

### Is Claude desktop better than CLI?

Neither one is better for every job. The desktop app holds chat, Cowork and a window for Claude Code, and the CLI holds repo work on any distribution, which is why Anthropic sends Fedora and Arch readers to it.

### Can you run Claude Code on Linux?

Yes. Claude Code runs in a terminal on Linux and needs no virtual machine, so KVM and /dev/vhost-vsock stay out of the picture. Anthropic documents the CLI as the route for distributions that are not Debian-based.

## Put the hour-long run on a computer that stays up

The jobs that outlive a laptop, and where they run instead.

[Try Kortix](https://kortix.com) · [Read the docs](https://kortix.com/docs)
