claude-phone MCP

Настольный SIP-телефон звонит из сессии Claude Code, а ваш голос по добавочному номеру печатается в нужную сессию.

  • 95 ★ репозитория
  • Последний коммит
MCP-сервер

Широкий доступ

Почему такой уровень

  • Хуки в глобальных настройках Claude Code видят запуск, завершение и каждый запрос каждой сессии
  • Демон печатает распознанную речь в терминал iTerm2 и получает право управлять им в macOS
  • Секреты SIP и ElevenLabs лежат в связке ключей, а текст реплик уходит в ElevenLabs при выборе облачной озвучки
Все причины и проверки

risingpower/claude-phone

Установка

Ручная установка

claude mcp add --scope user claude-phone -- "$PWD/.venv/bin/phone" mcp

Выполняйте из папки репозитория после сборки окружения Python; еще нужны четыре хука в `~/.claude/settings.json`.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Хуки в глобальных настройках Claude Code видят запуск, завершение и каждый запрос каждой сессии
  • Демон печатает распознанную речь в терминал iTerm2 и получает право управлять им в macOS
  • Секреты SIP и ElevenLabs лежат в связке ключей, а текст реплик уходит в ElevenLabs при выборе облачной озвучки

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

claude-phone превращает офисный телефон в голосовую линию к сессиям Claude Code на Mac. Агент вызывает инструмент `call_<имя>`: телефон звонит с `репозиторий/ветка` на дисплее, а устный ответ возвращается агенту как результат вызова. Инструмент `notify_<имя>` зачитывает короткое объявление и кладет трубку, `transfer_call` переключает на другую сессию. В обратную сторону работает набор добавочного: каждая живая сессия получает номер от 301 до 399, сказанные слова печатаются во вкладку iTerm2 этой сессии. Неотвеченные вопросы копятся в голосовой почте. Все крутится локально: телефонная станция Asterisk, распознавание речи whisper.cpp, озвучка через macOS `say` или ElevenLabs и небольшой демон на Python.

Для кого. Тем, кто запускает несколько сессий Claude Code на Mac с iTerm2 и хочет отвечать агентам голосом, не садясь за клавиатуру.

Подходит, если

  • Долгая задача идет в фоне, а вы отошли от стола: агент звонит, когда нужно решение.
  • Несколько сессий делят один канал связи, и по добавочному номеру вы обращаетесь к нужной.
  • Агент закончил работу, и хватит короткого голосового объявления на трубке.
  • Ответ проще продиктовать: речь распознается локально и печатается в сессию.

Не подходит, если

  • Вы на Windows, Linux или Mac с процессором Intel: инструкций там нет, схема держится на iTerm2, `say`, связке ключей и launchd.
  • SIP-телефона нет, а возиться с Asterisk не хочется: голосовой ввод не окупит настройку.
  • Claude Code работает вне iTerm2, потому что слова вводятся через его вкладки.

Пример запроса к агенту

Позвони мне, когда тесты закончатся, и спроси, выкатывать ли ветку.

MCP

Транспорт
stdio
Авторизация
не нужна

Переменные окружения

ELEVENLABS_API_KEY секрет
Ключ ElevenLabs для облачной озвучки, по умолчанию используется голос macOS.

Ограничения

Только Apple Silicon (M1 и новее): все построено на macOS. Нужны iTerm2, Homebrew, Python 3.12 и выше, инструменты командной строки Xcode для сборки Asterisk и около 1 ГБ на модель речи, которая скачивается при первом запуске. Автор тестировал телефон Yealink T31P, другие SIP-телефоны не проверены, бесплатный Linphone годится для пробы. ElevenLabs и ntfy для пуш-уведомлений необязательны. Хуки пишутся в глобальный `~/.claude/settings.json`, а фрагмент для `CLAUDE.md` добавляется вручную.

Как отключить. Остановите сервисы launchd, уберите MCP-сервер командой `claude mcp remove claude-phone` и удалите четыре хука из `~/.claude/settings.json`. Каталог `~/.claude-phone` стирают вручную.

Частые вопросы

Уходит ли голос в облако?

Нет, речь распознается локально через whisper.cpp. Наружу идет только текст в ElevenLabs, если выбрана эта озвучка, и пуши о пропущенных звонках, если их настроили.

Какой телефон нужен?

SIP-аппарат в одной сети с Mac. Автор собирал на Yealink T31P, питание у него по кабелю PoE. Для пробы подходит бесплатное приложение Linphone.

Как получить ответ агента на звонок?

Агент вызывает `call_<имя>`, например `call_sam` при `owner_name = "Sam"`. Телефон звонит, а сказанный вами ответ приходит агенту как результат инструмента.

Что будет с неотвеченными вопросами?

Они ложатся в голосовую почту, загорается индикатор сообщений. Нажмите Message и ответьте на каждый вопрос: ответы напечатаются в спросившие сессии.

Сколько сессий можно держать на линии?

Добавочные 301–399 раздаются живым сессиям Claude Code, список показывает команда `phone list`. Набор нуля соединяет с оператором, девятка пишет во все сессии сразу.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы
Нужен VPN

Плагин для Claude Code, который звонит вам по телефону, когда агент закончил задачу, застрял или нужно решение

ПлагинШирокий доступ2,7 тыс.Звезды репозитория

Набор поверх Claude Code для macOS: постоянные рабочие чаты, голосовой разговор с сессией и панели Workers и Spaces.

ПлагинШирокий доступ53Звезды репозитория

Claudette ведет несколько сессий Claude Code параллельно, каждую в своем рабочем дереве git, из окна или из консоли

CLIШирокий доступ87Звезды репозитория

Плагин-канал Claude Code и PWA на телефоне: личная переписка с сессией агента через ваш сервер, без сторонних сервисов чата

ПлагинШирокий доступ343Звезды репозитория

Телефон как пульт для Claude Code, Codex и OpenCode: смотрите работу агента и подтверждайте действия; агент остается на ПК.

CLIШирокий доступ157Звезды репозитория

Мост-сервер и мобильное приложение: сессии Claude Code и Codex с вашего компьютера открываются чатом в телефоне

CLIШирокий доступ1,1 тыс.Звезды репозитория

Коротко о README

Проект собирает телефонную линию между вами и сессиями Claude Code: станция Asterisk, распознавание речи, озвучка, MCP-инструменты звонков и хуки сессий. README ведет по установке на Mac и по настройке телефона.

Бейдж для README

Сообщить о проблеме