Claude Desktop for Linux
Anthropic's official Claude Desktop Linux build, repackaged for Arch, Fedora/RHEL, NixOS and AppImage (plus our own .deb), with Linux-only extras on top: Computer Use, custom themes, multiple profiles, Quick Entry, and more under Settings → Extra.
Everything else - Chat, Cowork, Claude Code, Browser Tools, 3P inference - is Anthropic's own build. New upstream releases reach you automatically through your package manager. On Ubuntu 22.04+ / Debian 12+ you can also install Anthropic's official .deb directly; this package is the same app with Linux fixes and the extras above.
Quick install
| Distro | Command |
|--------|---------|
| Arch / Manjaro | yay -S claude-desktop-extra (AUR; no AUR helper: signed pacman repo) |
| Debian / Ubuntu | curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install.sh \| sudo bash && sudo apt install claude-desktop-extra |
| Fedora / RHEL | curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-rpm.sh \| sudo bash && sudo dnf install claude-desktop-extra |
| NixOS / Nix | nix run github:patrickjaja/claude-desktop-extra |
| Any distro | AppImage from the latest release |
x86_64 and aarch64 are supported everywhere except Nix (x86_64 only). Cowork (the agent VM) is optional and needs QEMU/KVM, see Cowork setup. Details per distro:
Arch Linux / Manjaro (AUR or pacman repository)
yay -S claude-desktop-extra # or: paru -S claude-desktop-extra / Manjaro: pamac build claude-desktop-extra
Updates arrive with yay -Syu. The PKGBUILD is readable on the AUR before you build: it downloads the prebuilt, SHA256-pinned release tarball and repackages it (no compiling). CI updates it on every release; x86_64 and aarch64.
Without an AUR helper: signed pacman repository. The same package, prebuilt and GPG-signed, updated by sudo pacman -Syu:
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-pacman.sh | sudo bash # repo + signing key, once
sudo pacman -Syu claude-desktop-extra
Optional deps (not installed automatically): QEMU/KVM for Cowork (setup), bubblewrap + socat (Claude Code shell sandbox), openssh (Claude Code SSH sessions over the system ssh client), nodejs (system MCP servers), gjs (GNOME search provider), claude-code.
Manual
pacman.conf setup (without the install script)
Append to /etc/pacman.conf (aarch64: section [claude-desktop-extra-aarch64], same Server):
[claude-desktop-extra]
SigLevel = Required DatabaseRequired
Server = https://github.com/patrickjaja/claude-desktop-extra/releases/latest/download
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/gpg-key.asc -o /tmp/claude-desktop-extra.asc
gpg --show-keys --with-fingerprint /tmp/claude-desktop-extra.asc
Must print: 825A 7D15 D78B ABE4 5646 D5DF 3824 09F5 9790 8867 - stop here if it does not.
sudo pacman-key --init # needed on fresh keyrings, containers and chroots
sudo pacman-key --add /tmp/claude-desktop-extra.asc
sudo pacman-key --lsign-key 825A7D15D78BABE45646D5DF382409F597908867
sudo pacman -Syu claude-desktop-extra
Build with
makepkg (no third-party repository)
mkdir claude-desktop-extra && cd claude-desktop-extra
base=https://github.com/patrickjaja/claude-desktop-extra/releases/latest/download
curl -fsSL -O "$base/PKGBUILD" -O "$base/claude-desktop-extra.install"
makepkg -si
Debian / Ubuntu (APT Repository)
Requires Ubuntu 22.04+ / Debian 12+ (glibc 2.34+).
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install.sh | sudo bash # repo, once
sudo apt install claude-desktop-extra
It replaces Anthropic's own claude-desktop package if installed (same files). Cowork packages come in as Recommends; only the kvm group step remains (Cowork setup).
Without the repo: wget https://github.com/patrickjaja/claude-desktop-extra/releases/latest/download/claude-desktop-extra_2.31226.1-5_amd64.deb && sudo dpkg -i claude-desktop-extra_*_amd64.deb
Fedora / RHEL (DNF Repository)
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-rpm.sh | sudo bash # repo, once
sudo dnf install claude-desktop-extra
Cowork packages come in as weak deps; only the kvm group step remains (Cowork setup).
Without the repo: wget https://github.com/patrickjaja/claude-desktop-extra/releases/latest/download/claude-desktop-extra-2.31226.1-5.x86_64.rpm && sudo dnf install ./claude-desktop-extra-*.x86_64.rpm
Try it with nix run github:patrickjaja/claude-desktop-extra, install with nix profile install github:patrickjaja/claude-desktop-extra. Flake: add inputs.claude-desktop.url = "github:patrickjaja/claude-desktop-extra"; and put inputs.claude-desktop.packages.x86_64-linux.default in environment.systemPackages. Update with nix flake update. "Start at login" and profile shortcuts run through the package wrapper, so they survive a garbage collection.
Cowork tools (qemu, virtiofsd, OVMF) are baked into the closure (.override { qemu = null; } drops them). Host steps: users.users. and, outside GNOME, services.gnome.gnome-keyring.enable = true; to keep sign-in. The GNOME/KDE Computer Use bridges need an override on NixOS, see Computer Use dependencies.
Works on standard and immutable distros (Bazzite, Silverblue/Kinoite, SteamOS, Universal Blue). The claude:// handler for sign-in registers itself on first launch.
wget https://github.com/patrickjaja/claude-desktop-extra/releases/latest/download/Claude_Desktop-2.31226.1-x86_64.AppImage
chmod +x Claude_Desktop--x86_64.AppImage && ./Claude_Desktop--x86_64.AppImage
Delta updates: appimageupdatetool Claude_Desktop-*.AppImage. Works with AppImageLauncher and Gear Lever. Needs the host's PipeWire client library (libpipewire-0.3.so.0, present on every desktop with PipeWire). For Cowork, install QEMU + UEFI firmware + virtiofsd from your distro (Cowork setup); for the Claude Code shell sandbox, bubblewrap and socat. First launch also registers .mcpb/.dxt extensions and .skill files for your user.
Clone the repo and run ./scripts/build-local.sh --install. No automatic updates; pull and rebuild.
ARM64 / aarch64 (Raspberry Pi 5, NVIDIA DGX Spark, Jetson, etc.)
.deb, .rpm, pacman and AppImage packages exist for arm64; the repos pick the right architecture. Install as above. Cowork on ARM boards: notes.
Migrating from claude-desktop-bin
The package replaces itself on the next regular upgrade, and your config is migrated on first launch. Only an old [claude-desktop-bin] section in /etc/pacman.conf needs replacing with the Arch stanza above.
Cowork setup (needs /dev/kvm) - optional, every install path
Cowork and Dispatch run on the official native VM backend bundled in the package. The host needs QEMU + UEFI firmware + virtiofsd and access to /dev/kvm: join the kvm group once (sudo usermod -aG kvm "$USER", then log out and in). Per-distro commands and troubleshooting: docs/cowork.md.
Verifying the repository signing key (APT, DNF and pacman)
Key: Claude Desktop Linux (claude-desktop-bin repo signing key) <[email protected]>
Type: RSA 4096
Fingerprint: 825A 7D15 D78B ABE4 5646 D5DF 3824 09F5 9790 8867
Check it with curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/gpg-key.asc | gpg --show-keys --with-fingerprint.
The "Extra" Settings
Settings → Extra holds everything this project adds, no config file or sudo needed:
- Themes - pick one of 97 palettes or your own, applied live.
- Community - opt-in switches such as Files quick open, panel tabs, diff view modes and custom models.
- Models - providers and models for the Code tab's model picker.
- Anthropic - every upstream feature flag as a switch.
- Deployment - the 1P/3P switch and the full third-party inference config.
The other Extra pages
| Themes | Models | |---|---| | !Settings → Extra → Themes | !Settings → Extra → Models | | Anthropic | Deployment | | !Settings → Extra → Anthropic | !Settings → Extra → Deployment |
The Code tab as an IDE
Three Community switches make the Code tab work like VS Code:
- Files quick open - Ctrl+P finds a file and opens it in the Files panel;
path:42jumps to a line, and words match in any order (user servicefindsuser-service.spec.ts). - Panel tabs - diff, terminal, browser and files open as tabs instead of a shrinking split; each gets the full width and keeps its state, Ctrl+1-9 switches.
- Diff view modes - the diff panel shows Working tree, Branch changes or Latest turn, against the branch you actually forked from, with expand/collapse all.
!Ctrl+P quick open over the Files panel, and the side panels as tabs
Computer Use
Desktop automation (screenshot, click, type, scroll, teach mode), on for every account and every session type. The official build's own Linux Computer Use is a staged rollout that needs a RemoteDesktop portal (GNOME 46+, current Plasma) and skips wlroots; our bundled bridges take precedence and cover X11, XWayland, Sway / Hyprland / Niri, GNOME Wayland (PipeWire >= 1.0.5) and KDE Plasma 6.6+, with nothing to install. Details: docs/computer-use.md, per-session matrix: dependencies.
Custom Themes
97 dual light/dark palettes (Catppuccin, Nord, Gruvbox, gaming themes, ...). Press Ctrl+Shift+T to pick one live. Theme files reload live, so matugen, pywal or wallust can recolor the app from your wallpaper. Guide: docs/themes.md, gallery: themes/PALETTES.md.
Multiple Profiles
Run several instances side by side, each with its own account and fully isolated state: claude-desktop --create-profile=work, then launch claude-desktop-work. Details: docs/profiles.md.
Quick Entry
Global hotkey popup (Ctrl+Alt+Space) on the monitor under your cursor. Works as installed on KDE; on other desktops bind claude-desktop --toggle to a key. Per-desktop setup: docs/quick-entry.md.
Third-Party / Enterprise Inference
Run on Bedrock, Vertex AI, Azure AI Foundry or any Anthropic-compatible gateway, without a claude.ai login. Configure it in Settings → Extra → Deployment, or fleet-wide via /etc/claude-desktop/managed-settings.json. Linux guide: docs/third-party-inference.md.
Non-Anthropic models through your gateway: upstream silently drops gateway model IDs that do not look Anthropic (DeepSeek, Qwen, GLM, Kimi, gpt-oss, ...) from the model list and falls back to the default model. Turn on Settings → Extra → Community Features → Allow non-Anthropic models (opt-in, 3P mode, restart) to keep them in the model list, the picker and running sessions; HIPAA and admin model allowlists still apply. Recipe with an EU gateway: docs/cookbook/opper-gateway.md, more recipes in docs/cookbook/.
Custom Models
Use models from other providers (DeepSeek, Kimi, GLM, MiniMax, Qwen, OpenRouter, a gateway, or Anthropic's API on your API credit) in the Code tab's model picker, next to Anthropic's. Sessions on them use your own key; everything else stays on your subscription. Off by default: add a provider in Settings → Extra → Models and turn it on. Details: docs/custom-models.md.
Feature Flag Overrides (advanced)
Override Anthropic's server-side feature flags in ~/.config/Claude/claude-desktop-extra.jsonc, or flip them in Settings → Extra → Anthropic Features. Details: docs/feature-flags.md.
Patches
We patch the official app.asar at repackage time: patches/community/ (16 patches, opt-in features), patches/core/ (7, infrastructure) and patches/linux/ (32, Linux fixes). A patch that stops matching fails the build, and a patch is removed once upstream ships the behavior. Catalog: docs/patches.md.
Command-line flags
claude-desktop --help lists them (--profile=NAME, --toggle, --diagnose, --1p / --3p, ...). Reference: docs/command-line.md. Environment variables (e.g. CLAUDE_DISABLE_GPU=1 or CLAUDE_GPU_BACKEND=angle-gl for a white screen or GPU crash): docs/environment-variables.md.
Troubleshooting
Logs are in ~/.config/Claude/logs/ (3P mode: ~/.config/Claude-3p/logs/, named profiles: ~/.config/Claude-). Common problems and known limitations: docs/troubleshooting.md.
Reporting a bug: attach the output of these two commands to your issue. Linux setups differ a lot, and this is what makes a report diagnosable:
claude-desktop --diagnose > diagnose.txt
cp ~/.config/Claude/logs/claude-patches.log . # 3P mode: ~/.config/Claude-3p/logs/claude-patches.log
Development
git clone https://github.com/patrickjaja/claude-desktop-extra.git && cd claude-desktop-extra
./scripts/build-local.sh
To add a feature, write one patch following Adding your own feature, then open a PR. AGENTS.md has the project rules; the bundled skills are optional helpers for Claude Code.
See Also
- tweakcc - a CLI tool for customizing Claude Code (system prompts, themes, UI). Same patching-JS-to-make-it-yours energy. Thanks to the Piebald team.
- agent-skills - production-grade engineering skills for AI coding agents; the maintainer uses them to spec, plan and build changes here.
Legal Notice
This is an unofficial community project for educational and research purposes. Claude Desktop is proprietary software owned by Anthropic PBC. This repository contains only build scripts and patches - not the Claude Desktop application itself; the upstream binary is downloaded directly from Anthropic during the build. This project is not affiliated with, endorsed by, or sponsored by Anthropic. "Claude" is a trademark of Anthropic PBC.
Built with ❤️ for the Linux community