Multi-session voice web interface for AI coding agents
Project description
Talk to your AI coding agents. From anywhere.
The Problem
You're on the couch. Your AI agent is on your workstation. You have an idea.
Old way: Get up. Walk to computer. Type.
AgentWire way: Pull out phone. Hold button. Talk. Done.
What It Does
Push-to-talk voice control for Claude Code or any AI coding assistant running in tmux.
Phone → AgentWire Portal → tmux session → Claude Code
🎤 (WebSocket) 📺 🤖
From your phone, tablet, or laptop on your network:
- Hold to speak, release to send
- Watch agents work in real-time
- Hear responses via TTS
- Manage multiple projects simultaneously
Quick Start
# Install
pip install agentwire-dev
# Setup (interactive)
agentwire init
agentwire generate-certs
# Run
agentwire portal start
# Open http://127.0.0.1:8765 in Chrome — voice works immediately
Requirements: Python 3.10+, tmux, ffmpeg, Claude Code
Honest setup time: under a minute to a working voice portal with a genuinely good voice — Kokoro-82M runs on CPU out of the box (one-time ~200 MB model download in the background; the browser voice covers the wait). ~15 minutes for the full experience: cloned voices via a self-hosted TTS shim, Whisper-grade transcription, phone-from-anywhere (certs + token).
Network & trust model. The portal binds
127.0.0.1by default — local only. To use it from your phone, setserver.host: 0.0.0.0in~/.agentwire/config.yaml. Non-loopback binds require an auth token (auto-generated on first start; print it withagentwire portal token) — your phone prompts for it once, then remembers it. Origin checks reject cross-site browser requests on every bind. Still: keep it on a trusted LAN. Never port-forward it or run it on a public-facing VPS — for internet access use Cloudflare Tunnel + Zero Trust. Details in SECURITY.md.
Platform-specific instructions
macOS:
brew install tmux ffmpeg
pip install agentwire-dev
Ubuntu/Debian:
sudo apt install tmux ffmpeg python3-pip python3-venv
python3 -m venv ~/.agentwire-venv && source ~/.agentwire-venv/bin/activate
pip install agentwire-dev
WSL2: Same as Ubuntu. Audio is limited; use as remote worker with portal on Windows host.
tmux config matters. Default tmux has no mouse scroll, a tiny scrollback, and broken copy UX — see Recommended tmux config, or let
agentwire initinstall it for you.
Features
| Feature | Description |
|---|---|
| Voice Control | Push-to-talk from any device on your network |
| Multi-Session | Run multiple agents on different projects simultaneously |
| Git Worktrees | Same project, multiple branches, parallel agents |
| Remote Machines | SSH into GPU servers and talk to agents there |
| Worker Orchestration | Spawn worker panes, coordinate tasks, voice commands |
| Safety Hooks | 300+ dangerous commands blocked (rm -rf, force push, etc.) |
| TTS Responses | Agents talk back via browser audio |
| Outbound Channels | Email (Resend) + SMS (Quo / OpenPhone) for cross-device notifications |
| Session Roles | Leader/worker patterns for multi-agent workflows |
How It Works
1. Create a session:
agentwire new -s myproject -p ~/projects/myproject
2. Open the portal:
Visit http://127.0.0.1:8765 in Chrome (or your phone/tablet with LAN access configured)
3. Talk: Hold the mic button, speak your request, release. In instant mode the transcript appears for a quick glance — Enter sends it to Claude Code.
4. Listen: Agent responses are spoken back — Kokoro neural voice out of the box, or any TTS model behind a custom shim.
Multi-Agent Orchestration
AgentWire supports orchestrator/worker patterns for complex tasks:
# .agentwire.yml in your project
type: claude-bypass
roles:
- agentwire
- voice
Sessions can spawn workers:
agentwire spawn --roles worker # Creates a worker pane
agentwire send --pane 1 "Implement the auth module"
Workers execute tasks autonomously while the orchestrator coordinates.
Safety
AgentWire blocks dangerous operations before they execute:
rm -rf /,git push --force,git reset --hard- Cloud CLI destructive ops (AWS, GCP, Firebase, Vercel)
- Database drops, Redis flushes, container nukes
- Sensitive file access (.env, SSH keys, credentials)
agentwire safety check "rm -rf /"
# → ✗ BLOCKED: rm with recursive or force flags
agentwire safety status
# → 312 patterns loaded, 47 blocks today
All decisions logged for audit trails.
Voice Configuration
Two tiers, both sides:
default (zero setup, what a fresh install gets): Chrome speech recognition in, Kokoro-82M out — a genuinely good neural voice (top of the TTS Arena at 82M params), 32 preset voices across 8 languages, pure CPU, identical on every OS. The model (~200 MB) downloads in the background on first portal start; browser speechSynthesis covers speech until it's ready (and remains the last-resort fallback). No GPU, no certs, no commands.
custom (bring your own model): any HTTP shim implementing the voice shim contract — ~30 lines wraps anything (Deepgram, whisper.cpp, an expressive emotion-tag model). Voice cloning, GPU engines, emotion control live here. The bundled servers are reference shims:
# ~/.agentwire/config.yaml
tts:
backend: "custom"
url: "http://localhost:8100" # agentwire tts start (kokoro CPU / chatterbox GPU / qwen / zonos)
options:
backend: kokoro
stt:
backend: "custom"
url: "http://localhost:8101" # agentwire stt start (moonshine ONNX, CPU)
Shims can declare capabilities (emotion tags, style instructions) via GET /capabilities — agentwire injects the shim's tool_prompt into the agent's say tooldef so agents actually use them.
Prefer text-only?
Instant mode already needs nothing — just don't press the mic. Agent speech plays through the browser; mute the tab (or close it — with no browser connected, speech plays on local speakers, which you can silence at the system level).
CLI Reference
Session Management
agentwire list # List sessions
agentwire new -s <name> -p <path> # Create session
agentwire kill -s <name> # Kill session
agentwire send -s <name> "prompt" # Send to session
agentwire output -s <name> # Read output
Worker Panes
agentwire spawn --roles worker # Spawn worker in current session
agentwire send --pane 1 "task" # Send to worker
agentwire output --pane 1 # Read worker output
agentwire kill --pane 1 # Kill worker
Voice Commands
agentwire say "Hello" # TTS (auto-routes to browser)
agentwire alert "Done" # Text notification (no audio)
agentwire listen start/stop # Voice recording
agentwire voiceclone list # Custom voices
Remote Machines
agentwire machine add gpu --host 10.0.0.5 --user dev
agentwire new -s ml@gpu # Create session on remote
agentwire tunnels up # SSH tunnels for services
Safety & Diagnostics
agentwire doctor # Auto-diagnose issues
agentwire safety status # Check protection status
agentwire hooks install # Install Claude Code hooks
agentwire network status # Service health check
Documentation
Full reference: docs/wiki/INDEX.md
Quick links:
Community
License
Dual-licensed:
- AGPL v3 - Free for open source
- Commercial license available - contact us
AgentWire: For people who have better things to do.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentwire_dev-1.35.1.tar.gz.
File metadata
- Download URL: agentwire_dev-1.35.1.tar.gz
- Upload date:
- Size: 31.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db437ed5d4b2953f2f0d6fd74beaf647aeb9fae115a5c019f6269c01f7d65222
|
|
| MD5 |
07ab95a02a35b69b3abc7c07d79aec5d
|
|
| BLAKE2b-256 |
31ec08df590eee7bfd72e2dbdf5fc55fc31885e6734f9ed1349118b8e1f31982
|
File details
Details for the file agentwire_dev-1.35.1-py3-none-any.whl.
File metadata
- Download URL: agentwire_dev-1.35.1-py3-none-any.whl
- Upload date:
- Size: 31.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00b1a344025b706da2a3556bfc2b9abb1e7fc5ce90d968b9e7b23872f9896dce
|
|
| MD5 |
dc504914bd9afec144783703f9c69a8a
|
|
| BLAKE2b-256 |
c07f96715724ad2306a783652065e1588326686f0da3e2e025264170770d432d
|