Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add linq-team/claude-code-imessage-channel --skill configuregit clone --depth 1 https://github.com/linq-team/claude-code-imessage-channelWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/linq-team/claude-code-imessage-channel/configure)<a href="https://agentmods.dev/skills/linq-team/claude-code-imessage-channel/configure"><img src="https://agentmods.dev/badge/skills/linq-team/claude-code-imessage-channel/configure/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/linq-team/claude-code-imessage-channel/configure"><img src="https://agentmods.dev/badge/skills/linq-team/claude-code-imessage-channel/configure.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00028 | $0.00523 |
| Opus 5.5 | $0.00011 | $0.00209 |
| Sonnet 5.5 | $0.00006 | $0.00105 |
| Haiku 4.5 | $0.00003 | $0.00052 |
Grade B, and why
configure scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
4. Write back with permissions `600`: `chmod 600 ~/.claude/channels/imessage/.env` What it actually says
Configure iMessage Channel
Manage credentials stored in ~/.claude/channels/imessage/.env.
Parse the argument
The user runs /imessage:configure with an optional argument. Detect what they passed:
-
No argument: Read
~/.claude/channels/imessage/.envand report status. Show whetherLINQ_TOKENandLINQ_FROM_PHONEare set (mask the token, show only last 4 chars). If neither is set, guide them to get a token at https://zero.linqapp.com/api-tooling/ or runlinq signupfor a free sandbox. -
clear: Delete~/.claude/channels/imessage/.envand confirm credentials removed. -
Starts with
+or is all digits (phone number): Normalize to E.164 format (prepend +1 if 10 digits). Write or updateLINQ_FROM_PHONE=<number>in the.envfile, preserving other lines. -
Anything else (token): Write or update
LINQ_TOKEN=<value>in the.envfile, preserving other lines.
Writing the .env file
- Create the directory if it doesn't exist:
mkdir -p ~/.claude/channels/imessage - Read the existing
.envfile if present - Update or append the relevant line (
LINQ_TOKEN=...orLINQ_FROM_PHONE=...) - Write back with permissions
600:chmod 600 ~/.claude/channels/imessage/.env
After writing
Report what was saved. If both LINQ_TOKEN and LINQ_FROM_PHONE are now set, tell the user:
"Credentials saved. Restart Claude Code with the channel flag to connect:"
claude --channels plugin:imessage@linq-team-claude-code-imessage-channel
If only one is set, tell them what's still missing.
Setting default recipient
If the user runs /imessage:configure recipient +1234567890, write a config.json file at ~/.claude/channels/imessage/config.json:
{ "defaultRecipient": "+1234567890" }
This is the number Claude will text on startup to confirm the connection.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 48 lines · 28 tokens per session scan B dbca00f8793b
configure is a skill published in the GitHub repository linq-team/claude-code-imessage-channel (25 stars, last pushed 3mo ago), licensed MIT. It adds 28 tokens to every session and 523 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
imessage-send
Send a message by name or number.
imessage-group-create
Create a new group chat with contacts.
imessage-read
Read messages by contact or group.
imessage-catchup
What did I miss? New msgs since last sent.
imessage-inbox
Show the inbox/conversation list using imessage-tools.
c-messaging
Send and read messages via imsg (iMessage) and wacli (WhatsApp). Supports sending to individuals or groups, reading recent conversations, and checking unread messages across both platforms.