Smart approvals, skill routing, and MCP without asking Hermes to fake a classifier.
Jev in Hermes: quick setup
Jev in Hermes is the anpicasso/hermes-jev-approvals plugin. It replaces only the auxiliary approval reviewer when approvals.mode is smart. It cannot chat, it refuses every other task, and it registers no hooks.
1. Install the plugin: hermes plugins install anpicasso/hermes-jev-approvals/plugin
2. Add the TypeSafe credential: hermes auth add typesafe-jev
3. Turn on smart approvals: hermes config set approvals.mode smart
4. Point the reviewer at Jev: hermes config set auxiliary.approval.provider typesafe-jev
5. Set the model: hermes config set auxiliary.approval.model jev-latest
6. Restart the gateway: systemctl --user restart hermes-gateway
Plugins are profile-scoped. Repeat the install for each HERMES_HOME. These six commands are the install block in the plugin README.
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-gatewayWhat 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). The Hermes Agent docs are linked under Primary sources.
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)
The anpicasso/hermes-jev-approvals plugin replaces only the auxiliary approval reviewer when 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
Create a TypeSafe API key in the console linked under Primary sources.
You can also route through Vercel AI Gateway or OpenRouter where the integration documents it.
Export TYPESAFE_API_KEY for Hermes gateway and plugin processes.
Some MCP clients accept AI_GATEWAY_API_KEY for gateway-hosted Jev. Follow that integration README.
Never commit keys into repos or paste them into chat logs.
export TYPESAFE_API_KEY="tsk_..."
# Optional pin:
export TYPESAFE_MODEL="jev-latest"Open models beside hosted Jev
Smart approvals use hosted Jev today. When you evaluate self-hosted System One compatible servers for other gates, our dated comparison pages track migration notes and public benchmarks. Start from the ranked hub when you want the full list.
See Jev alternatives compared, Liquid d1 vs Jev and Kev vs Jev.
Pitfalls
Without smart_policy, benchmarks on the approvals plugin showed routine kills and git pushes escalated or denied.
For OpenRouter, use the plugin README pattern: model ~typesafe/jev-latest with base_url.
Do not put api_key under auxiliary.approval or Hermes bypasses the plugin.
Plugins are profile-scoped. Repeat the install for each HERMES_HOME.
Malformed Jev answers escalate to the user by design.
Related directory listings
Related agent guides
OpenClaw + Jev
Assistant OS from OpenClaw, decide layer from Jev. Routing, gates, and official decisionModel support.
Cursor, Grok, and agent skills + Jev
MCP in Cursor settings, TypeSafe skills in the agent, no imaginary Grok-only APIs.
GitHub Copilot Agent Mode + Jev
Workspace .vscode/mcp.json uses servers. Copilot CLI uses mcpServers.
FAQ
- What is a Jev Hermes agent?
- A Jev Hermes agent is Hermes Agent with Jev as the smart approval reviewer through hermes-jev-approvals. Hermes still runs the session. Jev only returns APPROVE, DENY, or ESCALATE for flagged shell commands.
- What does Hermes agent Jev mean?
- Hermes agent Jev is the same pairing: Hermes Agent plus the Jev approval plugin. It is not keeltrace/hermes-jev, which adds async supervision. Install anpicasso/hermes-jev-approvals, set approvals.mode to smart, and point auxiliary.approval at typesafe-jev.
- How do I use Jev with Hermes?
- Install hermes-jev-approvals, run hermes auth add typesafe-jev, set approvals.mode to smart, set auxiliary.approval.provider to typesafe-jev and auxiliary.approval.model to jev-latest, then restart the Hermes gateway.
- 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.