imsg CLI
imsg — консольная утилита для macOS: агент читает чаты Messages, следит за новыми сообщениями и отправляет iMessage и SMS.
- 1 406 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Утилита читает личную переписку из Messages, а `imsg send` отправляет сообщения от имени владельца Mac.
- Терминалу выдается полный доступ к диску, а это шире, чем нужно для одной базы.
Установка
- Работает в
Ручная установка
brew install steipete/tap/imsgКоманда Homebrew из раздела Install. Требуется macOS 14 или новее.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Утилита читает личную переписку из Messages, а `imsg send` отправляет сообщения от имени владельца Mac.
- Терминалу выдается полный доступ к диску, а это шире, чем нужно для одной базы.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
imsg написан на Swift. Он открывает локальную базу `~/Library/Messages/chat.db` только на чтение, а отправляет сообщения через автоматизацию Messages.app. Команды `chats`, `history`, `watch` и `send` выводят данные построчным JSON с флагом `--json`, поэтому их удобно передавать в `jq` и агентам. `imsg watch` следит за базой и сообщает о новых сообщениях, правках, отзывах и реакциях. Команда `imsg rpc` запускает долгоживущий JSON-RPC-интерфейс через stdio, а `imsg completions llm` печатает справку в форме, удобной для модели. Для работы терминалу нужен полный доступ к диску, а для отправки еще разрешение на автоматизацию Messages.
Для кого. Пользователям Mac, которые хотят, чтобы агент читал свои переписки в iMessage и отвечал по их просьбе.
Подходит, если
- В истории Messages надо найти договоренность о встрече и пересказать ее.
- Скрипт реагирует на входящие сообщения в потоке, например пишет их в журнал.
- Из задачи агента уходит короткое уведомление в iMessage или SMS.
- История чата с вложениями выгружается в JSON для анализа.
Не подходит, если
- Нет Mac: утилита работает только на macOS 14 и новее, а на Linux читает скопированную базу.
- Терминалу нельзя давать полный доступ к диску по требованиям безопасности.
- Нужно выбрать исходящий номер при нескольких номерах на одном Apple ID: `imsg send` этого не умеет.
Пример запроса к агенту
Покажи десять последних чатов через `imsg chats --limit 10`, затем найди в одном из них сообщения про билеты.Ограничения
Нужны macOS 14 или новее, полный доступ терминала к диску и разрешение на автоматизацию Messages для отправки. Контакты по желанию добавляют имена. Для SMS на iPhone включают пересылку текстовых сообщений. Сборки для Linux читают только скопированный `chat.db` и не подключаются к iMessage. При нескольких номерах на одном Apple ID выбрать исходящий номер нельзя. Через SSH имена контактов подтягиваются, только если у службы SSH есть доступ к диску. Последний коммит сделан в ноябре 2026.
Как отключить. Удалите утилиту: `brew uninstall imsg`. В настройках macOS уберите полный доступ к диску и автоматизацию Messages у терминала, если давали их только для imsg.
Частые вопросы
Как установить imsg?
Выполните `brew install steipete/tap/imsg` и проверьте `imsg --version`. Подписанные сборки лежат в GitHub Releases.
Какие разрешения нужны?
Полный доступ к диску для чтения базы. Для отправки и реакций еще автоматизация Messages. Доступ к контактам необязателен.
Как получать новые сообщения?
Команда `imsg watch --chat-id 42 --reactions --json` выводит события построчно. Для долгого сеанса есть `imsg rpc`.
Работает ли на Linux?
Частично: сборка читает базу `chat.db`, скопированную с macOS. Отправить сообщение и подключиться к iMessage с Linux нельзя.
Как отправить сообщение?
Выполните `imsg send --to "+14155551212" --text "on my way"`. Для вложений и реакций есть отдельные разделы документации.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыMCP-сервер для macOS: агент читает, ищет и отправляет сообщения в приложении Сообщения на вашем Mac
CLI и скилл для Slack: агент читает каналы и треды, ищет сообщения и файлы, а черновики и отправку выполняет только по вашему запросу
Claude-to-IM
claude-to-im
Мост между Claude Code или Codex и мессенджерами: общайтесь с агентом из Telegram, Discord, Feishu, QQ или WeChat
Go-утилита с JSON-ответами: агент читает чаты WhatsApp, ищет сообщения и контакты и отправляет тексты от вашего номера
GreenBubbles читает вашу историю WeChat на Mac, ищет по чатам и отдает агентам для заметок с цитатами. Ключ снимается вручную.
OpenKakao
OpenKakao CLI
CLI для macOS: агент читает и отправляет сообщения в уже открытом KakaoTalk через Accessibility и проверяет отправку по экрану
Коротко о README
Утилита на Swift 6 читает локальную базу Messages и вызывает AppleScript Messages.app. Вывод в формате NDJSON и JSON-RPC рассчитан на скрипты и агентов, документация лежит на imsg.sh.