Case study
Igris — voice-first AI agent
Speak to it, and it actually does the thing.
- Role
- Sole developer
- Stack
- Node.js, Express, React, Vite, Tailwind, Framer Motion, Gemini, Groq Whisper, ElevenLabs
- Year
- 2026
The problem
Voice assistants answer questions. I wanted one that performs work — reads and writes files, runs commands, searches the web, opens what I need — from a spoken sentence, with no typing.
The decisions
01
Three providers, each for what it is best at.
Groq Whisper for transcription because it is fast and handles Roman Urdu mixed with English, which is how I actually speak. Gemini for reasoning and deciding which tool to call. ElevenLabs for a voice that does not sound like a screen reader. One provider for all three would have been simpler and worse at every step.
02
Tool-calling, not intent matching.
The model decides which tool a request needs rather than matching against a list of phrases. This is why “check what is in the config file and tell me if the port is right” works without anyone having written a rule for it.
03
Barge-in.
You can interrupt it mid-sentence. Without this, every slightly wrong answer costs you the full length of the reply, and the assistant becomes annoying to use. It is a small feature that decides whether the thing is usable at all.
04
Security boundaries from the first commit.
File access is confined to the workspace directory. Terminal commands run against an allowlist — npm, node, git, dir, cd, echo — and nothing else. An agent that can run arbitrary shell commands is not a feature, it is a liability.
05
Provider fallback.
API quotas run out at the worst moment. When a provider fails, it falls through to an alternative rather than dying.

What I would tell you honestly
It is a voice assistant first. Command execution is deliberately narrow, and which spoken languages work well depends on the configured Whisper and ElevenLabs models.