ArgentOSDocs

iMessage

Connect ArgentOS to iMessage on macOS.

Overview

ArgentOS can send and receive iMessage messages on macOS by interfacing with the built-in Messages.app. This is a macOS-only channel that leverages AppleScript and the Messages framework.

iMessage integration is in alpha. It requires macOS with an active iMessage account and full disk access permissions for the ArgentOS process.

Prerequisites

  • macOS (Apple Silicon or Intel)
  • An active iMessage account signed in to Messages.app
  • Full Disk Access granted to your terminal or the ArgentOS process
  • ArgentOS gateway running

Step 1: Enable Full Disk Access

ArgentOS needs to read the Messages database (~/Library/Messages/chat.db):

  1. Open System Settings > Privacy & Security > Full Disk Access
  2. Add your terminal app (Terminal.app, iTerm2, etc.)
  3. If running as a LaunchAgent, add the node binary

Step 2: Add the Channel

argent channels add imessage

Configuration

{
  "channels": {
    "imessage": {
      "enabled": true,
      "allowedContacts": [],
      "pollInterval": 5000
    }
  }
}

How It Works

  1. ArgentOS polls the Messages SQLite database for new incoming messages
  2. New messages are forwarded to the agent runtime
  3. Agent responses are sent via AppleScript tell application "Messages"

Supported Features

FeatureSupported
Text messagesYes
Images (inbound)Partial
Images (outbound)No
Group chatsNo
Tapbacks/reactionsNo
Read receiptsNo

Known Limitations

  • macOS only: This channel cannot run on Linux or Docker
  • Polling-based: New message detection depends on polling interval (default 5 seconds)
  • No rich media outbound: The agent can only send plain text responses
  • Full Disk Access required: Without it, the Messages database cannot be read
  • Single account: Only works with the iMessage account signed in on the Mac

Security Notes

The Messages database contains your entire iMessage history. Ensure your ArgentOS installation is properly secured, and use allowedContacts to restrict which conversations the agent can access.