Project releases
Agentic Voice v2 rebuilds a 2024 demo into something you can actually run
The September 10 revival replaces an old prototype with a smaller authenticated application: record, review the transcript, send, hear the answer. It also tells you to revoke the provider credential that the original browser source carried.
GitHub activity: · Published:
What it does
Ask a question by typing or by recording a short clip, read the answer as it streams, and hear it spoken. The flow is deliberately explicit: you record, you stop, you read the transcript, and only then does anything get sent.
That ordering is the design. The 2024 version held an always-on microphone conversation; the revival replaces it with a boundary you control at every step.
What changed
Commit f30f3b4, merged as pull request #4 on September 10, rebuilds the application with a server token and exact origin check, a 32 message and 512 output token ceiling with a 20 second deadline, 30 second recordings capped at a 1 MiB upload, and buffered MP3 playback capped at 2 MiB. The access token lives in page memory only.
The automatic microphone conversation, search enrichment, voice selection, analytics and unsafe key handling are all retired. A repository CLI and MCP surface were added for maintaining the project itself, exposing voice_status, voice_validate, voice_benchmark, voice_receipts and a policy resource.
The README opens with a security instruction, not a feature: revoke the provider credential that was historically embedded in the browser source. Deleting it from current files does not revoke it and does not erase it from Git history.
Get started
Node 24 and npm. Use your own credentials and your own generated token:
git clone https://github.com/ruvnet/agentic-voice.git
cd agentic-voice
npm ci --prefix agentic-voice
cp agentic-voice/.env.example agentic-voice/.env.local
# edit .env.local: add your own private credentials and an independently generated access token
npm run build --prefix agentic-voice
npm start --prefix agentic-voice
Expected result: the app serves on http://localhost:3000 and refuses you until you enter the same session access token. VOICE_ORIGIN must match the browser origin exactly.
The maintenance CLI and MCP server are separate:
npm ci --prefix .harness/runtime
node .harness/runtime/cli.mjs status
node .harness/runtime/cli.mjs mcp
This is a private single-operator deployment. Put an authenticated gateway with shared quotas and a provider spending cap in front of anything exposed to the internet — the per-process concurrency limit of four is not a distributed spending limit.
Use it today
Practical case: a hands-busy assistant on your own machine. Input is a short recording. Workflow is record, stop, read the transcript, correct it if the transcription was wrong, then send. Output is a streamed answer with spoken playback you can stop.
Acceptance test: start the server with VOICE_ORIGIN set to a different origin than the one you browse from. The request must be rejected. If it succeeds, the origin check is not doing its job.
Push it further
Experimental commentary. The transcript review step is an underrated safety primitive for voice agents generally: it converts an irreversible action into a reviewable one at almost no cost in latency.
Limitation: tests use controlled provider fixtures. Live audio quality, microphone permission behaviour, interruption latency and token revocation all require operator qualification, and the local benchmark measures message validation only. Falsifiable test: measure end-to-end latency yourself against a live provider. The bundled benchmark will not predict it.
Read the original on GitHub commit
Commit f30f3b4 — revive secure voice app, tested CLI MCP and governed MetaHarness (#4)