oh-my-hermes is an operating layer for Hermes Agent that organizes requests into workflows for planning, research, creation, coding handoffs, operations, and project memory. Hermes users run these workflows through the desktop app, CLI, or messenger app, while the catalogue add-ons extend its native capabilities.
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 rlaope/oh-my-hermes --skill omh-websearch-setupgit clone --depth 1 https://github.com/rlaope/oh-my-hermesWrote 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/rlaope/oh-my-hermes/omh-websearch-setup)<a href="https://agentmods.dev/skills/rlaope/oh-my-hermes/omh-websearch-setup"><img src="https://agentmods.dev/badge/skills/rlaope/oh-my-hermes/omh-websearch-setup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rlaope/oh-my-hermes/omh-websearch-setup"><img src="https://agentmods.dev/badge/skills/rlaope/oh-my-hermes/omh-websearch-setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00093 | $0.02291 |
| Opus 5.5 | $0.00037 | $0.00916 |
| Sonnet 5.5 | $0.00019 | $0.00458 |
| Haiku 4.5 | $0.00009 | $0.00229 |
Grade A, and why
omh-websearch-setup 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 — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Websearch Setup
This is a Hermes-native websearch-setup workflow skill.
Why This Exists
websearch-setup exists to make web search cost and backend choice configurable through two clearly separated, diff-approved steps against the web keys Hermes reads, instead of one opaque edit.
Do Not Use When
- The user wants Hermes to run a web search now, not configure how web search is set up.
- No provider key, backend, or tier intent has been named yet.
- The request needs a repository code change rather than a local
.envor Hermes config edit.
Examples
Good example:
- Prompt: make web search cheaper — I have a scraper account I want to use for reading pages, and search can stay free.
- Expected behavior: Read the
websection and.envkey names, guide the provider API key setup as one diff approval, then setweb.extract_backendto that provider andweb.search_backendto a free backend the user picks fromhermes toolsas a second, separate diff approval, and read both keys back. - Why: The request needs the two independently-approved writes this skill exists to keep separate, aimed at keys Hermes consumes.
Bad example:
- Prompt: websearch-setup: search the web for the latest news.
- Expected behavior: Run or route to the search request directly instead of starting a setup walkthrough.
- Why: A live search request is not a configuration request.
Completion Checklist
- If a prerequisite is unmet, mark that item "not applicable" and continue with the rest of the guide instead of blocking or guessing.
- Success is applicable-only: verification passes when every applicable item is confirmed complete, not when every possible item exists.
- The provider API key write and the
webbackend or tier change were verified as two separate, independently-approved changes, each read back from the key Hermes consumes. - Nothing was written to
auxiliary.web_extract, and a leftover block there was reported as ignored rather than counted as configuration.
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 Changed 5c80d807b061
- 13d ago Changed e578dfcfa628
- 14d ago Changed · +10 lines · +7 tokens per session 22f377db6be7
- 27d ago Changed 5429a81ae3d8
- 1mo ago Changed · +2 tokens per session 847b7b764cde
- 1mo ago Changed b2ae9d10d8cb
- 1mo ago Changed · +1 lines 2f423c26cbfb
- 1mo ago Changed 38a0604f1061
- 1mo ago Changed c414b1b57c66
- 1mo ago First seen · 122 lines · 84 tokens per session scan A 9fe00783360e
omh-websearch-setup is a skill published in the GitHub repository rlaope/oh-my-hermes (4,366 stars, last pushed today), licensed MIT. It adds 93 tokens to every session and 2,291 once invoked, about $0.0004 per session on Opus 5.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-09-03.
Other skills, from other repositories
managing-mcp-servers
Use when the user asks to add, change, remove, enable or disable an MCP server, or when an MCP tool is missing, needs sign-in, fails, or was blocked. ThinkRail runs pi in-process, so there is no pi command to call.
todos
Use when the user asks for a shared plan, a task needs at least three substantive execution steps, or a loose TODO is pending. Without an explicit plan request, not for one-shot answers or checks, or one- to two-step work that is not already in the list.
asking-user-questions
Use when composing an askuserquestion round inside a workflow, or when a workflow skill names it at a question step. Shared norms for the tool — not a workflow, nothing to execute.
writing-workflow-skills
Use when adding a new workflow skill to pi-thinkrail-workflow, changing an existing workflow skill's role, trigger, handoff, or structure, or checking a workflow skill against the workflow system's rules. Not for authoring general-purpose skills outside this package.
writing-specs
Use when a workflow step drafts or revises a spec artifact — a goal-and-requirements, an architecture, or a module SPEC — or when a workflow skill names it at such a step. The shared quality bar for specs — not a workflow, nothing to execute.
setting-up-a-project
Use when asked to set up, onboard, initialize, or spec a project with no spec graph, or when invoked by the app's Set-up-project card. Not for ordinary work in an already-specced project.