Hacker Newsnew | past | comments | ask | show | jobs | submit | HellsMaddy's commentslogin

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.


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.


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.


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.


The Make target I use to deploy in this manner (MacBook to x86-64, single machine) is simply:

    server:
        @echo "Deploying machine (with ssh-agent forwarding): '$(MACHINE)'"
        NIX_SSHOPTS="-A" \
        nix run nixpkgs#nixos-rebuild -- switch \
        --flake .#$(MACHINE) \
        --target-host $(MACHINE).$(DOMAIN) \
        --build-host $(MACHINE).$(DOMAIN) \
        --no-reexec \
        --verbose \
        --sudo

Which has been working well. I admit I do not understand what all of these flags do in detail.

This uses ssh agent forwarding, and then sudo via PAM. That allows for passwordless sudo. Building (well, activating) without sudo is pretty involved last I checked, I could not get it to work.


You can easily spin up a linux builder vm or I just have a dedicated remote builder on my network which I offload to


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


Since you mention VAEs: you might be interested in Active Inference, which is built on minimizing variational free energy. Same E−TS form as the thermodynamic kind (Helmholtz free energy), so it does fit your thermo/info/NN question. And the negative free energy is equivalent to the evidence lower bound used in generative models like VAEs. Lots of really fascinating connections between all of these topics :)

There's a free 2022 textbook: https://direct.mit.edu/books/oa-monograph/5299/Active-Infere...

And a brand new one (though it's a bit pricey): https://mitpress.mit.edu/9780262050951/fundamentals-of-activ...


Thank you! Parr, Pezzulo & Friston looks like the kind of book I'm after - love cross-disciplinary works. After all, knowledge and nature are continuous. It's humans who like to chop them up into subfields :)


I received it too. I wonder if they sent this to all pro/max subscribers or only those who they’ve flagged as having used a third party harness.


I have a few accounts but have been avoiding OpenCode with my Pro/Max accounts because I had heard some were being banned. Have only been using Anthropic models through OpenRouter, but it ends up being cost prohibitive for anything reasonably complex. But, I haven't received emails in either account around the change. Anthropic probably figures that it's less ideal to draw attention to it if a user isn't using it in that way. Personally I'm not a fan of what they're doing and will likely drop them and go out of my way to find a different option and move away from their lock-in strategy. They're really no different than OpenAI at this point (for the worst).


FWIW: I did not receive it, and have never used my subscription outside of first party Claude tools. I was, however, able to claim the extra usage credit.

Interestingly, it looks like I haven't received a non-receipt email from them since August 2025.


How/where were you able to do that?



I'm a pro subscriber and didn't get this so I wager its accounts they detect because i only use it in the browser and haven't seen this.


Might be interested in https://github.com/shytikov/pragmasevka which is my current go-to font.


Kagi is doing something similar to this, though it's not trying to remove absolutely all AI, just "slop": https://help.kagi.com/kagi/features/slopstop.html


Global-by-default scoping was one of Lua's largest mistakes. I wish they'd fix it, but of course it would break backwards compat.


Strictly speaking, Lua is not global by default. All free names, that is, all names unqualified with `local`, is actually indexed from a table `_ENV`, which is set to `_G`, the global environment. So, all free names are effectively global by default, but you can change this behavior by put this line at the top of your file `local _G = _G; _ENV = {};`. This way, all free names are indexed from this new table, and all access to the global names must explicitly be accessed through `_G`, which is a local variable now. However, I have never seen such practice. Maybe it is just too complicated to accept that all free names are global variables and you have to explicitly make it local.


Thanks to Lua’s great metaprogramming facilities, and the fact that _G is just a table, another workaround is to add a metamethod to _G that throws an error if you try to declare a global. That way you can still declare globals using rawset if you really want them, but it prevents you from declaring them accidentally in a function body.


yeah. I hate typing `local` for every variable. I would prefer they introduce some syntactic sugar like `let`(to mean local variable) and `const`(to mean local and constant).


“local” is the same as the “let” that you are describing, isn’t it? Just 2 chars longer.


The link to the Amazon product looks like a non-affiliate link when you hover over it. But if you click, as soon as the mousedown event fires, they swap in an affiliate link. How rude!



Wow, that's b terrible. And worse, I wasn't aware this could be done in thinking of many ways it could be exploited to phish users



This is awesome on Linux. I've wanted to see my battery status forever, and the ability to pause when you remove an AirPod is really nice too.


This is cool! Please add a dark theme and respect `prefers-color-scheme: dark` :)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: