Put Claude Code on a voice call. Talk while it codes; GPT Realtime talks back.
Python
0
2 commits
updated Oct 2, 2026
Talk while it codes. GPT Realtime talks back. A spoken “yes” never approves anything.
Demo • Install • How it works • Guide • 简体中文
Say what you want while you do something else. A realtime voice model keeps the conversation; only real requests reach your Claude Code session, which does the work in your repo and reports back by voice. In the launch video: fix a Stripe refund bug, draft an email you approve before it sends, and learn a Sylas combo, all mid-game.

sequenceDiagram
participant You
participant GPT as GPT Realtime
participant CC as Claude Code (your session)
You->>GPT: speak: "fix the refund bug and ship it"
GPT-->>You: small talk is answered right here
GPT->>CC: real requests arrive as a line tagged ⟨v#35;1⟩
CC->>CC: reads, edits, runs tests, pushes
CC-->>GPT: progress and results
GPT-->>You: reads them back, you can interrupt any time
Note over You,CC: Permission prompts go to your keyboard only. The voice cannot approve.
/bettercallgpt:on starts a voice process bound to this session only. It proves which
session started it with zero keystrokes and refuses anything else.⟨v#n⟩, so Claude treats it as you speaking./bettercallgpt:off, or stay quiet for 10 minutes.npx skills add insta-fusion/bettercallgpt -g # needs Node; macOS + Claude Code
Then tell your agent: “set up bettercallgpt”. No Node? Paste this into Claude Code instead:
Set up https://github.com/insta-fusion/bettercallgpt for me. (it follows AGENTS.md). It checks for uv
and your platform, installs the Claude Code plugin, creates an empty key file and runs a
readiness check. You do two things yourself:
/bettercallgpt:on in a new Claude Code session and approve the start. A rising tone:
you're live.Better Call GPT is free and MIT; the voice service bills your own account. Prefer to skip the skill?
Install uv, type /plugin marketplace add insta-fusion/bettercallgpt
and /plugin install bettercallgpt@bettercallgpt, fill ~/.config/bettercallgpt/.env from
.env.example, then /bettercallgpt:on.
Or pin the release without the skill: uv tool install "git+https://github.com/insta-fusion/bettercallgpt@v0.1.0".
| Voice Live (default) | GPT-Live | |
|---|---|---|
| Model | gpt-realtime-2.1 | gpt-live-1 |
| Echo | The service removes its own voice from your mic (server echo cancellation), so open speakers are fine. | Echo cancellation is not advertised, so the call's start notes “use headphones”. On open speakers it is untested: our own calls on it did not cut themselves off. |
Keys in ~/.config/bettercallgpt/.env | AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY | VOICE_LIVE_PROVIDER=gpt_live, VOICE_GPT_LIVE_ENDPOINT, VOICE_GPT_LIVE_API_KEY (its own Azure resource) |
If the AI ever cuts itself off mid-sentence while on speakers, put on headphones or switch to
Voice Live (delete the VOICE_LIVE_PROVIDER=gpt_live line).
| Command | Does |
|---|---|
/bettercallgpt:on | start a call attached to this session |
/bettercallgpt:status | one line: phase, relay |
/bettercallgpt:off | end the call |
bettercallgpt wildcard, no broad
uvx rule): it opens your microphone and a paid connection.0600). See
SECURITY.md › Privacy notes.uvx; release tags are published as immutable GitHub releases,
so a tag cannot be moved after release.| Today | Not yet | |
|---|---|---|
| Agent | Claude Code CLI on macOS, any terminal, and the Claude desktop app's Code tab (both proven live) | Cowork (runs in a VM: unsupported), Codex as a child agent (VOICE_BACKEND=process, unit-tested) |
| Voice | Azure GPT Realtime (gpt-realtime-2.1 through Azure Voice Live; default, proven live, echo-cancelled: speakers OK) and the Azure GPT-Live API (gpt-live-1, proven live; headphones) | OpenAI Realtime API (unit-tested; no echo cancellation: headphones) |
| OS | macOS | Linux/Windows: the Claude Code backend's peer check is macOS-only |
| Orca | Works in any Orca pane; when the pane proves itself (needs the orca CLI) the call also tells you when Claude is waiting on a permission prompt | long calls in that mode: unverified |
Want it in another coding agent or CLI (Codex, Gemini CLI, Cursor, Aider, …) or on another voice model or OS? Open a support request and say which one; requests decide what comes next.
Status line, running without the plugin, configuration, how it is built and tests: docs/GUIDE.md.
MIT — see LICENSE.
Python
100.0%
Put Claude Code on a voice call. Talk while it codes; GPT Realtime talks back.
Python
0
2 commits
updated Oct 2, 2026
Talk while it codes. GPT Realtime talks back. A spoken “yes” never approves anything.
Demo • Install • How it works • Guide • 简体中文
Say what you want while you do something else. A realtime voice model keeps the conversation; only real requests reach your Claude Code session, which does the work in your repo and reports back by voice. In the launch video: fix a Stripe refund bug, draft an email you approve before it sends, and learn a Sylas combo, all mid-game.

sequenceDiagram
participant You
participant GPT as GPT Realtime
participant CC as Claude Code (your session)
You->>GPT: speak: "fix the refund bug and ship it"
GPT-->>You: small talk is answered right here
GPT->>CC: real requests arrive as a line tagged ⟨v#35;1⟩
CC->>CC: reads, edits, runs tests, pushes
CC-->>GPT: progress and results
GPT-->>You: reads them back, you can interrupt any time
Note over You,CC: Permission prompts go to your keyboard only. The voice cannot approve.
/bettercallgpt:on starts a voice process bound to this session only. It proves which
session started it with zero keystrokes and refuses anything else.⟨v#n⟩, so Claude treats it as you speaking./bettercallgpt:off, or stay quiet for 10 minutes.npx skills add insta-fusion/bettercallgpt -g # needs Node; macOS + Claude Code
Then tell your agent: “set up bettercallgpt”. No Node? Paste this into Claude Code instead:
Set up https://github.com/insta-fusion/bettercallgpt for me. (it follows AGENTS.md). It checks for uv
and your platform, installs the Claude Code plugin, creates an empty key file and runs a
readiness check. You do two things yourself:
/bettercallgpt:on in a new Claude Code session and approve the start. A rising tone:
you're live.Better Call GPT is free and MIT; the voice service bills your own account. Prefer to skip the skill?
Install uv, type /plugin marketplace add insta-fusion/bettercallgpt
and /plugin install bettercallgpt@bettercallgpt, fill ~/.config/bettercallgpt/.env from
.env.example, then /bettercallgpt:on.
Or pin the release without the skill: uv tool install "git+https://github.com/insta-fusion/bettercallgpt@v0.1.0".
| Voice Live (default) | GPT-Live | |
|---|---|---|
| Model | gpt-realtime-2.1 | gpt-live-1 |
| Echo | The service removes its own voice from your mic (server echo cancellation), so open speakers are fine. | Echo cancellation is not advertised, so the call's start notes “use headphones”. On open speakers it is untested: our own calls on it did not cut themselves off. |
Keys in ~/.config/bettercallgpt/.env | AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY | VOICE_LIVE_PROVIDER=gpt_live, VOICE_GPT_LIVE_ENDPOINT, VOICE_GPT_LIVE_API_KEY (its own Azure resource) |
If the AI ever cuts itself off mid-sentence while on speakers, put on headphones or switch to
Voice Live (delete the VOICE_LIVE_PROVIDER=gpt_live line).
| Command | Does |
|---|---|
/bettercallgpt:on | start a call attached to this session |
/bettercallgpt:status | one line: phase, relay |
/bettercallgpt:off | end the call |
bettercallgpt wildcard, no broad
uvx rule): it opens your microphone and a paid connection.0600). See
SECURITY.md › Privacy notes.uvx; release tags are published as immutable GitHub releases,
so a tag cannot be moved after release.| Today | Not yet | |
|---|---|---|
| Agent | Claude Code CLI on macOS, any terminal, and the Claude desktop app's Code tab (both proven live) | Cowork (runs in a VM: unsupported), Codex as a child agent (VOICE_BACKEND=process, unit-tested) |
| Voice | Azure GPT Realtime (gpt-realtime-2.1 through Azure Voice Live; default, proven live, echo-cancelled: speakers OK) and the Azure GPT-Live API (gpt-live-1, proven live; headphones) | OpenAI Realtime API (unit-tested; no echo cancellation: headphones) |
| OS | macOS | Linux/Windows: the Claude Code backend's peer check is macOS-only |
| Orca | Works in any Orca pane; when the pane proves itself (needs the orca CLI) the call also tells you when Claude is waiting on a permission prompt | long calls in that mode: unverified |
Want it in another coding agent or CLI (Codex, Gemini CLI, Cursor, Aider, …) or on another voice model or OS? Open a support request and say which one; requests decide what comes next.
Status line, running without the plugin, configuration, how it is built and tests: docs/GUIDE.md.
MIT — see LICENSE.
Python
100.0%