# Install Claude Desktop on Ubuntu, then run the agent open source

> Claude Desktop installs on Ubuntu 22.04 and later and on Debian 12 and later, from Anthropic's own apt repository, in three documented steps. The virtual machine Cowork runs is the part your kernel has to allow. Kortix, the open-source AI Operating System, runs the agent work when the machine in front of you cannot.

URL: https://claudedesktoplinux.com/ubuntu-debian

## Anthropic's install steps, in the order its documentation gives them

`Anthropic's install steps, in the order its documentation gives them`

```sh
sudo apt install curl gnupg
sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc
gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list
sudo apt update && sudo apt install claude-desktop
```

Source: https://code.claude.com/docs/en/desktop-linux

Copied from Anthropic's Linux page, checked October 2026, which also names the fingerprint the signing key must print.

## Ubuntu 22.04 and Debian 12 are the supported floor

"Claude Desktop for Linux is in beta and supports Ubuntu and Debian (x64 and arm64)." The docs put a release floor under that sentence: "A Debian-based distribution: Ubuntu 22.04 or later, or Debian 12 or later", on x86_64 or arm64 ([Anthropic's Linux docs](https://code.claude.com/docs/en/desktop-linux)). Other Debian derivatives that meet both conditions may work, and Anthropic has not tested them. Ubuntu 20.04 does not qualify, because the package needs libc6 2.34 and 20.04 ships 2.31.

Architecture catches more readers than release number. `dpkg --print-architecture` should print `amd64` or `arm64`; the repository publishes nothing for other architectures, and a `.deb` built for the wrong one fails on dependencies with an `:amd64` or `:arm64` suffix in the error. Fedora, Arch and openSUSE sit outside the Debian family, and Anthropic's documented advice for them is the CLI. That route has its own page here: [Claude Desktop on Arch, Fedora and NixOS](/arch-fedora-nixos).

## The install, from Anthropic's apt repository

Install from the repository rather than a downloaded file, and updates arrive with the rest of the system's packages. The package is called `claude-desktop`. Here is what each command does and what it should print.

1. `sudo apt install curl gnupg` installs the two tools the next steps use. Fresh Debian and Ubuntu images sometimes ship without one of them, and the key download fails with `command not found` when they do.
2. `sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc` writes Anthropic's signing key where apt can find it. Success prints nothing. A `curl:` error means the download did not complete, often because the network cannot reach `downloads.claude.ai`.
3. `gpg --show-keys` on that file should print the fingerprint `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. A wrong or missing key surfaces later as `NO_PUBKEY BAA929FF1A7ECACE` when apt refreshes, so check it now.
4. The `echo` line writes the repository entry to `/etc/apt/sources.list.d/claude-desktop.list`. It pins `arch=amd64,arm64` and names the keyring, which keeps apt from trusting anything else.

Then `sudo apt update && sudo apt install claude-desktop`. Launch the app from your application launcher or as `claude-desktop` in a terminal, and sign in with a claude.ai subscription or your organization's SSO. API-key authentication is the CLI.

Two errors are worth knowing before you hit them. `E: Unable to locate package claude-desktop` means apt has not refreshed since the repository file was written; run `sudo apt update` and check that `/etc/apt/sources.list.d/claude-desktop.list` holds the `deb` line. If apt names unmet dependencies instead, read what it names: `libc6` points at an old release, and architecture suffixes point at the wrong `.deb`.

The app does not update itself on Linux. `sudo apt update && sudo apt upgrade` is the update path, and `sudo apt remove claude-desktop` is the removal.

## The check that decides whether Cowork starts

Cowork is the part of the app for Dispatch and longer agentic runs. On Linux it "runs those tasks in a virtual machine that the desktop app hosts with QEMU and KVM". That sentence explains most of the trouble readers report: the app is installed correctly and the host still refuses, because Cowork asks the machine for hardware it may not expose.

The app runs its checks once, at launch. Run these five yourself first and the install either ends in a working Cowork or in a clear answer about this machine, without twenty minutes spent on apt:

```sh
grep -cE 'vmx|svm' /proc/cpuinfo        # above zero means the CPU exposes virtualization
ls -l /dev/kvm /dev/vhost-vsock         # both devices should be listed
id -nG | grep -w kvm                    # prints kvm when you are in the group
dpkg -l qemu-system-x86 ovmf virtiofsd  # arm64: qemu-system-arm qemu-efi-aarch64
ls "/lib/modules/$(uname -r)"           # a directory means modules can load
```

Firmware virtualization comes first. With it switched off in the UEFI settings, Cowork reports "Cowork requires hardware virtualization (KVM)", and nothing inside the package changes that.

The `kvm` group is the second. Some desktops let the logged-in person open `/dev/kvm` without it, and Cowork still needs `/dev/vhost-vsock`, "which only kvm group members can open". Join the group even when `/dev/kvm` already works:

```sh
sudo usermod -aG kvm $USER
```

Log out and back in for the new group to apply, then restart the app. A shell opened before the change still carries the old groups, which is the usual reason a correct `usermod` appears to do nothing.

The QEMU packages come with the install, because `apt install claude-desktop` pulls them as recommended packages. A minimal image, or an install with `--no-install-recommends`, skips them, and Cowork reports "Cowork requires QEMU" and prints the command to run. Ubuntu 22.04 is a special case. It has no `virtiofsd` package, so the app carries its own copy there; a missing `virtiofsd` on 22.04 is expected.

The fifth check is the kernel. When `/dev/vhost-vsock` is missing and `/lib/modules` holds no directory for the running kernel, the app reports that the kernel does not include the virtualization support Cowork needs, and that it cannot be added by hand. That combination is common on ChromeOS and inside container-based Linux environments. [The page on Cowork errors](/cowork-linux-kvm) takes each message in turn and gives the fix, where a fix exists.

## What the Linux build still does not do

"Computer Use is not yet available on Linux", and dictation "is also not available in this release" ([download page](https://claude.com/download)). Chat works on every plan, including Free; Claude Code and Cowork need Pro, Max, Team or Enterprise.

Quick Entry, the global hotkey, works on X11. On native Wayland it depends on the desktop's GlobalShortcuts portal, so a session without that portal gets no hotkey. That is a property of the desktop, and the app's other windows keep working.

Sign-in is stored in the desktop keyring, such as GNOME Keyring or KDE Wallet. On a minimal image that skips recommended packages, no keyring is installed, and the app asks for a sign-in on every launch until one is. `sudo apt install gnome-keyring` fixes that case.

## When the machine cannot pass the checks

A container image with no vsock device. A Chromebook. A work laptop whose firmware has virtualization disabled and locked. A kernel compiled without the module. Each of these installs the app and cannot start Cowork. No flag, no repackaged build and no extra package adds a device the kernel never exposes.

The other route moves the computer. One isolated sandbox per session. Each session has its own isolated machine and branch. Run it on Kortix Cloud, in your VPC, or on your own on-prem network. Self-host is free.

The laptop then needs a browser tab, or the CLI. The agent work happens on a cloud computer, so the local kernel stops being part of the question. [How an agent runs on Linux](/agent-on-linux) walks through that setup, and [the home page](/) holds the support matrix for every distribution.

## What readers ask before installing on Ubuntu

### Can you install Claude Desktop on Ubuntu?

Yes. Anthropic ships a beta build of the desktop app as a `.deb` in its own apt repository, for Ubuntu 22.04 or later and Debian 12 or later, on x86_64 or arm64. The install is three documented steps, and the app signs in with a claude.ai subscription or your organization's SSO.

### Does Claude Cowork work on Linux?

Yes, on a machine that can host the virtual machine Cowork starts. Cowork runs its tasks in a virtual machine the desktop app hosts with QEMU and KVM, so it needs hardware virtualization in firmware, `/dev/kvm`, `/dev/vhost-vsock` and membership in the `kvm` group. Where the kernel cannot provide those devices, Cowork reports the missing piece and stays closed.

## Run the agent work where the kernel cannot say no

The route for a machine that cannot host Cowork's virtual machine, reached from a browser tab or the CLI.

[Try Kortix](https://kortix.com) · [The agent route on Linux](https://claudedesktoplinux.com/agent-on-linux)
