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/everyinc/garbage-man/email-cleanupnpx skills add EveryInc/garbage-man --skill email-cleanupgit clone --depth 1 https://github.com/EveryInc/garbage-manWrote 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/everyinc/garbage-man/email-cleanup)<a href="https://agentmods.dev/skills/everyinc/garbage-man/email-cleanup"><img src="https://agentmods.dev/badge/skills/everyinc/garbage-man/email-cleanup.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.00084 | $0.01007 |
| Opus 5 | $0.00042 | $0.00504 |
| Sonnet 5 | $0.00017 | $0.00201 |
| Haiku 4.5 | $0.00008 | $0.00101 |
Grade A, and why
email-cleanup 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.
How it starts
The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Email Cleanup
Create future-mail policy without changing the mailbox during review. Keep runtime data in the current workspace's .mailroom/ directory, never inside this plugin.
Safety contract
- Keep inventory, review, and export read-only.
- Never send, draft, label, archive, trash, mark read, unsubscribe, or install server-side rules unless the user separately and explicitly asks.
- Inventory headers and message metadata only. Do not read bodies.
- Exclude Spam, Trash, Drafts, and Sent.
- Do not infer that unread mail is unwanted. The user must decide every blocked domain.
- Never ask the user to paste mailbox passwords, app passwords, or tokens into chat.
- Do not publish, commit, or quote mailbox inventory.
- Treat a root-domain block as broad. Show observed exact senders and representative subjects before each decision.
Create .mailroom/ with owner-only permissions. In a Git worktree, add .mailroom/ to the worktree's local .git/info/exclude; do not edit the tracked .gitignore merely to run this workflow.
Before ingestion, install the plugin's pinned runtime dependencies when <plugin-root>/node_modules is absent:
npm install --omit=dev --ignore-scripts --prefix <plugin-root>
1. Choose a source adapter
Read provider-adapters.md and use the first available route:
- Native email connector already available to the AI.
- Read-only IMAP with credentials configured locally by the user.
- Canonical metadata JSONL produced from another connector or a local export.
Default to unread messages from the last 60 days across non-junk mail, with Inbox membership counted separately. Honor a different user-specified window.
For native connectors, paginate completely and write one record per message to .mailroom/messages.jsonl using message-schema.md. Capture a stable message ID for deduplication, exact From address, display name, subject, date, folder/labels, and List-ID when already available. Do not open messages merely to obtain List-ID.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 6d ago First seen · 96 lines · 84 tokens per session scan A a3a53d155a93
email-cleanup is a skill published in the GitHub repository EveryInc/garbage-man (6 stars, last pushed 27d ago), licensed MIT. It adds 84 tokens to every session and 1,007 once invoked, about $0.0004 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
email-labeler
Triage and label Gmail by sender/provider so the inbox shows only what matters, and generate importable Gmail filter rules (sender → label) to auto-categorise future mail. Use this skill whenever the user wants to label, sort, file, organize, tidy, or "triage" their Gmail; clean up or clear the inbox; auto-file…
inbox-triage
Email inbox triage for AI agents — scan, categorize, draft replies, surface urgent items, and archive noise. Supports Gmail and IMAP for inbox zero workflows.
copilotkit-channels
Use for the CODE half of a managed Intelligence Channel with Slack or Microsoft Teams: customising the Channel a CLI-scaffolded project already ships, or — for a project the CLI did not generate — writing the Channel declaration, the long-running host, and the awaited activation call. Teams provider setup is in scope…
setup-slack-channel
Use for the PROVIDER half of getting a locally running CopilotKit Channels agent to answer in Slack, when no Slack app exists yet — setting up a Channels bot in Slack for the first time, creating the Slack app and its tokens, attaching it to a managed Intelligence Channel, or when a Channel reports setuprequired, sits…
channels-setup
Use when a developer wants to build their first CopilotKit Channels agent and get it answering in Slack or Microsoft Teams — "set up a channel", "connect my agent to Slack", "get my agent into Teams", or starting from nothing and wanting a working channel end to end. Covers the whole path: inspecting or scaffolding…
gog
Use gog when built-in Google connectors are missing a feature, when shell automation needs stable JSON, or when you need to inspect local Google auth state before acting.