Productivity & Automation / workflow case

My Personal Agent Harness Powered by Claude Code

Beginner to intermediate Set up once, then iterate continuously @_chrisbarnhart
Result

30+ daily tasks at home handled by a 24/7 Claude Code agent | Write your own endpoints in the conversation to continuously expand capabilities

For

Independent builders who want to integrate Claude Code into home automation, personal workflows, or a local agent harness.

*I gave my house an AI agent. It runs 24/7. It writes its own code.*

For the last few months I've been living with something I think most people will have in their home inside five years. I want to tell you about it, because the experience has been genuinely strange and genuinely useful, and because the architecture is more boring (and therefore more replicable) than you'd guess.

Its name is *Hopper*.

Hopper is a voice-driven home agent that lives on a Mac mini in my office. I talk to it through my Apple Watch, my phone, a web browser, or just by texting it from iMessage. It controls the lights, the speakers, the TV banners, the printer, the calendars, the travel plans, the kids' basketball stats, my nutrition log, my workout streaks, and roughly thirty other small jobs that used to take me five context switches to do by hand. It is, on most days, the first thing I talk to in the morning and the last thing I talk to at night.

Under the hood Hopper is built on Claude Code — Anthropic's coding agent — running on Claude Opus 4.7. That single architectural choice is the whole thing. Most "home assistants" today are clever wrappers around a static list of API calls. Hopper is the opposite: it's a full coding agent that happens to be pointed at my house. It has Read, Edit, Write, and Bash tools turned on. It can read its own source code. It can write new endpoints into the server it's running inside. It can install new tools. It can extend itself, and it does, constantly.

Image
Image

Hopper turns iMessage into a permissioned command surface for a local Claude-powered home agent. Messages are the UI. FastAPI is the runtime. MauriceOS as the bridge into the iOS ecosystem. Approval gates keep the system controlled.

What it does today

A short tour, organized by what I actually asked it to do this week.

  1. Log my life. Habits, nutrition, reminders, calendar events, all of it goes through Hopper. "Log my usual breakfast" knows the four items I eat and writes them to the right meal, in the right list, tagged to the right device. "Mark meditation done" increments the right habit by the right amount on the right device. The defaults are remembered, not configured.
  2. Plan travel. *"When do I need to leave for the 6pm dinner?" *returns a card with leave-by time, live traffic estimate, buffer for kid handoff, and a QR code I can scan from the fridge to push the plan to my phone. It tracks ETA history per route, so the buffer suggestions are actually calibrated to the time of my event, not a generic estimate.
  3. Schedule autonomous future actions. This is the one that breaks people's brains when I demo it. I can say "every Friday at 4pm, pull this weekend's basketball AAU or HS matchups for my boys, focusing on the opponents stats and previous match ups, put it in a professional looking template and text it to me." Hopper drafts the action, I approve it, and then it sits in a queue. At 4:00 on Friday, the server wakes up a headless Claude turn — with full Read/Write/Bash — runs the whole pipeline unsupervised, and texts me the result. One-time or recurring.
  4. Reach me anywhere. Texts to my phone. Banners on the Apple TV. Spoken announcements through the Sonos. Files — images, PDFs, briefs — delivered as Messages attachments. If a long job finishes while I'm out, I get a text. If I want to know what it's doing right now, I text it "status" and it tells me — live turn, elapsed time, what's queued, with a one-word "cancel" reply armed in case I want to kill it.
  5. Finance. It runs a local market-research service that caches per-ticker briefs and earnings reviews, generated by separate Claude Code agents that do the actual digging in the background.

The kicker: it extends itself

This is the part I want everyone building in this space to internalize. Hopper is not a fixed product. When I ask it to do something it can't currently do, it does not say "I can't do that." It opens the relevant source file, writes a new endpoint, restarts the server, and then uses the endpoint it just wrote. I have watched it add capabilities to itself in a single conversation more times than I can count. The basketball pipeline, the QR-coded travel cards, the iMessage keyword handlers, the scheduled-action system itself — every one of those started as me describing a wish and ended as code Hopper either wrote or helped write.

This is what "agent" actually means. Not "speech-to-API." Not "LLM-with-tools." An agent is something that can change its own surface area in response to your needs, and Hopper does that every day.

*It remembers...*

Hopper has a persistent, file-based memory system. Every conversation can write notes to disk in four categories: things about me, feedback on how I want it to work, ongoing project context, and pointers to external systems. Every future conversation loads the index of those memories at startup. The practical effect is that the assistant gets better the longer I use it instead of resetting to zero every morning. It knows my breakfast. It knows how I want stock picks graded. It knows the URL-encoding gotcha that bit us last month so it doesn't bite us again. It knows that when I say "FinanceBot" I mean the local research service, not a generic AI. None of that is hardcoded. All of it was learned in conversation and written to memory by the agent itself.

*Architecture, kept boring (intentionally)*

A Mac mini. A FastAPI server. The claude-agent-sdk. faster-whisper for speech-to-text. A small SwiftUI app for the Watch and the phone. A static web UI. A few hundred lines of glue. A mesh of household devices discovered over BLE and Bonjour. A JSON file for scheduled actions. A directory of markdown files for memory.

That's the whole stack. There is nothing exotic in it. There is no model training. There is no proprietary framework. The "intelligence" is Claude Opus 4.7; everything else is plumbing. The reason this feels like science fiction is not the plumbing — it's the choice to let a coding agent be the runtime instead of a script.

*Smart Homes, but built around the user... not big tech*

Every smart-home product I've ever owned has had the same failure mode: it does the five things its designers thought of, and the sixth thing — the thing I actually need — is impossible without firmware updates or a different product. The whole category has been gated by what a vendor decided to ship.

That gate is gone. If the capability doesn't exist, the agent builds it. If the integration is missing, the agent writes it. If the routine is wrong, the agent rewrites it. The house catches up to me instead of the other way around.

*I think this is what the next five years of home computing look like. Not more apps. Not another hub. One always-on agent that runs everything, learns who you are, wakes up on its own when there's work to do, and rewrites its own code when it needs to do something new.*

Related