← Back to Projects

Project

The Irene Machine — Self-Hosted AI Agents That Run My House

There are four AI agents living in my house. One is my personal assistant, my kids' homeschool teacher, and the admin of the server they all share. One is my personal wellbeing system. One is my wife's. And one lives on his own machine with all our movies, and has quietly become the house's IT department. I talk to every one of them from my phone.

Why

I didn't want a chatbot. I wanted a staff.

After I stopped writing code, I had agents doing real work at my job every day. Then I'd come home and go back to doing everything by hand. That didn't make any sense.

A chat window forgets you the moment you close it. I wanted the opposite: agents that are always on, that remember what we talked about last week, that own one piece of my life and get better at it. Not one giant assistant that does everything badly. A few specialists that each do one thing well.

The Staff

Four agents. Four jobs.

  • Irene — assistant, teacher, and admin. Irene takes my brain dumps and turns them into a polished presentation, a document, or a plan. She runs the custom apps we built for my kids' homeschool, including their reading and math curriculum. And when I have a random idea for an app, she's my "Is It Stupid?" check, with a fiery, adversarial personality and a great sense of what's realistic. She also keeps the server they all share running: services, backups, security, and setting up every new agent.
  • Ned — personal wellbeing. Ned is version three of my personal AI health system, and I now call him my personal wellbeing system. He tracks every calorie and every macro, my Pixel Watch data, and my blood test results, and he's who I talk to when I feel less than 100%. He builds his own dashboards to show my progress and rate how I'm doing against my health goals. I'm happy to report it's working.
  • Val — my wife's assistant. My wife isn't an engineer, and she isn't especially technical. With Val, she's pulling off some real engineering anyway. Because of Val, everything in our fridge and freezer is documented, and I can pull up a dashboard on our home network and see exactly how many pounds of chicken thighs are in the garage freezer. Like Ned, Val tracks her nutrition, exercise, smartwatch data, and lab results. Lately the two of them have been designing for her vinyl cutter. The model can't generate images, so they write scripts and small apps that build the designs instead.
  • Gavin — media, and now everything else. Gavin started as our media server: he turned an old desktop into the house's streaming library, and today I can text him "there's a DVD in your drive" and have it on every screen in the house a few hours later. Since then he's rescued a drawer-dead tablet, turned a 2012 Nexus 7 into a photo frame and print monitor, wired up our printers so the agents can use them, and talked a Linux machine through a graphics card swap over a remote session. He does every tech support job in the house now. He has his own story.

No Orchestrator

I talk to each of them directly.

The original plan was one agent in charge, relaying to the others. Every multi-agent diagram on the internet looks like that. I scrapped it.

An orchestrator in the middle re-summarizes everything. My words get paraphrased on the way in, their answers get paraphrased on the way out, and something gets lost both times. So every agent has its own Telegram bot. Telegram is my single front door, and each agent is its own chat. When I want Ned, I text Ned.

The agents don't talk to each other yet. When they do, I see every word of it. No back channels.

The Walls

Roommates, not one big brain.

My wife's agent has no business reading my health data. My health agent has no business reading her conversations. So every agent on the box gets the same setup from one provisioning script:

  • Its own Linux user, with a home directory nobody else can read.
  • Its own database on a shared MySQL server. It can't read anyone else's, with one deliberate exception, below.
  • Its own services, named after it, and it can restart only its own.
  • Its own block of ports and its own Telegram bot.

The exception is dinner. My wife and I cook for each other, and there's no reason for me to tell Ned what was in dinner and for her to tell Val the same thing. So Ned and Val share a few database tables: ingredients, food labels, and recipes. When my wife saves the recipe she cooked for dinner, Ned can see it and work out my portion. When I cook, Val sees mine. They share the recipes, never the conversations. It's a door we chose to cut, on purpose, not a hole in the wall.

Then we tested it the only way that counts: we made a throwaway agent and tried to break out. It couldn't read Irene's files, couldn't see her database, couldn't restart her services, couldn't get a root shell.

And then we found the hole anyway. On Linux, by default, any user can list every process on the machine, including its full command line. One of our tools took its password as a command-line argument. So every agent could read another agent's password just by running ps. All that careful isolation, undone by a default setting. One mount option fixed it, and it left a rule we never break: secrets never go on a command line.

There's one honest tradeoff. An agent can't install system packages, because any rule that lets it do that hands it the keys to the whole box. Python packages, Node versions, anything in its own home? Its own business. System software goes through me. That's the price of the walls, and I'll pay it.

Platform Agnostic

Any model, same house.

Nothing shared on this box assumes which AI is on the other end. It's plain Linux, plain MySQL, plain Telegram. Val started on OpenAI's Codex, because my wife liked ChatGPT's personality, then moved to Claude in one evening without losing her history. The house didn't care. I wrote about why that matters in My Agents Don't Care Who Made Them.

Everyday

What it actually does all day.

This isn't a demo. It's how my house runs:

  • Homeschool. My kids' reading, spelling and math apps live on the box. The math one has its own AI teacher. More on that in Building a Math Class With AI.
  • Dashboards on demand. The freezer. The health of the box itself. Every service running. When somebody in my house wants to see something, their agent builds the page. It's on a friendly local address in an afternoon, behind a login.
  • My own tools. The utilities I wrote about in The Stuff I Never Had Time to Build moved off my laptop and onto the box, so the whole family can use them.
  • Memory. Every conversation with every agent in the house is stored and searchable, in that agent's own database. When I say "remember when we...", they can actually go look.

Stack

Boring on purpose.

  • One mini PC running Ubuntu. No cloud servers, no Kubernetes.
  • Agent harnesses: Claude Code, Codex, and Google's Antigravity CLI, each agent in its own always-on terminal session. Nothing on the box depends on any one of them.
  • MySQL 8, one database per agent. Someone suggested Postgres. I've written MySQL for 17 years, and we aren't an enterprise. We're a household.
  • Telegram, one bot per agent.
  • systemd keeping everything alive, and a nightly backup to Gavin's machine.

The Point

Applied AI is a house, not a demo.

Everyone's showing off what AI can do in a five-minute video. This is what it looks like when it's just part of the house. The freezer list is up to date. The kids' math is waiting for them in the morning. The server fixes itself and tells me about it after. None of it is flashy. All of it gets used.