How to Install Claude Desktop on Ubuntu 26.04 and 24.04 – Anthropic’s Official App

Share
9 Min Read · Official App · Beginner Friendly

Install Claude Desktop on Ubuntu

To install Claude Desktop on Ubuntu, add Anthropic’s apt repository and run sudo apt install claude-desktop. There is no file to download and no installer to click through, on x86_64 or arm64 alike.

That is a real difference from most desktop apps on Ubuntu. Because the app arrives from a signed repository rather than as a one-off package, new versions come down with your ordinary system updates and you never go looking for a newer build. This guide adds the repository, installs the app, signs you in, and gets Cowork’s virtual machine running when the tab comes up grey. If a step does not work on your system, leave a comment below or contact us and we will help you sort it out.

Cost: Claude account required
Install: apt repository
Machines: x86_64 and arm64
Updates: Through apt
Before You Start
Ubuntu version
22.04 or later, or Debian 12 or later. Older releases fail on a library version.
Account
A Claude account, or your organisation’s single sign-on. An API key will not do.
Machines
x86_64 and arm64. Run dpkg –print-architecture if you are unsure.
Terminal
Needed. The app is not in the Ubuntu archives, so there is nothing to click in App Center.
Internet
Always. Your messages are answered by Anthropic’s servers, not your machine.
Time
Five minutes. Longer if you also want Cowork.

Install Claude Desktop on Ubuntu

Three steps, five minutes. This needs Ubuntu 22.04 or later, because the package wants a version of the C library that Ubuntu 20.04 does not have.

1

Step 1: Download Anthropic’s signing key

Open a terminal with Ctrl + Alt + T and fetch the key into the folder apt keeps trusted keys in:

Download the signing key
mike@ubuntu:~$ sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc

Silence means it worked. The command prints nothing on success and a line starting curl: when it does not.

If the shell answers command not found, you are on a trimmed-down install that has neither tool yet. Fetch both, then run the command above again:

mike@ubuntu:~$ sudo apt install curl gnupg
2

Step 2: Add the repository and install

Write the repository into apt’s list of sources. This is one long line, so copy it rather than typing it:

Register the repository
mike@ubuntu:~$ 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

The signed-by part is the whole point of the exercise. It ties this one repository to that one key, so nothing else on your system gains any trust from it. That is the same arrangement Google Chrome and Visual Studio Code use on Ubuntu, and it is why a vendor repository set up this way is not the same risk as pasting in an unknown PPA.

Then refresh apt and install:

Install the app
mike@ubuntu:~$ sudo apt update && sudo apt install claude-desktop

Let it install the packages it recommends. Among them are QEMU and some firmware, which look unrelated to a chat app and are not: they are what Cowork runs on. Saying no here, or installing with --no-install-recommends, gives you an app with one tab permanently greyed out.

3

Step 3: Launch and sign in

Press the Super key, type Claude, and press Enter. From a terminal the command is claude-desktop.

Sign in the way you sign in to Claude anywhere else, with your account or your organisation’s single sign-on. There is no API key box, and that catches people out often enough to have its own short section below.

Prefer to watch someone do it

The same install on a Linux desktop, followed by the Cowork fix covered further down this page.

Installing Without the Repository

Most readers should skip this section. It is for the two situations where the repository route is not available: a machine whose network blocks the repository, and a machine where policy says no third-party apt sources.

The package itself still comes from the same place. This command reads the repository index, finds the newest package for your architecture, and downloads just that file into the current folder:

Download the newest package directly
mike@ubuntu:~$ curl -fLO "https://downloads.claude.ai/claude-desktop/apt/stable/$(curl -s "https://downloads.claude.ai/claude-desktop/apt/stable/dists/stable/main/binary-$(dpkg --print-architecture)/Packages" | grep '^Filename: pool/main/c/claude-desktop/claude-desktop_' | sort -V | tail -n 1 | cut -d' ' -f2)"

Then install it from the folder it landed in:

mike@ubuntu:~$ sudo apt install ./claude-desktop_*.deb
Read this before you run it

Installing the file still adds the repository. The package registers /etc/apt/sources.list.d/claude-desktop.list on its own, which is exactly what you want if you only took this route because a download was easier, and exactly what you do not want if the whole point was to avoid the repository.

To stop that, create /etc/default/claude-desktop containing the line CLAUDE_DESKTOP_ADD_REPO="false" before you install. The trade is that nothing will ever update the app again: you repeat the download by hand, or you add the repository later and go back to normal.

Sign In and What You Need

Sign in with your Claude account, or with your organisation’s single sign-on. It is the same account you use on the web, and your conversations follow you between them.

What will not work is an API key from the Claude Console. This is worth saying plainly because the people most likely to install a desktop app on Ubuntu are often the same people who already have an API key in a terminal somewhere, and it is a reasonable guess that the app would take one. It does not. If billing through the API is what you want, that is the command-line tool’s job, not this app’s.

The app costs nothing to install. What you can do inside it follows whatever Claude plan your account is on, exactly as it does on the web, and there is no separate charge or separate tier for Linux.

What the App Does

This is not the website in a window. It is the same application Anthropic ships on macOS and Windows, with three things in it: ordinary chat, Claude Code for working in your repositories, and Cowork for longer jobs you hand over and come back to.

The Claude desktop app running on Ubuntu, with the Claude icon in the dock, the tray menu open and the About Claude for Linux dialog showing the version
The app on an Ubuntu desktop: an icon in the dock, a tray menu with Show App and Open Quick Entry, and the About dialog naming the build. Screenshot by OMG! Ubuntu.

Two things in that picture are worth pointing at. The tray icon is a real desktop integration, not a window that vanishes when you close it: Show App brings it back and Quick Entry opens a small box you can type into without hunting for the window. And the app knows what build it is, which matters more than usual here, because on Linux you do not update it yourself and the version number is how you check that apt has been doing its job.

Inside, the parts a developer will care about are the ones borrowed from Claude Code: several sessions at once, changes shown as a diff you approve or reject rather than applied behind your back, a terminal and an editor in the same window, and a live preview of whatever you are building. Everything you type is answered by Anthropic’s servers. Nothing in this app runs a model on your own machine, and a file it reads is a file that is sent.

Cowork Runs in a Virtual Machine

On Linux, Cowork starts a virtual machine on your computer and does its work inside that. This is the part of the app with real requirements, and it is why a chat application pulled in QEMU during the install.

The reason is straightforward once you see it. Cowork is for jobs you hand over and walk away from, where Claude runs commands and edits files for a while without you watching each step. Doing that directly on your desktop means an agent with your permissions and your home directory. Doing it in a virtual machine means a boundary you did not have to build, with only the folders you share crossing it. The QEMU packages are not an optional extra, they are the wall.

Four things have to be true before the tab will open.

One, hardware virtualization has to be turned on in your firmware. On most machines bought in the last decade it already is. On some it is off by default, and it is called Intel VT-x, AMD-V or sometimes just “virtualization” in the firmware settings you reach by holding a key at boot.

Two, the QEMU packages have to be present, and which ones depends on your architecture:

Architecture Packages Cowork needs
x86_64, which apt calls amd64 qemu-system-x86, ovmf, virtiofsd
arm64 qemu-system-arm, qemu-efi-aarch64, virtiofsd

A normal apt install claude-desktop brings these in as recommended packages, so on an ordinary desktop install they are already there. On Ubuntu 22.04 there is no virtiofsd package at all, and the app carries its own copy for that case, so nothing is missing on 22.04 even though the package list looks short.

Three, your user has to be in the kvm group. This is the requirement most likely to bite, because it looks satisfied when it is not:

Join the kvm group
mike@ubuntu:~$ sudo usermod -aG kvm $USER

Then log out and back in. Group membership is decided when you log in, so the change does nothing until you do. And join the group even if you already have access to /dev/kvm: some desktop environments hand the logged-in user that one device without the group, but Cowork also opens /dev/vhost-vsock, and only members of the group can open that.

Four, the vhost_vsock kernel module has to be loaded, which is what lets the app talk to the machine it started. Load it now, and tell the system to load it at every boot:

Load the module, now and at boot
mike@ubuntu:~$ sudo modprobe vhost_vsock



mike@ubuntu:~$ echo vhost_vsock | sudo tee /etc/modules-load.d/vhost_vsock.conf
The one thing to remember

The app checks all four of these once, when it starts. Installing a package or joining a group while it is open changes nothing on screen. Close it and open it again after installing anything, and log out and back in after joining the group. A grey Cowork tab that you have already fixed is almost always an app that has not been restarted.

When Cowork Will Not Start

The Cowork tab tells you which requirement it is missing. Each message below is the app’s own wording, so match yours to the heading and take the fix under it. Restart the app afterwards in every case.

What you see

Cowork requires hardware virtualization (KVM)

FIX Turn virtualization on in your firmware settings, not in Ubuntu.

Nothing you install will fix this one, because the processor feature the virtual machine needs is switched off below the operating system. Restart, hold the key your machine uses to reach its firmware settings, and look for Intel VT-x, AMD-V, SVM or a plain Virtualization switch, usually under an advanced or CPU section. Turn it on, save, and boot back into Ubuntu.

What you see

Cowork requires QEMU

FIX Install the packages the message lists, then restart the app.

The app shows you the exact apt install command for your machine, so use that. On an ordinary x86_64 desktop it comes to this:

mike@ubuntu:~$ sudo apt install qemu-system-x86 ovmf virtiofsd

These normally arrive with the app. Seeing this message means recommended packages were skipped: either you installed with --no-install-recommends, or you are on a minimal or server image that is configured to skip them for everything. On Ubuntu 22.04 leave virtiofsd out of that command, because the package does not exist there and the app brings its own.

What you see

Claude doesn’t have permission to use virtualization (/dev/kvm)

FIX sudo usermod -aG kvm $USER and then log out and back in.

Virtualization is available on this machine, your user is just not allowed to use it. The group is where that permission lives, and logging out is not optional: your session was given its groups when it started and will not pick up a new one until you start a new session. A reboot works too if you would rather.

You can confirm it took effect before reopening the app:

mike@ubuntu:~$ groups



mike@ubuntu:~$ mike adm cdrom sudo dip plugdev kvm lpadmin
What you see

Cowork requires the vhost_vsock kernel module

FIX sudo modprobe vhost_vsock, then restart the app.

The module is how the app and the virtual machine talk to each other. modprobe loads it for this boot only, so make it permanent or you will be back here after your next restart:

mike@ubuntu:~$ echo vhost_vsock | sudo tee /etc/modules-load.d/vhost_vsock.conf

One case cannot be fixed at all, and the app says so rather than letting you try: a kernel with no module directory under /lib/modules has nothing to load. That is normal inside containers and on ChromeOS’s Linux environment, where the kernel is not yours to change. Chat and Claude Code still work there. Cowork does not, and no amount of installing will change it.

Other Things That Go Wrong

What you see

NO_PUBKEY BAA929FF1A7ECACE

FIX The key is missing or wrong. Run Step 1 again, then sudo apt update.

This reads like a repository fault and it is not. Apt found the repository perfectly well and refused to trust what was in it, because the key at the path in your sources line is not the key that signed those packages. Two things cause it: a download that quietly returned a web page instead of a key, which happens behind a hotel or office network, and a keyring path typed slightly differently in the two commands. Copy both commands rather than typing them and this does not come up.

What you see

E: Unable to locate package claude-desktop

FIX Run sudo apt update, then install again.

Nine times out of ten this is a missed refresh. Apt does not notice a repository you added since the last update, so installing straight after adding the source finds nothing. If refreshing does not fix it, check the source file actually has something in it:

mike@ubuntu:~$ cat /etc/apt/sources.list.d/claude-desktop.list

An empty or missing file means the long echo command did not land, so run it again. A file that looks right leaves one more thing to rule out: run dpkg --print-architecture. Anything other than amd64 or arm64 has no package to find, and that is the answer rather than a fault.

What you see

Depends: libc6 (>= 2.34) but it is not installable

FIX Upgrade the machine. Ubuntu 22.04 or later, or Debian 12 or later.

This one has no workaround worth having. Ubuntu 20.04 ships version 2.31 of the C library and the app needs 2.34, and replacing the C library by hand on a working system is how you end up with a machine that will not boot. If 20.04 is where you are, the upgrade path to 22.04 is the fix. There is also a command-line version of Claude Code that runs in far more places, and on an old machine that is the better answer.

What you see

Running as root without –no-sandbox is not supported

FIX Start it as yourself. Never with sudo.

Installing needs sudo. Running does not, and the app refuses rather than starting with the safety features that protect you from what it renders switched off. Do not reach for the flag in that message. It is the app naming the thing it will not do without, not a suggestion. Close the root terminal and launch Claude from your applications menu like anything else.

What you see

The Quick Entry keyboard shortcut does nothing

FIX Use the tray menu’s Open Quick Entry, or log in to an X11 session.

A global shortcut is a key press that reaches an application while you are in a different one, and on Wayland an application cannot simply take one. It has to ask the desktop through a portal called GlobalShortcuts, and whether that exists depends on the desktop you are running rather than on the app. On X11 the shortcut works without any of this.

If it matters enough to change sessions for, pick Ubuntu on Xorg from the gear icon on the login screen after entering your username. Otherwise the tray menu does the same job with one more click, and this is the kind of gap that closes with a normal update.

How Updates Reach You

You do not update this app, and it does not update itself. There is no updater inside it on Linux, no “a new version is available” box, and nothing to download when a new build ships. Your system brings it, along with everything else.

mike@ubuntu:~$ sudo apt update && sudo apt upgrade

Ubuntu’s own Software Updater picks it up too, so if you already let that run there is genuinely nothing to do. This is the reason the repository route is worth the extra two commands over downloading a file: with the repository, a newer version is a thing that happens to you. Without it, it is a thing you have to remember.

If you want to know what you are running, the About dialog in the tray menu names the build, and apt will tell you the same thing:

mike@ubuntu:~$ apt policy claude-desktop

Remove It Cleanly

Removing the app is one command, and then one judgement call about the repository.

Remove the app
mike@ubuntu:~$ sudo apt remove claude-desktop

That takes the repository entry and key the package registered with it. Which sounds like the end of it, and on one of the two install routes it is. Here is the part that catches people, and it depends on how you installed:

If you installed the .deb directly, the package added the repository itself, so removing the package takes it away again. You are finished.

If you followed the steps at the top of this page, you wrote that source file yourself, and nothing written by hand is removed by apt. It is still there, still being checked every time you update, pointing at an app you no longer have. Take it out yourself:

Remove the source you added, and prove it is gone
mike@ubuntu:~$ sudo rm /etc/apt/sources.list.d/claude-desktop.list



mike@ubuntu:~$ ls /etc/apt/sources.list.d/claude-desktop.list



ls: cannot access '/etc/apt/sources.list.d/claude-desktop.list': No such file or directory

That second command is the proof, and a missing file is the answer you want. Nothing you wrote in the app is stored on your machine, so none of this deletes a conversation. They live in your Claude account and removing the app does not touch them.

One optional tidy-up. If you never use QEMU for anything else, the virtual machine packages that came in with the app are still installed, and sudo apt autoremove will offer to take them. Read what it lists before agreeing. If you run virtual machines by any other means, you want to keep them.

Helpful Resources

Official Linux documentation Requirements, the install commands, and every error message
What the desktop app can do The feature reference, shared with macOS and Windows
Claude Help Center Accounts, plans and sign-in problems
r/ClaudeAI Where the Linux app gets discussed and argued about

Frequently Asked Questions

Is Claude Desktop free to install on Ubuntu?

The app costs nothing to install and there is no separate charge or separate tier for the Linux version. What you can do inside it depends on the Claude plan your account is on, exactly as it does on the web, so the app is not the thing that decides what you get. You do need an account: there is no way to use it signed out.

Does it work offline, or run a model on my own machine?

No to both. Every message is sent to Anthropic’s servers and answered there, so the app does nothing at all without an internet connection, and anything it reads on your machine is sent along with your question. The virtual machine that Cowork runs is a boundary around what Claude is allowed to touch on your computer, not a model running locally. If running a model on your own hardware is what you want, that is a different kind of tool entirely.

Is the Linux app finished, or should I wait?

The Linux version arrived in June 2026 with a beta label, and what that has meant in practice is an app that works for daily use with three gaps against macOS and Windows: Computer Use, dictation, and a Quick Entry shortcut that needs help on Wayland. All three are covered in this guide and none of them stops you chatting, writing code or using Cowork. Because it installs through apt, waiting buys you nothing anyway: whatever improves arrives on your machine with your normal system updates whether you installed today or next month.

Can it control my desktop the way it does on Mac and Windows?

Not on Linux. Computer Use, where Claude clicks and types in your other applications, is a macOS and Windows feature, and voice dictation is missing for the same reason. What Linux has instead is the part most people install this for: chat, Claude Code working inside your own repositories with changes shown as a diff you approve, and Cowork for longer jobs.

Why does Cowork need a virtual machine on Linux?

Cowork is for work you hand over and leave running, which means Claude executing commands and changing files without you approving each one. Running that directly on your desktop would give it your permissions and your home directory. Running it inside a virtual machine that the app starts with QEMU and KVM puts a boundary around it, and only the folders you share cross that boundary. This is why installing a chat application also installs QEMU, and why the Cowork tab has requirements the rest of the app does not.

Which Ubuntu versions does it support?

Ubuntu 22.04 and later, which covers 26.04, 24.04 and 22.04, plus Debian 12 and later. Ubuntu 20.04 genuinely cannot run it: the package needs a newer C library than 20.04 ships and apt says so rather than installing something broken. Other Debian-based distributions that are new enough usually work but are not tested. On Fedora, RHEL or Arch there is no desktop package at all, and the command-line version of Claude Code is the supported route.

Next step
Two commands, then apt keeps it current

Anthropic’s own desktop app for Ubuntu and Debian, on x86_64 and arm64, from a signed repository.

Related guides: Install ChatGPT on Ubuntu · Install Visual Studio Code on Ubuntu · More AI guides for Ubuntu