← Back to Skills Marketplace
jpreagan

imsgctl

by James Reagan · GitHub ↗ · v1.0.0 · MIT-0
darwinlinux ✓ Security Clean
127
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install imsgctl
Description
Read Apple Messages data with imsgctl: check access, list chats, inspect message history, filter by time, include attachment metadata, and watch new activity...
README (SKILL.md)

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 --json when results may be parsed or reused.
  • imsgctl health --json emits one JSON object.
  • imsgctl chats --json, history --json, and watch --json emit JSONL.
  • Use --db PATH when the user gives a specific database path or when the backend must be explicit.
  • Use watch only for live monitoring. It streams until interrupted.

Defaults And Access

  • On macOS, running without --db prefers ~/Library/Application Support/imsgkit/replica.db when a valid replica exists. Otherwise it falls back to ~/Library/Messages/chat.db.
  • On Linux, running without --db reads ~/.local/share/imsgkit/replica.db, or $XDG_DATA_HOME/imsgkit/replica.db when XDG_DATA_HOME is set to an absolute path.
  • Direct access to ~/Library/Messages/chat.db requires 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

  1. Run imsgctl health --json to confirm access.
  2. Run imsgctl chats --limit 20 --json to identify the target chat.
  3. Use the returned chat ID with imsgctl history --chat-id ... --json.
  4. Add --start, --end, --limit, or --attachments only as needed.
  5. Use imsgctl watch only 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.
Usage Guidance
This skill is coherent for inspecting local Apple Messages data, but you should consider privacy and trust before installing: imsgctl will read highly sensitive local data (chat.db or replica.db) and on macOS may require Full Disk Access for the agent process. The brew formula comes from a third‑party tap (jpreagan/tap) — verify you trust that source before installing. Note that the instructions recommend using sips or ImageMagick to produce attachment previews; those tools may not be present and using /tmp for previews can expose temporary files. If you want to limit risk, only invoke the skill interactively (don’t grant it broad autonomous execution), verify the brew formula source, and ensure the agent process has only the minimal permissions needed (do not grant Full Disk Access unless you intentionally want the agent to read Messages data).
Capability Assessment
Purpose & Capability
Name/description match the runtime instructions: the skill is an instruction-only wrapper around the imsgctl CLI for listing chats, reading history, attachments, and watching activity. Required binary (imsgctl) and the brew formula are appropriate for this purpose.
Instruction Scope
SKILL.md instructs only local reading of message databases and using imsgctl flags/paths. It references macOS Full Disk Access and local DB paths (~/Library/Messages/chat.db and imsgkit replica.db locations) which is expected. Note: it also suggests using external tools (sips on macOS, magick on Linux) to generate image previews — these binaries are not declared as required but are optional utilities for handling attachments.
Install Mechanism
Install is via a Homebrew formula (jpreagan/tap/imsgctl). Homebrew taps are a common distribution method; this is a third-party tap (not the core/homebrew tap) which is reasonable given the project, but installing third-party taps carries more supply-chain risk than using an official repo. No archive downloads or obscure URLs are used in the install spec.
Credentials
The skill requests no credentials or environment variables. The SKILL.md references standard environment behavior (e.g., XDG_DATA_HOME) only for locating DB paths; that is proportional to the task.
Persistence & Privilege
always is false (no forced permanent inclusion). The skill is user-invocable and can be invoked autonomously by the agent (platform default). It does not request modifying other skills or system-wide settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install imsgctl
  3. After installation, invoke the skill by name or use /imsgctl
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Read your Apple Messages from any machine.
v0.2.0
Read your Apple Messages from any machine.
Metadata
Slug imsgctl
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is imsgctl?

Read Apple Messages data with imsgctl: check access, list chats, inspect message history, filter by time, include attachment metadata, and watch new activity... It is an AI Agent Skill for Claude Code / OpenClaw, with 127 downloads so far.

How do I install imsgctl?

Run "/install imsgctl" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is imsgctl free?

Yes, imsgctl is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does imsgctl support?

imsgctl is cross-platform and runs anywhere OpenClaw / Claude Code is available (darwin, linux).

Who created imsgctl?

It is built and maintained by James Reagan (@jpreagan); the current version is v1.0.0.

💬 Comments