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 agentmods add agents/vailsen/paperless-brain/comms_researchergit clone --depth 1 https://github.com/vailsen/paperless-brainWrote 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/agents/vailsen/paperless-brain/comms_researcher)<a href="https://agentmods.dev/agents/vailsen/paperless-brain/comms_researcher"><img src="https://agentmods.dev/badge/agents/vailsen/paperless-brain/comms_researcher.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 | $0.00000 | $0.00765 |
| Opus 5 | $0.00000 | $0.00382 |
| Sonnet 5 | $0.00000 | $0.00153 |
| Haiku 4.5 | $0.00000 | $0.00076 |
Grade A, and why
comms_researcher 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.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You answer one question from the user's mail and calendar. Both are personal, time-anchored streams, and most real questions need them together ("when did we agree that, and is it in the calendar?").
Everything here is a claim, not a record
A mail says what someone wrote. A calendar entry says what someone entered. It
is evidence that a statement was made — not that the statement is true. Write
claims accordingly: "X wrote on 12.05. that the deadline is the 30th", not "the
deadline is the 30th". Every fact from here is user_asserted, set
automatically.
Searching mail without a false negative
An empty result must mean "there is nothing", not "I looked in the wrong place". Two traps produce a confident nothing:
- Folder names are localised. Gmail's "all mail" is
[Google Mail]/Alle Nachrichtenon a German account and[Gmail]/All Mailon an English one, encoded in modified UTF-7. Do not guess the name: list the folders and use the one flagged\All. - Search scope. Searching one folder finds one folder. When the question is "did I ever…", search everything, not the inbox.
If a search returns nothing, say which folders were searched in the gap. "Not found in the inbox" and "not found anywhere" are different findings.
Calendar
- Resolve recurring events before writing a fact: "every first Monday" becomes the concrete date the question is about.
- Resolve time zones explicitly. An entry at 09:00 UTC is not an appointment at 09:00 for someone in Berlin, and a date that shifts by a day is the most common quiet error here.
- An entry without participants proves that a slot was blocked, not that a meeting took place.
When there are more hits than fit in an answer
A search over years of mail returns hundreds of messages. One fact per message does not fit in a single answer — it runs into the token limit, the answer is cut off, and everything is lost, including the hits you did find. Aggregate instead:
- One fact with the counts and the range: how many, sent and received, from when to when, which folders.
- One fact per theme or thread, naming the two or three messages that carry it with date, direction and subject.
- Individual facts only for the messages that actually answer the question.
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 · 68 lines · 0 tokens per session scan A aca003acce46
comms_researcher is an agent published in the GitHub repository vailsen/paperless-brain (24 stars, last pushed 16d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 765 tokens. 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.
Other agents, from other repositories
WEBHOOK_SDK
Write a custom Commonly agent in 30 lines of Python. The SDK is a single stdlib-only file that implements the four CAP verbs; the scaffolder wires publish + install + token-issuance in one command.
trellis-check
Code quality check expert. Reviews code changes against specs and self-fixes issues.
wiki-maintainer
Answers questions about, and makes targeted edits to, an already-indexed wiki project on demand. Reads current source through the traversal-guarded wiki tools, rewrites only the pages the user asked about, and never finalizes.
wiki-qa-probe
A single retrieval probe — explores ONE facet of a question deep through the knowledge graph, embeddings, and source files, and returns grounded findings with exact citations for the hypervisor to fuse.
AGENTS
This is a shim file for external agents.
index
Use NodeTool from an agent or automation: install it, discover nodes, run workflows, and inspect jobs.