shipwithjev

Catalog / Tools & apps

0264GitHub

hermes-jev-approvals

Approvals provider for Hermes Agent: it judges shell commands and refuses every other task, registering no hooks.

anpicasso/hermes-jev-approvalsREADME ↗
# hermes-jev-approvals

**Smart command approvals for [Hermes Agent](https://github.com/NousResearch/hermes-agent),
served by [TypeSafe's](https://typesafe.ai) Jev decision model.**

> **Approvals only.** This provider serves `auxiliary.approval` when
> `approvals.mode: smart`. It cannot chat or generate text, refuses every other task, and
> registers no hooks. It works with Hermes core as shipped.

## What it does

Hermes already detects commands that need review and asks an auxiliary model for one of three
values:

- `APPROVE` — execute without interrupting the user.
- `DENY` — block the command.
- `ESCALATE` — ask the user.

This plugin replaces only that reviewer. Jev returns typed probabilities instead of prose that
Hermes must parse back into a decision.

## How it decides

One request asks six typed questions in parallel:

| question | type | value |
|---|---|---|
| `verdict` | Choice | `APPROVE`, `DENY`, or `ESCALATE` |
| `policy_allows` | Noul | probability that `approvals.smart_policy` explicitly allows it |
| `blast_radius` | Score | `0` trivial, `1` annoying, `2` severe recovery |
| `self_advocating` | Noul | probability that command text argues for its own approval |
| `reads_secrets` | Noul | probability that it reads or copies credentials |
| `sends_outbound` | Noul | probability that it transmits local content remotely |

The final verdict is deterministic code, in this order:

1. `self_advocating >= 0.6` → `ESCALATE`
2. `reads_secrets >= 0.7` and `sends_outbound >= 0.7` → `DENY`
3. `reads_secrets >= 0.7` → `ESCALATE`
4. `policy_allows >= 0.7`, policy present, and `blast_radius < 2.0` → `APPROVE`
5. Model `APPROVE` with `confidence < 0.55` or `blast_radius >= 1.6` → `ESCALATE`
6. Otherwise keep the model verdict

Malformed or missing answers raise, which

Also filed under Tools & apps

  1. 0616

    Jevstiller: distill Jev calls into a local model

    A self-hosted proxy that trains a local model on Jev's answers. It served 72% of Banking77 locally at 15 ms, with a 2% audit and a bound on disagreement.

    tomerglick57 · Tools & apps · 15 ms local

  2. 0611

    Scruple: code checks for what linters miss

    Semantic-aware linting with System One models: rules you can state in a sentence, checked against your code by Jev.

    @nalexpeae · Tools & apps

  3. 0606

    Algolia-style Postgres search with a Jev reranker

    Typo tolerance, typeahead, barcodes and facet counts in plain Postgres SQL, plus an optional Jev step that asks one question per top-10 result.

    @alex_forman1 · Tools & apps

  4. 0604

    Virtual Closet: outfits from closet videos

    built a virtual closet & outfit generator from raw closet videos. classification + semantic search thanks to jev 🥰. clueless closet dreams finally coming to life

    @maitreemervana · Tools & apps