Local models are meaningfully useful* for agentic work now. This is a realization I came to over the last day or so.
I wrote a lot of custom mods for a game that recently switched engines. The migration is going rather smooth for most people because of wise architectural choices from the dev early on, and because they prioritized backwards compatibility in the update. But there are still some rough edges, especially if you had your hooks deep into the engine.
I recently vibeforked Unbiased Bob's fork of Strata to make it compatible, easy to use and optimized for my OS and hardware (NixOS 5800x3d 64gb, 7900xtx 24gb). Sol 6.1 got it working with Qwen 3.8 Flash Next IQ3 XSS (~75GB) at roughly 46tps 164k ctx with enough headroom to launch a heavy browser along with a triple-A game set to low in 720p for testing when I need to (plus space for zram swap)
I set it up in deepseek harness, gave it a 14MB error log in the game's working directory, then went to sleep. I woke up and it had run for 3 hours. The game launched with only two errors, which it quickly fixed from the new, vastly smaller logfile.
It hammered down every issue, making changes across 30 separate mod repos. Practically a one-shot, and all the features worked as originally intended.
I left a local coding agent running completely on its own for three hours across multiple repos across a dozen auto-compactions with a log file and no ability for it to verify its work besides a compiler. And it produced meaningful results. I can't speak to the code quality, but it worked. This was completely unthinkable even just two years ago. Even one year ago, the cloud frontier wouldn't be able to do this on its own, and now a local model can, running on my consumer gaming hardware from one or two gens back.
“Huh... So... We're here now..." I said to myself, with a bit of stunned disbelief, wondering what the future one or two years from now might hold.
I built my custom solution with a shared systemd qemu VM service to run harnesses isolated from my host that mount specific directories and run via wrappers that start and automatically SSH into them, as well as native variants that run on the host machine. (Plus args for quick selection and feature toggling e.g. "cx sol high memory" as well as per-harness hooks for my agnostic skill-like text injection system, memory tools, optimized system prompts, etc)
All of this is done in my nix flake (but can't share here)
For Deepseek itself, I'm just using Moraxyc/deepseek-harness.nix for the package, and using its webui, with wrappers to integrate it with my vm/native dichotomy system.
I haven't done any deep tooling integration or prompt rewriting with dsh like I have with codex and claude code. It's still pretty early days for me using it and I prefer terminal apps in a multiplexer like herdr. But it doesn't seem to need it so much either: sonnet eating 35k tokens for a "hello" out of the box was egregious to me, but dsh seems to be more light so I haven't felt the need, and I don't do as much with it and haven't used it for very long yet so I haven't felt the need to customize it as much as I have the other harnesses.... Which is a bit ironic given that its customization and flexibility are pretty much its main selling points.
Oh that sounds rad lol. I was considering the possibility of building a setup within nixos using vfio to declare and configure VMs. I like your integration with systemd, that's clever
Thanks. And yeah, the wrappers start the service if it isn't already up, then it either times out after some period when the VM isn't in use and shuts down, or I close it manually if I want to free up the resources. But it's pretty lightweight.