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 skills/crux/outlook-scan/skillnpx skills add crux/outlook-scan --skill skillgit clone --depth 1 https://github.com/crux/outlook-scanWrote 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/crux/outlook-scan/skill)<a href="https://agentmods.dev/skills/crux/outlook-scan/skill"><img src="https://agentmods.dev/badge/skills/crux/outlook-scan/skill.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.00052 | $0.01508 |
| Opus 5 | $0.00026 | $0.00754 |
| Sonnet 5 | $0.00010 | $0.00302 |
| Haiku 4.5 | $0.00005 | $0.00151 |
Grade A, and why
outlook-scan 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 3d 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 — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
outlook-scan — on-demand mailbox access via Microsoft Graph
A CLI (outlook-scan, expected on PATH) that queries the mailbox live -
read-only unless write mode is enabled (drafts only). Nothing is stored
locally unless --save is passed.
Ground rules
- Stdout first. Print results into the session; use
--save DIRonly when the user explicitly wants files kept (extraction, archiving, attachments). Confirm or choose an obvious target directory. - Message ids start with
AAMk, conversation ids withAAQk. Both are long — always quote them in commands.threadaccepts either kind. - The tool can never send, move, delete, or mark mail. With write mode on it can only create drafts for the user to review (see below).
Commands
outlook-scan list [--folder NAME] [--unread] [--since 24h|7d|2w|YYYY-MM-DD] [--max N]
# metadata, newest first: "N. [date] ● sender — subject 📎" + id line
# ● = unread, 📎 = has attachments. Default folder Inbox, max 25.
# Folders: display names or aliases (inbox, archive/archiv, sent,
# drafts, trash, junk/spam — English and German aliases built in).
outlook-scan search [--max N] "query"
# server-side full-text search across ALL folders, relevance-ranked
outlook-scan get [--save DIR [--attachments]] "MESSAGE-ID"
# full message as markdown (headers, attachment names, plain-text body)
# --save DIR writes .md file; --attachments additionally downloads files
outlook-scan attachments [--save DIR] "MESSAGE-ID"
# list attachments (name, size, kind); with --save: download them
outlook-scan thread [--save DIR] "MESSAGE-ID-or-CONVERSATION-ID"
# entire conversation across all folders, chronological, one document
outlook-scan folders | status | login
All read commands accept --json for structured output.
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.
- 3d ago First seen · 133 lines · 52 tokens per session scan A 3867279c8384
outlook-scan is a skill published in the GitHub repository crux/outlook-scan (0 stars, last pushed 4d ago), licensed MIT. It adds 52 tokens to every session and 1,508 once invoked, about $0.0003 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
novu-inbox-integration
Integrate Novu's in-app notification inbox into web applications. Supports React, Next.js, and vanilla JavaScript. Includes the Inbox component (bell icon + notification feed), composable components (Bell, Notifications, InboxContent, Preferences), headless hooks, branded theming, custom render props, multi-tenancy…
react-email
Use when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.
novu-design-workflow
Design notification workflows the Novu way — choose channels, set severity, decide when a workflow is critical, configure digests, and route based on subscriber state. Applies to BOTH dashboard-authored and code-first (@novu/framework) workflows. Use when planning a new workflow, deciding which channels to include…
address-pr-review
Critically triage pull request review comments against PR requirements and codebase reality, implement only valid fixes, and reply only when declining a suggestion. Use when the user asks to address PR comments, review feedback, CodeRabbit/Bugbot threads, or /address-pr-review.
triage-agent-eval-failures
Triage failing @novu/agent-evals scenarios to decide whether a failure is real or flaky, and whether to fix the playbook/prompt or the test (grader, tape, scenario, or judge). Use when an agent-evals scenario fails, when the user asks why an eval is red, or when deciding whether to fix the test or the prompt.
sanity-changelog
Create and publish Novu changelog entries in Sanity (changelogPost documents), including feature posts, "improvements & fixes" roundups built from Linear releases, and the Changes (changeBlock) component. Use when asked to write a changelog entry, announce a shipped feature on the changelog, roll up improvements/bug…