jevdo
Strict-allowlist shell harness where Jev walks a TOML decision tree to pick a bash command, flags and paths, confirming writes.
Overview
jevdo (packaged as hsom, Harness for System One Models) lets Jev operate a bash shell under a strict allowlist. An environment.toml file defines which commands Jev may select and their structure. In one step, Jev navigates the decision tree defined by the file: command, then subcommand, then boolean or valued flags, then path slots. Commands are classified as read, write or destructive; read actions run directly, while write and destructive actions ask for confirmation with a default of no, and non-interactive sessions decline. A dry-run mode previews without executing or prompting.
Jev can be reached through TypeSafe Cloud or OpenRouter's System One API, with clear precedence rules for endpoint and key configuration, and both bare and prefixed model ids are passed through. It is aimed at users who want natural-language shell control without letting a model compose arbitrary commands.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which allowlisted command, subcommand, flags and path slots match the request? | — |
How it works
- Define allowed commands in environment.toml
- User states a request
- Jev walks the command tree to select command, flags and paths
- Run reads directly; confirm writes and destructive actions (default no)
Strengths
- Model can only choose allowlisted commands
- Confirmation for write and destructive actions
- Dry-run preview
Caveats
- Usefulness limited to commands you allowlist
- Requires a TypeSafe or OpenRouter key
Getting started
pip install -e ., export TYPESAFE_API_KEY, cp environment.toml.example environment.toml.At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- CLI
- Has code
- yes
Use cases and integrations
How curated lists describe it
Jev, Do. | Connects Jev to your shell.
hellogumbo/awesome-jev
Frequently asked questions
Can Jev run any shell command?
No, only commands defined in the allowlist TOML.
What about destructive commands?
They require confirmation, defaulting to no; non-interactive sessions decline.
Can I use OpenRouter?
Yes, set provider to openrouter and supply OPENROUTER_API_KEY.
Related projects
Discontinued DeepSeek Harness decision layer whose policies let Jev only narrow permissions and fail closed; successor is jevcore.
ProjectprototypeTypeScriptCognitive control layer for OpenCode that uses Jev to compute GO, DELIBERATE, VERIFY or BLOCK for agent actions, observing by default.
ProjectbetaTypeScriptDeepSeek Harness plugin with 12 opt-in Jev or Luna Decisions judgments: skill and file selection, supervision, filtering and approval help.
PluginbetaTypeScriptClaude Code PreToolUse hook that auto-approves shell commands Jev is confident are read-only, and otherwise shows the normal prompt.
HookbetaPythonOpen-source Jev skills for Claude Code, Codex, Cursor and Grok: one client to gate, route, guard, verify, triage, review and act.
ProjectbetaTypeScriptClaude Code plugin adding typed Jev decisions to hooks: task kind, command risk, failure class, completion; never grants permissions.
PluginbetaJavaScript