Smart approvals, skill routing, and MCP without asking Hermes to fake a classifier.
What Hermes is
Hermes Agent is Nous Research's self-improving agent: terminal UI, gateway to Telegram/Discord/Slack, subagents, cron, and a plugin ecosystem. It is model-agnostic (Nous Portal, OpenRouter, local endpoints). Documentation lives at https://hermes-agent.nousresearch.com/docs/.
Why pair Hermes with Jev
Hermes separates primary reasoning from auxiliary tasks such as smart command approval. Those aux tasks are discrete decisions with fixed option sets, ideal for System One.
Community plugins register Jev as the approval provider or inject skill hints before the main model call, without forking Hermes core.
Smart command approvals (hermes-jev-approvals)
mode is smart. It refuses chat tasks, registers no hooks, and asks six parallel typed questions per flagged command: verdict Choice, policy Noul, blast radius Score, and safety nouls. Deterministic code maps answers to APPROVE, DENY, or ESCALATE.
hermes plugins install anpicasso/hermes-jev-approvals/plugin
hermes auth add typesafe-jev
hermes config set approvals.mode smart
hermes config set auxiliary.approval.provider typesafe-jev
hermes config set auxiliary.approval.model jev-latest
systemctl --user restart hermes-gatewayOperator policy text
Set approvals.smart_policy with trusted clauses about routine git, cache cleanup, and what still needs human review. The plugin treats that text as a trusted channel; Jev scores policy_allows as a Noul against it.
approvals:
mode: smart
smart_policy: >-
Killing browser processes and deleting cache directories are routine.
Force-pushing, production databases, and shared infrastructure require review.Skill routing before the model call
DECRUX9812/typesafe-skill-router is a Hermes plugin that asks Jev which single skill (if any) matches the user message, then appends a short skill_relevance block to the user message. It is opt-in, stdlib-only, and fail-open on errors.
Enable with hermes typesafe-skill-router on after install.
MCP on Hermes
Hermes documents MCP integration for extending tool access (see the user guide feature page linked from the main README).
You can attach community Jev MCP servers (for example blakestone-x/jev-mcp or itsmostafa/typesafe-mcp) the same way you attach other MCP servers, so Hermes tools can call typed classify/score/check endpoints alongside native skills.
Environment keys
ai/ (or route through Vercel AI Gateway / OpenRouter where the integration documents it). Export TYPESAFE_API_KEY in the environment for Hermes gateway and plugin processes.
Some MCP clients accept AI_GATEWAY_API_KEY when using gateway-hosted Jev models; follow that integration's README. Never commit keys into repos or paste them into chat logs.
export TYPESAFE_API_KEY="tsk_..."
# Optional pin:
export TYPESAFE_MODEL="jev-latest"Pitfalls
Without smart_policy, benchmarks on the approvals plugin showed routine kills and git pushes escalated or denied. approval or Hermes bypasses the plugin. Plugins are profile-scoped: repeat install per HERMES_HOME. Malformed Jev answers escalate to the user by design.
Related directory listings
Related agent guides
FAQ
- What is Hermes Jev in search results?
- It usually means hermes-jev-approvals: Jev as the smart approval auxiliary. A separate community project, keeltrace/hermes-jev, adds async supervision and context routing; read its README before conflating the two.
- Can the Jev approval plugin chat?
- No. The anpicasso provider serves auxiliary.approval only and refuses other auxiliary tasks.
- Does skill routing load every skill into context?
- No. typesafe-skill-router injects at most one skill hint line when Jev finds a fit; otherwise it injects nothing.
- OpenRouter vs direct TypeSafe for approvals?
- The approvals README documents both. Direct TypeSafe uses provider typesafe-jev and model jev-latest. OpenRouter uses model ~typesafe/jev-latest with OpenRouter alpha base_url and hermes auth add openrouter.
- Where are measured latency numbers?
- The directory listing for anpicasso-hermes-jev-approvals summarizes PoC benchmarks (latency and prompt counts vs auxiliary chat). Always read the linked GitHub README for methodology.