{"id":27776794,"url":"https://github.com/aaddrick/claude-desktop-debian","last_synced_at":"2026-06-10T02:01:06.234Z","repository":{"id":269870105,"uuid":"908658171","full_name":"aaddrick/claude-desktop-debian","owner":"aaddrick","description":"Claude Desktop for Debian-based Linux distributions","archived":false,"fork":false,"pushed_at":"2026-04-12T20:00:35.000Z","size":5068264,"stargazers_count":3138,"open_issues_count":28,"forks_count":359,"subscribers_count":48,"default_branch":"main","last_synced_at":"2026-04-12T21:32:23.755Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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","dco":null,"cla":null},"funding":{"github":"aaddrick"}},"created_at":"2024-12-26T16:09:43.000Z","updated_at":"2026-04-12T19:44:45.000Z","dependencies_parsed_at":"2026-01-20T05:13:21.872Z","dependency_job_id":null,"html_url":"https://github.com/aaddrick/claude-desktop-debian","commit_stats":null,"previous_names":["aaddrick/claude-desktop-debian"],"tags_count":96,"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":31869051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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-06-10T02:01:06.224Z","avatar_url":"https://github.com/aaddrick.png","language":"Shell","funding_links":["https://github.com/sponsors/aaddrick"],"categories":["💻 Applications","Shell"],"sub_categories":["🖥️ Desktop"],"readme":"# 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/Ubuntu), `.rpm` packages (Fedora/RHEL), distribution-agnostic AppImages, an [AUR package](https://aur.archlinux.org/packages/claude-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://www.anthropic.com). For issues with the build script or Linux implementation, please [open an issue](https://github.com/aaddrick/claude-desktop-debian/issues) in this repository.\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\u003e **⚠️ APT migration notice (April 2026)**\n\u003e\n\u003e The APT/DNF 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: `~/.config/Claude/claude_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\"\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\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.gpg\n\n# Add the repository\necho \"deb [signed-by=/usr/share/keyrings/claude-desktop.gpg arch=amd64,arm64] https://pkg.claude-desktop-debian.dev stable main\" | sudo tee /etc/apt/sources.list.d/claude-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/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.repo -o /etc/yum.repos.d/claude-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://aaddrick.github.io/claude-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/Ubuntu)\nsudo sed -i 's|https://aaddrick\\.github\\.io/claude-desktop-debian|https://pkg.claude-desktop-debian.dev|g' \\\n  /etc/apt/sources.list.d/claude-desktop.list\nsudo apt update\n\n# DNF (Fedora/RHEL) — optional refresh; the old URL still works but pointing directly at the new host is cleaner\nsudo curl -fsSL https://pkg.claude-desktop-debian.dev/rpm/claude-desktop.repo \\\n  -o /etc/yum.repos.d/claude-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://aur.archlinux.org/packages/claude-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/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\nFor additional configuration options including environment variables and Wayland support, see [docs/configuration.md](docs/configuration.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/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- **[yarikoptic](https://github.com/yarikoptic)**\n  - Codespell support\n  - Shellcheck compliance\n- **[IamGianluca](https://github.com/IamGianluca)** for build dependency check improvements\n- **[ing03201](https://github.com/ing03201)** for IBus/Fcitx5 input method support\n- **[ajescudero](https://github.com/ajescudero)** for pinning @electron/asar for Node compatibility\n- **[delorenj](https://github.com/delorenj)** for Wayland compatibility support\n- **[Regen-forest](https://github.com/Regen-forest)** for suggesting Gear Lever as AppImageLauncher replacement\n- **[niekvugteveen](https://github.com/niekvugteveen)** for fixing Debian packaging permissions\n- **[speleoalex](https://github.com/speleoalex)** for native window decorations support\n- **[imaginalnika](https://github.com/imaginalnika)** for moving logs to `~/.cache/`\n- **[richardspicer](https://github.com/richardspicer)** for the menu bar visibility fix on Linux\n- **[jacobfrantz1](https://github.com/jacobfrantz1)**\n  - Claude Desktop code preview support\n  - Quick window submit fix\n- **[janfrederik](https://github.com/janfrederik)** for the `--exe` flag to use a local installer\n- **[MrEdwards007](https://github.com/MrEdwards007)** for discovering the OAuth token cache fix\n- **[lizthegrey](https://github.com/lizthegrey)**\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  - In-place package upgrade detection that watches `app.asar` for dpkg/rpm replacement and offers a click-to-restart notification, fixing the Quick Entry / About / Ctrl+Q symptom cluster from a running v(N) main process loading v(N+1) renderer assets (#564)\n- **[mathys-lopinto](https://github.com/mathys-lopinto)**\n  - AUR package\n  - Automated deployment\n- **[pkuijpers](https://github.com/pkuijpers)** for root cause analysis of the RPM repo GPG signing issue\n- **[dlepold](https://github.com/dlepold)** for identifying the tray icon variable name bug with a working fix\n- **[Voork1144](https://github.com/Voork1144)**\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://github.com/sabiut)**\n  - `--doctor` diagnostic command\n  - SHA-256 checksum validation for downloads\n  - Post-build integration tests for deb, rpm, and AppImage artifacts\n  - `tests.yml` CI workflow that runs the 186-test BATS suite on push and PR — the suite was inert in CI before this (#520)\n  - Isolating `cleanup_stale_cowork_socket` BATS from host `pgrep` state so the test passes on developer machines running Claude Desktop (#533, #534)\n  - Headless launch and `--doctor` smoke tests for the AppImage artifact, catching runtime regressions (frame-fix-wrapper syntax errors, asar patch breakage, `main` field mismatches) that the structural test missed (#592)\n- **[milog1994](https://github.com/milog1994)**\n  - Popup detection\n  - Functional stubs\n  - Wayland compositor support\n- **[jarrodcolburn](https://github.com/jarrodcolburn)**\n  - Passwordless sudo support in container/CI 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://github.com/chukfinley)** for experimental Cowork mode support on Linux\n- **[CyPack](https://github.com/CyPack)**\n  - Orphaned cowork daemon cleanup on startup\n  - `COWORK_VM_BACKEND` documentation, Cowork troubleshooting sections, and unknown-value warning in `--doctor`\n- **[IliyaBrook](https://github.com/IliyaBrook)**\n  - Fixing the platform patch for Claude Desktop \u003e= 1.1.3541 arm64 refactor\n  - Fixing the duplicate tray icon on OS theme change with an in-place `setImage`/`setContextMenu` fast-path that avoids the KDE Plasma SNI re-registration race\n- **[MichaelMKenny](https://github.com/MichaelMKenny)**\n  - Diagnosing the `$`-prefixed electron variable bug\n  - Root cause analysis and workaround\n- **[daa25209](https://github.com/daa25209)** for detailed root cause analysis of the cowork platform gate crash and patch script\n- **[noctuum](https://github.com/noctuum)**\n  - `CLAUDE_MENU_BAR` env var with configurable menu bar visibility\n  - Boolean alias support\n- **[typedrat](https://github.com/typedrat)**\n  - NixOS flake integration with build.sh\n  - node-pty derivation\n  - CI auto-update\n  - Fixing the flake package scoping regression\n  - Fixing the NixOS electron binary not being marked executable (#431, #581)\n- **[cbonnissent](https://github.com/cbonnissent)**\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/sandbox paths (e.g. persistent `/tmp` across Bash tool calls)\n- **[joekale-pp](https://github.com/joekale-pp)** for adding `--doctor` support to the RPM launcher\n- **[ecrevisseMiroir](https://github.com/ecrevisseMiroir)** for the bwrap backend sandbox isolation with tmpfs-based minimal root\n- **[arauhala](https://github.com/arauhala)** for detailed root cause analysis of the NixOS `isPackaged` regression\n- **[cromagnone](https://github.com/cromagnone)** for confirming the VM download loop on bwrap installs with detailed logs that disproved the initial triage\n- **[aHk-coder](https://github.com/aHk-coder)** for diagnosing the hardcoded minified variable crash in the cowork smol-bin patch\n- **[RayCharlizard](https://github.com/RayCharlizard)**\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://` protocol handler\n  - `--doctor` diagnostic that detects the Ubuntu 24.04 AppArmor `apparmor_restrict_unprivileged_userns=1` block on bwrap, instead of letting it silently fall through to a hanging KVM probe (#351, #434)\n  - Documenting the upstream MCP double-spawn root-cause analysis in `docs/learnings/mcp-double-spawn.md` (#526, #527)\n- **[reinthal](https://github.com/reinthal)** for fixing the NixOS build breakage caused by the nixpkgs `nodePackages` removal\n- **[gianluca-peri](https://github.com/gianluca-peri)**\n  - Reporting the GNOME quit accessibility issue\n  - Confirming tray behavior with AppIndicator\n- **[martin152](https://github.com/martin152)** 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://github.com/hfyeh)** for diagnosing the Ubuntu 24.04 AppArmor unprivileged-userns block on Cowork bwrap and contributing the AppArmor profile workaround\n- **[davidamacey](https://github.com/davidamacey)** for identifying and fixing the XRDP GPU compositing blank-window issue on remote desktop sessions\n- **[pb3ck](https://github.com/pb3ck)** for diagnosing the Cowork `CLAUDE_CODE_OAUTH_TOKEN` env-strip bug with a working reference diff\n- **[Joost-Maker](https://github.com/Joost-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://github.com/aJV99)** for exporting `GDK_BACKEND=wayland` in native Wayland mode to fix XWayland fallback blur on HiDPI displays\n- **[Andrej730](https://github.com/Andrej730)**\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://github.com/HumboldtJoker)** 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://github.com/zabka)** 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://github.com/sirfaber)** 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://github.com/ProfFlow)** 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://github.com/jslatten)** 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/rpm get `claude-desktop.desktop` and AppImage gets `io.github.aaddrick.claude-desktop-debian.desktop` (#562)\n- **[JoshuaVlantis](https://github.com/JoshuaVlantis)**\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`/`catch`/`finally`/`Symbol.toPrimitive`/`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`/`g++`/`make`/`python3` on minimal build environments (#401)\n  - Silencing the RPM \"File listed twice\" warning on `chrome-sandbox` by moving `chmod 4755` into `%install`, with thorough investigation of four `%exclude`-based alternatives (#610)\n  - Cleaning upstream Windows binaries from node-pty before staging the Linux build, preventing PE32+ orphans in the packaged asar (#597)\n- **[Hayao0819](https://github.com/Hayao0819)** for diagnosing the upstream `titleBarStyle:\"\"` → `titleBarStyle:\"hiddenInset\"` migration that broke the About window render on GNOME/X11 and contributing the `isPopupWindow()` match extension (#481, #489)\n- **[michelsfun](https://github.com/michelsfun)** for reporting the cowork `ENAMETOOLONG` failure on eCryptfs-encrypted home directories with detailed `--doctor` output that pinpointed the short-NAME_MAX filesystem as the cause (#590)\n- **[proffalken](https://github.com/proffalken)** for the LUKS-volume + `pam_mount` workaround documented in `docs/troubleshooting.md`, restoring cowork support on legacy eCryptfs-encrypted home directories (#590)\n- **[phelps-matthew](https://github.com/phelps-matthew)** for fixing `CLAUDE_QUIT_ON_CLOSE=1` to actively quit via `app.quit()` instead of relying on the bundled handler that hardcodes hide-to-tray on Linux, with thorough root cause analysis and alternatives evaluation (#624, #623)\n- **[dubreal](https://github.com/dubreal)** for `--password-store` keyring detection that probes D-Bus for kwallet6 / gnome-libsecret at startup, fixing session persistence on KDE Plasma and other desktops where Electron's `safeStorage` was unavailable (#611, #593)\n- **[JustinJLeopard](https://github.com/JustinJLeopard)** for detecting missing electron binaries after Node 24's `extract-zip` silently no-ops, with an `unzip` fallback that recovers from the `@electron/get` cache (#631, #584)\n- **[tkrag](https://github.com/tkrag)** for diagnosing and fixing the X11 window-raise-on-hover bug under sloppy/focus-follows-mouse WMs, tracing the upstream `webContents.focus()` → `_NET_ACTIVE_WINDOW` path through three iterations of review (#589, #416)\n- **[maplefater](https://github.com/maplefater)** for re-anchoring the `addTrustedFolder` `.asar` guard on the `async addTrustedFolder(…)` method declaration after upstream 1.10628.x folded the log call into a comma-expression, keying both the parameter extraction and the injection point off the unminified method name so they can't drift apart (#685)\n- **[MitchSchwartz](https://github.com/MitchSchwartz)** for finding the second `app.asar` file-drop path — the `existsSync()` branch in the second-instance argv collector that #640 never guarded — and rejecting `.asar` paths there so the app no longer prompts to attach its own bundle on every taskbar reopen (#669, #668)\n- **[LiukScot](https://github.com/LiukScot)** for making the tray rebuild mutex trailing-edge so the startup dark-theme icon no longer latches black, and restoring the in-place `setImage` fast-path after upstream changed the context-menu wiring to a prebuilt menu object (#680, #679)\n- **[sabiut](https://github.com/sabiut)**\n  - BATS coverage for `cleanup_orphaned_cowork_daemon`, mutation-tested so the kill/escalation branches genuinely bite (#693)\n  - Fixing two false-green `--doctor` PASSes: an empty password store read as healthy, and a non-numeric `df` reading falling through to the PASS branch (#692)\n  - Extending the artifact launch smoke tests to arm64 on native `ubuntu-22.04-arm` runners, and re-keying the AppImage pkill sweep to `mount_claude` so escaped zygote/electron children stop leaking on the runner (#691)\n- **[jerem](https://github.com/jerem)** for routing Quick Entry's global shortcut through the XDG GlobalShortcuts portal on native Wayland, and merging all Chromium feature requests into a single `--enable-features=` switch — the old code silently clobbered `WindowControlsOverlay` (#690, #404)\n- **[caidejager](https://github.com/caidejager)** for diagnosing why Cowork's VM daemon never auto-launched on packages built under a restrictive umask — `app.asar.unpacked/` shipped mode `0700`, failing the auto-launch `existsSync()` guard — and normalizing install permissions across deb and AppImage, with `dpkg-deb --root-owner-group` closing a build-uid write exposure (#695)\n- **[JustinJLeopard](https://github.com/JustinJLeopard)** for the AppStream metainfo that surfaces the package in GNOME Software, KDE Discover, and App Center, wired into the deb, rpm, and AppImage builds (#633)\n- **[DhanushSantosh](https://github.com/DhanushSantosh)** for the GPU crash auto-recovery in the launcher: detecting a previous GPU-process FATAL in the launcher log and re-launching with safe GPU flags automatically, instead of leaving users to discover `CLAUDE_DISABLE_GPU=1` by hand (#666)\n- **[diarized](https://github.com/diarized)** for auto-installing scoped AppArmor userns profiles from the `.deb` postinst on Ubuntu 24.04+ — one for the bundled Electron binary (fixing the launch crash without `--no-sandbox`) and one for `/usr/bin/bwrap` (keeping Cowork's sandbox isolated instead of silently falling back to host-direct), automating the workaround from #351 (#687, #694)\n- **[emandel82](https://github.com/emandel82)** for root-causing the \"Attach app.asar?\" prompt: every launcher passed `app.asar` as a redundant Electron argument, which the second-instance argv collector treated as a file to open — removed at the source across all four package formats (#700, #696)\n- **[svankirk](https://github.com/svankirk)** for cleaning up Desktop helper processes after an explicit quit — a quit wrapper with signal forwarding and a bundle-keyed live-UI check, so closing the app no longer strands helper processes (#682)\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"}