Igris: Finishing the Voice Agent I Started at OAU in 2014
Some projects don’t die. They wait.
In 2014/2015 at OAU, I built a personal assistant that felt like science fiction on a student machine. It had a custom Iron Man-inspired UI. Separately, a “hey Jarvis” wake word started listening. Then it ran desktop actions: open an app, close an app, shut down the PC. It worked enough to feel real. It was also way ahead of what I could resource then: compute, models, speech stacks, distribution, time.
I didn’t have the runway to chase it properly. So it lived in the back of my head while I went deep on infrastructure, platforms, and production systems.
Here we are.
Igris is that dream with adult tools. Not a nostalgia rebuild of every pixel - a voice-only personal agent with a real architecture: a Go brain, thin Apple clients (iPhone, iPad, Mac), one WebSocket protocol, memory, tools, and a guardian presence you can feel when it’s listening vs thinking vs speaking. The product thesis is simple: you talk, it talks back; the screen is for captions and things that should be read, not a chat box pretending to be a conversation.

TL;DR: Igris is my long-cycle personal agent project. The OAU prototype is now a modern voice-native stack (Go brain, Apple clients) plus a software and 3D hardware plan: one will, many blades (phone, Mac, desk sentinels, field units).
What the 2014 version got right
Even with limited resources, the old design instincts were solid:
- Voice first - if you have to type everything, it’s an app, not an assistant.
- Actions, not answers - open, close, power state; agency over encyclopedia mode.
- Presence UI - the orb / reactor aesthetic wasn’t decoration; it was state machine visualization before I had the vocabulary for that.
- Local life integration - the PC was the body. The assistant lived where work happened.
What it lacked was everything the industry spent a decade building: reliable STT/TTS, long-context brains, tool protocols, mobile as a first-class body, and enough personal platform skill to ship a control plane instead of a demo script.
What Igris is now (software)
From the public tree (repo still uses some jarvis paths under the hood - the lineage is not subtle):
server/ Go: agent loop, memory, voice gateway - one binary
apple/ SwiftUI clients: iPhone, iPad, Mac menu bar
Brain: Go server. Default path Claude; any OpenAI-compatible mind via config (including local models). Ears/mouth: Deepgram live STT + VAD; speech out native Apple by default, or server TTS when you want it. Body: Apple-only thin clients on one full-duplex WebSocket. No web client by design. Tools: reminders, tasks, web search, local Mac integrations (calendar, mail, messages - with confirm-before-send for anything that leaves the machine), MCP servers, background coding jobs.
Architecture in one line: one protocol, many bodies. The phone is not a separate product from the Mac menu bar; both are skins over the same agent loop - the same “one will, many blades” idea the hardware plan extends.

Run the brain (dev shape):
cd server
export DEEPGRAM_API_KEY=...
export ANTHROPIC_API_KEY=sk-ant-...
go run ./cmd/jarvis
# health: curl localhost:8787/healthz
Point the Apple app at ws://…:8787/ws with a bearer token. Prefer Tailscale or private network over “exposed to the internet with a hope and a JWT.”
Source: github.com/9trocode/Igris
The visage - state, not wallpaper
The face is a sigil: slow ember pulse at rest, then clear stances for listening, assessing, speaking (with visemes), alert, dormant. The 2014 orb was the same instinct; this version is a full state machine you can read across glass.

3D plan - guardian forms, not a speaker puck
Igris isn’t meant to live only as an icon on a phone. The design board locks four desk-scale directions - hardware with a face and a job:
| Form | Idea |
|---|---|
| The Sentinel | Forged shell, round visor, stands post on the desk |
| The Wisp | Levitating ember core on a ring - pure watchful presence |
| The Squire | Small armored unit, wide visor, overtly “character” |
| The Obelisk | Slim black-glass slab; architectural, under-glass OLED |

Same will as the software clients: thin blade, one brain. The desk unit is another WebSocket body, not a separate product line with its own half-broken firmware personality.
Field units - seven blades, one will
Beyond the desk, the ecosystem plan spreads the same guardian into the world: pocket, wrist, sight, home, wall watch, road, find.

- Talisman - palm summon, panic ping, location
- Vambrace - wrist vitals + silent guardian alert
- Helm - AR overlay / face match (quietly, only when you ask)
- Brazier - home shelf presence, glass-break / far-field mic
- Bastion - wall/ceiling eye that tracks motion
- Charger - in-cabin escort on the road
- Seal - coin-sized find / precision ping
Every body is another client of the same server. Summon it from your palm, wear it, mount it, park it in the car - Igris is the will; the blades are armor.
What’s next
I’m building this in public as far as the repo allows. Near-term focus for me:
- Reliability of the voice loop - barge-in, latency, silence, failure modes when STT flakes
- Safer action surface - more confirmations, clearer audit of what the agent did
- Bodies - Mac + iOS parity first; desk Sentinel / Wisp hardware when the protocol stays clean
- Local-first options - brains and voices that don’t require every token to leave home
- Field blades - pocket and home units after the software will is solid
If the 2014 version was a spark on a student PC, Igris is the forge. Same obsession. Better steel - and a real plan for silicon that stands watch on the desk.
Summary
I built a Jarvis-class desktop agent at OAU before the ecosystem could carry it. Igris is me refusing to leave that idea in a drawer: voice-only, action-capable, beautiful on purpose - software bodies now, 3D guardian forms and field units on the roadmap.
Dream projects aren’t late. They’re early until the world (and you) can hold them.
Repo: 9trocode/Igris
Share
Newsletter
Deep dives on platform engineering, Kubernetes, and production systems. No fluff.
Comments