Open Jev Approvals — Development skill for Claude Code
Fail-closed binary (allow/deny) approval gate for Codex and Claude Code hooks — every intercepted tool call is reviewed by TypeSafe JEV and composed through a versioned local policy, with scoped autho.
How to install Open Jev Approvals
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open alexj11324/open-jev-approvals and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Open Jev Approvals does
Fail-closed binary (allow/deny) approval gate for Codex and Claude Code hooks — every intercepted tool call is reviewed by TypeSafe JEV and composed through a versioned local policy, with scoped authorization and a tamper-audited SQLite trail.
Alternatives in Development
- Phistory — Phistory automatically archives versioned system prompt snapshots from agent CLIs like Claude Code, Codex, Ope 560 ★
- Migrations — Versioned breaking change migrations for Turbo 263 ★
- Raw CLI — The agent harness you can fork 105 ★
README
open-jev-approvals
English | [简体中文](README.zh-CN.md)
An MIT-licensed JEV approval gate for Codex and Claude Code hooks.
It receives hook events plus tool and permission payloads, sends each intercepted action to TypeSafe Jev, and composes the typed judgments through a local policy. On Codex, it preserves the upstream split between `PreToolUse` blocking and `PermissionRequest` decisions. JEV is the only reviewer: every intercepted action ends in an explicit local `allow` or `deny` — there is no third outcome.
The first release targets macOS and Linux. It leaves each harness's model, provider, sandbox, and bypass mode untouched.
Build
go build -o bin/jev-approve ./cmd/jev-approve
go test ./...
Configuration
`TYPESAFE_API_KEY` is required for live reviews. The binary loads credentials only from a **user-level** env file — a checked-out or working `.env` inside a project is never read, so a repository cannot redirect the approval endpoint or capture the key. The file uses `KEY=value` lines (see `.env.example`) and resolves in this order:
$JEV_APPROVALS_ENV_FILEwhen set,$XDG_CONFIG_HOME/jev-approvals/envwhenXDG_CONFIG_HOMEis set,~/.config/jev-approvals/envotherwise.
Environment variables:
| Variable | Required | Meaning |
|---|---|---|
TYPESAFE_API_KEY |
yes | TypeSafe API credential, sent as a bearer token |
TYPESAFE_API_BASE_URL |
no | endpoint override; must be https, no credentials/query/fragment (default https://api.typesafe.ai/v1/systemone) |
TYPESAFE_MODEL |
no | model override (default jev-latest); responses are still validated to a jev-* model |
JEV_APPROVALS_STATE_DIR |
no | directory holding state.db |
JEV_APPROVALS_ENV_FILE |
no | env-file path override |
XDG_STATE_HOME, XDG_CONFIG_HOME |
no | XDG base-directory overrides for state and config |
The audit database is SQLite at `$JEV_APPROVALS_STATE_DIR/state.db`, else `$XDG_STATE_HOME/jev-approvals/state.db`, else
Related Skills
Jev Brig
A Claude Code hook that judges Bash commands against a session policy level, and answers allow/ask/deny with a
Hermes Studio Bridge
Versioned Hermes ↔ Pocket Agent bridge (FastAPI, OpenAI-compatible) — stable app/v1 contract: sync, approvals,
Smart Approve.py
PreToolUse (Bash) Decompose compound bash commands (&&, \ \ , ;, \ , $()) into sub-commands and check each aga
Claude Code Mini
Async Python implementation of the Claude Code agent harness — real Bash/Read/Glob/Grep tools, three-tier cach
ClaudeNotch
Claude Code status in the MacBook notch: live Clawd, hover details, Allow/Deny buttons
StackRadar
StackRadar: free local dev dashboard + network firewall. Find every repo, run command & open port, catch leake
Related Agents
Auth Policy Validator
Валидатор ZenStack access control policies. USE PROACTIVELY после изменений @@allow/@@deny для проверки безопа
Permission Analyst
Recommends allow/deny permission rules from denial telemetry and policy via PromptWise. Use to reduce permissi
Permissions Manager
Manage tool permission rules. Use when user says 'allow', 'deny', or 'ask' for a command, wants to modify perm