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 computer-usegit 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/computer-use)<a href="https://agentmods.dev/skills/nousresearch/hermes-agent/computer-use"><img src="https://agentmods.dev/badge/skills/nousresearch/hermes-agent/computer-use/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/nousresearch/hermes-agent/computer-use"><img src="https://agentmods.dev/badge/skills/nousresearch/hermes-agent/computer-use.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 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 Supply Chain · line 287 Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.Fix: Avoid downloading and executing remote scripts. Use trusted packages from PyPI/npm. If remote fetch is required, verify checksums and use HTTPS.
- medium Privilege Escalation · line 287 Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.Fix: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.
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.00013 | $0.04355 |
| Opus 5.5 | $0.00005 | $0.01742 |
| Sonnet 5.5 | $0.00003 | $0.00871 |
| Haiku 4.5 | $0.00001 | $0.00436 |
Grade F, and why
computer-use scanned grade F with 4 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 today.
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.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
| `blocked pattern in type text` | You tried to `type` a shell command matching the dangerous-pattern block list (`curl ... \| bash`, `sudo rm -rf`, etc.). Break the command up or reconsider | Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
| `blocked pattern in type text` | You tried to `type` a shell command matching the dangerous-pattern block list (`curl ... \| bash`, `sudo rm -rf`, etc.). Break the command up or reconsider | Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
| `blocked pattern in type text` | You tried to `type` a shell command matching the dangerous-pattern block list (`curl ... \| bash`, `sudo rm -rf`, etc.). Break the command up or reconsider | Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
| `blocked pattern in type text` | You tried to `type` a shell command matching the dangerous-pattern block list (`curl ... \| bash`, `sudo rm -rf`, etc.). Break the command up or reconsider | Copies of this mod
2 near-identical copies found in the catalogue:
- computer-use — 100% identical, 80 lines differ
- computer-use — 86% identical, 151 lines differ
How it starts
The opening of the file, as written. The whole thing — 356 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Computer Use (universal, any-model, cross-platform)
You have a computer_use tool that drives the user's desktop in the
background — your actions do NOT move the user's cursor, steal
keyboard focus, or switch virtual desktops / Spaces. The user can keep
typing in their editor while you click around in a browser in another
window. This is the opposite of pyautogui-style automation.
Everything here works with any tool-capable model — Claude, GPT, Gemini, or an open model on a local OpenAI-compatible endpoint. There is no Anthropic-native schema to learn.
Hermes drives cua-driver under the hood.
This skill teaches the Hermes computer_use action vocabulary, which is
NOT the driver's raw MCP vocabulary. Call the actions documented below and
never the driver's tools by name: capture is a Hermes action that maps to
the driver's get_window_state; element=N is a Hermes argument that the
wrapper translates into the driver's element_token handle. If you see a
driver-side error mentioning snapshot_id, element_token, or "no reviewed
risk classification", you (or a stale description) called the raw driver
vocabulary — go back to the actions below.
The canonical workflow
Step 1 — Capture first. Almost every task starts with:
computer_use(action="capture", mode="som", app="<the app you're driving>")
Returns a screenshot plus an indexed element list like:
#1 AXButton 'Back' @ (12, 80, 28, 28) [Chrome]
#2 AXTextField 'Address bar' @ (80, 80, 900, 32) [Chrome]
#7 Link 'Sign In' @ (900, 420, 80, 24) [Chrome]
...
The #N index is the ONLY element handle you use. Behind it the wrapper
keeps this snapshot's opaque per-element token and sends it with every
element=N action, so a click on an index from a superseded snapshot is
refused explicitly (stale) instead of landing on the wrong control.
Re-capture after anything that changes the screen; indices do not survive it.
The role names match the host platform's accessibility framework
(AXButton on macOS, Button on Windows UIA, push button on Linux
AT-SPI) — treat them as labels, not as strict types.
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.
- today Changed · -1 lines 1285c93412be
- 1mo ago Changed · +17 lines 778833ecfea4
- 1mo ago First seen · 340 lines · 13 tokens per session scan F e3d11184959b
computer-use is a skill published in the GitHub repository NousResearch/hermes-agent (256,529 stars, last pushed today), licensed MIT. It adds 13 tokens to every session and 4,355 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it F with 4 findings (asks for root, downloads and executes remote code, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
content-hash-cache-pattern
Cache expensive file processing results using SHA-256 content hashes — path-independent, auto-invalidating, with service layer separation.
keybindings-help
Use when the user wants to customize keyboard shortcuts, rebind keys, add chord bindings, or modify /.claude/keybindings.json. Examples: "rebind ctrl+s", "add a chord shortcut", "change the submit key", "customize keybindings".
Read or triage email, clean up an inbox, draft or send messages, and check delivery. Use for the user's connected mailbox or your own email, including questions about its availability; choose the correct sender and follow the confirmation policy.
manage-settings
Any explicit Muse Code setting question or change (model, reasoning effort, /settings) requires a silent readskill call for bundled:manage-settings as FIRST ACTION—no assistant text or other tool first. Never use for repository, app, eval, or other non-Muse configuration.
read-session
Locate and read Muse Code's OWN session logs — the current session or a prior one. Use when the user asks to pull context from, continue, summarize, or inspect a previous Muse Code session, asks to restore or recover work that was lost, wiped, or overwritten and might survive in an earlier session's log, references an…
device_data
Read cached contacts and calendar events from Muse storage. Delete Muse's local copy of either source without modifying paired devices.