APP

ConvoBox

Local, backend-agnostic voice frontend for CLI coding agents

full-duplex voice control for Codex, Claude Code, OpenCode, and other agent CLIs, with barge-in, tool approval, and a local web UI

What it is

ConvoBox sits between you and whichever coding-agent CLI you are driving — Claude Code, Codex, OpenCode, and eventually others — and lets you work by voice instead of, or alongside, the keyboard. It's a developer tool, not a general-purpose voice assistant: without an already-running coding-agent CLI, it has nothing to talk to.

It is local-first by default: speech-to-text and text-to-speech run on hardware you control, with a thin adapter layer translating spoken intent into each backend's native control surface — preferring structured/headless interfaces over scraping terminal output wherever a backend offers one.

What it does

Full-duplex conversation

Continuous listening with voice-activity detection and spoken responses, not push-to-talk. Barge-in is a two-axis preset system — what happens to the current turn is independent of what happens to your new words.

Backend-agnostic adapters

A small adapter surface — send text, interject, hard-stop, report busy state — maps onto whichever coding agent you're driving, verified live against real OpenCode, Claude Code, and Codex instances.

Voice-gated tool approval

A spoken phrase gates pending destructive tool calls on Codex and Claude Code — approve, deny, or ask for a plain-language explanation before deciding.

Deterministic hard stops

Safeword handling stays outside the model path so an abort command cannot be second-guessed or reinterpreted by an LLM.

Local-first audio

VAD, STT (faster-whisper), and TTS (Kokoro, Apache-2.0) run on hardware you control. Acoustic echo cancellation keeps the assistant's own voice from tripping its own barge-in detection.

An optional local web UI

A browser view of a live session — transcript, tool calls, pending approvals — streamed over Server-Sent Events, with optional local SQLite history. No authentication; loopback-only by design.

Architecture

mic -> VAD -> local STT -> safeword check -> orchestrator -> backend adapter
                                                           -> local TTS

The orchestrator decides whether each utterance is a new command, a soft interjection into an active task, or a hard stop. Backend adapters prefer structured/headless interfaces where available and fall back to terminal control only when necessary.

Status

All three backend adapters — OpenCode (HTTP+SSE), Claude Code (stream-json subprocess), and Codex (app-server JSON-RPC) — have been driven through the full live voice loop, including real tool use, on Windows 11. Linux/macOS are implemented but not yet voice-validated end to end.

Beyond the core pipeline, a substantial interaction/safety layer has since landed: barge-in presets, a live conversation TUI, response tiering, voice-gated tool approval, acoustic echo cancellation, and the local web UI described above. This is a working, extensively tested prototype under active live-testing iteration — not yet a packaged, stable end-user release.

Known limits

See the GitHub repo for current implementation notes and testing status.