claude-phone MCP
Настольный SIP-телефон звонит из сессии Claude Code, а ваш голос по добавочному номеру печатается в нужную сессию.
- 95 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Хуки в глобальных настройках Claude Code видят запуск, завершение и каждый запрос каждой сессии
- Демон печатает распознанную речь в терминал iTerm2 и получает право управлять им в macOS
- Секреты SIP и ElevenLabs лежат в связке ключей, а текст реплик уходит в ElevenLabs при выборе облачной озвучки
Установка
- Работает в
Ручная установка
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-серверыПлагин для Claude Code, который звонит вам по телефону, когда агент закончил задачу, застрял или нужно решение
Набор поверх Claude Code для macOS: постоянные рабочие чаты, голосовой разговор с сессией и панели Workers и Spaces.
Claudette ведет несколько сессий Claude Code параллельно, каждую в своем рабочем дереве git, из окна или из консоли
Плагин-канал Claude Code и PWA на телефоне: личная переписка с сессией агента через ваш сервер, без сторонних сервисов чата
Телефон как пульт для Claude Code, Codex и OpenCode: смотрите работу агента и подтверждайте действия; агент остается на ПК.
Мост-сервер и мобильное приложение: сессии Claude Code и Codex с вашего компьютера открываются чатом в телефоне
Коротко о README
Проект собирает телефонную линию между вами и сессиями Claude Code: станция Asterisk, распознавание речи, озвучка, MCP-инструменты звонков и хуки сессий. README ведет по установке на Mac и по настройке телефона.