Your AI Message Hub
Connect iMessage, RetroCode, and webhooks to Claude AI. Messages push instantly via Channels. Replies route back to the source. Every morsel counts.
Download for macOSv1.1.0 · macOS 12+ (Apple Silicon) · Free · Signed & Notarized
Send an iMessage from your phone. Claude writes BASIC code in RetroCode and renders 8-bit graphics — all automatically.
MorselHub v1.1.0 — messages, dashboard, and leaderboard
Ask Claude to draw a frog via MorselHub — BASIC code + 8-bit graphics
Claude Code calling RetroCode MCP tools to draw the frog
Phone → iMessage → MorselHub → Claude → RetroCode editor + GFX display. Every morsel counts.
Ask Claude anything via iMessage — "How many Super Mario Bros games are there?" → instant detailed reply
RetroCode supports multiple programming modes — all controllable by Claude through MorselHub's MCP bridge.
Assembly mode — write 6502-style code with AI assistance
Python mode — Claude wrote and ran a native macOS dialog
Major upgrade to iMessage parsing, security, attachments, and the settings UI.
Ported from Anthropic's official iMessage plugin. Handles attributed strings, tapbacks, URLs, and edge cases correctly.
Switched to argv-based AppleScript execution. User-controlled text never enters the script source. SMS messages are filtered out automatically.
Messages now carry chat GUIDs. Claude can reply to a specific conversation thread using chat_guid in morselhub_reply.
Receive image attachments from iMessage contacts. Claude can also send files and images back via the new /api/send-imessage-file endpoint.
Replies include "Sent by Claude" by default. Customize or disable the signature in Settings.
Long replies are automatically split into properly sized iMessage chunks so nothing gets truncated.
Claude can send files and images back to contacts via iMessage using the files parameter in morselhub_reply.
Redesigned settings with 4 clean tabs. Easier to configure contacts, keywords, signatures, and connections.
Senzall loves working with Agentic AI so much he wanted a way to talk to it anytime — using retro tools and modern gadgets alike. Ever since that first TRS-80 in the 1980s and learning Assembly, Pascal, and many other languages over the years, Senzall has been sharing his love of all things tech with friends, family, and strangers.
MorselHub is a growing set of connectors you can use with Claude — and soon other AI platforms — to have safe and exciting interactions. Every morsel of a message, every small bit of an idea, gets delivered to your AI assistant instantly. Every morsel counts.
Messages arrive from any source. MorselHub displays them in a live feed, pushes actionable ones to Claude via the MCP Channel protocol, and routes Claude's replies back to the original sender — including iMessage replies via AppleScript.
Listen for messages with a keyword trigger from approved contacts. Replies go back as iMessages automatically. Supports image attachments, reply signatures, and SMS filtering.
Bridge to RetroCode's chat panel. Code in Assembly or BASIC while chatting with Claude.
POST to /api/message from any app — CI pipelines, monitoring alerts, custom integrations.
Messages push to Claude instantly via MCP Channels using the official @modelcontextprotocol/sdk.
Strict contact allowlist. Blocked senders never reach Claude. Master contact alerts. Prompt injection protection. Argv-based AppleScript (no injection). SMS filtering.
Stats grid, contact leaderboard, activity log (last 100 entries persisted to JSON).
Default, Dark, Standard, Light, RPG, and High Contrast — same themes as RetroCode.
Designate a master contact who receives iMessage alerts when blocked senders try or non-master contacts message Claude.
Requires Full Disk Access permission. Only approved contacts with the keyword trigger Claude. Blocked senders are logged but never forwarded.
Claude has both MorselHub tools AND RetroCode's 23 MCP tools. It can write code, run programs, manage files, and control the terminal — all from a chat message.
Works with any system that can send an HTTP POST — CI pipelines, monitoring tools, Slack, Teams, Discord, or your own apps.
Webhooks let any application send messages to Claude through MorselHub. Send a POST request, Claude processes it, and optionally sends the reply back to your callback URL.
POST a JSON body to /api/message with these fields:
Send a message to Claude. The response appears in MorselHub's feed but isn't sent back to your app.
Include reply_to with your callback URL. Claude's reply is POSTed back as {"text":"..."}.
When Claude replies, MorselHub POSTs to your callback URL:
Send build failures to Claude for analysis. "Build failed with error X — what's wrong and how do I fix it?"
Forward server alerts to Claude. "CPU at 95% on prod-web-3. What should I check?" Get intelligent triage suggestions.
Set up an outgoing webhook in your chat platform that POSTs to MorselHub. Claude responds via the callback URL back into your channel.
Any app that can make HTTP requests can talk to Claude through MorselHub. Add AI to your internal tools with a single POST.
MorselHub's API runs on localhost. To receive webhooks from external services, use a tunnel:
This gives you a public URL like https://abc123.trycloudflare.com. Use it as your webhook endpoint: https://abc123.trycloudflare.com/api/message
GitHub can't POST directly to MorselHub's format, but a small middleware can bridge them. Here's a complete setup:
Step 1: Start a tunnel
Step 2: Run a small bridge script
Save as github-bridge.mjs and run with node github-bridge.mjs:
Step 3: Configure GitHub
Now every push, PR, or issue appears in MorselHub's feed and Claude can analyze it — "Why did this build fail?" or "Review this PR."
You can also read all messages (from any source) via the feed endpoint:
Returns a JSON array of all messages with id, source, sender, text, timestamp, and reply_to.
Desktop app framework. Rust backend for performance and security. Vue 3 frontend. Small binary, native menus, system tray.
HTTP API server (tiny_http), iMessage SQLite reader (rusqlite), PTY terminal, argv-based AppleScript iMessage sender. All on port 21590.
Reactive UI with message feed, source filters, dashboard stats, contact management, setup wizard, 6 themes.
Official @modelcontextprotocol/sdk for Claude Code Channels. StdioServerTransport for subprocess communication.
Messages write to ~/.morselhub/push.jsonl. MCP server watches with fs.watchFile() and pushes to Claude instantly. No HTTP polling.
Contact allowlist with exact match. Keyword filtering. Blocked sender logging. Master contact iMessage alerts. Localhost-only API. Argv-based AppleScript execution. SMS filtering.
MorselHub exposes 5 tools to Claude via the MCP protocol. When used with RetroCode, Claude also gets 23 additional tools for code editing, file management, and terminal control.
MorselHub runs a local HTTP API on port 21590. All endpoints are localhost-only.
MorselHub reads your iMessage database (~/Library/Messages/chat.db) to detect incoming messages. macOS requires Full Disk Access for this.
During development, add Terminal.app instead (the dev binary inherits its permissions).
Only messages from people you explicitly approve will ever reach Claude. Unknown senders are blocked and logged. You can designate a master contact to receive iMessage alerts about security events.
Be very careful who you add to your contact list. Anyone on the list can send messages that Claude will act on — including running commands, editing files, and accessing your computer via Claude Code's tools.
Token usage: Every message forwarded to Claude consumes tokens from your Claude subscription. Frequent or large messages will increase your token usage.
Computer access: Claude Code has access to your local files, terminal, and development tools. Messages from approved contacts can trigger Claude to take actions on your machine.
Use at your own risk. MorselHub is provided as-is, without warranty. The developers are not responsible for any actions taken by Claude in response to forwarded messages, any unauthorized access, data loss, or token charges. You are solely responsible for managing your contact list and monitoring Claude's activity.
A clowder is a group of cats. These are ours.
Connect iMessage, RetroCode, and webhooks to Claude. Messages push instantly via Channels. Replies route back to the source.