An AI Chief of Staff that turns a sentence into action.
Tell it something in plain English, like “add a birthday to my calendar on the 22nd,” and it actually does it. Calendar events, reminders, email, web lookups. It runs entirely on my own hardware, so my private data never leaves the machine.
A personal Chief of Staff that lives on my own machine, and does the small, real work of running a life.
Most assistants ask you to ship your calendar and inbox to someone else's servers. This one doesn't. It's self-hosted and local-first precisely because it touches the most private data I have. That constraint is the whole point, and it's a feature, not a caveat.
Runs on my hardware
The model lives on Ollama on a machine I own. No cloud inference, no API round-trips with my life in the payload.
Data never leaves
It reads my calendar and writes my email, so it stays local by design. Privacy isn't a setting here, it's the architecture.
I own the whole stack
Every agent, tool, and container is mine to inspect and change. Nothing is rented, nothing phones home.
One casual message in. A real outcome out.
No commands to memorize, no syntax. It creates events, sets reminders, sends mail, and searches the web to fill in what it can't know, then tells you exactly what it did.
“Block 90 minutes for deep work on Thursday afternoon”
Event created · Thu, 2:00–3:30 PM · “Deep work”
“Remind me to renew my passport two weeks before it expires”
Reminder set · 14 days ahead · linked to expiry date
“Email Sarah that I'll be 10 minutes late to our 3pm”
Draft composed & sent via Gmail · subject auto-written
“Put the next SpaceX launch on my calendar”
Tavily found date & window → event added with details
Two agents, a handful of tools, one clean pipeline.
This is the actual graph, orchestrated in n8n. Click any node to read what it does, then run a sample message and watch a request travel the pipeline. (Simulated, with canned data. The real system stays private.)
› Add Aanya's birthday to my calendar on 22nd July
Intake Agent
A local model that cleans the request before any action is taken. It resolves the date to an exact value, strips the title down to a clean subject, and extracts intent across six dimensions: what, why, who for, where, when, and tone.
2 / 7 · click nodes to explore the pipeline
- Webhook: Receives the natural-language message via a POST request. One plain sentence in, no forms, no fields, no schema.
- Intake Agent: A local model that cleans the request before any action is taken. It resolves the date to an exact value, strips the title down to a clean subject, and extracts intent across six dimensions: what, why, who for, where, when, and tone.
- Master Agent: Reads the clean brief and decides which tools to call. It only reaches for the web when a detail is genuinely unknown; everything else is acted on directly.
- Google Calendar: Creates the event or reminder on the real calendar, with title, date, and time exactly as resolved by the agents.
- Gmail: Composes and sends messages and confirmations through Gmail on my behalf.
- Tavily Search: Looks up details the agent can't know on its own, like a public event's date, a venue, or a start time, then hands the fact back to the Master Agent.
- Parse Output: Parses the tool results and formats them into a single, human-readable confirmation of what was done.
Presented as a technical artifact, because that's what it is.
A local brain, a containerized orchestrator, and a two-agent design that separates understanding from action. Nothing exotic, just composed deliberately so the privacy guarantee holds.
The brain. Models run on my own hardware, so no tokens leave the machine.
Wires the webhook, the two agents, and every tool call into one pipeline.
The whole stack ships as containers: reproducible and self-contained.
One agent normalizes intent, the other acts. Clean brief in, real action out.
The hands. Authenticated tools that turn decisions into real events and mail.
The eyes. Pulled in only when a fact is genuinely unknown.
I wanted to know if I could have the convenience of an AI assistant without handing my calendar and inbox to someone else's servers. It turns out you can. You just have to own the whole thing.
So I built it for myself: a small, honest system that does the boring logistics of a day and keeps the data where it belongs. It's not a product and there's nothing to sign up for. This page is just a look at how it works.