Skip to content

jev-edge

Gateway admission control that asks Jev what each incoming request is trying to do, filtering prompt injection and abuse.

AppbetaApache-2.0

Overview

jev-edge screens incoming traffic for LLM-backed applications at the gateway. It asks one question of each request, in effect what it is trying to do to the service, and uses Jev's probabilities to catch prompt injection and abuse before the request reaches the backend. It is aimed at SREs and platform engineers rather than agent authors: other Jev guards judge what an AI is about to do, while this judges what the outside world is about to do.

It runs in OpenResty, Apache APISIX and Kong, behind Envoy, Istio, HAProxy, Traefik, Caddy and nginx through an authz endpoint, in Cloudflare Workers, Next.js, Node, Hono, Lambda@Edge and Deno via a JS package, and as a LiteLLM guardrail. A three-layer design includes local rules, caching and policy, it fails open and hot-reloads. Judges can be Jev, a self-hosted fine-tuned Laya, or any OpenAI-compatible endpoint. Version 0.6.4 has no known production use, and the README recommends monitor mode first.

What the decision model decides

TypeQuestionAnswers
ChoiceWhat is this request trying to do to the service?(inferred)—
Yes / noIs this request a prompt injection or abuse attempt?(inferred)—

How it works

  1. Request hits the gateway
  2. Layer 1 rules and cache check it locally
  3. Jev (or Laya) judges remaining requests
  4. Policy allows, flags or blocks; fails open on errors

Strengths

  • Works across many gateways and edge runtimes
  • Mock provider shows the full pipeline with no key
  • Pluggable judge including local Laya

Caveats

  • No known production use
  • Start in monitor mode
  • Independent project, not affiliated with TypeSafe

Getting started

`git clone https://github.com/kiwi0719/jev-edge && cd jev-edge/demo && docker compose up --build` (mock provider, no key needed).

At a glance

Type
App
Status
beta
Language
Lua
Runtime
OpenResty/nginx module plus JS package
Has code
yes
License
Apache-2.0

Use cases and integrations

How curated lists describe it

  • Typed-judgment admission control at the traffic edge: three-layer prompt-injection and abuse filter for nginx/OpenResty, powered by TypeSafe Jev. Fail-open, cached, hot-reloadable.

    logicrw/awesome-jev-projects
  • Typed-judgment admission control at the traffic edge: three-layer prompt-injection and abuse filter for nginx/OpenResty, powered by TypeSafe Jev. Fail-open, cached, hot-reloadable.

    hellogumbo/awesome-jev
  • Admission control at the traffic edge: an OpenResty module, with Lua and JavaScript packages, that screens requests for prompt injection before they reach the app.

    MrJev/awesome-jev

Frequently asked questions

What does Jev decide?

What each incoming request is trying to do, to flag prompt injection and abuse.

Where can it run?

In many gateways and edge runtimes, including OpenResty, Envoy, Cloudflare Workers and LiteLLM.

What if Jev is unavailable?

It fails open, so traffic continues.

Related projects

  • Go reverse proxy between nginx and an LLM backend that extracts each request's user input, asks Jev if it is harmful, and blocks or passes.

    ProxybetaGo
  • Text review gateway between clients and AI services that classifies each user input with Jev and blocks or logs per configured scenarios.

    LibrarybetaGo
  • Large catalog of Claude Code agents, commands, hooks and MCPs, listed with community Jev mods for guardrails and subagent models.

    CLIproductionJavaScript
  • Python/TypeScript/Go chatbot safety library checking user input and bot replies with Jev and returning one actionable verdict per message.

    LibraryproductionPython
  • MCP proxy and hooks that screen agent tool calls before they run and their results before the agent reads them, using Jev judgments.

    MCP serverbetaTypeScript
  • Xano backend template where Jev judges each agent tool call as safe, needs review or dangerous, and uncertain calls wait for a human.

    ProjectbetaXanoScript