[Feature Request] Add native Nix/NixOS support or maintain npm installation method
Status Open
Reported on v2.1.15
Maintainer reply None cached
Workaround ✓ Mentioned in thread ↓
Activity 6 comments · opened Jan 22, 2026
Bug Description
I run a Nixos machine and have been happily using the npm install to keep myself current. This is now deprecated in favour of claude install native installer which does not work on Nix/NixOs. I worry that you are deprecating the easiest install method for Nixos and it won't be followed with anything to fill the gap. The native installer requires significant effort to port to a nix flake which will mean that many Nix users are going to be left behind. Please will you either bake in Nix support or avoid discontinuing the npm install method
Environment Info
- Platform: linux
- Terminal: ghostty
- Version: 2.1.15
- Feedback ID: a43b4b0f-01b4-4901-9c45-c07c61f53192
Errors
[{"error":"Error: ENOENT: no such file or directory, scandir '/etc/claude-code/.claude/skills'\n at Module.readdirSync (node:fs:1569:26)\n at file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:9:1766\n at UX (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:8:34567)\n at Object.readdirSync (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:9:1736)\n at fw1 (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:1540:369)\n at file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:1540:4279\n at q (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:8:6808)\n at DT2 (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:4183:4362)\n at file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:4183:6961\n at q (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:8:6808)","timestamp":"2026-01-22T07:39:25.378Z"},{"error":"Error: ENOENT: no such file or directory, scandir '/home/barrulus/.claude/skills'\n at Module.readdirSync (node:fs:1569:26)\n at file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:9:1766\n at UX (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:8:34567)\n at Object.readdirSync (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:9:1736)\n at fw1 (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:1540:369)\n at file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:1540:4322\n at q (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:8:6808)\n at DT2 (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:4183:4362)\n at file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:4183:6961\n at q (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:8:6808)","timestamp":"2026-01-22T07:39:25.378Z"},{"error":"AggregateError\n at X9A.from (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:26:8257)\n at AP.<anonymous> (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:44:9979)\n at AP.emit (node:events:508:28)\n at AP.emit (node:domain:489:12)\n at WE1.<computed> (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:43:1117)\n at ClientRequest.emit (node:events:520:35)\n at ClientRequest.emit (node:domain:489:12)\n at emitErrorEvent (node:_http_client:108:11)\n at TLSSocket.socketErrorListener (node:_http_client:575:5)\n at TLSSocket.emit (node:events:508:28)\n at FjA.request (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:46:2130)\n at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n at async y01 (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:2284:15357)\n at async K_A (file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:2284:15581)\n at async Promise.all (index 0)\n at async file:///home/barrulus/tools/node_modules/@anthropic-ai/claude-code/cli.js:3891:13558","timestamp":"2026-01-22T07:39:25.880Z"}]
6 Comments
we have an issue open at https://github.com/sadjow/claude-code-nix/issues/165 if you want to contribute to or try out the derivation I made.
But I agree, I think the new binary distribution has mainly two purposes:
In the long run, as long as they keep using Javascript, I don't see it significantly hampering reverse engineering of the client, but it does make reliably applying fixes for NixOS a lot harder since binary patches are even more fragile and they often introduce hardcoded paths like /usr/bin/bash that just won't work.
Maybe in the future we'll have to wrap it fully in a FHS environment to avoid too heavy maintenance.
For my part, I'll think long and hard before renewing my subscription again, I'm no fan of closed source in general, but being actively hostile to your own userbase will no doubt bite them in the future when the moat they're building dries out.
Just wait until they introduce DRM.
+1 Same here, for a different platform: illumos/solaris. It works with npm, it won't work with other systems. Please do not deprecate npm.
Same here, on NixOS. Worth mentioning that NixOS is growing fast, and its community tends to be more experienced and tech-savvy than the typical linux user [1], which is exactly the primary audience for Claude.
Hope to see at least npm not being deprecated, and ideally a NixOS package officially maintained by Anthropic.
[1] https://discourse.nixos.org/t/nix-community-survey-2024-results/55403
Any workaround on NixOS to support the installer ?
So I am using the route referenced by @manveru above...
It works well for me so far but it is a work-around rather than NixOs support from Anthropic which is still lacking
Latest release v2.1.113 breaks npm install method on NixOS 👎