My personal AI assistant. I text it on Telegram or call it on the phone, and it remembers. It's also my test bench for closed vs open models: a frontier model plans, open models on my Mac do the subtasks, and I keep measuring which jobs really need the expensive one.
How a message flows
What it does
A persona, a profile of me, and dated daily notes it can search.
A morning voice briefing, an evening check-in, nightly backups. Scheduled jobs, not prompts I have to remember.
Small tools it can call, like posting to X or wrapping up a session. New skills are just files.
Phone calls with speech-to-text in, a natural synthetic voice out.
Send a photo and a local vision model describes it, no cloud round trip.
A watchdog brings the gateway, dashboard and voice back within five minutes of a failure.
Closed vs open models
Running everything on a frontier API is easy and expensive. Running everything locally is free and often not good enough. Umnik is where I find the line, task by task: what does each job cost, how long does it take, and is the answer good enough?
Ambiguous requests and multi-step plans go to the frontier model. Quality matters most here. A flat-rate subscription keeps the bill predictable.
Summaries, lookups, photo descriptions: a 9B open model on the Mac is fast enough and costs nothing per call.
A 20B open model handles coding and review passes locally.
The journey
Umnik started on OpenClaw, an open-source agent framework. This year I moved it to Hermes Agent: the scheduled routines came along, and OpenClaw stays archived as a fallback.
The move also let me split the work between a closed planner and open local models, instead of sending everything to one API.
Built with
Private project. The code isn't public, but I'm happy to talk about how it's put together.