{"id":27776794,"url":"https://github.com/aaddrick/claude-desktop-debian","last_synced_at":"2026-08-27T23:55:27.099Z","repository":{"id":269870105,"uuid":"908658171","full_name":"aaddrick/claude-desktop-debian","owner":"aaddrick","description":"Claude Desktop for Linux","archived":false,"fork":false,"pushed_at":"2026-08-19T03:25:21.000Z","size":10002,"stargazers_count":5352,"open_issues_count":35,"forks_count":517,"subscribers_count":53,"default_branch":"main","last_synced_at":"2026-08-21T20:52:56.724Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aaddrick.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","claude":"CLAUDE.md","gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":"aaddrick"}},"created_at":"2024-12-26T16:09:43.000Z","updated_at":"2026-08-21T18:42:04.000Z","dependencies_parsed_at":"2026-08-10T03:24:29.895Z","dependency_job_id":null,"html_url":"https://github.com/aaddrick/claude-desktop-debian","commit_stats":null,"previous_names":["aaddrick/claude-desktop-debian"],"tags_count":167,"template":false,"template_full_name":null,"purl":"pkg:github/aaddrick/claude-desktop-debian","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaddrick%2Fclaude-desktop-debian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaddrick%2Fclaude-desktop-debian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaddrick%2Fclaude-desktop-debian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaddrick%2Fclaude-desktop-debian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaddrick","download_url":"https://codeload.github.com/aaddrick/claude-desktop-debian/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaddrick%2Fclaude-desktop-debian/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36947771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-27T02:00:07.166Z","response_time":96,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-30T06:03:35.217Z","updated_at":"2026-08-27T23:55:27.092Z","avatar_url":"https://github.com/aaddrick.png","language":"TypeScript","funding_links":["https://github.com/sponsors/aaddrick"],"categories":["💻 Applications","Shell"],"sub_categories":["🖥️ Desktop"],"readme":"# Claude Desktop for Linux\n\nThis project repackages Claude Desktop for Linux formats Anthropic doesn't ship themselves: `.rpm` (Fedora/RHEL), distribution-agnostic AppImages, a Nix flake for NixOS, and an [AUR package](#using-aur-arch-linux) for Arch (currently unavailable — see below).\n\nOn 2026-06-30 Anthropic shipped a first-party Claude Desktop for Linux beta, distributed as a `.deb` (amd64 and arm64) from their own APT repository. Since v3.0.0, this project repackages that official Linux `.deb`. It no longer repackages the Windows installer.\n\nThe official `.deb` covers one packaging target. What it leaves out is a long tail of distros, desktops, and session types — catalogued from this project's own issue history in [the reported-environments survey](docs/reports/CDL-ANT-0009_patch-suite-history/reported-environments/grouped-families.md). That long tail is what this project serves, plus a launcher and a `--doctor` for the Linux environment quirks. The [Installation](#installation) section lays out what's ours and what's upstream.\n\n**Note:** This is an unofficial repackaging project. For official support, visit [Anthropic's website](https://www.anthropic.com). For issues with the packaging or the Linux launcher, please [open an issue](https://github.com/aaddrick/claude-desktop-debian/issues) here.\n\n**Documentation:** Full docs at [`docs/index.md`](docs/index.md). Release history in [`CHANGELOG.md`](CHANGELOG.md). Contributing: [`CONTRIBUTING.md`](CONTRIBUTING.md). Security reports: [`SECURITY.md`](SECURITY.md).\n\n---\n\n## Features\n\n- **Official app, extra formats**: repackages Anthropic's official Linux `.deb` into `.rpm`, AppImage, and AUR builds.\n- **MCP support**: full Model Context Protocol integration. Config lives at `~/.config/Claude/claude_desktop_config.json` (see [Configuration](#configuration)).\n- **Launcher for Linux quirks**: opt-in native Wayland (`CLAUDE_USE_WAYLAND=1`), GPU-crash auto-recovery, XRDP detection, IM-module override, and autostart-entry healing.\n- **`--doctor` diagnostics**: checks the display server, sandbox permissions, MCP config, stale locks, the KVM/Cowork stack, and official-version drift.\n- **Cowork on Linux**: runs when KVM (hardware virtualization) is available. The doctor reports readiness.\n- **System integration**: global hotkey (Ctrl+Alt+Space) on X11 and Wayland, system tray, and desktop-environment integration.\n\n### Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/aaddrick/claude-desktop-debian/main/docs/images/claude-desktop-screenshot1.png\" alt=\"Claude Desktop running on Linux\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/aaddrick/claude-desktop-debian/main/docs/images/claude-desktop-screenshot2.png\" alt=\"Global hotkey popup\" /\u003e\n\u003c/p\u003e\n\n## Installation\n\nAnthropic serves the `.deb`. We serve everything else. Since v3.0.0 our packages are named `claude-desktop-unofficial`, so they install side-by-side with Anthropic's official `claude-desktop` — but both share `~/.config/Claude`, so only one can run at a time. Here's the split:\n\n| Format | Who serves it |\n|--------|---------------|\n| `.deb` (Debian/Ubuntu, amd64 + arm64) | Anthropic's official APT repo. Ours mirrors it as `claude-desktop-unofficial` (launcher + doctor added), so it can sit beside the official package. |\n| `.rpm` (Fedora/RHEL) | This project. |\n| AppImage (any distro) | This project. |\n| AUR (Arch) | This project (builds the AppImage). **Unavailable** — see [below](#using-aur-arch-linux). |\n| Nix flake (NixOS) | This project. |\n\nOn top of packaging, every format we build carries:\n\n- **Our launcher.** Opt-in native Wayland via `CLAUDE_USE_WAYLAND=1`, GPU-crash auto-recovery, XRDP detection, IM-module override, and autostart-entry healing.\n- **`claude-desktop-unofficial --doctor`.** Diagnostics for the KVM/Cowork stack, official-version drift, name collisions, and config problems.\n- **Packaging fixes.** The RPM firmware compat symlink Cowork needs, and the Ubuntu 24.04+ AppArmor profile.\n\nThe app itself is the official `app.asar`. A patch has to justify itself against the official bytes or get deleted — most of the pre-v3.0.0 suite was deleted when Anthropic shipped official Linux builds. Five Linux-gap patches survive:\n\n- **virtiofsd resolution.** Upstream probes only `/usr/libexec/virtiofsd` and `/usr/bin/virtiofsd`, falling back to its bundled copy only when `/etc/os-release` reports Ubuntu 22.x. Arch installs virtiofsd at `/usr/lib/virtiofsd` and Debian at `/usr/lib/qemu/virtiofsd`, so Cowork reports \"requires QEMU\" on a complete KVM stack. Dropping the os-release gate fixes it; system paths stay preferred. Filed upstream.\n- **org-plugins path.** Upstream's platform switch has cases for darwin and win32 only, and the default returns null, so the org-plugins feature is silently dead on Linux. Adds a `linux` case resolving `/etc/claude/org-plugins`. Filed upstream.\n- **Tray icon selection.** Upstream's desktop-environment detector returns kde, gnome, or other, so Cinnamon — which can pair a dark panel with a light GTK colour scheme — gets the wrong glyph. Threads the launcher's `CLAUDE_TRAY_USE_DARK_ICON` into upstream's own selector without replacing its icons. Filed upstream.\n- **Quick Entry focus.** Adds `blur()` before `hide()` on the pop-up window so the main window reappears after submit, working around an Electron focus bug on KDE.\n- **Cowork bubblewrap backend.** Opt-in via `COWORK_VM_BACKEND=bwrap` for hosts without KVM/vhost-vsock. Every branch is gated on the flag, so an unflagged launch runs upstream's path unchanged.\n\n### Using APT Repository (Debian/Ubuntu - Recommended)\n\nAdd the repository for automatic updates via `apt`:\n\n```bash\n# Add the GPG key\ncurl -fsSL https://pkg.claude-desktop-debian.dev/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/claude-desktop-unofficial.gpg\n\n# Add the repository\necho \"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\n\n# Update and install\nsudo apt update\nsudo apt install claude-desktop-unofficial\n```\n\nFuture updates will be installed automatically with your regular system updates (`sudo apt upgrade`).\n\n### Using DNF Repository (Fedora/RHEL - Recommended)\n\nAdd the repository for automatic updates via `dnf`:\n\n```bash\n# Add the repository\nsudo curl -fsSL https://pkg.claude-desktop-debian.dev/rpm/claude-desktop-unofficial.repo -o /etc/yum.repos.d/claude-desktop-unofficial.repo\n\n# Install\nsudo dnf install claude-desktop-unofficial\n```\n\nFuture updates will be installed automatically with your regular system updates (`sudo dnf upgrade`).\n\n### Using AUR (Arch Linux)\n\n**Unavailable since 2026-08-01.** `claude-desktop-appimage` was deleted from the AUR under deletion request [PRQ#85209](https://lists.archlinux.org/archives/list/aur-requests@lists.archlinux.org/thread/33X5H3TTGPXBEFKJFHEL5JYVGOE52IRV/) as a duplicate of `aur/claude-desktop`. A reinstatement request is with the list moderators. Until it resolves, install the [AppImage](#using-pre-built-releases) directly.\n\nAutomated AUR publishing is paused while that request is open — a deleted pkgbase keeps its git repo and still accepts pushes, so a release would recreate the package mid-review. Once the package is restored:\n\n```bash\ngh variable set AUR_PUBLISH_ENABLED --body true\n```\n\nThe `update-aur-repo` job in [`ci.yml`](.github/workflows/ci.yml) is gated on that variable, and the pending `pkgdesc`/`license` corrections still need pushing to the AUR pkgbase.\n\nWhen it is available, the package installs the AppImage build of Claude Desktop:\n\n```bash\n# Using yay\nyay -S claude-desktop-appimage\n\n# Or using paru\nparu -S claude-desktop-appimage\n```\n\n### Using Nix Flake (NixOS)\n\nInstall directly from the flake:\n\n```bash\n# Basic install\nnix profile install github:aaddrick/claude-desktop-debian\n\n# With MCP server support (FHS environment)\nnix profile install github:aaddrick/claude-desktop-debian#claude-desktop-fhs\n```\n\nOr add to your NixOS configuration:\n\n```nix\n# flake.nix\n{\n  inputs.claude-desktop.url = \"github:aaddrick/claude-desktop-debian\";\n\n  outputs = { nixpkgs, claude-desktop, ... }: {\n    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {\n      modules = [\n        ({ pkgs, ... }: {\n          nixpkgs.overlays = [ claude-desktop.overlays.default ];\n          environment.systemPackages = [ pkgs.claude-desktop ];\n        })\n      ];\n    };\n  };\n}\n```\n\n### Using Pre-built Releases\n\nDownload the latest `.deb`, `.rpm`, or `.AppImage` from the [Releases page](https://github.com/aaddrick/claude-desktop-debian/releases).\n\n### Building from Source\n\nSee [docs/building.md](docs/building.md) for detailed build instructions.\n\n## Configuration\n\nModel Context Protocol settings are stored in:\n```\n~/.config/Claude/claude_desktop_config.json\n```\n\n**Quit Claude Desktop before you hand-edit this file, then reopen it.** The app rewrites its own config while running, so edits you make with the app open get overwritten the next time it writes. Quit first, edit, then relaunch. Servers loaded at startup survive restarts fine — this only bites manual edits made against a running app.\n\nFor additional configuration options including environment variables and Wayland support, see [docs/configuration.md](docs/configuration.md).\n\n## Troubleshooting\n\nRun `claude-desktop-unofficial --doctor` for built-in diagnostics. It checks the usual suspects: display server, sandbox permissions, MCP config, stale locks, and more. It also reports Cowork readiness. Cowork on Linux runs on a KVM-backed VM, so the doctor reports which of its dependencies (KVM, QEMU, OVMF firmware, vhost-vsock, virtiofsd) are installed or missing.\n\nFor additional troubleshooting, uninstallation instructions, and log locations, see [docs/troubleshooting.md](docs/troubleshooting.md).\n\n## Acknowledgments\n\nThis project was inspired by [k3d3's claude-desktop-linux-flake](https://github.com/k3d3/claude-desktop-linux-flake) and their [Reddit post](https://www.reddit.com/r/ClaudeAI/comments/1hgsmpq/i_successfully_ran_claude_desktop_natively_on/) about running Claude Desktop natively on Linux.\n\nSpecial thanks to:\n- **k3d3**\n  - Original NixOS implementation\n  - Native bindings insights\n- **[emsi](https://github.com/emsi/claude-desktop)**\n  - Title bar fix\n  - Alternative implementation approach\n- **[leobuskin](https://github.com/leobuskin/unofficial-claude-desktop-linux)** for the Playwright-based URL resolution approach\n\nThe full contributor credits list — everyone whose PR, fix, or analysis\nshaped this project, in chronological order — lives in\n[ACKNOWLEDGMENTS.md](ACKNOWLEDGMENTS.md).\n\n## Sponsorship\n\nIf this project is useful to you, consider [sponsoring on GitHub](https://github.com/sponsors/aaddrick).\n\n## License\n\nThe build scripts in this repository are dual-licensed under:\n- MIT License (see [LICENSE-MIT](LICENSE-MIT))\n- Apache License 2.0 (see [LICENSE-APACHE](LICENSE-APACHE))\n\nThe Claude Desktop application itself is subject to [Anthropic's Consumer Terms](https://www.anthropic.com/legal/consumer-terms).\n\n## Privacy\n\nThis repository uses an automated triage bot that sends issue contents to Anthropic's API for classification and investigation when you file a bug report or feature request. The bot reads the issue body, title, and any referenced related issues; it does not follow URLs, execute code blocks, or read content outside the triggering issue.\n\nDo not include credentials, tokens, personal data, or anything you wouldn't put on a public issue tracker. If you post sensitive content and then edit it out, the bot's original read is preserved as a run artifact for audit — GitHub's UI hides the edit, but the bot's view of what you wrote is recoverable by maintainers.\n\nFull design and data inventory: [`docs/issue-triage/README.md`](docs/issue-triage/README.md).\n\n## Contributing\n\nContributions are welcome! By submitting a contribution, you agree to license it under the same dual-license terms as this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaddrick%2Fclaude-desktop-debian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaddrick%2Fclaude-desktop-debian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaddrick%2Fclaude-desktop-debian/lists"}