github aaddrick/claude-desktop-debian v3.0.0+claude1.18286.0

6 hours ago

v3.0.0 rebases onto Anthropic's official Linux app

This is the biggest change the project has ever shipped. Until now, every package we built was Anthropic's Windows installer, repackaged and bent onto Linux with a dozen patches carrying roughly 30 distinct fixes. That era is over. Anthropic ships an official Claude Desktop for Linux now, and v3.0.0 rebuilds the whole project on top of it.

The official Linux app goes inside our packages byte-identical in the common case. We only patch what's still actually broken on Linux, and that's down to two small fixes: a KDE Quick-Entry focus fix, and an org-plugins path fix the upstream build has no Linux case for. Everything else is Anthropic's code, untouched.

What this means for you

You get the real first-party app, in the formats Anthropic doesn't publish.

Anthropic serves an official .deb. We take that same .deb and turn it into RPM, AppImage, AUR, and Nix, plus our own .deb, and wrap all of them in the launcher with the Linux fixes (Wayland opt-in, GPU-crash recovery, --doctor). Because we're building on the official app now, you also get the features that only exist in the first-party build: Cowork (KVM/QEMU-based), the native tray, and native close-to-tray. Those used to be things we couldn't give you at all.

Breaking changes

Read this section before you upgrade.

The package is renamed to claude-desktop-unofficial. This is deliberate. Anthropic's official package is claude-desktop, and we don't want to collide with it. For now that collision only exists on the APT side — Anthropic ships the official app as a .deb only — but we renamed every format at once rather than wait for it to bite. Our deb, rpm, and AppImage filenames all use the new name, and paths move to /usr/lib/claude-desktop-unofficial and /usr/bin/claude-desktop-unofficial. On Fedora the rpm still Provides: claude-desktop, so dnf install claude-desktop keeps resolving to our package until Anthropic ships an official rpm.

Migration is automatic. APT users get a transitional package on a normal sudo apt update && sudo apt upgrade. DNF users migrate via Obsoletes on sudo dnf upgrade. Our conflict metadata never touches Anthropic's official package, so if you have both installed they sit side by side fine. Both builds share ~/.config/Claude, so run one at a time.

Some launcher env vars are gone or no-op now. These are CLAUDE_TITLEBAR_STYLE, ELECTRON_USE_SYSTEM_TITLE_BAR, CLAUDE_MENU_BAR, CLAUDE_KEEP_AWAKE, and CLAUDE_QUIT_ON_CLOSE. The official app handles all of that natively. Close-to-tray is now a setting: Settings ▸ General ▸ System Tray (on keeps it in the tray, off quits on close). If you still have one of the CLAUDE_* vars set, claude-desktop-unofficial --doctor will warn you.

A few more:

  • The password store is no longer auto-detected. Set CLAUDE_PASSWORD_STORE if you need to force a backend.
  • The build flag --exe is now --deb, and --node-pty-dir is removed.
  • The Nix derivation was rebuilt from scratch for the official tree. Your install commands don't change. It's build-verified on x86_64, but runtime on real NixOS, aarch64, and Cowork VM boot are not verified yet (@typedrat owns that follow-up).

Also in this release

  • Doctor got a rework. It checks the Cowork KVM stack (/dev/kvm, vhost-vsock, OVMF firmware), warns when no keyring backend is reachable so your token isn't stored unencrypted, detects the name collision with the official package, and flags dead legacy env vars.
  • The launcher heals the "Run on startup" entry. The official app writes that autostart entry pointing at its raw ELF, or at an ephemeral /tmp mount path under AppImage, which bypasses launcher policy. We fix it back up.
  • RPM adds a firmware compat symlink so Cowork's hardcoded OVMF probe works on non-Debian layouts.
  • The launcher no longer logs your OAuth login code into launcher.log.
  • Every release now mirrors the exact official .deb it consumed, as insurance in case upstream pulls a build.
  • Fixed before it ever shipped: cross-built arm64 AppImages were embedding an x86_64 runtime stub and couldn't start on arm64 hardware. This never made it into a release. The new artifact tests caught it before publish.

Known gaps

I'd rather you hear these from me than find them.

  • Nix runtime is unverified, as noted above. Build works, runtime on real NixOS and aarch64 is still an open item.
  • Two live-hardware edges are tracked as follow-ups: a KDE Quick-Entry stale-focus edge, and a fresh-install-no-wallet KDE keyring edge. Neither one blocks normal use.

Installation

APT (Debian/Ubuntu)

# First time? Add the repo:
curl -fsSL https://pkg.claude-desktop-debian.dev/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/claude-desktop-unofficial.gpg
echo "deb [signed-by=/usr/share/keyrings/claude-desktop-unofficial.gpg arch=amd64,arm64] https://pkg.claude-desktop-debian.dev stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop-unofficial.list

# Install or update:
sudo apt update && sudo apt install claude-desktop-unofficial

DNF (Fedora/RHEL)

# First time? Add the repo:
sudo curl -fsSL https://pkg.claude-desktop-debian.dev/rpm/claude-desktop-unofficial.repo -o /etc/yum.repos.d/claude-desktop-unofficial.repo

# Install or update:
sudo dnf install claude-desktop-unofficial

AUR (Arch Linux)

yay -S claude-desktop-appimage

Manual Download

Download .deb, .rpm, or .AppImage from the assets below.


Full story: PR #763 and the CHANGELOG.

Don't miss a new claude-desktop-debian release

NewReleases is sending notifications on new releases.