Skip to main content
Voice Controlled Interface

Build AI agents that are wired into your app

VCI is a pattern for apps where an AI agent — not a floating chatbot, not an RPA script clicking buttons — is the interface. The agent reads your domain state, calls your domain functions through a fixed tool contract, and confirms every result out loud. The UI is a read-only reflection of state.

The whole point

Agents linked to your app

Most "AI features" bolt a chatbot next to an app and hope the user copies the reply back into a form. VCI does the opposite: the agent is inside the app. It sees your real state on every turn, and every action it takes runs through your code — not through browser automation or a scraped DOM.

┌──────────────────────────────────────────────────────────────┐
│                       Your Application                        │
│                                                               │
│   ┌──────────────┐         ┌──────────────────────────────┐   │
│   │              │  reads  │                              │   │
│   │  Domain      │◄────────│         AI Agent             │   │
│   │  State       │         │      (OpenAI Realtime,       │   │
│   │              │────────►│         gpt-realtime)        │   │
│   │              │ mutates │                              │   │
│   └──────┬───────┘  via    └──────────────┬───────────────┘   │
│          │        tool                    │                   │
│          │        calls                   │ voice in / out    │
│          ▼                                ▼                   │
│   ┌──────────────┐                 ┌──────────────────────┐   │
│   │  Read-only   │                 │   Push-to-Talk mic   │   │
│   │  UI (DOM)    │                 │   +  status pill     │   │
│   └──────────────┘                 └──────────────────────┘   │
└──────────────────────────────────────────────────────────────┘
Why VCI

The best way to link an agent to an app

The link between agent and app is not the DOM — it's a set of tool schemas. One tool per meaningful action. The agent picks a tool, your code runs it, and you hand back the fresh state. That loop is the whole framework.

PatternWhere the AI livesWhat state it seesHow it takes actionFailure mode
Chatbot widgetFloating panelOnly what you pasted into the promptTalks — user must copy reply into a formAnswers are stale; user does the work anyway
RPA / DOM automationClicks on behalf of userWhatever's visible in the DOMSimulates clicks and keystrokesBreaks on any layout change; brittle at scale
Copilot-style inlineText editor / IDELocal buffer + selectionSuggests text; user acceptsFine for text, doesn't work for domain actions
VCIWired into your data modelFull app state, refreshed every turnTyped tool calls into your own functionsBounded, testable, deterministic per turn
Why it wins

Six properties, one loop

Ground truth every turn

Every tool response echoes `current_state`, so the agent never operates on a stale mental model.

Bounded action space

A closed set of tools (≤ 8 recommended) means the agent can't invent an action that doesn't exist in your app.

Deterministic execution

Tool handlers are plain functions in your codebase — same testability as any other code path.

No DOM coupling

Redesign the UI, rename buttons, ship a new theme — the agent's contract doesn't move because it never touched the DOM.

Voice-native

Speech-in, speech-out over WebRTC. No text box, no copy-paste, no context loss between "what I said" and "what the app did."

Framework-agnostic

Vanilla JS, React, Vue, Svelte — VCI is a pattern with four module contracts. Plug it into anything.

Know the shape

When to use VCI

Good fitBad fit
Personal tools with a bounded action vocabularyMulti-user collaborative apps
Solo users on a single devicePublic deployments without a backend
To-do, notes, timers, expense capture, kanban, etc.Apps needing precise pointer / drag / dense forms

Ready to ship one?

The spec is written to be handed verbatim to a coding agent alongside a description of your target domain. The implementation checklist is a task list the agent can work through directly.