Squeakr
An open-source bridge that lets you talk to your coding agent from your phone.
Squeakr runs on your own machine next to the agent CLI you already use (Claude Code, Codex,
Cursor's cursor-agent or Codewhale). You speak in the web app or the iPhone app, it
transcribes what you said, the agent works in your repo, and the reply is read back to you.
Nothing goes through a hosted service: the bridge, the agent and, if you want, the speech models
all run on your hardware.
Demo
What it does
- Works with four agent CLIs: Claude Code, Codex, Cursor (
cursor-agent) and Codewhale. Models and effort levels come from the CLI itself. - The agent drives the conversation. The bridge gives the CLI an MCP server
(
speak,next_voice_turn,done,spawn_agent), so it decides when to talk and when to listen, and can hand coding work to worker sessions. - Speech in and out, local or not. A self-hosted Whisper + Kokoro container keeps audio on your machine. Groq, OpenAI, Deepgram, ElevenLabs, Gemini, Polly and the browser's own voices also work, as fallback chains.
- Reach it from anywhere. Tailscale by default; Cloudflare Tunnel, ngrok, Dev Tunnels,
LAN or your own reverse proxy also work. A fresh install only listens on
127.0.0.1. - Chat apps too. Call the bot in a Discord voice channel, send a voice message on Telegram or WhatsApp, or manage sessions by tagging it in Slack.
- Approvals on the phone. Permission prompts, plans and diffs show up in the app, so you can review and answer them away from the desk.
Install
You need one agent CLI on your PATH. The npm package also needs Node.js 20 or newer;
the .deb and .rpm bundle their own Node.
npm Linux, macOS, Windows
npm install -g squeakr
squeakr setup
squeakr tokenThe install starts the bridge as a background user service on http://127.0.0.1:5089.
squeakr setup picks the agent CLI, your projects folder and how your phone reaches the
machine; squeakr token prints the pairing token the app asks for. Skip the service with
SQUEAKR_NO_SERVICE=1; on Windows run squeakr service install --now once.
Debian / Ubuntu apt
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://dixonsolutions.github.io/Squeakr/squeakr.asc -o /etc/apt/keyrings/squeakr.asc
sudo curl -fsSL https://dixonsolutions.github.io/Squeakr/apt/squeakr.sources -o /etc/apt/sources.list.d/squeakr.sources
sudo apt update && sudo apt install squeakr
squeakr setupSigned packages for amd64 and arm64; updates come with apt upgrade.
Public key · published versions.
Fedora / RHEL dnf
sudo curl -fsSL https://dixonsolutions.github.io/Squeakr/rpm/squeakr.repo -o /etc/yum.repos.d/squeakr.repo
sudo dnf install squeakr
squeakr setupSigned packages for x86_64 and aarch64; updates come with dnf upgrade.
Repo file · published versions.
From source git
git clone https://github.com/dixonSolutions/Squeakr.git
cd Squeakr
bash scripts/setup.shBuilds and then runs the same squeakr setup. On Windows use
.\scripts\setup.ps1 from an elevated PowerShell.
Coming from AgentVoice?
Squeakr was called AgentVoice until October 2026. One command moves an npm, .deb/.rpm or source install over, with its config, keys, pairing token and history:
curl -fsSL https://raw.githubusercontent.com/dixonSolutions/Squeakr/main/scripts/migrate-to-squeakr.sh | bashEveryday commands
squeakr status | Install, version, service, port, health and public URL |
squeakr doctor | Checks Node, config, the agent CLI and its sign-in, the port and hosting |
squeakr logs -f | Follow the bridge log |
squeakr pipe --mic | Talk to the agent from the terminal, no phone needed |
squeakr add --this-dir | Register the current directory as a project |
squeakr update | Update the way it was installed |
Everything else: the CLI reference and the docs folder.
Source and issues
Squeakr is developed in the open at github.com/dixonSolutions/Squeakr. Bug reports and pull requests are welcome in the issue tracker.