jev-edge
Gateway admission control that asks Jev what each incoming request is trying to do, filtering prompt injection and abuse.
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
| Type | Question | Answers |
|---|---|---|
| Choice | What is this request trying to do to the service?(inferred) | — |
| Yes / no | Is this request a prompt injection or abuse attempt?(inferred) | — |
How it works
- Request hits the gateway
- Layer 1 rules and cache check it locally
- Jev (or Laya) judges remaining requests
- 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-projectsTyped-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-jevAdmission 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.
ProxybetaGoText review gateway between clients and AI services that classifies each user input with Jev and blocks or logs per configured scenarios.
LibrarybetaGoLarge catalog of Claude Code agents, commands, hooks and MCPs, listed with community Jev mods for guardrails and subagent models.
CLIproductionJavaScriptPython/TypeScript/Go chatbot safety library checking user input and bot replies with Jev and returning one actionable verdict per message.
LibraryproductionPythonMCP proxy and hooks that screen agent tool calls before they run and their results before the agent reads them, using Jev judgments.
MCP serverbetaTypeScriptXano backend template where Jev judges each agent tool call as safe, needs review or dangerous, and uncertain calls wait for a human.
ProjectbetaXanoScript