hermes-jev (DoGMaTiiC)
Two stdlib-only Hermes Agent plugins: a Jev pre-tool gate with a jev_ask tool, and a skill router that names one skill per turn.
Overview
This hermes-jev repository provides Jev decision layers for Hermes Agent as two plugins with no Node or SDK dependencies. jev-judge is a pre-tool-call gate on terminal, write_file and patch tools that asks whether an action is destructive, exfiltrates data and what its impact is, running in shadow (log-only) mode by default, and it also adds a jev_ask tool. jev-skill-router runs before the model call, asks Jev for at most one skill from the live roster and injects a single line naming it; it is off by default.
Jev can be reached directly with a TypeSafe key, through Vercel AI Gateway, or (for the router) through OpenRouter, with automatic selection based on available keys. With no key, both plugins fail open so nothing breaks and nothing is sent. Each plugin has its own README covering settings and exactly what leaves the machine.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this tool action destructive / does it exfiltrate data? | yes · no |
| Score | What is the impact of this action? | — |
| Choice | Which single skill (if any) is worth loading for this turn? | — |
How it works
- Enable jev-judge and/or jev-skill-router
- Gate risky tool calls (shadow or enforce)
- Route each turn to at most one skill
- Fail open when no key is configured
Strengths
- Stdlib only
- Shadow mode by default
- Multiple Jev access routes
Caveats
- Router off by default
- Catalogue entries pending
Getting started
git clone https://github.com/DoGMaTiiC/hermes-jev, symlink a plugin into ~/.hermes/plugins, hermes plugins enable <name>, and add keys to ~/.hermes/.env.At a glance
- Type
- Agent skill
- Status
- beta
- Language
- Python
- Runtime
- Hermes Agent plugins
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Hermes Agent plugin: route each turn to the one skill that fits, via TypeSafe Jev on the Vercel AI Gateway. Fail-open, opt-in, stdlib only.
logicrw/awesome-jev-projectsHermes Agent plugin: route each turn to the one skill that fits, via TypeSafe Jev on the Vercel AI Gateway. Fail-open, opt-in, stdlib only.
hellogumbo/awesome-jev
Frequently asked questions
Is the gate enforcing by default?
No, jev-judge defaults to shadow (log only).
What if no key is set?
Both plugins fail open and send nothing.
How is Jev reached?
Directly via TypeSafe, via Vercel AI Gateway, or via OpenRouter for the router.
Related projects
Claude Code hook that decides which agent or skill should handle a request using YAML rulebooks plus one Jev Choice with confidence bands.
HookbetaPythonUnofficial, read-only MCP server exposing Jev as four advisory tools: decide, route, risk score and yes/no gate.
MCP serverbetaTypeScriptAgent toolkit for Claude Code and Codex whose optional /d router uses Jev to pick agents, skills and workflows and gate dispatch on intent.
ProjectbetaPythonSkill and CLI that compares a shortlist of agents, MCP servers or skills against a task and permission ceiling, abstaining on weak leads.
MCP serverprototypeTypeScriptGateway that checks agent tool calls with policy plus Jev evidence, then binds approval to a single-use permit for that exact action.
MCP serverbetaTypeScriptOpenJev for Claude Code: plugin and MCP server giving Claude jev_choice, jev_noul, jev_score and jev_ask tools on the live API.
MCP serverbetaTypeScript