Quick start
- Open the Launch tab and set the working folder.
- Press Launch next to your CLI — it opens in a new terminal, already routed through the local proxy.
- Work as usual. Voice Copilot narrates what the agent is doing; Trace shows the same stream as text.
Same thing from your own terminal: vc claude, vc codex, vc opencode — any id from the Launch list.
Every route at once
The Terminal entry opens a plain shell with all base-URL variables pre-set. Anything you start inside it — including CLIs not in the list — is proxied and narrated.
Manual wiring
voice-copilot runs a local HTTP reverse-proxy on port 8766. Point your CLI's base-URL env var at it — traffic is forwarded transparently and events are extracted live.
# standalone proxy mode (no wrapped subprocess) voice-copilot proxy # or wrap the CLI directly — env vars are injected automatically voice-copilot run claude -p "implement feature X" voice-copilot run codex "add dark mode"
ANTHROPIC_BASE_URL=http://127.0.0.1:8766/anthropic \ claude -p "your prompt"
Also works with claude --output-format stream-json for structured events.
(Cline, Droid, Pi, Oh My Pi, Qwen, Continue, Cursor, LM Studio, …)
OPENAI_BASE_URL=http://127.0.0.1:8766/openai/v1 \ codex "your prompt"
# Anthropic backend ANTHROPIC_BASE_URL=http://127.0.0.1:8766/anthropic \ aider --model claude-sonnet-4-5 # Ollama (local) OPENAI_BASE_URL=http://127.0.0.1:8766/ollama/v1 \ aider --model ollama/qwen2.5-coder:32b
MiniMax M2.5 Free, Kimi, GLM, Qwen and other Zen models
# In Launch → OpenCode → Advanced choose route: opencode-zen # voice-copilot injects a temporary runtime override for OpenCode: OPENCODE_CONFIG_CONTENT={"provider":{"opencode":{"options":{"baseURL":"http://127.0.0.1:8766/opencode-zen"}}}}
OpenCode reads its provider base URL from runtime config, not OPENAI_BASE_URL.
No token setup — reuses the CLI's own login
# 1. Install Copilot CLI and log in once: copilot login # 2. Settings → Commentator → API, provider "copilot-cli" # Model: gpt-5-mini | gpt-4.1 | gpt-4.1-mini | gpt-4o | o3-mini # # Each narration = one `copilot -p "…" -s --allow-all` call (~1-2 s).
The github-copilot provider talks to the Copilot API directly instead — it needs GITHUB_COPILOT_TOKEN in API keys, or an existing gh auth login.
LLM provider routes
| Provider | Proxy path | Upstream | Parser |
|---|---|---|---|
| Anthropic | /anthropic/… | api.anthropic.com | SSE (Messages API) |
| OpenAI | /openai/v1/… | api.openai.com | SSE (Chat Completions) |
| DeepSeek | /deepseek/v1/… | api.deepseek.com | SSE |
| Ollama compat | /ollama/v1/… | 127.0.0.1:11434 | SSE (OpenAI format) |
| Ollama native | /ollama/api/… | 127.0.0.1:11434 | NDJSON (/api/chat) |
| OpenRouter | /openrouter/v1/… | openrouter.ai/api | SSE |
| Groq | /groq/v1/… | api.groq.com/openai | SSE |
| Mistral | /mistral/v1/… | api.mistral.ai | SSE |
| OpenCode Zen | /opencode-zen/… | opencode.ai/zen/v1 | auto (messages / responses / chat) |
| Gemini | /gemini/… | generativelanguage.googleapis.com | passthrough |
The proxy forwards your original Authorization / x-api-key / x-goog-api-key headers unchanged. No keys are stored. Gemini is proxied but not parsed yet — its sessions appear in the picker with an empty Trace.
Custom port
voice-copilot proxy --proxy-port 9000
# Then use port 9000 in all env vars above.
Ollama thinking models
Models that stream a thinking field (e.g. qwq, deepseek-r1) are handled automatically — thinking content appears in Trace as purple THINKING blocks and is included in the narration prompt. Use the native Ollama path (/ollama/api/chat) via litellm ollama_chat/… prefix, or the OpenAI-compat path with reasoning / reasoning_content delta fields.
About
Voice Copilot
Version 0.1.0 alpha
Voice Copilot is a listening-first companion for coding agents. A parallel commentator LLM analyzes what a coding agent is doing so you can mainly listen, optionally read the trace, and intervene at the right moment with less cognitive load. It is not prompt dictation or raw playback of model output. We are open to collaboration and to growing the project together.
Voice input (push-to-talk questions back into the agent) is temporarily switched off in this build while that flow is reworked — narration and the launcher are unaffected.
Author: Volodymyr Moskvin
Website: https://voice-copilot.conus.vision/
Conus Vision - https://conus.vision
Email: info@conus.vision
We want to work with CLI authors on direct integration and on refining the companion interface together so it reflects their real event model and control flow. We also want advanced testers who use Voice Copilot in real coding sessions and can show where narration quality, intervention timing, or the experience itself becomes noisy, unclear, or fragile — across different CLIs, models, and project sizes.