This skill should be used when the user asks about Apple app data via the native Swift MCP — Calendar, Reminders, Contacts, Maps, Mail, Messages, Notes, or Photos on macOS. Triggers on phrases like "check my calendar", "find contact", "send iMessage", "search my notes", "recent emails", "find photos of", or any macOS-native app automation. Requires macOS 14+ on Apple Silicon; faster than the AppleScript-backed Node variant.
Data & analysis
imsgctl
Try itRead Apple Messages data with imsgctl: check access, list chats, inspect message history, filter by time, include attachment metadata, and watch new activity...
What it does
Read Apple Messages data with imsgctl: check access, list chats, inspect message history, filter by time, include attachment metadata, and watch new activity...
The skill document
imsgctl
Use imsgctl to read Apple Messages data available on the current machine.
Use This Skill When
- The user wants to inspect iMessage or SMS data from Apple Messages.
- The user wants to list recent chats.
- The user wants message history for a specific chat.
- The user wants to filter message history by time.
- The user wants attachment metadata.
- The user wants to watch for new messages or reactions.
Do Not Use This Skill When
- The user wants to send or reply to a message.
- The user wants to delete, edit, react to, or otherwise modify Messages data.
- The request is about Slack, Discord, Telegram, Signal, WhatsApp, or another messaging system.
Operating Rules
- Prefer
--jsonwhen results may be parsed or reused. imsgctl health --jsonemits one JSON object.imsgctl chats --json,history --json, andwatch --jsonemit JSONL.- Use
--db PATHwhen the user gives a specific database path or when the backend must be explicit. - Use
watchonly for live monitoring. It streams until interrupted.
Defaults And Access
- On macOS, running without
--dbprefers~/Library/Application Support/imsgkit/replica.dbwhen a valid replica exists. Otherwise it falls back to~/Library/Messages/chat.db. - On Linux, running without
--dbreads~/.local/share/imsgkit/replica.db, or$XDG_DATA_HOME/imsgkit/replica.dbwhenXDG_DATA_HOMEis set to an absolute path. - Direct access to
~/Library/Messages/chat.dbrequires macOS and Full Disk Access for the process doing the reading. - If contact resolution is unavailable, chat and sender labels may fall back to raw identifiers.
Common Commands
Check Access
imsgctl health --json
List Recent Chats
imsgctl chats --limit 20 --json
Read Recent History For A Chat
imsgctl history --chat-id 42 --limit 50 --json
Read History With Attachment Metadata
imsgctl history --chat-id 42 --limit 50 --attachments --json
Read History In A Time Window
imsgctl history \
--chat-id 42 \
--limit 50 \
--start 2026-03-01T00:00:00Z \
--end 2026-03-02T00:00:00Z \
--json
Watch New Activity
imsgctl watch --chat-id 42 --json
Watch New Messages, Attachments, and Reactions
imsgctl watch --chat-id 42 --attachments --reactions --json
Use An Explicit Database Path
imsgctl chats --db ~/Library/Application\ Support/imsgkit/replica.db --limit 20 --json
imsgctl history --db ~/.local/share/imsgkit/replica.db --chat-id 42 --limit 50 --json
Recommended Workflow
- Run
imsgctl health --jsonto confirm access. - Run
imsgctl chats --limit 20 --jsonto identify the target chat. - Use the returned chat ID with
imsgctl history --chat-id ... --json. - Add
--start,--end,--limit, or--attachmentsonly as needed. - Use
imsgctl watchonly if the user asked for live monitoring.
Viewing Image Attachments
When --attachments reveals an image, the file is often too large to read directly. Convert it to a smaller JPEG preview, then read the result:
- macOS:
sips -s format jpeg -Z 800 "/path/to/image.heic" --out /tmp/preview.jpg - Linux:
magick "/path/to/image.heic" -resize 800x800 /tmp/preview.jpg
Failure Modes
- If direct macOS reads fail, check Full Disk Access first.
- If the expected local database path is missing, access will fail until the correct database is available on the current machine.
- If chat labels are ambiguous or missing, rely on chat IDs and raw identifiers.
Related skills
Bridge Mac-owned tools like imsg, remindctl, memo, things, and peekaboo onto a Linux OpenClaw gateway by installing explicit same-LAN SSH wrappers with optio...
Read, search, clean up, and organize inbox messages
Manage Apple Calendar events from the command line on macOS — create, update, delete, search, export, and check availability with full JSON output for agent use.
Bridge macOS-only tools into a Linux OpenClaw gateway via SSH wrappers and connected Mac nodes. Use when a Linux gateway needs to run imsg, remindctl, memo,...
邮件与消息发送助手。覆盖 SMTP 发信(Gmail / Outlook / QQ / 163 / 企业邮箱)、IMAP 收信检索、以及常见消息通知(Webhook / 企业微信 / 飞书 / 钉钉机器人)。当用户需要"发邮件""通知我""把结果发到邮箱""读取邮件"时调用。