Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add bowlofarugula/texting/plugin install textingWrote 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/bowlofarugula/texting/texting-status)<a href="https://agentmods.dev/skills/bowlofarugula/texting/texting-status"><img src="https://agentmods.dev/badge/skills/bowlofarugula/texting/texting-status.svg" alt="Measured on agentmods" 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.00046 | $0.00566 |
| Opus 5 | $0.00023 | $0.00283 |
| Sonnet 5 | $0.00009 | $0.00113 |
| Haiku 4.5 | $0.00005 | $0.00057 |
Grade A, and why
texting-status scanned grade A with 0 findings 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 5d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
/texting-status — texting health check
Run all checks, then report in plain language: one line per check with
✅/❌, then a "what to do" section only if something failed (point at the
matching /texting-setup step).
- imsg engine present: /texting-setup installs it to
~/.claude/texting/engine—"${CLAUDE_PLUGIN_ROOT:-.}/bin/imsg" --version 2>/dev/null || imsg --version 2>/dev/null || echo MISSING.MISSING→ setup step 1 installs it (fallbackbrew install steipete/tap/imsgor setIMSG_PATH). - bun present:
bun --version || "$HOME/.bun/bin/bun" --version. Missing → setup step 2. - Messages DB readable:
sqlite3 ~/Library/Messages/chat.db "SELECT COUNT(*) FROM chat" 2>&1.authorization denied→ Full Disk Access on the right target (desktop users: the embedded claude.app, see setup step 3); app restart required. - MCP tools live: check whether the
send_message/list_chats/read_messages/search_messages/react/watchtools from this plugin's iMessage server are available in this session (load via ToolSearch if deferred). If present, the fastest single check is to call thestatustool — it confirms imsg + chat.db readability in one shot. Missing while 1–3 pass → the session predates the plugin; restart it. - Config: read
~/.claude/texting/config.json(fine if absent) and report the two opt-in safeguards in plain language: the approval gate (approval: true→ every send pauses on a yes/no dialog only the user can answer) and the AI-disclosure signature (signature: true→ "- Sent by Claude for " is appended). Name resolution needs no separate check — imsg resolves contact names itself under the same Full Disk Access grant as chat.db.
If everything passes, suggest: "text yourself a hello, then ask me for your recent messages."
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.
- 5d ago First seen · 38 lines · 46 tokens per session scan A fd4643b2096a
texting-status is a skill published in the GitHub repository bowlofarugula/texting (1 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 46 tokens to every session and 566 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
logging-and-error-reporting
How and when to log (log:: levels, safe macros) and report errors to Sentry (reporterror!) in the Warp codebase. Use when adding or reviewing any logging or error reporting — picking a log level, deciding log vs. reporterror!, keeping sensitive data out of logs, or surfacing an error to Sentry.
rocketmq-rust-issue-generator
Use when the user asks to create, draft, prepare, or publish a GitHub issue for the rocketmq-rust project — bugs, features, enhancements, refactors, docs, unit tests, CI, runtime-model, broker, namesrv, client, store, dashboard, architecture, or performance work — especially when the issue must preserve real…
triage-issue-local
Repo-specific triage guidance for warp. Only the categories declared overridable by the core triage-issue skill may be specialized here.
gui-reproduce-bug-report-local
GUI desktop app only. Repo-specific bug reproduction guidance for Warp. Specializes the core reproduce-bug-report skill for logged-out Warp UI repros, exact reporter-version installs, and login-free onboarding.
sentry-app-setup
Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity.
dedupe-issue-local
Repo-specific dedupe guidance for warp. Only the categories declared overridable by the core dedupe-issue skill may be specialized here.