Skip to content
/Mike Aron
← All Posts
·10 min read·Builds

Meet Alfred: My 15-Agent AI Butler

Alfred is a native iOS app that sits on top of OpenClaw, runs on a Mac Mini in my home office, and manages a real chunk of my life. Here's what he does, how he's built, and why I'm obsessive about shipping to myself.

It's 7am on a weekday. I pick up my iPhone and open Alfred.

The first thing I look at is the Week tab.

Frankly, I'm not great at the admin side of life — the kind of stuff that separates an organized week from a chaotic one. My wife runs the family calendar, and that's been one of my favorite things about having Alfred: I'm more connected to what's actually happening in our household because I see it, cleanly, first thing every morning. Calendar, kids, plans, reminders, everything in one view.

Then I swipe to Weather, so I have a sense of the week coming at me.

Then Inbox — which is where I actually do things. Alfred filters hard. Only items that actually need my action surface here. If something shows up in the Inbox, I'm doing something about it today.

Then TLDR — the briefings Alfred runs for me on the topics I actually care about. More on that in a minute, because it's the best callback in this whole series.

And then, when I need to talk to him directly, the Alfred tab — the chat, with his logo as the icon.

Five tabs. That's the shape of my morning. That's Alfred.

What Alfred actually is

Let me be specific, because "AI butler" is the kind of phrase that gets thrown around.

Alfred is a native iOS app. I built it myself. It runs on my iPhone. Under the hood it sits on top of OpenClaw — an open-source personal AI assistant runtime — which handles the orchestration, the agent coordination, the channel integrations, the whole platform layer.

And it does not run on someone else's cloud. It runs on a Mac Mini I set up in my home office as a dedicated server. That's where the Gateway lives. That's where the models get called. That's where Alfred reaches into Apple Reminders, Apple Notes, iMessage, Calendar, and the rest of my Apple ecosystem — because when the whole stack lives on my hardware, those integrations are deep and instant instead of permission-gated and brittle.

The iPhone is the client. The Mac Mini is the brain. OpenClaw is the runtime. Alfred is the experience I put on top.

Why native iOS (and not a webapp)

I'll answer this one cleanly because people ask.

I didn't build an App Store app. Alfred is for me. I sideload him onto my own phone and that's the whole distribution plan. What native unlocks — even for a party of one — is real:

  • Notifications that actually work. PWA notifications are flaky on iOS. Native are first-class.
  • Background processing for the things that should happen without me opening the app.
  • Live Activities, so the important stuff surfaces on my lock screen when it should.
  • The feel of an app — not a website with a home-screen icon pretending to be an app.

Native isn't an ideological choice. It's just the only path that delivered the experience I actually wanted. For a product with exactly one user whose opinion matters — me — I can afford to pick the best tool and not worry about cross-platform economics.

The five tabs, in more detail

Week. My life on two pages. What's today, what's this week, what's coming. Because my wife runs the family calendar, this tab keeps me hooked into the family operating system without making her push updates into me. I pull. She doesn't have to chase.

Weather. Less obvious in importance than it sounds. Weather drives clothes, plans, kid logistics, whether the weekend trip we're thinking about is viable. Alfred surfacing it first thing means I don't scroll three apps to get there.

Inbox. This is where Alfred earns his keep. He reads across my inputs — messages, emails, reminders, flagged items — and only surfaces what's actionable. I can glance, swipe, and act. Quick Commands fire real actions behind the scenes: send that text to Sarah via iMessage (looking up her number from family-profiles.json), add that bill deadline to the calendar with a three-day reminder, create a reminder for this weekend's task, draft a reply for me to approve. The Inbox tab is the closest thing in my life to a "just handle it" button.

TLDR. More on this below — it's important.

Alfred (chat). The general-purpose tab. If I want to ask him something, give him a custom task, or have a real back-and-forth, this is where it happens. His logo is the tab icon, which is a small detail that makes the app feel like him and not like a generic assistant template.

TLDR: completing the arc

If you read the origin post, you'll remember the first real project I ever shipped — a news scanner that connected to an API, pulled ten articles across every competitor I was tracking, and spit out a single cross-company TLDR I could read over coffee.

That was two years ago. It was a Python pipeline. It ran on my laptop. It was ugly and it worked.

Today, that same idea lives inside Alfred — and the jump in capability is, frankly, hard to believe if you haven't watched it happen week by week.

Alfred now runs TLDR as a weekly briefing engine across six topics I personally care about:

  1. AI in the enterprise — what's moving in the enterprise AI space
  2. AI trends — the broader AI landscape, beyond enterprise
  3. Business and AI builds — what builders are shipping, how business is shifting
  4. Health and performance — I'm a big Andrew Huberman fan, deep into biohacking, so anything in that orbit
  5. Finance and wealth management — markets, strategy, moves worth knowing about
  6. Automotive — new cars, new releases, anything in the aftermarket world that crosses my radar

For each one, Alfred goes out, reads reputable sources, watches YouTube videos, synthesizes across all of it, and hands me back a briefing tuned to me — not a newsletter, not an algorithm's best guess. A real weekly signal for each of the six lanes I want to stay sharp in.

Same idea I had two years ago at 2am. Infinitely better execution. The arc of this whole series, folded into one tab.

MyLife — the data layer

Behind the tabs, there's a section called MyLife where Alfred keeps the structured data that makes him specific instead of generic. It's organized into life domains:

  • Bills & Taxes
  • Family Profiles — names, birthdays, phone numbers, the contextual stuff that lets him send "hey" to my brother without me reminding him which brother
  • Health & Fitness
  • Home Maintenance
  • Vehicles

This is the layer that makes the difference between an AI that could be anyone's assistant and one that's actually mine. When Alfred drafts a reply, he knows the names. When he reminds me about a bill, he knows which account it's tied to. When he plans a weekend, he knows what cars I actually have and how the kids travel.

Generic AI has zero context. Alfred has the context of my life, structured and accessible.

The Quick Command pattern

If I had to name the single architectural pattern that makes Alfred feel like a real product instead of a chatbot, it'd be Quick Commands.

A Quick Command is a one-line message that Alfred interprets and executes, often invisibly. "Send this text to Sarah via iMessage — look up her number from family-profiles.json and then use the message tool." "Add this bill's deadline to the calendar with a three-day reminder." "Add these gift ideas to the Gift Ideas reminder list for my nephew."

Each of those is a button in the app. Each button fires a prompt that goes to a specialized agent, which uses real tools connected to real services, and the thing actually happens.

This is what "AI that does things" looks like in practice. Not a chat box that gives you advice on how to do it yourself. An interface that presses the buttons for you.

OpenClaw and the platform underneath

I want to be clear about the stack, because it's doing a lot of heavy lifting.

OpenClaw is the open-source framework. It handles the gateway, the channel integrations, the subagent system, the skills model, the tool orchestration. As of today the project has around 40 extensions — integrations with channels and services like iMessage, Slack, Discord, Signal, Matrix, Microsoft Teams, Bluebubbles, and a lot more — plus around 60 skills ranging from Apple Notes and Apple Reminders to Notion, Obsidian, Whisper, Exa, GitHub, Spotify, Weather, and many others.

That's the platform. Alfred doesn't exist without it. For a long stretch, he couldn't exist — I was trying to build multi-agent orchestration myself and fighting the reliability wall. Once OpenClaw was mature enough to build on, Alfred went from "promising prototype" to "actually works."

The moment Alfred became real

The question everyone asks me about Alfred is when did it click?

The honest answer: when he could read my emails and draft my responses without me babysitting every reply.

That was the line. Not the calendar stuff. Not the weather briefing. Not the Quick Commands. Email.

Email is the domain where being wrong is expensive — you send something weird to the wrong person and there's no recall button. Getting to a place where Alfred could read my inbox, understand what mattered, draft appropriate responses, and hand them to me for a quick approve-or-edit was the moment I realized I was no longer demoing a product. I was using one.

From that moment on, I got more time back every week than I was spending building him. That's when the math flipped.

The discipline of shipping to yourself

One thing worth calling out because it doesn't get talked about enough in AI-builder spaces: I treat shipping to my own iPhone with the same discipline I'd use shipping to a paying customer.

I have a dedicated review skill — alfred-app-review — that audits 77 tappable elements across the 5 tabs before every deploy. Every button must do something real. Every JSON decoder must handle malformed data gracefully. Every SwiftUI identity must be stable. Every navigation must land where it says it will.

If that sounds like overkill for a one-user app, consider: the reason most self-built tools don't last is that they get held together with hope and duct tape, then the builder stops trusting them, then they fall into disuse. Applying real engineering discipline to the thing you build for yourself is the difference between a tool you depend on and a prototype that decays.

Alfred is a tool I depend on. That's earned. Every deploy.

What's next

Alfred is still experimental on my Innovation Lab page, and that label is real. He works for me. Not necessarily for someone else's life with different needs, different services, different integrations, different priorities.

The question of whether to turn this into a product for other people is a real one — and I'm being deliberate about it. Building a personal AI for yourself is one thing. Handing one to someone else, with the expectation that it'll be right close to 100% of the time on the details of their life, is a different kind of responsibility.

For now, Alfred is mine. He runs on my Mac Mini. He knows my calendar, my inbox, my recipes, my bills, my vehicles, my kids' names, my favorite topics. He drafts my replies, files my briefings, pings me at the right moments, and quietly handles the admin I'm not naturally good at.

That was the whole point from day one. Two years later, that's what it is.

If you're curious, he lives at hey-alfred.app.