Skip to main content

jevpipe

Give your agent a System 1.

Fast, cheap judgments over thousands of files, lines or records in one shell command,
so your agent decides at scale instead of reading everything itself.

CI PyPI License: Apache-2.0

Quick start · Example · Use cases · Measured · Cost

Quick start

uv tool install jevpipe                             # the CLI
jevpipe auth set-key                                # your API key, kept in the system keychain
npx skills add fabianboth/jevpipe --skill jevpipe   # teaches your agent when and how to use it

You need an OpenRouter API key, or a TypeSafe API key after jevpipe config set provider typesafe. Where there is no keychain, as in containers, CI or headless Linux, set OPENROUTER_API_KEY or TYPESAFE_API_KEY instead; it also takes precedence. No uv yet? Install it or use pipx.

Without uv, or with the GitHub CLI
pipx install jevpipe                                # instead of uv
gh skill install fabianboth/jevpipe jevpipe         # the skill, with the GitHub CLI

Example

Which of the 19 commits in ripgrep 15.1 are new features? Ask each commit message:

# in a clone of https://github.com/BurntSushi/ripgrep
git log --format=%s 15.0.0..15.1.0 | jevpipe filter "Is this a new feature?"
# the commit messages that match the question
ignore/types: add `ssa` type
printer: add Cursor hyperlink alias

# the summary, on standard error
jevpipe: 19 records, 2 kept, 0 skipped, 0 failed, 5.7k tokens, $0.000225, 1.1s
Typed answers with map: sort every commit into feature, fix, docs or internal
# in a clone of https://github.com/BurntSushi/ripgrep
git log --format=%s 15.0.0..15.1.0 | jevpipe map -q '{
  "kind": {
    "type": "choice",
    "instructions": "What kind of change is this, for the release notes?",
    "criteria": {
      "feature": "a new capability for users",
      "fix": "a bug fix users would notice",
      "docs": "documentation only",
      "internal": "refactoring, tests, CI, dependencies or release chores"
    }
  }
}'

Every commit becomes one JSON line. One of the 19:

{
  "record": "printer: add Cursor hyperlink alias",
  "answers": {
    "kind": {
      "type": "choice",
      "choice": "feature",
      "probabilities": {"docs": 0.05, "feature": 0.87, "fix": 0.03, "internal": 0.05},
      "confidence": 0.82
    }
  }
}

All 19 took 1.1 seconds and cost $0.0003. Pick from them with jq, for example the fixes: jq -r 'select(.answers.kind.choice == "fix") | .record'. A low confidence marks an answer worth a second look.

Use cases

Each item is judged on its own, so ask what the item itself can answer:

Job Question for every item Answer
Search code by meaning Does this file retry failed requests? yes/no
Triage CI failures Timeout, network error, failed assertion or crash? choice
Review a large diff Does this change touch authentication or permissions? yes/no
Label an issue backlog Bug report, feature request or question? choice
Route a support inbox Which team? How urgent? choice, score
Moderate a comment queue Fine, spam or abusive? choice
Screen papers How relevant is this abstract to my question? score 1 to 5

Measured

Classification. Jev against general LLMs on intent routing and prompt-injection detection, from an independent study:

Mean over three labelled tasks: Jev 1.13 reached 83.2% accuracy at $0.023 per 1,000 decisions and 0.33 s, GPT-5.4 nano 83.1% at $0.12, Claude Haiku 4.5 81.3% at $0.65, Gemini 3.5 Flash-Lite 80.9% at $0.16, and GPT-5.6 Terra 86.7% at $1.08.

Code search. jevpipe in an agent's hands: 470 searches from the extended CodeSearchNet Challenge in five languages, each over every function of its language.

Over 470 code searches in five languages, jevpipe found 1,272 relevant functions with 767 false hits, grep with an agent-written pattern 1,027 with 1,155, and DeepSeek V4.1 Flash 1,173 with 712.

Read the full benchmark: every language, speed and cost, and the searches where jevpipe loses.

Commands

Asks Prints
jevpipe filter "question" one yes/no question the lines answered yes, like grep
jevpipe map -q '{...}' several typed questions: yes/no, one choice, a score one JSON line per record

Both read their input like grep: lines through a pipe or from the files you name. With --read-files, each line is a path, and the file it names is judged instead:

git log --format=%s | jevpipe filter "Is this a new feature?"                       # each commit message
jevpipe filter "Is this an error worth a closer look?" app.log                      # each line of app.log
git ls-files | jevpipe filter "Does this file retry failed requests?" --read-files  # each file

jevpipe <command> --help has the rest.

Cost and speed

Every record is one request billed to your OpenRouter or TypeSafe credit, and the cost follows the size of each record: about a cent per 1,000 commit messages, 4 to 18 cents per 1,000 source files. Asking several questions at once barely changes it. Up to 100 records run at the same time, so hundreds take seconds.

--max-cost 0.50 stops sending requests once the run has spent $0.50; it then exits with status 3 and names the line to resume from. On TypeSafe, which reports tokens rather than dollars, use --max-tokens 5M instead. To cap every run by default, run jevpipe config set max-cost 0.50 once; jevpipe config --help lists the other defaults you can set.

License

Apache-2.0. jevpipe is an independent project, not affiliated with or endorsed by TypeSafe AI; the answers come from Jev, TypeSafe AI's calibrated decision model, through OpenRouter or TypeSafe's own API. Building from source needs Rust (rustup picks the pinned toolchain) and PowerShell 7 for ./check.ps1.

Release files for jevpipe 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for jevpipe 0.2.0
File
jevpipe-0.2.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
jevpipe-0.2.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
jevpipe-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64, Linux musl 1.1+ x86-64 Details
jevpipe-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl Python 3 none Linux musl 1.1+ ARM64, Linux glibc 2.17+ ARM64 Details
jevpipe-0.2.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
jevpipe-0.2.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 19.2 MB

Release files / jevpipe-0.2.0-py3-none-win_arm64.whl

Download URL jevpipe-0.2.0-py3-none-win_arm64.whl
Size 2.8 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
3d8a704b252d75e8218aa907f7fbe1c3e7d51384667d51b5a68f90856d8eea3a
BLAKE2b-256 checksum
How to use checksums
1e9b7333f817e4d8d7759a48592a6c8c6a84994451dbb152af6bd312d47692d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / jevpipe-0.2.0-py3-none-win_amd64.whl

Download URL jevpipe-0.2.0-py3-none-win_amd64.whl
Size 2.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
0d5f7aed0e7a0d76b51aace1301c25174f54d1e425b51e601ee557dfb19e972a
BLAKE2b-256 checksum
How to use checksums
871132b20d247ade9cdbdd83f6670ce753b6c6ca532e8a9e43dc40d981188454
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / jevpipe-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl

Download URL jevpipe-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Size 4.1 MB
Tags Linux glibc 2.17+ x86-64 Linux musl 1.1+ x86-64 Python 3
SHA-256 checksum
How to use checksums
9221c9cf00f9816b98dc18bc46979b7056b82daf18c5e878e7837e2fb98d6b43
BLAKE2b-256 checksum
How to use checksums
c478ab463c7e27f4a981aaf498b2a651e4c2cfcd36f4af14fc714036bc7a14f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / jevpipe-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl

Download URL jevpipe-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Size 3.8 MB
Tags Linux glibc 2.17+ ARM64 Linux musl 1.1+ ARM64 Python 3
SHA-256 checksum
How to use checksums
7d6bb8083e8cfe8d3307620fdd90168e9b4c63c483165001ceb51500609af6bc
BLAKE2b-256 checksum
How to use checksums
441bcd2e06a758c30ead0ad00644a4108f4dd8429cdafb5353c57cc1aa580512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / jevpipe-0.2.0-py3-none-macosx_11_0_arm64.whl

Download URL jevpipe-0.2.0-py3-none-macosx_11_0_arm64.whl
Size 2.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3e6b8155f64d523adc3b6be34b618a98c1a5429545bc63bb024ff35fa20c2bc8
BLAKE2b-256 checksum
How to use checksums
ae47c4f13cc4ed1bf83e9c0261175913b63620e6e95d27cbe2e305f02d974308
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / jevpipe-0.2.0-py3-none-macosx_10_12_x86_64.whl

Download URL jevpipe-0.2.0-py3-none-macosx_10_12_x86_64.whl
Size 3.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
54627d2df2ba5f44d51e42ee1e792ff34e179d1576fd3c48189578e3f1a5aedd
BLAKE2b-256 checksum
How to use checksums
719336662813585b5c04db17042095634a8fb7b89d80ab861d4257b545aa2036
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

6 release files

0.1.1

6 release files

0.1.0

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page