Agent Hotline is a local tray app that reads useful parts of Codex, Claude Code, and Antigravity replies aloud.
You keep using your coding tool like normal. Agent Hotline listens for finished responses through local hooks, skips code-heavy bits, and reads the useful prose through the browser or desktop UI. The full reply stays in the original chat.
- Reads finished coding-agent replies aloud.
- Skips code blocks, diffs, logs, JSON, tables, and big dumps.
- Lets you save replies or auto-play them when idle.
- Gives you read, pause, resume, stop, replay, mute, and unmute controls.
- Stores settings in the normal app data folder for your OS.
- Uses local Kokoro speech by default, with system voice as the fallback.
- Does not need model API keys or paid speech APIs for read-aloud.
Usable from npm on Windows, macOS, and Linux, plus the Windows desktop installer and the macOS desktop build. On Linux the npm/browser panel and hooks work today; the desktop tray app builds from source (no prebuilt Linux installer yet).
Still missing:
- Voice input owned by Agent Hotline.
- Prebuilt Linux desktop installer.
- Windows 10 or 11, macOS, or Linux.
- Node.js 22 or newer for the npm/npx commands.
- No repo clone is needed for normal install.
- For desktop app development: Rust plus the usual Tauri prerequisites for your OS.
On Ubuntu/Debian that is
libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev. Linux also needs a system TTS voice (e.g.speech-dispatcher) for the system-voice fallback. The repo's check scripts can use eithercargoon PATH orrustup run stable cargo.
- Download and run the latest Windows installer or macOS DMG:
https://github.com/Micsushi/agent-hotline/releases/latest
- Install the hooks and spoken skill:
npx --yes @micsushi/agent-hotline install --harness all --skill all- Restart Codex, Claude Code, or Antigravity so it reloads its hook files.
After that, open Agent Hotline from the Start Menu or Applications folder. The desktop app starts its own bundled backend and opens the panel. No separate ah run command is needed for the desktop installer.
Use this when you want the browser control panel instead of the native tray app:
npx --yes @micsushi/agent-hotline install --harness all --skill all
npx --yes @micsushi/agent-hotline runThe install command downloads the Agent Hotline npm package and installs both parts:
- the hook/tool command used by Codex, Claude Code, and Antigravity
- the spoken-output skill or managed instructions
The run command starts the backend and opens the browser control panel:
http://127.0.0.1:4777
For one repo only:
npx --yes @micsushi/agent-hotline install --harness all --skill all --scope repo --repo C:\path\to\repo
npx --yes @micsushi/agent-hotline install --harness all --skill all --scope repo --repo /path/to/repoOptional: install once globally so you can use shorter commands:
npm install -g @micsushi/agent-hotline
agent-hotline install --harness all --skill all
agent-hotline runIf ah or agent-hotline is not found after a global install, run:
npx --yes @micsushi/agent-hotline doctor
npx --yes @micsushi/agent-hotline doctor --fix-pathUseful separate commands:
npx --yes @micsushi/agent-hotline install-hooks --harness all
npx --yes @micsushi/agent-hotline install-skill --target all
npx --yes @micsushi/agent-hotline hook
npx --yes @micsushi/agent-hotline run --browser
npx --yes @micsushi/agent-hotline run --no-openUse this only when developing Agent Hotline from this repo:
npm install
npm run install-hotline -- --harness all --skill allnpm install also grabs the local TTS assets used by the desktop app. To repair those assets:
npm run install:ttsThe npm package includes the CLI/backend hook tool, the browser control panel, and the spoken skill. Users do not download those separately.
The GitHub release includes desktop installers for the native tray/WebView app and a bundled backend. The installer does not yet write Codex, Claude Code, or Antigravity hook files, so run the npm setup command once after installing the desktop app.
From a global install, start the backend and browser panel:
ah runFrom npx, start the backend:
npx --yes @micsushi/agent-hotline runThis also opens the browser control panel:
http://127.0.0.1:4777
From a local source checkout, ah run starts the full local desktop app instead
of the browser panel. It uses the repo's Tauri dev lifecycle, so local code
changes show up without reinstalling the desktop app.
To force the browser panel from a local checkout:
ah run --browserTo start only the backend:
npx --yes @micsushi/agent-hotline run --no-openFrom a local checkout, you can also start or restart the full local app while developing:
npm run devThis restarts the backend and desktop together. If anything looks stale or the browser panel says the backend is unavailable, use the same command:
npm run restartBackend URL:
http://127.0.0.1:4777
With the backend running, test the npm-installed hook:
# Linux / macOS
printf '%s' '{"source":"codex","response":{"text":"Spoken:\nAgent Hotline is ready to read this aloud.\n\nDisplayed:\nSmoke test complete."}}' | npx --yes @micsushi/agent-hotline hook# Windows PowerShell
'{"source":"codex","response":{"text":"Spoken:`nAgent Hotline is ready to read this aloud.`n`nDisplayed:`nSmoke test complete."}}' | npx --yes @micsushi/agent-hotline hookFrom a local checkout, test the local hook:
# Linux / macOS
printf '%s' '{"source":"codex","response":{"text":"Spoken:\nAgent Hotline is ready to read this aloud.\n\nDisplayed:\nSmoke test complete."}}' | node packages/backend/bin/agent-hotline.js hook# Windows PowerShell
'{"source":"codex","response":{"text":"Spoken:`nAgent Hotline is ready to read this aloud.`n`nDisplayed:`nSmoke test complete."}}' | node packages/backend/bin/agent-hotline.js hookThe sentence should show up in the Agent Hotline queue. If the backend is not running, the hook exits quietly.
Install the latest GitHub release. The current desktop app starts its bundled backend automatically. If you are using the npm/browser version instead, run:
npx --yes @micsushi/agent-hotline runIf ah run comes from the npm package, it starts the npm/browser version and opens http://127.0.0.1:4777. If ah run comes from this source checkout, it starts the local Tauri desktop app. Run where ah to check which command Windows is using.
Use npx directly, or install globally:
npm install -g @micsushi/agent-hotline
npx --yes @micsushi/agent-hotline doctorIf npm's global command folder is missing from PATH on Windows:
npx --yes @micsushi/agent-hotline doctor --fix-pathRestart the terminal after changing PATH.
Make sure the hook and spoken skill are installed, then restart the coding tool:
npx --yes @micsushi/agent-hotline install --harness all --skill allThen say hotline on or read aloud on in Codex, Claude Code, or Antigravity.
npm test
npm run lint
npm run format:check
npm run checkdocs/ Human setup notes
packages/backend/ Local API, queue, settings, hook command
packages/desktop/ Tauri tray app and control panel