Foyn
Lab

Voice router

Voice

Hold the iPhone's Action Button and say what you want built: about 20 seconds later a coding session is on it, and a follow-up goes to the session that already has the context.

Where a prompt goes

Every prompt, spoken or typed, goes through this one router. It reads what is running, then continues one session or starts a new one.

Prompt spoken or typed Cue in the prompt? decides in under 1 s “continue the X one” “new session” no cue Haiku judge sees each open session ≥ 0.8 below 0.8 Continue relay into the session ~5 s New session fresh worktree ~12 s relay fails
New session
The default, and where every unsure branch ends.
Continue
Only on a cue that names one session, or a judgement of 0.8 or more.
Relay fails
A new session starts in that session's repo.
The reply names where the prompt went. The notification reads → continued '…' or → new in homelab, so a wrong route shows at once.

For prompts on the move

Under the hood

Transcription
faster-whisper, base model, int8 on the CPU, English
Judge
claude-haiku-5-5 with a JSON schema; sees up to 12 sessions active in the last 24 h
Relay
A headless claude -p with SendMessage as its only tool and no MCP servers: 3–5k tokens, ~4.6 s
New session
homelab-session: a worktree off the default branch, Claude in the background, the link once it registers
Repos
homelab and registered work clones, monorepo folders included; the list is read on every request
API
POST /prompt with audio or text; returns the transcript, a one-line summary and the link