Skip to content

feat(pkgs): add Claude Desktop (official Linux beta, repackaged .deb)#19

Merged
UnbreakableMJ merged 1 commit into
mainfrom
feat/claude-desktop
Jul 2, 2026
Merged

feat(pkgs): add Claude Desktop (official Linux beta, repackaged .deb)#19
UnbreakableMJ merged 1 commit into
mainfrom
feat/claude-desktop

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Adds Claude Desktop — Anthropic's official Linux beta (2026), which ships only as a .deb + apt repo (no nixpkgs package). This repackages the official .deb (not the community Windows-build wrap) in pkgs/claude-desktop/, wired via pkgs.callPackage in modules/packages/ai.nix.

Derivation (pkgs/claude-desktop/package.nix)

  • Unpack: dpkg-deb --fsys-tarfile | tar --no-same-permissions — the .deb's chrome-sandbox is setuid, which the Nix build sandbox forbids (and the store can't hold); dropped deliberately.
  • autoPatchelfHook fixes the bundled Electron/Chromium interpreter + rpaths, including libseccomp/libcap_ng for the bundled virtiofsd (Cowork VM helper).
  • Wrapper: GTK gappsWrapperArgs; node/uv on PATH so MCP npx/uvx launchers resolve; --disable-setuid-sandbox (keeps Chromium's user-namespace sandbox — not --no-sandbox; NixOS enables unprivileged userns by default); Ozone Wayland hints.
  • Pinned 1.17377.2; bump version + src.hash per release from the apt Packages index. The Linux app doesn't self-update, so a pinned Nix install is safe.

Verification

  • Package builds; ELF interpreter patched to the Nix ld; wrapper carries the sandbox/Ozone flags.
  • Headless launch runs the full window (no sandbox-fatal) — clears the SUID-sandbox stage.
  • Toplevel builds with claude-desktop-1.17377.2 in the system closure.

Caveats

  • Niri has no system tray → the app's SNI tray icon needs a tray host.
  • Quick-Entry global hotkey needs the GlobalShortcuts portal (limited under Niri).
  • The Code tab needs a paid plan; Computer Use / voice are absent in the Linux beta.

Docs: PRD §11.9, TODO ai.nix.

🤖 Generated with Claude Code

Anthropic shipped an official Claude Desktop Linux beta (2026) as a .deb + apt
repo only — no nixpkgs package. Repackage the OFFICIAL .deb (not the community
Windows-build wrap) in pkgs/claude-desktop/:
- dpkg-deb --fsys-tarfile | tar (drops chrome-sandbox's setuid, which the Nix
  sandbox forbids and the store can't hold anyway)
- autoPatchelfHook fixes the bundled Electron/Chromium interpreter + rpaths
  (incl. libseccomp/libcap_ng for the bundled virtiofsd Cowork helper)
- makeWrapper: gappsWrapperArgs (GTK), node/uv on PATH so MCP npx/uvx resolve,
  --disable-setuid-sandbox (keeps the userns sandbox; NixOS enables unprivileged
  userns by default), and Ozone Wayland flags.
Wired via pkgs.callPackage in modules/packages/ai.nix; unfree already allowed.
Pinned to 1.17377.2; bump version + src.hash per release (apt Packages index) —
the Linux app doesn't self-update, so a pinned Nix install is safe.

Verified: package builds; ELF interpreter patched; wrapper carries the flags;
headless launch clears the SUID-sandbox stage; toplevel builds with claude-desktop
in the closure. PRD §11.9 + TODO updated.

Caveats: Niri has no tray (SNI icon needs a tray host); Code tab needs a paid plan.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@UnbreakableMJ UnbreakableMJ merged commit bdbbc39 into main Jul 2, 2026
1 check passed
@UnbreakableMJ UnbreakableMJ deleted the feat/claude-desktop branch July 2, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant