Skip to content

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.

Agent skillbetaMIT

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

TypeQuestionAnswers
Yes / noIs this tool action destructive / does it exfiltrate data?yes · no
ScoreWhat is the impact of this action?—
ChoiceWhich single skill (if any) is worth loading for this turn?—

How it works

  1. Enable jev-judge and/or jev-skill-router
  2. Gate risky tool calls (shadow or enforce)
  3. Route each turn to at most one skill
  4. 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-projects
  • 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.

    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.

    HookbetaPython
  • Unofficial, read-only MCP server exposing Jev as four advisory tools: decide, route, risk score and yes/no gate.

    MCP serverbetaTypeScript
  • Agent toolkit for Claude Code and Codex whose optional /d router uses Jev to pick agents, skills and workflows and gate dispatch on intent.

    ProjectbetaPython
  • Skill and CLI that compares a shortlist of agents, MCP servers or skills against a task and permission ceiling, abstaining on weak leads.

    MCP serverprototypeTypeScript
  • Gateway that checks agent tool calls with policy plus Jev evidence, then binds approval to a single-use permit for that exact action.

    MCP serverbetaTypeScript
  • OpenJev 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