{
  "markdown": "# noisy-coding\n\n**Talk to Claude Code while it works — Jarvis-style voice coding.**\nIt's your voice that's noisy, not your code.\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/noisy/noisy-coding)](https://hub.docker.com/r/noisy/noisy-coding)\n[![Release](https://img.shields.io/github/v/release/noisy/noisy-coding)](https://github.com/noisy/noisy-coding/releases)\n[![CI](https://github.com/noisy/noisy-coding/actions/workflows/ci.yml/badge.svg)](https://github.com/noisy/noisy-coding/actions/workflows/ci.yml)\n[![Last commit](https://img.shields.io/github/last-commit/noisy/noisy-coding)](https://github.com/noisy/noisy-coding/commits/main)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Glama score](https://glama.ai/mcp/servers/noisy/noisy-coding/badges/score.svg)](https://glama.ai/mcp/servers/noisy/noisy-coding)\n\nClaude speaks short summaries aloud. An always-on listener turns your\nspeech into messages Claude receives **mid-task, without stopping it** —\nno push-to-send, no copy-pasting transcripts. Step away from the keyboard\nand keep steering your agent.\n\n## Why you'll like it\n\n- **Interrupt-free flow** — speak while Claude is working; your words land\n  in the running session, not a text box.\n- **Hands-free reviews** — Claude reads its findings aloud; you answer\n  from across the room.\n- **Live \"tactical HUD\" dashboard** — conversation log with replay/recall,\n  real-time oscilloscope, mute buttons, costs and latencies at a glance.\n- **Per-agent character** — voice, speed, and personality dials for every\n  agent, all from the dashboard.\n- **Nothing to configure in files** — API key, devices, language,\n  push-to-talk: everything lives in the UI and persists.\n- **Never talks over you** — one voice at a time; speech you missed parks\n  as UNHEARD and a CATCH UP button replays it.\n\nSpeech-to-text and text-to-speech run on the\n[Grok (xAI) Voice API](https://docs.x.ai/developers/rest-api-reference/inference/voice) —\nextremely cheap in practice (a small one-time budget lasts months of\ndaily use).\n\n## Install in 2 minutes\n\nThe backend ships as a hardware-free Docker image\n([`noisy/noisy-coding`](https://hub.docker.com/r/noisy/noisy-coding)):\nthe dashboard browser tab is the microphone and the speaker. You need\nDocker and a browser — no Python, no git, no environment variables.\n\n```bash\n# terminal: marketplace + plugin in one line\nclaude plugin marketplace add noisy/noisy-coding && claude plugin install noisy-coding@noisy\n```\n\n```\n# inside Claude Code (new session):\n/noisy-coding:setup\n```\n\nThe setup command starts the published image and walks you through first\ncontact. Then finish in the browser at <http://127.0.0.1:8765>: paste\nyour xAI API key (console.x.ai) and click the amber **ENABLE TAB AUDIO**\nbanner — that one click makes the tab your microphone and speaker. Keep\nthe tab open and just talk.\n\nPrefer staying inside Claude Code? Same thing, four commands:\n`/plugin marketplace add noisy/noisy-coding` →\n`/plugin install noisy-coding@noisy` → `/reload-plugins` →\n`/noisy-coding:setup`.\n\nOther setups — plain Docker without the plugin, native install with\nhardware mic/speakers, remote hosts, all configuration knobs — live in\n[docs/INSTALL.md](docs/INSTALL.md).\n\n## How it works\n\nAll speech logic lives in one **listener daemon** — the single owner of\nthe microphone, the playback queue and the speakers. The MCP server is a\nthin messenger that forwards `speak` requests; Claude Code hooks deliver\nyour transcribed speech back into the session (see\n[docs/hooks.md](docs/hooks.md)).\n\n```\nmic (hardware or browser tab via WS :8766)\n  -> VAD -> Grok STT -> transcript queue -> HTTP :8765\n                              ^ polled by Claude Code hooks\nspeak (MCP, stdio or HTTP :8767) -> POST /speak -> daemon queue\n  -> Grok TTS -> speakers (hardware or browser tab)\n```\n\n## Tools\n\n| Tool | What it does |\n| --- | --- |\n| `speak(text, interrupt?)` | Queues `text` for speech and waits until it has played. Voice/speed/language come from the daemon (dashboard character), not the call. |\n| `announce(text)` | Fire-and-forget variant: returns immediately, plays in the background. |\n| `change_voice(voice_id)` | Deliberately switches this agent's voice (persists, shows on the dashboard). |\n| `list_voices()` | Lists the built-in Grok voices (`ara`, `eve`, `leo`, `rex`, …). |\n\n## Docs\n\n- [docs/INSTALL.md](docs/INSTALL.md) — plain Docker, native install,\n  remote hosts, environment variables, development commands\n- [docs/hooks.md](docs/hooks.md) — how Claude hears you\n- [docs/ports.md](docs/ports.md) — what each port is for\n- [docs/local-development.md](docs/local-development.md) — hacking on\n  noisy-coding itself\n\n## License\n\n[MIT](LICENSE) © Krzysztof Szumny\n",
  "bytes": 4741,
  "sha": "3f526dc1fddfca5d05966a5768d3a21d7e937052a23811d4fe11fc3e5e695256",
  "repo_slug": "noisy/noisy-coding",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_noisy_noisy_coding_871bb85a/readme"
}