Skip to content

About

Talk to Claude Code while it works. A full-duplex voice companion powered by GPT Live 1.

Topics

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Repository files navigation

Full-Duplex Code logo

Full-Duplex Code

Talk to Claude Code, Codex or Pi while it works.

▶ Watch it in action: I Coded From the Shower Without Looking at Claude Code

Full-Duplex Code: hand off a game change, take a bath, check in and redirect by voice, then come back to the finished game

Full-Duplex Code adds a voice companion to the coding agent you already use. The agent keeps its normal terminal, typing included. In the browser, a companion powered by GPT Live 1 follows what the agent does: its messages, edits, commands and tool results. It answers your questions from that, and passes your requests to the agent, even in the middle of a turn.

You don't have to stay at your desk. Hand off a task, go do something else, and keep talking to your agent from wherever you are: check in, change your mind, and hear when it's done.

Core principles

Every change is judged by what it does for you, the operator, on five objectives. They pull against each other, so we keep only settings that nothing beats on all five at once (the Pareto frontier), and your preferences choose among those.

  1. You come first. What you say reaches GPT Live at once and gets an answer or goes to the agent. GPT Live doesn't start talking over you, and a request for work always reaches the agent: losing work is the one error that does real damage.
  2. Answer instead of delegating. GPT Live answers every question it can from what it already knows, and passes on only work and the questions it can't answer. Each question sent to the agent costs you a wait and the agent's attention.
  3. Synthesis, not narration. GPT Live speaks in complete, coherent thoughts that boil a lot of activity down to what matters. Coherence bought by giving it less to say doesn't count.
  4. Know as much as possible. GPT Live gets as much of the agent's work as it can use: what it never receives, it can't tell you.
  5. Fresh enough. Everything else arrives soon enough to be useful, without getting in the way of the above.

Rates, batch sizes and prompt wording are means, never objectives. How each objective is measured.

Quickstart

You need macOS (the tested setup), Node.js 22.18 or newer, Chrome, a microphone, Claude Code, Codex 0.155 or newer, or Pi 1.0, installed and signed in, and an OpenAI API key with access to GPT Live 1.

1. Install

git clone https://github.com/CakeCrusher/full_duplex_code.git
cd full_duplex_code
npm ci
npm link                                    # puts the fdc command on your PATH
echo 'OPENAI_API_KEY=your-key-here' >> .env
fdc doctor                                  # checks the setup; spends nothing

Why a key and not your ChatGPT plan: Sign in with ChatGPT doesn't currently support GPT Live's voice endpoint, and there's nothing we can do about it on our side. If you'd like it, ask OpenAI to prioritize it on the developer forum (more).

2. Start your agent through fdc

In your project's folder, put fdc in front of the command you normally run. Everything after the agent's name reaches it unchanged.

cd /path/to/your/project
fdc claude          # or: fdc claude --dangerously-skip-permissions
fdc codex           # or: fdc codex --model gpt-5.5
fdc pi              # or: fdc pi --continue

3. Connect and talk

  1. Open the link fdc prints in Chrome.
  2. Press Enter in the terminal to start the agent. Claude Code asks you to confirm its development channel; choose I am using this for local development.
  3. Click Start voice and allow the microphone.
  4. Talk: "Ask Claude to add a dark mode." "What is it doing right now?" "Actually, use SQLite."

You can keep typing to the agent too, and ask the companion about it: "What did I just tell Claude?"

4. Stop

  • End voice closes the voice connection and its billing, about $0.05 a minute. The agent keeps working.
  • Resume voice picks the conversation up where it left off, even after restarting fdc; Start fresh begins a new one. If the voice connection drops, it reconnects by itself.
  • Exiting the agent stops everything: /exit in Claude Code, Ctrl-C twice in Codex or Pi.

From your phone

Install cloudflared once (brew install cloudflared), then add --public:

fdc --public claude

The launcher prints a phone link and a QR code once the link works. Open the page on your computer and your phone, in any order. Voice runs in one of them, and Move voice here brings it to the other. Keep the link private: anyone who has it can direct your agent.

Everyday commands

Command What it does
fdc claude --resume SESSION_ID Resume a Claude Code conversation
fdc codex resume SESSION_ID Resume a Codex session
fdc pi --continue Continue the last Pi session in this folder
fdc --public codex Also reach the companion from your phone
fdc --voice cedar claude Pick the GPT Live voice (default marin)
fdc doctor Check the setup without API spending
fdc usage Show recorded voice usage and its cost
fdc --help All options

How it works

Full-Duplex Code: talk to the voice companion while Claude Code keeps working

  • fdc starts a small bridge on this computer, then your agent's own command in the terminal.
  • The agent's hooks report what it does (for Pi, an extension loaded for that run). The bridge turns that into context for GPT Live.
  • Your voice goes from the browser straight to OpenAI. Requests reach the agent through Claude Code's channel, Codex's app server or that Pi extension, even mid-turn.

Learn more

  • User guide: the page and its timeline, what the companion follows, resuming, costs and troubleshooting.
  • Contributing: support another coding agent, and how changes are reviewed.
  • Principles: the rules behind the companion and its adapters.

Why an API key, not your ChatGPT plan?

We'd love to let you sign in with ChatGPT and use the plan you already pay for. Today OpenAI doesn't allow it: Sign in with ChatGPT covers text requests only, and GPT Live's voice endpoint refuses plan sign-ins (what we tested). If you'd like voice on your plan too, please tell OpenAI on the developer forum. The more people ask, the more likely it changes.

License

PolyForm Noncommercial 1.0.0: free for noncommercial use; commercial use is not granted. Built by Sebastian Sosa (Noemica).

About

Talk to Claude Code while it works. A full-duplex voice companion powered by GPT Live 1.

Topics

Resources

Contributing

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages