Case study · personal software
openclaw assistant
My personal agent runs on my own server, built on OpenClaw, and talks to me over Telegram. It handles my calendar, mail, commutes and media diary. The interesting part is not what it can do; it is how it is allowed to do it. Untrusted input never reaches the model raw, irreversible actions wait for my approval, and location awareness works without any tracking. The diagram below is the whole system; click around in it.
How the agent connects
Every wire that crosses the dashed boundary passes a numbered gate; the only ungated crossing is me. Click any element to inspect it.
Scroll sideways to see the whole diagram
How it knows where I am
Two disciplined inputs replace GPS. My weekly routine is a small config I wrote down once. And the agent is hard-prompted so that every calendar event it creates must carry a venue and address, so the calendar stays location-complete by construction. "Where am I at 15:00" is then a lookup, not a tracking problem.
Input A · my routine
office mornings, most weeks
one gym evening
games night with the group
home base otherwise
Input B · any calendar event
Dentist
14:30 · Mon
Herengracht 214, Amsterdam
address required, enforced at creation
The payoff
Unprompted messages
Scheduled checks compose the same skills without me asking. On office mornings the agent reads my calendar, checks the live rail data, and only messages me when something needs attention.
07:12 · unprompted
Under the hood
OpenClaw gateway, self-hosted. A large hosted MoE model with automatic fallback to a different model family. Skills are markdown instructions plus plain CLI scripts, one API each; I run the same scripts from my own terminal. The gates, the data discipline and the product decisions are the human part; much of the code is written with Claude Code.