Open source · Runs locally · No cloud

Your texts,
AI-native

An open-source Google Messages client that gives AI assistants full read/write access to your SMS and RCS messages. Text from your desktop with MCP support built in.

Download for Mac View source
OpenMessage app showing a conversation with messages, reactions, and a sidebar of recent chats
Features
Everything you need,
nothing you don't

Full Google Messages parity

SMS, RCS, group chats, inline images and videos, emoji reactions, reply threads, read receipts, delivery status, and contact avatars.

MCP tools + Claude Code plugin

Seven structured tools for AI assistants via Model Context Protocol. Built-in SSE server, plus a Claude Code plugin with /messages command.

Runs locally

Your messages never leave your machine. SQLite database, local binary, no cloud account required. You own your data completely.

Native macOS app

Swift app with menu bar presence, native notifications, keyboard shortcuts, and dark/light mode. Not Electron — 28 MB universal binary.

Full-text search

Search across all your messages instantly. Keyboard shortcuts (Cmd+K), arrow key navigation, unread badges, and real-time updates.

Open source

Apache 2.0 licensed. Swift + Go, fully tested. Built on the battle-tested mautrix/gmessages library for the Google Messages protocol.

Quick start
Up and running in 60 seconds
1

Download and install

Download OpenMessage.dmg, open it, and drag to Applications. On first launch, right-click → Open to bypass Gatekeeper (it's unsigned).

2

Open and pair

The app walks you through pairing with your phone — scan a QR code and you're done.

3

Connect to AI

The app runs an MCP server automatically. Add it to Claude Code:

claude mcp add -s user --transport sse openmessage http://localhost:7007/mcp/sse
AI integration
Let your AI read and send texts
MCP

Model Context Protocol server

OpenMessage runs an SSE-based MCP server at localhost:7007/mcp/sse whenever the app is open. Any MCP-compatible client (Claude Code, Cursor, etc.) can connect.

list_conversations
Recent chats with unread counts
get_messages
Messages in a conversation
search_messages
Full-text search across all texts
send_message
Send SMS/RCS to any number
list_contacts
Known contacts from history
get_conversation
Single conversation details
get_status
Connection status and paired phone info
Plugin

Claude Code plugin

Install the plugin for a /messages slash command that gives Claude context about the MCP tools and best practices for handling texts.

# In your Claude Code settings, add the plugin source:
"pluginSources": {
  "openmessage": "/path/to/openmessage/.claude-plugin"
}

# Then enable it:
"enabledPlugins": {
  "openmessage@openmessage": true
}
🦞

OpenClaw integration

OpenClaw supports WhatsApp, Telegram, Discord, Signal, and iMessage — but not SMS/RCS. OpenMessage fills that gap. Connect via the MCP plugin:

// ~/.openclaw/openclaw.json
"mcp-integration": {
  "enabled": true,
  "config": {
    "servers": {
      "openmessage": {
        "transport": "http",
        "url": "http://localhost:7007/mcp/sse"
      }
    }
  }
}
Any

Works with any MCP client

OpenMessage speaks standard MCP over SSE. Any MCP-compatible client — Cursor, Windsurf, Cline, custom agents — can connect to localhost:7007/mcp/sse and get full read/write access to your texts.