Skip to content
Back to skills

Hermes Mail Triage

ASecurity

Use when a Hermes Agent must sort an owner's mailboxes - who writes, what they want, where it goes; bulk/newsletter detection, sender authenticity (SPF/DKIM/DMARC alignment), public blocklists, scam and phishing heuristics, learning each sender from the owner's corrections, a deliberate ignore list, and the rule that nothing is moved, marked read or deleted without the owner's ok. Not for email adapter setup or multi-mailbox wiring (hermes-gateways) or sending (hermes-outbound, hermes-security).

  • 35 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentsgorailsgitsecurity

Works with

  • terminal
  • cli
  • mcp

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add Fusengine/claude-plugins --skill hermes-mail-triage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hermes Mail Triage?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hermes Mail Triage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fusengine-hermes-mail-triage/badge)](https://www.skillsdirectory.com/skills/fusengine-hermes-mail-triage)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hermes-mail-triage
description: Use when a Hermes Agent must sort an owner's mailboxes - who writes, what they want, where it goes; bulk/newsletter detection, sender authenticity (SPF/DKIM/DMARC alignment), public blocklists, scam and phishing heuristics, learning each sender from the owner's corrections, a deliberate ignore list, and the rule that nothing is moved, marked read or deleted without the owner's ok. Not for email adapter setup or multi-mailbox wiring (hermes-gateways) or sending (hermes-outbound, hermes-security).
versions:
  hermes-agent: "0.23.0"
user-invocable: false
references:
  - references/pipeline.md
  - references/sender-checks.md
  - references/learning-guardrails.md
  - references/mailbox-topology.md
  - references/templates/sender-check.md
  - references/templates/triage-report.md
related-skills:
  - hermes-gateways
  - hermes-cron
  - hermes-outbound
  - hermes-security
  - hermes-chief-of-staff
---

<objective>
A triage pipeline that reads mail on a schedule, classifies by questions
rather than keywords, runs a mechanical check on the raw message before any
"newsletter / ad / spam / phishing" verdict, proposes a numbered list, and
moves nothing until the owner answers "ok all" or "ok except ...". Hermes
provides the scheduler and mail access; the triage logic, sender memory and
the never-move-alone rule are patterns this skill defines.
</objective>

# Hermes Mail Triage

## Freshness check

Before writing or changing any Hermes config, run `hermes --version` and
`hermes update --check`, then read
https://github.com/NousResearch/hermes-agent/releases/latest. If the installed
or latest version is newer than 0.23.0, read every release note since 0.23.0
("Upgrade notes" first) and adjust. Never apply guidance from this skill to a
newer version without that check.

## Native vs pattern

| Piece | Status in 0.23.0 | Where |
|-------|------------------|-------|
| Reading a mailbox | Native: email adapter (IMAP/SMTP, **one account per adapter per profile**) or the bundled Himalaya email skill (terminal `himalaya` CLI) | [mailbox-topology.md](references/mailbox-topology.md), hermes-gateways |
| Several mailboxes in one agent | **Not documented as native** - several profiles, or Himalaya / an MCP mail tool with several accounts | [hermes-gateways #several-mailboxes](../hermes-gateways/references/messaging-adapters.md#several-mailboxes) |
| Running every N hours | Native: `hermes cron` (`every 2h`) | hermes-cron |
| Sender authentication for **conversations** with the agent | Native in the email adapter (acts only on an authenticated `From:`) | hermes-gateways |
| Bulk / SPF-DKIM-DMARC / blocklist / scam verdict for **triage** | **Pattern** - a script on the raw message | [sender-checks.md](references/sender-checks.md) |
| Sender memory, ignore list, "never moves alone" | **Pattern** | [learning-guardrails.md](references/learning-guardrails.md) |

## Pipeline at a glance

1. Fetch new messages (read-only), skip senders on the ignore list.
2. Mechanical check on the raw message ([templates/sender-check.md](references/templates/sender-check.md)).
3. Three questions: **who writes**, **what do they want**, **where does it go**
   ([pipeline.md](references/pipeline.md)).
4. Urgent (< 48 h, client blocked, money waiting) → immediate alert to the chief.
5. Numbered proposal list ([templates/triage-report.md](references/templates/triage-report.md));
   nothing new → `[SILENT]`.
6. Apply moves only after "ok all" / "ok except n, m".
7. Store each confirmed sender → category → folder.

## Critical rules

1. **Nothing is moved, marked read or deleted without the owner's ok.** No
   answer → nothing moves.
2. **When the mechanical check and the model's reading disagree, the check
   wins** for bulk/spam/phishing verdicts.
3. **Phishing: never click, never reply, never load remote content.**
4. **A reply stays in the folder of the first message** so the thread stays whole.
5. **One mailbox per email adapter per profile** - design the profiles
   around it (hermes-gateways).
6. **Triage never sends.** Replies go through hermes-outbound.

## Sources

- https://hermes-agent.nousresearch.com/docs/user-guide/messaging/email (adapter, authenticated sender, Himalaya skill)
- https://hermes-agent.nousresearch.com/docs/user-guide/features/cron (`every 2h`, `[SILENT]`)
- https://www.rfc-editor.org/rfc/rfc8601 (Authentication-Results header)
- https://www.rfc-editor.org/rfc/rfc2369 (List-Unsubscribe) · https://www.rfc-editor.org/rfc/rfc8058 (one-click unsubscribe)

Files in this skill

  • SKILL.md4.5 KB
  • references/learning-guardrails.md2.7 KB
  • references/mailbox-topology.md2.4 KB
  • references/pipeline.md2.9 KB
  • references/sender-checks.md3.6 KB
  • references/templates/sender-check.md7.3 KB
  • references/templates/triage-report.md1.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.