feat(gateway): add iMessage platform adapter#3687
Open
KumarVandit wants to merge 1 commit intoNousResearch:mainfrom
Open
feat(gateway): add iMessage platform adapter#3687KumarVandit wants to merge 1 commit intoNousResearch:mainfrom
KumarVandit wants to merge 1 commit intoNousResearch:mainfrom
Conversation
Adds iMessage as a first-class messaging platform with two modes: - Local (macOS): polls ~/Library/Messages/chat.db for inbound messages, sends via AppleScript. Handles images, audio, and file attachments. - Remote (any OS): talks to Photon advanced-imessage-http-proxy over HTTP. Supports text, replies, effects, file/image/audio sending, tapbacks, typing indicators, mark read/unread, message search, chat history, attachment download, and iMessage availability checks. Integration touches: Platform enum, gateway runner, session PII, prompt hints, toolsets, cron delivery, send_message tool, channel directory, CLI setup wizard, CLI status, and documentation.
9de3fea to
e913637
Compare
Author
|
Hi team! Just wanted to flag this PR for review when you get a chance. It adds iMessage as a new gateway platform (local macOS + remote via Photon proxy), with 48 tests and full docs. Happy to address any feedback. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
What
Adds iMessage as a first-class messaging platform in the Hermes gateway, supporting both local macOS mode (SQLite polling + AppleScript) and remote mode via the Photon
advanced-imessage-http-proxy.~/Library/Messages/chat.dbfor inbound messages, sends via AppleScript. macOS only, no external dependencies.Why
Hermes supports Telegram, Discord, Slack, WhatsApp, Signal, and SMS — but not iMessage, despite it being the default messaging platform for hundreds of millions of Apple users. This gap means macOS users can't interact with their Hermes agent through the app they use most. Adding iMessage brings Hermes to the platform where many users already spend their time, and the remote mode via Photon makes it accessible without requiring the user to run Hermes on a Mac.
Changes across 23 files
gateway/platforms/imessage.pyIMessageAdapterimplementation (~1000 lines)gateway/config.pyPlatform.IMESSAGEenum, env var overrides, connectivity gatinggateway/run.py,gateway/session.py,gateway/channel_directory.pyagent/prompt_builder.py,agent/redact.pytools/send_message_tool.py,tools/cronjob_tools.py,toolsets.pyhermes-imessagetoolsethermes_cli/gateway.py,hermes_cli/status.py,hermes_cli/main.py,hermes_cli/tools_config.py,hermes_cli/skills_config.pytests/gateway/test_imessage.pywebsite/docs/user-guide/messaging/imessage.md,website/docs/user-guide/messaging/index.md,website/docs/reference/environment-variables.md,README.md,AGENTS.md,CONTRIBUTING.mdHow to test
Remote mode (any OS)
Local mode (macOS only)
Unit tests
Platforms tested