comms-scanner

comms-scanner is an agent for Claude Code from Lifecycle-Innovations-Limited/claude-ops. It costs 22 tokens per session (1,369 once invoked), scanned A, original, MIT.

An operations agent that scans the complete recent state of communication inboxes, including conversations that are not marked unread. It groups conversations by whether they need action.

In plain words
What is it for?
Use it to review active chats across the configured WhatsApp accounts, identify conversations from the last seven days, resolve contact names, and report which threads need attention.
Why use it?
Looking only at unread messages can miss ongoing conversations that still require a response or follow-up.

Agent for Claude Code

Written for Claude Code: effort in frontmatter. Also seen: model in frontmatter; mentions CLAUDE.md.

Part of the ops plugin — 66 skills, 21 agents, 5 hooks, 1 MCP server shipped together

Install

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.

agentmods
npx agentmods add agents/lifecycle-innovations-limited/claude-ops/comms-scanner
Clone the repo
git clone --depth 1 https://github.com/Lifecycle-Innovations-Limited/claude-ops

Made for: Claude Code.

Or install ops, the plugin that ships this one along with the rest of its 66 skills, 21 agents, 5 hooks, 1 MCP server.

Wrote 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.

agentmods badge for comms-scanner

README.md
[![agentmods](https://agentmods.dev/badge/agents/lifecycle-innovations-limited/claude-ops/comms-scanner.svg)](https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/comms-scanner)
Your own site
<a href="https://agentmods.dev/agents/lifecycle-innovations-limited/claude-ops/comms-scanner"><img src="https://agentmods.dev/badge/agents/lifecycle-innovations-limited/claude-ops/comms-scanner.svg" alt="Measured on agentmods" height="20"></a>
Per session 22 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,369 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00022 $0.01369
Opus 5 $0.00011 $0.00685
Sonnet 5 $0.00004 $0.00274
Haiku 4.5 $0.00002 $0.00137

Measured 6d ago against content hash ba2200eb4476, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

comms-scanner 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 6d 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.

claude-ops/agents/comms-scanner.md · 156 lines

How it starts

The opening of the file, as written. The whole thing — 156 lines — stays where its author put it; the contents beside it link to each section on GitHub.

COMMS SCANNER AGENT

Scan all channels for FULL inbox state — not just unread, but all recent conversations classified by action needed.

Task

Run all channel scans in parallel:

# WhatsApp — ALL non-archived chats (not just unread)
# SERVER NAME: mcp__whatsapp__* is the single-account default. One bridge per account means one
# server per account (whatsapp-personal, whatsapp-work, ...) and no plain mcp__whatsapp__*.
# Resolve the real name from the available tools, scan every account, and label each result with
# the account it came from. Pair each with its own WHATSAPP_BRIDGE_DB below. See CLAUDE.md Rule 8.
# Step 1: list chats — the response includes last_is_from_me (int 0/1) and last_message_time (RFC3339+TZ string)
mcp__whatsapp__list_chats sort_by=last_active

# Step 2: for each chat active in last 7 days, resolve contact name and compute time_ago:
#
# NAME RESOLUTION — contacts.db is PRIMARY source; giga memory is fallback only.
#   DB="${WHATSAPP_BRIDGE_DB:-$HOME/.local/share/whatsapp-mcp/whatsapp-bridge/store/messages.db}"
#   sqlite3 "$DB" "SELECT name FROM contacts WHERE jid='$JID' LIMIT 1;"
#   If empty → use the name field from list_chats response.
#   Only consult giga memory (mcp__giga__evoke) when both DB lookup and list_chats name are empty.
#
# TIME_AGO — last_message_time is RFC3339 with timezone offset (e.g. "2026-05-24T14:55:06+02:00").
#   Parse with full TZ awareness. In Python:
#     from datetime import datetime, timezone
#     dt = datetime.fromisoformat(last_message_time)   # preserves tz offset
#     delta = datetime.now(timezone.utc) - dt.astimezone(timezone.utc)
#   Never strip the timezone suffix before parsing — doing so causes wrong "now" delta.
#
# DIRECTION — use last_is_from_me from list_chats directly (do NOT re-derive from last message).
#   last_is_from_me == 1  →  WAITING  (you sent last; no reply needed)
#   last_is_from_me == 0  →  NEEDS_REPLY  (they sent last)
#
# For chats where last_is_from_me is absent or null, fall back to fetching the thread:
#   mcp__whatsapp__list_messages chat_jid="<JID>" limit=5
#   Check is_from_me on the LAST element of the returned array.

Read the full file on GitHub · 156 lines

Changes

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.

  1. 6d ago First seen · 156 lines · 22 tokens per session scan A ba2200eb4476

Subscribe to this mod's changes

comms-scanner is an agent published in the GitHub repository Lifecycle-Innovations-Limited/claude-ops (185 stars, last pushed yesterday), licensed MIT. It adds 22 tokens to every session and 1,369 once invoked, about $0.0001 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-30.

Related

Other agents, from other repositories

quality-fixer

Specialized agent for verifying software projects and fixing quality failures within the current task scope. Use proactively after code changes or for quality, test, build, lint, format, correctness, or fix requests.

shinpr/claude-code-workflows · 44 tokens

verifier

Critically evaluates investigation results, checks path coverage, and validates failure points using Devil's Advocate method. Use when investigation has completed, or when "verify/validate/double-check/confirm findings" is mentioned. Focuses on verification and conclusion derivation.

shinpr/claude-code-workflows · 54 tokens

code-verifier

Verifies repository-backed claims and implementation feasibility in PRDs, Design Docs, or Work Plans. Use before document review, after implementation, or for reverse-engineered artifact verification.

shinpr/claude-code-workflows · 39 tokens

prd-creator

Creates PRD and structures business requirements. Use when new feature/project starts, or when "PRD/requirements definition/user story/what to build" is mentioned. Defines user value and success metrics.

shinpr/claude-code-workflows · 44 tokens

technical-designer

Creates a scoped ADR batch or one backend/general Design Doc from confirmed requirements and decision-relevant repository evidence. Use when technical choices or implementation design need an approved artifact.

shinpr/claude-code-workflows · 37 tokens

conflict-resolver

Conflict-resolution advisor — reads both sides of a merge/rebase conflict, reasons per-hunk, and recommends keep-mine/keep-main/manual with rationale. Invoke per conflicting file from workflow-branch-sync; never applies a resolution itself.

lugassawan/swe-workbench · 52 tokens