Open source · MIT · v0.1

Let Claude Code call people.

A Claude Code plugin for macOS. Claude starts a call on Google Meet or Zoomsoon and invites the person. A voice agent asks them your questions, and Claude answers anything about your code mid-call. When they hang up, the answers are back in your session.

/plugin marketplace add robertoyamanaka/voy-voy
GitHub

then /plugin install voy@voyvoy and /voy:setup in Claude Code

Example callSam's Claude Code asks Ana, the PM, what to changemedian 1.46 s voice-to-voice
The callvoy watch
  1. ── Ana Ruiz joined ──
  2. AGENTHi Ana, I'm Sam's AI agent, and I'll be taking notes.
  3. ANAHa, okay. Hi! So, the onboarding form?
  4. AGENTSam wants to shorten it. Which fields have to stay?
  5. 1.41 s
  6. ANAEmail and company size. Do we even store company size?
  7. ?Do we already store company size? → Claude Code
  8. AGENTGood question. Let me check Sam's code.
  9. AGENTWe do. It's saved already, just optional.
  10. 1.52 s
  11. ANAThen make it required. And drop phone.
  12. ✓fields: email + company size (required), no phone
  13. ── call ended ──
Claude Code~/acme-app
  1. >/voy:call ask Ana which onboarding fields she wants
  2. ●voy_call_start contact: Ana · meet: new
  3. meet.google.com/kfp-zmqa-rdw · invite sent to Ana
  4. ●voy_call_wait
  5. Ana asked: “Do we even store company size?”
  6. ●Read src/models/account.ts
  7. ●voy_call_answer “Yes, on the Account model. Optional today.”
  8. ●voy_call_wait
  9. Call ended · 3 of 3 goals answered
  10. → .voy/calls/2026-11-16-1030-ana.md
  11. ●Making company size required, removing phone.
  12. ●Update src/onboarding/StepTwo.tsx
What it does

A phone for Claude Code.

Starts the call
Opens a Google Meet in its own purple Chrome window, waits for them, and greets them by name.
Or takes yours
Hand over the call you're already in, in Google Meet or a Slack huddle.
Answers from your code
Questions only the code can answer go to Claude Code mid-call, and come back in plain words.
Your keys, your Mac
Runs on your own LiveKit project. There's no VoyVoy server in the middle.
Silent on your Mac
The call never plays through your speakers, so you keep working while it talks.
English and Spanish
Spanglish and tech jargon come through fine.
Always disclosed
Its first words say it's an AI. No setting turns that off.
Notes for Claude
Every call lands in .voy/calls/ with the answers, ready to act on.
MIT licensed
Read every line, fork it, swap any piece.
How it works

Two brains on every call.

Voice needs speed and your codebase needs depth, so VoyVoy splits the job. A fast talker runs the conversation on LiveKit. The slow reasoner is the Claude Code session you're already in, with your whole repo in context.

It's the Talker–Reasoner pattern from Google DeepMind, built on LiveKit's subagent delegation. The twist: the reasoner isn't another model call. It's you, plus Claude.

What runs each part of a call
STT (speech-to-text)deepgram/nova-3hears English, Spanish, and both at once
LLM (the talker)google/gemini-2.5-flashabout 0.4 s to its first word
TTS (the voice)cartesia/sonic-3any voice your provider has
Reasoner (the brain)your Claude Code sessionover MCP: ask · answer · steer

Swap any line in ~/.voy/config.toml. Voice-to-voice is about 1.5 s, measured on your Mac.

A call, start to finish

From /voy:call to a finished change.

Claude Codethe talkerVoyVoy

  1. PrepareClaude reads the code that matters, writes the goals, and finds the person.
  2. CallVoyVoy opens a Meet in its own window. Claude sends the invite.
  3. TalkThey join. The agent says it's an AI and works through the goals.
  4. DelegateA code question goes to Claude. The agent keeps talking while it checks.
  5. Wrap upIt reads back the plan, waits for their yes, and says goodbye.
  6. Back to workThe notes land in your session, and Claude makes the change.
Install

Three commands, all inside Claude Code.

You need macOS 14.2 or later, Google Chrome, uv, the Xcode command line tools, and a free LiveKit Cloud project.

  1. /plugin marketplace add robertoyamanaka/voy-voy
  2. /plugin install voy@voyvoy
  3. /voy:setup

/voy:setup asks for your first name and your LiveKit keys, then:

  • installs BlackHole, the free virtual mic your agent speaks through (signature checked);
  • builds the audio helper and downloads the voice models;
  • opens the purple VoyVoy agent window so you sign into Google once.
Prefer the terminal?
  1. uv tool install git+https://github.com/robertoyamanaka/voy-voy
  2. voy init
  3. voy doctor

Principles

Always disclosed.
The first words of every call say it's an AI. Code speaks that line, not the model, and there's no setting to turn it off.
Never calls without your yes.
Claude asks before calling anyone, and the invite says an AI agent is joining.
Call content isn't a command.
What people say reaches Claude as their request, never as instructions. Claude Code's permissions still apply.
Local first.
Audio goes from your Mac to your own LiveKit project. The agent's Chrome window is a separate profile that never touches yours.

Roadmap

Next

  • Gemini Live speech-to-speech as an option
  • A menu-bar light that shows when a call is on
  • A signed audio helper, so permissions survive updates
  • One-line install from PyPI

Later

  • Your own voice, with a consent check
  • Phone calls and WhatsApp
  • Slack huddles started by the agent
  • More languages, and harnesses beyond Claude Code

Install it in Claude Code.

/plugin marketplace add robertoyamanaka/voy-voy
Install guide