[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73669":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},73669,"claude-desktop-debian","aaddrick\u002Fclaude-desktop-debian","aaddrick","Claude Desktop for Linux","",null,"Shell",4813,484,51,41,0,135,254,636,405,110.06,"Apache License 2.0",false,"main",true,[],"2026-06-12 04:01:10","# Claude Desktop for Linux\n\nThis 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\u002FUbuntu), `.rpm` packages (Fedora\u002FRHEL), distribution-agnostic AppImages, an [AUR package](https:\u002F\u002Faur.archlinux.org\u002Fpackages\u002Fclaude-desktop-appimage) for Arch Linux, and a Nix flake for NixOS.\n\n**Note:** This is an unofficial build script. For official support, please visit [Anthropic's website](https:\u002F\u002Fwww.anthropic.com). For issues with the build script or Linux implementation, please [open an issue](https:\u002F\u002Fgithub.com\u002Faaddrick\u002Fclaude-desktop-debian\u002Fissues) in this repository.\n\n---\n\n> **⚠️ APT migration notice (April 2026)**\n>\n> The APT\u002FDNF repo moved to `pkg.claude-desktop-debian.dev` (#493) — binaries are now served from GitHub Releases via a Cloudflare Worker so they don't hit the 100 MB per-file push cap on `gh-pages`. **DNF users are unaffected.** APT users on the legacy `aaddrick.github.io` sources.list will see a scheme-downgrade error on `apt update`. [One-line `sed` fix](#migrating-from-the-old-aaddrickgithubio-url).\n\n---\n\n## Features\n\n- **Native Linux Support**: Run Claude Desktop without virtualization or Wine\n- **MCP Support**: Full Model Context Protocol integration\n  Configuration file location: `~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json`\n- **System Integration**:\n  - Global hotkey support (Ctrl+Alt+Space) - works on X11 and Wayland (via XWayland)\n  - System tray integration\n  - Desktop environment integration\n\n### Screenshots\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Faaddrick\u002Fclaude-desktop-debian\u002Fmain\u002Fdocs\u002Fimages\u002Fclaude-desktop-screenshot1.png\" alt=\"Claude Desktop running on Linux\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Faaddrick\u002Fclaude-desktop-debian\u002Fmain\u002Fdocs\u002Fimages\u002Fclaude-desktop-screenshot2.png\" alt=\"Global hotkey popup\" \u002F>\n\u003C\u002Fp>\n\n## Installation\n\n### Using APT Repository (Debian\u002FUbuntu - Recommended)\n\nAdd the repository for automatic updates via `apt`:\n\n```bash\n# Add the GPG key\ncurl -fsSL https:\u002F\u002Fpkg.claude-desktop-debian.dev\u002FKEY.gpg | sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Fclaude-desktop.gpg\n\n# Add the repository\necho \"deb [signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fclaude-desktop.gpg arch=amd64,arm64] https:\u002F\u002Fpkg.claude-desktop-debian.dev stable main\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fclaude-desktop.list\n\n# Update and install\nsudo apt update\nsudo apt install claude-desktop\n```\n\nFuture updates will be installed automatically with your regular system updates (`sudo apt upgrade`).\n\n### Using DNF Repository (Fedora\u002FRHEL - Recommended)\n\nAdd the repository for automatic updates via `dnf`:\n\n```bash\n# Add the repository\nsudo curl -fsSL https:\u002F\u002Fpkg.claude-desktop-debian.dev\u002Frpm\u002Fclaude-desktop.repo -o \u002Fetc\u002Fyum.repos.d\u002Fclaude-desktop.repo\n\n# Install\nsudo dnf install claude-desktop\n```\n\nFuture updates will be installed automatically with your regular system updates (`sudo dnf upgrade`).\n\n#### Migrating from the old `aaddrick.github.io` URL\n\nIf you installed claude-desktop before April 2026, your repo config points at `https:\u002F\u002Faaddrick.github.io\u002Fclaude-desktop-debian`. That URL now auto-redirects to `pkg.claude-desktop-debian.dev` — DNF follows the redirect transparently, but **apt refuses it as a security downgrade**, so `apt update` fails. Update your sources list to the new URL:\n\n```bash\n# APT (Debian\u002FUbuntu)\nsudo sed -i 's|https:\u002F\u002Faaddrick\\.github\\.io\u002Fclaude-desktop-debian|https:\u002F\u002Fpkg.claude-desktop-debian.dev|g' \\\n  \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fclaude-desktop.list\nsudo apt update\n\n# DNF (Fedora\u002FRHEL) — optional refresh; the old URL still works but pointing directly at the new host is cleaner\nsudo curl -fsSL https:\u002F\u002Fpkg.claude-desktop-debian.dev\u002Frpm\u002Fclaude-desktop.repo \\\n  -o \u002Fetc\u002Fyum.repos.d\u002Fclaude-desktop.repo\n```\n\nBackground: binaries for recent releases are no longer committed to the `gh-pages` branch — `.deb` files grew past GitHub's 100 MB per-file cap (#493). The new URL is fronted by a small Cloudflare Worker that serves the existing metadata directly and 302-redirects package downloads to the corresponding GitHub Release asset. Bandwidth and package bytes still come from GitHub; the Worker just handles the routing.\n\n### Using AUR (Arch Linux)\n\nThe [`claude-desktop-appimage`](https:\u002F\u002Faur.archlinux.org\u002Fpackages\u002Fclaude-desktop-appimage) package is available on the AUR and is automatically updated with each release.\n\n```bash\n# Using yay\nyay -S claude-desktop-appimage\n\n# Or using paru\nparu -S claude-desktop-appimage\n```\n\nThe AUR package installs the AppImage build of Claude Desktop.\n\n### Using Nix Flake (NixOS)\n\nInstall directly from the flake:\n\n```bash\n# Basic install\nnix profile install github:aaddrick\u002Fclaude-desktop-debian\n\n# With MCP server support (FHS environment)\nnix profile install github:aaddrick\u002Fclaude-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\u002Fclaude-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:\u002F\u002Fgithub.com\u002Faaddrick\u002Fclaude-desktop-debian\u002Freleases).\n\n### Building from Source\n\nSee [docs\u002FBUILDING.md](docs\u002FBUILDING.md) for detailed build instructions.\n\n## Configuration\n\nModel Context Protocol settings are stored in:\n```\n~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json\n```\n\nFor additional configuration options including environment variables and Wayland support, see [docs\u002FCONFIGURATION.md](docs\u002FCONFIGURATION.md).\n\n## Troubleshooting\n\nRun `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.\n\nFor additional troubleshooting, uninstallation instructions, and log locations, see [docs\u002FTROUBLESHOOTING.md](docs\u002FTROUBLESHOOTING.md).\n\n## Acknowledgments\n\nThis project was inspired by [k3d3's claude-desktop-linux-flake](https:\u002F\u002Fgithub.com\u002Fk3d3\u002Fclaude-desktop-linux-flake) and their [Reddit post](https:\u002F\u002Fwww.reddit.com\u002Fr\u002FClaudeAI\u002Fcomments\u002F1hgsmpq\u002Fi_successfully_ran_claude_desktop_natively_on\u002F) about running Claude Desktop natively on Linux.\n\nSpecial thanks to:\n- **k3d3**\n  - Original NixOS implementation\n  - Native bindings insights\n- **[emsi](https:\u002F\u002Fgithub.com\u002Femsi\u002Fclaude-desktop)**\n  - Title bar fix\n  - Alternative implementation approach\n- **[leobuskin](https:\u002F\u002Fgithub.com\u002Fleobuskin\u002Funofficial-claude-desktop-linux)** for the Playwright-based URL resolution approach\n- **[yarikoptic](https:\u002F\u002Fgithub.com\u002Fyarikoptic)**\n  - Codespell support\n  - Shellcheck compliance\n- **[IamGianluca](https:\u002F\u002Fgithub.com\u002FIamGianluca)** for build dependency check improvements\n- **[ing03201](https:\u002F\u002Fgithub.com\u002Fing03201)** for IBus\u002FFcitx5 input method support\n- **[ajescudero](https:\u002F\u002Fgithub.com\u002Fajescudero)** for pinning @electron\u002Fasar for Node compatibility\n- **[delorenj](https:\u002F\u002Fgithub.com\u002Fdelorenj)** for Wayland compatibility support\n- **[Regen-forest](https:\u002F\u002Fgithub.com\u002FRegen-forest)** for suggesting Gear Lever as AppImageLauncher replacement\n- **[niekvugteveen](https:\u002F\u002Fgithub.com\u002Fniekvugteveen)** for fixing Debian packaging permissions\n- **[speleoalex](https:\u002F\u002Fgithub.com\u002Fspeleoalex)** for native window decorations support\n- **[imaginalnika](https:\u002F\u002Fgithub.com\u002Fimaginalnika)** for moving logs to `~\u002F.cache\u002F`\n- **[richardspicer](https:\u002F\u002Fgithub.com\u002Frichardspicer)** for the menu bar visibility fix on Linux\n- **[jacobfrantz1](https:\u002F\u002Fgithub.com\u002Fjacobfrantz1)**\n  - Claude Desktop code preview support\n  - Quick window submit fix\n- **[janfrederik](https:\u002F\u002Fgithub.com\u002Fjanfrederik)** for the `--exe` flag to use a local installer\n- **[MrEdwards007](https:\u002F\u002Fgithub.com\u002FMrEdwards007)** for discovering the OAuth token cache fix\n- **[lizthegrey](https:\u002F\u002Fgithub.com\u002Flizthegrey)**\n  - Version update contributions\n  - Close-to-tray on Linux to keep in-app schedulers, MCP servers, and the tray icon alive across window close\n  - \"Run on startup\" persistence on Linux via XDG Autostart, fixing the toggle that would silently revert\n- **[mathys-lopinto](https:\u002F\u002Fgithub.com\u002Fmathys-lopinto)**\n  - AUR package\n  - Automated deployment\n- **[pkuijpers](https:\u002F\u002Fgithub.com\u002Fpkuijpers)** for root cause analysis of the RPM repo GPG signing issue\n- **[dlepold](https:\u002F\u002Fgithub.com\u002Fdlepold)** for identifying the tray icon variable name bug with a working fix\n- **[Voork1144](https:\u002F\u002Fgithub.com\u002FVoork1144)**\n  - Detailed analysis of the tray icon minifier bug\n  - Root-cause analysis of the Chromium layout cache bug\n  - Direct child `setBounds()` fix approach\n- **[sabiut](https:\u002F\u002Fgithub.com\u002Fsabiut)**\n  - `--doctor` diagnostic command\n  - SHA-256 checksum validation for downloads\n  - Post-build integration tests for deb, rpm, and AppImage artifacts\n- **[milog1994](https:\u002F\u002Fgithub.com\u002Fmilog1994)**\n  - Popup detection\n  - Functional stubs\n  - Wayland compositor support\n- **[jarrodcolburn](https:\u002F\u002Fgithub.com\u002Fjarrodcolburn)**\n  - Passwordless sudo support in container\u002FCI environments\n  - Identifying the gh-pages 4GB bloat fix\n  - Identifying the virtiofsd PATH detection issue on Debian\n  - Detailed analysis of the CI release pipeline failure caused by runner kills during compare-releases\n  - Diagnosing the session-start hook sudo blocking issue with three solution approaches\n- **[chukfinley](https:\u002F\u002Fgithub.com\u002Fchukfinley)** for experimental Cowork mode support on Linux\n- **[CyPack](https:\u002F\u002Fgithub.com\u002FCyPack)**\n  - Orphaned cowork daemon cleanup on startup\n  - `COWORK_VM_BACKEND` documentation, Cowork troubleshooting sections, and unknown-value warning in `--doctor`\n- **[IliyaBrook](https:\u002F\u002Fgithub.com\u002FIliyaBrook)**\n  - Fixing the platform patch for Claude Desktop >= 1.1.3541 arm64 refactor\n  - Fixing the duplicate tray icon on OS theme change with an in-place `setImage`\u002F`setContextMenu` fast-path that avoids the KDE Plasma SNI re-registration race\n- **[MichaelMKenny](https:\u002F\u002Fgithub.com\u002FMichaelMKenny)**\n  - Diagnosing the `$`-prefixed electron variable bug\n  - Root cause analysis and workaround\n- **[daa25209](https:\u002F\u002Fgithub.com\u002Fdaa25209)** for detailed root cause analysis of the cowork platform gate crash and patch script\n- **[noctuum](https:\u002F\u002Fgithub.com\u002Fnoctuum)**\n  - `CLAUDE_MENU_BAR` env var with configurable menu bar visibility\n  - Boolean alias support\n- **[typedrat](https:\u002F\u002Fgithub.com\u002Ftypedrat)**\n  - NixOS flake integration with build.sh\n  - node-pty derivation\n  - CI auto-update\n  - Fixing the flake package scoping regression\n- **[cbonnissent](https:\u002F\u002Fgithub.com\u002Fcbonnissent)**\n  - Reverse-engineering the Cowork VM guest RPC protocol\n  - Fixing the KVM startup blocker\n  - Fixing RPC response id echoing for persistent connections\n  - Configurable bwrap mount points via a dedicated Linux config file\n  - `{src, dst}` mount form in `coworkBwrapMounts` for distinct host\u002Fsandbox paths (e.g. persistent `\u002Ftmp` across Bash tool calls)\n- **[joekale-pp](https:\u002F\u002Fgithub.com\u002Fjoekale-pp)** for adding `--doctor` support to the RPM launcher\n- **[ecrevisseMiroir](https:\u002F\u002Fgithub.com\u002FecrevisseMiroir)** for the bwrap backend sandbox isolation with tmpfs-based minimal root\n- **[arauhala](https:\u002F\u002Fgithub.com\u002Farauhala)** for detailed root cause analysis of the NixOS `isPackaged` regression\n- **[cromagnone](https:\u002F\u002Fgithub.com\u002Fcromagnone)** for confirming the VM download loop on bwrap installs with detailed logs that disproved the initial triage\n- **[aHk-coder](https:\u002F\u002Fgithub.com\u002FaHk-coder)** for diagnosing the hardcoded minified variable crash in the cowork smol-bin patch\n- **[RayCharlizard](https:\u002F\u002Fgithub.com\u002FRayCharlizard)**\n  - Detailed analysis of the self-referential `.mcpb-cache` symlink ELOOP bug\n  - Fixing auto-memory path translation on HostBackend\n  - Fixing the `ion-dist` static asset copy for the `app:\u002F\u002F` protocol handler\n- **[reinthal](https:\u002F\u002Fgithub.com\u002Freinthal)** for fixing the NixOS build breakage caused by the nixpkgs `nodePackages` removal\n- **[gianluca-peri](https:\u002F\u002Fgithub.com\u002Fgianluca-peri)**\n  - Reporting the GNOME quit accessibility issue\n  - Confirming tray behavior with AppIndicator\n- **[martin152](https:\u002F\u002Fgithub.com\u002Fmartin152)** for detailed diagnosis and a complete patch for three launcher cleanup bugs: `cleanup_orphaned_cowork_daemon` self-match, `cleanup_stale_cowork_socket` socat dependency no-op, and the same self-match in `--doctor`\n- **[hfyeh](https:\u002F\u002Fgithub.com\u002Fhfyeh)** for diagnosing the Ubuntu 24.04 AppArmor unprivileged-userns block on Cowork bwrap and contributing the AppArmor profile workaround\n- **[davidamacey](https:\u002F\u002Fgithub.com\u002Fdavidamacey)** for identifying and fixing the XRDP GPU compositing blank-window issue on remote desktop sessions\n- **[pb3ck](https:\u002F\u002Fgithub.com\u002Fpb3ck)** for diagnosing the Cowork `CLAUDE_CODE_OAUTH_TOKEN` env-strip bug with a working reference diff\n- **[Joost-Maker](https:\u002F\u002Fgithub.com\u002FJoost-Maker)** for fixing the `$e` fs reference crash in cowork Patch 9 on Claude Desktop 1.3109.0, introducing the `[$\\w]+` identifier-capture pattern at `cowork.sh:482-501` (#421)\n- **[aJV99](https:\u002F\u002Fgithub.com\u002FaJV99)** for exporting `GDK_BACKEND=wayland` in native Wayland mode to fix XWayland fallback blur on HiDPI displays\n- **[Andrej730](https:\u002F\u002Fgithub.com\u002FAndrej730)**\n  - Quick-window regex readability refactor (`String.raw` + `escapeRegExp` helper)\n  - Fixing the visibility-function regex break on Claude Desktop 1.3883.0 (#496)\n- **[HumboldtJoker](https:\u002F\u002Fgithub.com\u002FHumboldtJoker)** for diagnosing the cowork Patch 2b silent failure on Claude Desktop 1.5354.0 — identifying that the log line was patched but session init still routed through the Swift addon (#553)\n- **[zabka](https:\u002F\u002Fgithub.com\u002Fzabka)** for identifying that `cowork-vm-service.js` was never auto-spawned on Linux and contributing a systemd-unit workaround that scoped the daemon auto-launch fix (#445)\n- **[sirfaber](https:\u002F\u002Fgithub.com\u002Fsirfaber)** for fixing the `$`-in-minified-identifier breakage of cowork Patch 2b (vm module assignment) and Patch 6 step 2 (retry-delay auto-launch) on Claude Desktop 1.5354.0 (#555)\n- **[ProfFlow](https:\u002F\u002Fgithub.com\u002FProfFlow)** for re-fixing the RPM repodata signing regression by appending `!` to the keyid passed to `gpg --default-key`, forcing `repomd.xml` to be signed by the primary key instead of the auto-selected signing subkey (#566)\n- **[jslatten](https:\u002F\u002Fgithub.com\u002Fjslatten)** for fixing the KDE Plasma Wayland launcher-grouping bug by setting `pkg.desktopName` in the packaged `app.asar`'s `package.json`, format-conditional so deb\u002Frpm get `claude-desktop.desktop` and AppImage gets `io.github.aaddrick.claude-desktop-debian.desktop` (#562)\n- **[JoshuaVlantis](https:\u002F\u002Fgithub.com\u002FJoshuaVlantis)**\n  - RPM `chrome-sandbox` SUID via `%attr(4755, ...)` instead of a `%post` chmod scriptlet so the bit survives `--noscripts` and layered images (#539)\n  - `autoUpdater` no-op Proxy on Linux that defends against future feed activation, with a thenable allowlist masking `then`\u002F`catch`\u002F`finally`\u002F`Symbol.toPrimitive`\u002F`Symbol.iterator` to `undefined` (#567)\n  - Failing loudly on `npm install node-pty` failures instead of silently shipping the upstream Windows binaries, plus auto-installing `gcc`\u002F`g++`\u002F`make`\u002F`python3` on minimal build environments (#401)\n- **[Hayao0819](https:\u002F\u002Fgithub.com\u002FHayao0819)** for diagnosing the upstream `titleBarStyle:\"\"` → `titleBarStyle:\"hiddenInset\"` migration that broke the About window render on GNOME\u002FX11 and contributing the `isPopupWindow()` match extension (#481, #489)\n\n## Sponsorship\n\nIf this project is useful to you, consider [sponsoring on GitHub](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Faaddrick).\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:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fconsumer-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\u002Fissue-triage\u002FREADME.md`](docs\u002Fissue-triage\u002FREADME.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","该项目提供了一套构建脚本，使得Claude Desktop可以在Linux系统上原生运行。它将官方的Windows应用程序重新打包为适用于不同Linux发行版的格式，包括.deb（Debian\u002FUbuntu）、.rpm（Fedora\u002FRHEL）包、跨发行版的AppImage以及NixOS的Nix flake，并且支持Arch Linux的AUR包。项目的核心功能包括对Linux系统的本地支持、完整的Model Context Protocol集成以及与桌面环境的良好整合，如全局快捷键和系统托盘集成等特性。这使得用户无需通过虚拟化或Wine就能在Linux环境下流畅使用Claude Desktop，非常适合需要在Linux平台上寻找高效AI助手工具的开发者和个人用户。",2,"2026-06-11 03:46:50","high_star"]