Show HN: NixOS-DGX-Spark – Nix and NixOS on the DGX Spark

Posted by graham33 20 hours ago

Counter118Comment36OpenOriginal

Try DGX Spark playbooks using Nix on DGX OS, or install NixOS on your DGX Spark for the full Nix experience. The repository provides USB images and a NixOS module with settings for DGX Spark systems.

This works on the NVIDIA DGX Spark itself and also on the Asus Ascent GX10.

See my 5 minute lightning talk from Planet Nix for an intro: https://youtu.be/AvK_gi_snJE?si=MPKv3iiuS9B5elIE

Comments

Comment by hamandcheese 17 hours ago

Slightly off topic, but Claude Code (and likely other models/harnesses) are incredibly effective at Nix. It can trivially self-verify, without side effects, which is a perfect match for an LLM.

If you've ever been put off by the difficulty of the language, it's worth checking it out again with AI assistance.

Comment by HellsMaddy 16 hours ago

Absolutely. Running NixOS is a wonderful experience for this reason. NixOS + LLMs make it a breeze to make changes to your system, install and configure new software, and debug issues. Having every aspect of your system defined in a git repo is the perfect fit for agent harnesses.

I'll admit, even with LLMs to help, the Nix language and NixOS did have a rather steep learning curve, because it's quite different from anything I'd experienced before. But after getting the hang of it, I can't imagine going back to a "normal" OS and I'm very happy I put in the time to get over the initial friction.

Comment by lobofta 5 hours ago

Seconded. I always have a workspace on my NixOs where I can query an LLM to fix anything I don't like about my OS.

9 out 10 times it gets it right on the first shot and my OS is at that point slightly better for the rest of eternity (unless I stop running NixOs, which I don't see happening any time soon). About 2 years of these incremental changes, and some investments on my own part about what tools I really like, has made my OS an absolute joy and breeze to work with.

Nothing compares. It's like having a version of Omarchy, not build by some other dude to fit their world view, but for yourself that co-evolves with your own preferences and tools.

Comment by dhon_ 14 hours ago

You can also push deployments to remote systems which is great for servers and headless devices like raspberry pis. I use colmena and deploy-rs on different projects because they have some nice features but you can also do it with bare nix.

I have a repo for kiosk appliances that can build an SD card image for a specific device in a fleet (so no on device configuration is required) but it can also push out updates or changes at runtime. NixOS isn't perfect for embedded devices yet but works well for cases like this in my experience.

Comment by bergkvist 12 hours ago

If you are using an Apple Silicon laptop and you want to deploy to an x86-64 Linux box, this can get a bit annoying due needing to deal with cross compilation in nix.

Comment by graham33 7 hours ago

You can have an x86-64 remote builder, or use a service like nixbuild.net, rather than use cross-compilation.

Comment by miki123211 14 hours ago

And to add to that, LLMs start with fresh context on each conversation, so they don't have the understanding of your system that human employees do. Nix lets you naturally encode that understanding in code (and in comments), making sure it never drifts from what the state of the system really is.

I never saw much point in Nix, but if you put it like that... now I want to try.

Comment by rgoulter 11 hours ago

Nix (& NixOS) are very much in the same "as code" as Terraform. -- You put in extra effort now, to save effort later.

This isn't traditionally 'practical'. It's quicker to just install the package, compared to writing a declaration that says to make the package available. (And for ops, Docker images won out in terms of practicality).

Nix also quite a steep learning curve.. I expect a beginner just wants to learn how to write a package in Nix, and not learn about 'derivations', 'instantiation', etc.

Interesting to see LLM coding agents adjust that trade-off: significantly reducing the cost to "write something in Nix", so the benefits become much cheaper.

Comment by jbstack 3 hours ago

It's true that the Nix language is quite difficult to learn. However, part of that is the poor documentation, and the weird situation where flakes are the de facto modern way of doing things, but are still treated as an "experimental" feature (which leads to further confusion when reading documentation based on the old way of doing things).

Luckily LLMs can help with this too. I asked ChatGPT to generate a course with just enough content to help an ordinary NixOS user configure their system, work with Nix code and flakes, and create/modify simple packages (which is rarely needed anyway). Just a few hours of that gave me a much stronger understanding than all the documentation / tutorials I had read before.

Comment by aomix 16 hours ago

I got curious one Saturday and ported our monorepo to use Nix for build and test and release. It was a very pleasant process. I had to put aside to tackle more pressing things but I'm all in on using Nix in that capacity.

Comment by sohrob 14 hours ago

I set up my homelab server running NixOS entirely using Claude and what would have likely taken me months (if not years) doing it the old fashioned way, got reduced to a few hours of back and forth iteration.

Comment by mbo 15 hours ago

Same for Bazel. It has historically been a very difficult to understand/adopt/rollout tool for a lot of engineering orgs but is going swimmingly for the organization I currently work for.

Comment by Loeffelmann 17 hours ago

I also love how with the right system prompt they can pull in tooling for what they currently need via a nix shell

Comment by sunaookami 14 hours ago

Also incredibly useful with "comma" so Claude can directly use tools that are not installed yet or only one-off: https://github.com/nix-community/comma

Comment by arikrahman 11 hours ago

Likewise, I don't know where my dotfiles would be without deepseek/reasonix model configuring my entire OS for almust free with cache hits.

Comment by graham33 17 hours ago

Agreed, Claude has helped a lot with this project, and being able to iterate without side effects for system configuration changes is really a game changer for agents.

Comment by colordrops 17 hours ago

I've one-shotted custom distributions built with Nix using AI. It's crazy how well AI and Nix fit together.

Comment by redrove 19 hours ago

Been running this on a few Asus GX10 machines with k3s on top, it’s been great. I’m running the new deepseek.

Thank you for your work!

Comment by neobrain 3 hours ago

Just curious, has suspend (to RAM) been working for you?

For me the nvidia driver just keeps waking up the system instantly - but my setup is deviating from the upstream flake in a few ways, so I'm just wondering if it's worth setting up the system from scratch if it's working for other people.

Other than that, can fully second that the flake is working great. Only gotcha is that CUDA-enabled packages (including Firefox) require using the flox binary cache unless you want to compile them from source, but then the package versions can lag behind a bit (and debugging nix cache issues is surprisingly difficult).

Comment by pixelesque 18 hours ago

What quant are you using, and what tps are you getting with K3?

Comment by redrove 18 hours ago

The FP8 version from DeepSeek themselves [0], around 1800 tps prefill and 45 tokens per second decode.

I’ve been running a custom VLLM image with b12x as well as nvfp4_ds_mla.

I would say it’s quite fantastic in day to day, I use it mostly in Hermes and sometimes for coding.

I have qwen 3.6 27b on an rtx 6000 pro as well so I use that as a workhorse in pi with DS as a reviewer/planner.

[0] https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash-0731

Edit: I think you may have misread my post. k3s is NOT kimi k3, and I did mention I was running deepseek.

Comment by pixelesque 17 hours ago

Thanks - yeah, sorry, I mis-read that as you using both DS and K3...

Comment by reinitctxoffset 13 hours ago

I'm doing K3 with SoL kernels, zero hassle, myelin to sweep up the crap, on shot deploy to vast or runpods. Free to the community.

I have to do like, low paying web dev to fund it, so I can't promise timelines, but it's coming and it will be free to anyone and fast as fuck.

I estimate about 20 bucks an hour at current spot rates in the hundreds if not thousands of tokens per second.

Comment by reinitctxoffset 9 hours ago

@pg @dang

you're asking me how a watch works. let's just try to keep an eye on the time.

federal felony prosecution.

Comment by reinitctxoffset 14 hours ago

i also used nixos as the base, but i went a little overboard with it, this is 7.1.2 supporting all devices and a custom driver that fixes the UMA page leak issues, and the wallpapers are all kernels at or above parity with what you can get out of the box.

i'm not quite ready to OSS the whole thing, it's got a few rough edges, but if anyone wants to alpha test, caveat emptor and it's yours.

https://www.youtube.com/shorts/mCUZ9XHIogw

Comment by redrove 2 hours ago

I’d be happy to test this out if you want to publish an alpha branch or something.

Comment by ianlevesque 13 hours ago

A fix for the leaks would be great. I’m rebooting them way too often when iterating.

Comment by reinitctxoffset 13 hours ago

That short got like, way more views than I thought. This is a little more of the complex plane math.

https://youtu.be/WXcElxvSevM?si=HHbnzSNddIcPGCll

Comment by 13 hours ago

Comment by mkagenius 16 hours ago

There is also a microvm.nix project which helped us support sandboxes with firecracker. So, whole ai workflow pipeline can now be nixos.

Comment by nixie-tubes 19 hours ago

This has been amazingly helpful for managing my DGX Spark! Thank you for all your time and effort into this project!

Comment by graham33 19 hours ago

Good to hear, thanks!

Comment by ronef 18 hours ago

Huge plus to anyone interested in the space to check out what Graham built here!

If anyone is also interested on Nix/CUDA/Capital Markets/Flox, we recently did another case study in the space - https://flox.dev/blog/deploying-hardened-flox-nvidia-cuda-st...

Comment by thenobsta 18 hours ago

This is incredible. I have a Jetson lying around and will try to it out on this. I use it to play with vision models, not LLMs, and have been wanting a better way to manage the machine.

Comment by reasonabl_human 10 hours ago

you probably want this if you have a jetson vs this spark repo:

https://github.com/anduril/jetpack-nixos

Comment by haunter 18 hours ago

Thanks for sharing, saving this for when I get a DGX Spark

Comment by hamza7159 18 hours ago

[dead]

Comment by legastenigga 16 hours ago

[dead]