This project provides build scripts to run Claude Desktop natively on Linux systems. It repackages the official Windows application for Linux distributions, producing .deb packages (Debian/Ubuntu), .rpm packages (Fedora/RHEL), distribution-agnostic AppImages, an AUR package for Arch Linux, and a Nix flake for NixOS.
Note: This is an unofficial build script. For official support, please visit Anthropic's website. For issues with the build script or Linux implementation, please open an issue in this repository.
⚠️ EXPERIMENTAL: Cowork Mode Support Cowork mode is enabled by default in this build. It uses Anthropic's native VM images with a pluggable isolation backend:
Backend Isolation Requirements KVM (preferred) Full VM via QEMU/KVM /dev/kvm,qemu-system-x86_64,/dev/vhost-vsock,socat,virtiofsdbubblewrap (fallback) Namespace sandbox bwrapinstalled and functionalhost (last resort) None — runs directly on host No additional requirements The best available backend is auto-detected at startup. Run
claude-desktop --doctorto check which backend will be used and which dependencies are missing.Note: The bubblewrap backend mounts your home directory as read-only (only the project working directory is writable). The host backend provides no isolation — use it only if you understand the security implications.
~/.config/Claude/claude_desktop_config.json
Add the repository for automatic updates via apt:
# Add the GPG key
curl -fsSL https://aaddrick.github.io/claude-desktop-debian/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/claude-desktop.gpg
# Add the repository
echo "deb [signed-by=/usr/share/keyrings/claude-desktop.gpg arch=amd64,arm64] https://aaddrick.github.io/claude-desktop-debian stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list
# Update and install
sudo apt update
sudo apt install claude-desktop
Future updates will be installed automatically with your regular system updates (sudo apt upgrade).
Add the repository for automatic updates via dnf:
# Add the repository
sudo curl -fsSL https://aaddrick.github.io/claude-desktop-debian/rpm/claude-desktop.repo -o /etc/yum.repos.d/claude-desktop.repo
# Install
sudo dnf install claude-desktop
Future updates will be installed automatically with your regular system updates (sudo dnf upgrade).
The claude-desktop-appimage package is available on the AUR and is automatically updated with each release.
# Using yay
yay -S claude-desktop-appimage
# Or using paru
paru -S claude-desktop-appimage
The AUR package installs the AppImage build of Claude Desktop.
Install directly from the flake:
# Basic install
nix profile install github:aaddrick/claude-desktop-debian
# With MCP server support (FHS environment)
nix profile install github:aaddrick/claude-desktop-debian#claude-desktop-fhs
Or add to your NixOS configuration:
# flake.nix { inputs.claude-desktop.url = "github:aaddrick/claude-desktop-debian"; outputs = { nixpkgs, claude-desktop, ... }: { nixosConfigurations.myhost = nixpkgs.lib.nixosSystem { modules = [ ({ pkgs, ... }: { nixpkgs.overlays = [ claude-desktop.overlays.default ]; environment.systemPackages = [ pkgs.claude-desktop ]; }) ]; }; }; }
Download the latest .deb, .rpm, or .AppImage from the Releases page.
See docs/BUILDING.md for detailed build instructions.
Model Context Protocol settings are stored in:
~/.config/Claude/claude_desktop_config.json
For additional configuration options including environment variables and Wayland support, see docs/CONFIGURATION.md.
Run claude-desktop --doctor for built-in diagnostics that check common issues (display server, sandbox permissions, MCP config, stale locks, and more). It also reports cowork mode readiness — which isolation backend will be used, and which dependencies (KVM, QEMU, vsock, socat, virtiofsd, bubblewrap) are installed or missing.
For additional troubleshooting, uninstallation instructions, and log locations, see docs/TROUBLESHOOTING.md.
This project was inspired by k3d3's claude-desktop-linux-flake and their Reddit post about running Claude Desktop natively on Linux.
Special thanks to:
~/.cache/--exe flag to use a local installersetBounds() fix approach--doctor diagnostic command$-prefixed electron variable bug with root cause analysis and workaroundCLAUDE_MENU_BAR env var for configurable menu bar visibilityAnthropic doesn't publish release notes for Claude Desktop. Each release here includes AI-generated notes that analyze code changes between versions. I wrote up how that process works if you're curious: Generating Real Release Notes from Minified Electron Apps.
The analysis runs against Claude's API. Costs vary a lot depending on how big the update is. Recent releases have run between 76.16 per release.
If this project is useful to you, consider sponsoring on GitHub to help cover those costs.
The build scripts in this repository are dual-licensed under:
The Claude Desktop application itself is subject to Anthropic's Consumer Terms.
Contributions are welcome! By submitting a contribution, you agree to license it under the same dual-license terms as this project.