Savvy OS, a personal AI operating system
A desktop AI operator that reads my mail and calendar, watches deploys and services, and does the work I approve, by voice or text.
- Role
- Designer and engineer, solo
- Years
- 2026 to present
- Stack
- Claude, Next.js, TypeScript, Python, Microsoft Graph, local speech models
- Scale
- Runs on my own machine

Problem
My day was split across Outlook, Dynamics 365, GitHub, Vercel and a laptop full of running services. Checking each one by hand was the job before the job.
How I worked
I built it solo and used it daily from the first week, so the product was shaped by what annoyed me, not by a spec. I interviewed myself, wrote down why it felt useless, and cut whatever didn't trace to a real person, a real breakage or a real meeting. Every change had to pass type checks and tests, then run on my own machine, where the real data showed what the tests missed.
What I built
- A desktop screen built around a speaking orb, which fades to the orb alone when nothing needs me.
- Voice in and out on local speech models, with push to talk from any app.
- A Needs you list fed by Microsoft 365 mail and calendar, GitHub, Vercel and the machine's own services.
- Plans before actions: Savvy writes the steps, and nothing runs until I approve them.
- A morning audio brief and a search across my notes.
The hard parts
It filled my screen with chores nobody asked for.
The first version showed its own scheduled jobs and invented tasks, and I stopped looking. I set a rule: every row in Needs you must trace to a person who asked, something broken, or today's meeting. Its own ideas are capped at two and marked as its own.
Room noise was answered out loud.
The turn logs showed about 10 of 27 voice turns in one day were background talk, each answered aloud and each cutting off my real question. I added a gate on the speech model's own confidence, language and stock phrases. Noise now stays silent and gets logged for tuning.
Green reviews missed the holes.
Eight reviewed features passed type checks, tests and a build, yet the first live session found four faults: a wrong data folder, a deep link that opened the bare screen, a report that never replayed and a scrim that hid text. Now every merge gets a live run and screenshots.
Result
- It speaks up only when a deploy fails, a service stops or something is waiting on me.
- Nothing runs without my approval.
Next
Hiring platform
Careers site, apply wizard, AI scoring of CVs and interview scheduling, built end to end and live.
Hiring for a senior role? Let's talk.
Tell me the role or what is slowing your team down. I reply within two working days.