Hermes Agent is an AI assistant that learns from its use by creating and improving skills, retaining knowledge, searching past conversations, and adapting to its users. It is for people who want to run an agent through a terminal or messaging platforms while connecting it to different AI models and scheduled tasks.
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 skills add NousResearch/hermes-agent --skill web-pentestgit clone --depth 1 https://github.com/NousResearch/hermes-agentWrote 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/nousresearch/hermes-agent/web-pentest)<a href="https://agentmods.dev/skills/nousresearch/hermes-agent/web-pentest"><img src="https://agentmods.dev/badge/skills/nousresearch/hermes-agent/web-pentest.svg" alt="Measured on agentmods" height="20"></a>- Snyk warn
- NVIDIA SkillSpector warn
SkillSpector: 6 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Server-Side Request Forgery · line 64 Code accesses a cloud instance metadata endpoint (e.g. 169.254.169.254). A single request can return temporary IAM credentials, making this a high-value SSRF target for credential theft.Fix: Remove access to cloud metadata endpoints unless strictly required. If metadata is needed, restrict it (e.g. IMDSv2 with hop limit) and never expose returned credentials.
- high Server-Side Request Forgery · line 65 Code accesses a cloud instance metadata endpoint (e.g. 169.254.169.254). A single request can return temporary IAM credentials, making this a high-value SSRF target for credential theft.Fix: Remove access to cloud metadata endpoints unless strictly required. If metadata is needed, restrict it (e.g. IMDSv2 with hop limit) and never expose returned credentials.
- high Server-Side Request Forgery · line 65 Code accesses a cloud instance metadata endpoint (e.g. 169.254.169.254). A single request can return temporary IAM credentials, making this a high-value SSRF target for credential theft.Fix: Remove access to cloud metadata endpoints unless strictly required. If metadata is needed, restrict it (e.g. IMDSv2 with hop limit) and never expose returned credentials.
- high Server-Side Request Forgery · line 65 Code accesses a cloud instance metadata endpoint (e.g. 169.254.169.254). A single request can return temporary IAM credentials, making this a high-value SSRF target for credential theft.Fix: Remove access to cloud metadata endpoints unless strictly required. If metadata is needed, restrict it (e.g. IMDSv2 with hop limit) and never expose returned credentials.
- high YARA Match · line 173 YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).Fix: Remove offensive tool references and exploit code. Legitimate agent skills should not contain penetration testing tools, exploit frameworks, or reconnaissance utilities.
- medium Rogue Agent · line 71 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
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.00017 | $0.03232 |
| Opus 5 | $0.00009 | $0.01616 |
| Sonnet 5 | $0.00003 | $0.00646 |
| Haiku 4.5 | $0.00002 | $0.00323 |
Grade B, and why
web-pentest scanned grade B with 3 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 4d 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.
Cloud metadata endpointmediumServer-side request forgery
One request to 169.254.169.254 can return temporary IAM credentials.
4. **Cloud metadata is off by default.** Do not probe `169.254.169.254`, Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
active scanning. Reading public pages with `curl` is fine; sending Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
2. **Inventory sinks** — every `execute(`, `os.system(`, `eval(`, Copies of this mod
6 near-identical copies found in the catalogue:
- web-pentest — 100% identical, 0 lines differ
- web-pentest — 100% identical, 0 lines differ
- web-pentest — 91% identical, 14 lines differ
- web-pentest — 91% identical, 35 lines differ
- web-pentest — 91% identical, 14 lines differ
- web-pentest — 91% identical, 14 lines differ
How it starts
The opening of the file, as written. The whole thing — 336 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Web Application Penetration Testing
A phased pentesting workflow for running web applications. Adapted from Shannon's pipeline (Keygraph, AGPL — concepts only, no code borrowed). Built around three rules:
- No exploit, no report — every finding requires reproducible evidence.
- Bounded scope — every active request goes against a target the operator pre-declared. Off-scope hosts are refused.
- Bypass exhaustion before false-positive dismissal — a "blocked" payload is not a clean bill of health until you've tried the bypass set.
⚠️ Hard Guardrails — Read Before Every Engagement
Violating any of these invalidates the engagement and may be illegal.
-
Authorization gate. Before the first active scan in a session, you MUST confirm with the user, in writing, that they own or have written authorization to test the target. Record the acknowledgement in
engagement/authorization.md(see template). No acknowledgement → no active scanning. Reading public pages withcurlis fine; sending payloads is not. -
Scope allowlist. Maintain
engagement/scope.txt— one hostname or CIDR per line. Everynmap,curl,whatweb, browser navigation, or payload-bearing request MUST be against an entry in scope. If a target redirects you off-scope (3xx to a different host, a link in HTML), STOP and confirm with the user before following. -
No production systems without paper. If the user hasn't told you "yes, prod is in scope and I have written sign-off," assume not. Default targets are staging, local docker, dedicated test instances.
-
Cloud metadata is off by default. Do not probe
169.254.169.254,metadata.google.internal,100.100.100.200,[fd00:ec2::254], or equivalent unless the engagement explicitly includes SSRF-to-metadata as a goal AND the target is one you control. The agent's browser tool can reach these from inside your own infrastructure — don't. -
Destructive payloads need approval. SQLi payloads that DROP/DELETE, filesystem-write SSTI, command injection with
rm/shutdown/mkfs, anything that mutates beyond a single test row → ASK FIRST. Theapproval.pysystem catches some; don't rely on it alone.
What ships with it
8 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.
- references/bypass-techniques.md 4.5 KB
- references/exploitation-techniques.md 6.7 KB
- references/scope-enforcement.md 4.0 KB
- references/vuln-taxonomy.md 4.3 KB
- scripts/recon-scan.sh 3.8 KB runs code
- templates/authorization.md 2.4 KB
- templates/exploitation-queue.json 1.2 KB
- templates/pentest-report.md 4.6 KB
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.
- 4d ago First seen · 336 lines · 17 tokens per session scan B 0e2e199e97fe
web-pentest is a skill published in the GitHub repository NousResearch/hermes-agent (242,680 stars, last pushed today), licensed MIT. It adds 17 tokens to every session and 3,232 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 3 findings (cloud metadata endpoint, makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
claude-api
Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration. TRIGGER — read BEFORE opening the target file; don't skip because it "looks like a one-liner" — whenever: the prompt names Claude/Anthropic in any form (Claude…
options
Present multiple design options as a vertical stack of anchored turns.
peek
Searches memories and displays compact one-liner results, or looks up a specific memory by ID. Use for quick memory lookups, checking if a decision was recorded, resolving [mem0:id] citations, or browsing memories without full category detail.
mem0-test-integration
Verify a Mem0 integration produced by /mem0-integrate. Runs in the same workspace on the same branch (loose coupling) — installs dependencies, runs the repo's native test suite, then exercises a real end-to-end smoke flow against the user's API key. Produces a scorecard. TRIGGER when: user has just run /mem0-integrate…
pptx
Create and validate Microsoft PowerPoint presentations (.pptx), including structured slide decks, tables, workflows, metadata, and reproducible generation scripts. Use for presentation, slides, PowerPoint, PPT, or PPTX creation and verification tasks.
safe-refactor
Restructure code while preserving behavior. Use for extraction, consolidation, ownership moves, or cleanup where verification must bracket structural edits.