← All writing

Rosie joins the Johnstons

Whenever someone asks what I’m actually up to with AI, I point them at this site’s fleet page: the roster of agents I run, each with what it may and may not do spelled out. A while back I noticed the roster had a hole in it. The agent I talk to more than any other wasn’t on the page, and given how many of my friends and coworkers I’ve converted into Home Assistant loyalists, it was a gap somebody was eventually going to notice. I’m trying to build a brand here, people.

Rosie is a Discord bot that answers for the house. Ask in the house’s channel whether the garage is closed and it reads the answer out of Home Assistant; ask it to warm up the office and it does that too, through tool calls against the same API. An owner gate means I’m the only one it takes orders from. Behind the persona is a frontier cloud model handed the current state of the whole house with each message: every sensor, light, and thermostat, reused for at most two minutes and refetched after Rosie changes anything.

Its authority stops at control. The toolset covers eight kinds of device control, from lights and the thermostat down to locking and unlocking doors, and it contains nothing that creates or edits automations or touches configuration. The line sits there deliberately. Rosie is the agent whose actions reach the rest of my family most directly, and its mistakes move physical things. A wrong answer about the garage is recoverable in a second, and a wrong flip of a switch or a lock is at least a mistake I can see and undo; a bot that could rewrite the morning automation behind my back would be a different category of wrong.

The name came before the blog pitch, and that was on purpose too. Why do most people call facial tissues Kleenex and cotton swabs Q-tips? Branding matters, for adoption, for familiarity, for how a thing attaches to your own sense of self. I named Rosie for myself, not for the blog: a persona I can relate to, and, if I’m honest, a chance to live out a little of the 90s-kid nostalgia that’s all the rage among my fellow millennials. The reference lands with pretty much everyone, even people who weren’t Jetsons fans growing up.

What Rosie never got was a write-up, and the reason is that the bot predates the pipeline (Scout) that finds this blog’s stories by reading my week’s work, so nothing was ever going to surface it: the build happened before the pipeline existed, and day to day the bot had become so mundane, so expected, that writing about it simply never occurred to me. I use it multiple times a day, every day, which is exactly when you stop seeing a thing. Getting it into the record took a deliberate entry in my own decision log, planted where the pipeline would finally trip over it.

I’m fine with this post arriving the roundabout way, because the bar here is deliberately low. Writing a thing up is how my own understanding of it solidifies, and for the friends, coworkers, and family who follow along, these posts are a window into the side quests at the Johnston household. An agent the household leans on daily was always going to merit one.

Rosie is also not the only door into the house, and I’d rather say that plainly than pitch a Discord bot as a breakthrough. Home Assistant already exposes our devices through Apple HomeKit and Google Home, and the voice satellites on the shelves have a model behind them now too. What sets Rosie apart is narrower and more personal. It’s the one door that’s open from every device I own, phone, tablet, laptop, or smart speaker, and everything else in that lineup was written for everyone. I have a very specific set of needs, and specific directions I want this to evolve in, so I’m customizing mine to fit exactly my family, and hopefully extracting pieces along the way worth contributing upstream to Home Assistant itself. Where that leaves the other interfaces long-term, I genuinely haven’t settled.

The hole that started all this is closed now. Rosie’s entry went up on the fleet page alongside this post, may and may-not spelled out like the rest of the roster’s.