No description
- Nix 50.7%
- Python 36.9%
- Shell 12.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| package.nix | ||
| patch-asar.py | ||
| README.md | ||
| sources.json | ||
| update.sh | ||
Claude Desktop for NixOS
Nix flake packaging Anthropic's official Linux build of Claude Desktop (the
.deb from downloads.claude.ai) for x86_64-linux and aarch64-linux.
Usage
Try it without installing:
nix run .
In a NixOS flake configuration:
inputs.claude-desktop = {
url = "path:/home/user/Workspace/Projects/ClaudeDesktop";
inputs.nixpkgs.follows = "nixpkgs";
};
# In a module:
nixpkgs.overlays = [inputs.claude-desktop.overlays.default];
environment.systemPackages = [pkgs.claude-desktop];
The overlay respects the host's allowUnfree. The packages output only
allows this one unfree package.
Options
pkgs.claude-desktop.override { ... } accepts:
withCowork(defaulttrue): ships QEMU, OVMF and virtiofsd for the Cowork tab. Cowork also needs/dev/kvmand/dev/vhost-vsockto be accessible, usually by being in thekvmgroup.passwordStore(default"gnome-libsecret"): Chromium keyring backend. Use"kwallet6"on Plasma, ornullto let Chromium decide.
Updating
The app does not update itself on Linux. Run ./update.sh to point
sources.json at the newest release in Anthropic's apt repository, then
rebuild.
Packaging notes
- Cowork looks for its firmware and virtiofsd at fixed Debian paths.
patch-asar.pyrewrites those to store paths insideapp.asar, and the build fails if the strings disappear in a future release. - The Claude Code tab downloads its own CLI binary at runtime, which needs
programs.nix-ld.enable = trueif that binary is dynamically linked.