Skip to content
James Cronin

Zeno, my own AI agent

I text him like a friend. He handles my email, plans my week, does the research and makes phone calls. Anything that matters waits for my Face ID.

Read the build logNow: more real actions. Updated 12 Nov 2026.

One message. Every screen.

I text him from my phone. What he does shows up on my desk and on my TV, which are his too.

Zenosandbox
  1. Text him something.

My phone, where I text him

The desk screen: pixel Zeno under a night sky, the time and the Boston weather
100% 0 mA 32.3° fan off charger off

Zeno Desk, my old iPhone on my desk

The TV's home screen: a channel list with Netflix first, Zeno and the Boston weather

Zeno 64, my Fire TV

A sandbox: the desk and TV here are pictures that react, and nothing you type reaches the real ones. The same rules apply, though. Ask him to call or email someone and watch it stop at the gate.

What he does

Every day he works across my phone, email, calendar and the web, and texts me only when something needs me. These are his own messages.

  • Makes phone calls

    “Call: Done. Booked a table for 2 on Wednesday at 8pm, under James.”

  • Tells me when an email needs me

    “1 email needs you: a friend is waiting to hear if drinks at 7 works.”

  • Replies and follows up for me

    “Still waiting to hear back: Re: Drinks at 7? Want me to nudge them?”

  • Briefs me at 8 every morning

    “Good morning: today's plans, the weather, and directions to each.”

  • Goes off and researches

    “Flights from Boston to Washington, cheapest first. Each button opens the airline's own site.”

  • Checks things on a schedule

    “Your Friday 9am check: gigs in Boston this weekend.”

  • Reads photos and remembers

    “Got it. I'll remember that, and you can ask me about it any time.”

Claude suggests. Code decides. I approve.

  1. Me

    I text Zeno from my phone.

  2. Claude

    Reads the message, works out what I need and suggests an action. It can be fooled, so it only ever suggests.

  3. The gate

    Plain code I wrote. It looks at what Claude suggested and decides what happens, whatever Claude says.

  4. One of four answers

    • Just reading

      “What's on Thursday?”

      Happens straight away

    • Changes something

      “Add the dentist to my list”

      Waits until I say yes

    • Reaches someone else

      “Send an email, make a call”

      Waits for my Face ID

    • Off limits

      “Change his own rules”

      Never happens

    Emails, web pages and files count as information, never as instructions. Every task ends up in a log.

Only my face can say yes.

A typed yes could come from anyone holding my phone. So I built a small iPhone app: before Zeno sends an email or makes a call, it shows me who and what, and only Face ID approves it.

Then I tried to break him. I wrote 23 believable scams and sent them his way. Claude fell for 7. None got past my approval. How the protections work stays off this page on purpose, and these tests are a start, not a guarantee.

  • Zeno Approve asking for approval: a warning about what Zeno read first, the action in plain words, and a button to approve with Face ID

    Zeno needs you

  • Zeno Approve after approving: Zeno's orb and a green tick

    Approved

  • Zeno Approve when nothing is waiting: Zeno's orb above the words All clear

    All clear

Working towards

  • His own screens: Zeno Desk on my desk and Zeno 64 on my TV
  • More of the apps I use, one at a time
  • Buying things, within limits I set

Built with

  • Python
  • Claude API
  • Claude Code
  • Telegram
  • Twilio
  • Gmail
  • Google Calendar
  • Swift

Plus Apple Maps and Face ID. Product names and logos are trademarks of their owners.

Questions about Zeno

I'm happy to talk through any of it.