Odin
September 3, 2026
I've had a server in my basement for years now. It started as somewhere to put photos and documents, turned into media storage so I could stream stuff to the TV without digging out a DVD, and just kept growing from there. These days it runs most of the things I used to pay someone else for.
That's most of the reason I built Odin. Between Netflix, Google Drive, iCloud, Spotify, Squarespace, a VPN and whatever else, the subscriptions add up fast and the value keeps heading the wrong direction. The other reason is that all of those companies keep quietly updating their terms so they can mine whatever you put in there and sell ads against it. I'd rather just run it myself.
So Odin is a voice assistant that lives on that server. Think Jarvis, except it's in my basement and nowhere near as smooth. I talk to it from my phone or a mic, a local model does the thinking on a GPU in the same box, and a local voice answers back. No audio leaves the house.
Keeping it honest
Local models this size will make stuff up. Ask one if you locked the back door and it'll tell you yes without ever checking.
So the rule I built everything around is that it can't tell me anything a tool didn't just read, and it can't claim it did something that didn't actually run. If it says the back door is locked, that's because it read the lock a second ago. If it says Walmart has something for $198, that's because it opened the page in its own browser, not because it saw a search result.
There's no talking around it either. If it states a fact and nothing was read, the reply gets kicked back. If it says it locked something and nothing ran, that gets replaced with a correction. If I ask it "are you sure?" it goes and reads everything again instead of just saying it louder.
Right now there are 77 tools it can call, each one with a permission level I set by hand. Safe things run right away and log how to undo themselves. Anything touching the network core or the backups stops and waits for me to approve it on my phone.
It fixes itself
This is the part I didn't expect to work.
Any time Odin gets something wrong, whether I correct it, I question it, or one of the guards catches a bad answer, it files the whole conversation as a case. Every five minutes a stronger AI picks up whatever is in the queue, figures out what went wrong, writes a fix and a test, and ships it. It has to leave the full test suite green, and it records how to undo anything it changes.
First two days it shipped six real fixes, including a couple of bugs it found in its own test traffic. I can also just point it at stuff: "that's an Odin bug, send it to the fixer."
System self healing
The failure I worry about isn't something crashing. It's something that got set up right, quietly stopped working, and never said anything about it.
Good example, and I found it the same day I built the check. Plex had a graphics card passed through to it for hardware transcoding. I installed the driver by hand back in May. A kernel update a few months later left it behind and nothing rebuilt it. Plex never failed. It just went back to transcoding on the CPU for months while every screen I looked at said it was healthy.
Now it checks for that specifically: a machine with a card and no working driver, a service that got installed and never turned on. Cheap checks run every half hour, the expensive ones once a day at four in the morning. What it can fix it fixes. What it can't goes on the workbench with whatever it found.
What it's built on
One VM on a Proxmox box and one consumer GPU. Qwen3-14B does the thinking, Whisper does the listening, Kokoro does the talking, Home Assistant handles the house, Postgres holds the memory, and a self-hosted SearXNG plus its own headless Chromium mean it reads real pages instead of guessing at them. The only things that ever leave the house are ordinary web requests and the self-repair runs.
Two or three weeks of work so far. Still very much a work in progress.