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: MIT OR Apache-2.0

Quick start · Examples · 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

Examples

One yes/no question with filter. 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, next to a filter, on 1,000 messages from a bank's support inbox (banking77): who wants to leave, and which team should answer each message?

jevpipe filter keeps the 13 of 1,000 bank support messages whose customer threatens to leave; jevpipe map then routes all 1,000 to the cards, transfers, account or fraud team, counted with jq, sort and uniq.

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 map -f team.json inbox.txt | jq -r .answers.team.choice | sort | uniq -c    # each line of inbox.txt, counted by team

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

Licensed under either of Apache-2.0 or MIT, at your option. Unless you explicitly state otherwise, any contribution you intentionally submit for inclusion in jevpipe, as defined in the Apache-2.0 license, is dual licensed as above, without any additional terms or conditions.

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.1

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.1
File
jevpipe-0.2.1-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
jevpipe-0.2.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
jevpipe-0.2.1-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.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64, Linux musl 1.1+ ARM64 Details
jevpipe-0.2.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
jevpipe-0.2.1-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 19.3 MB

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

Download URL jevpipe-0.2.1-py3-none-win_arm64.whl
Size 2.8 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
6d42f13fcdf957fdf3695a7b5d6ee12d09b38dd6e325ddfe90a4259bf9a43e3e
BLAKE2b-256 checksum
How to use checksums
551ca58fae5b8bd3e55d964077609a929e22cb8c0f250a938961c4649e1fb2db
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.1-py3-none-win_amd64.whl

Download URL jevpipe-0.2.1-py3-none-win_amd64.whl
Size 2.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
dd1a6d67b736706ddd87b58a7c2126050617eaa0a51659fbf032e52bcce8a2ac
BLAKE2b-256 checksum
How to use checksums
fd11e5bea7ac687a30d9c3aa1c8371efed1a1f3daa89e13820fa50ef75770c44
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.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.musllinux_1_1_x86_64.whl

Download URL jevpipe-0.2.1-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
f99f214289d0db6c8f84f9213ed321212144969ff6e984aa1b6269d5c081cf26
BLAKE2b-256 checksum
How to use checksums
f56d2261c5a2997ae88b7a1e5189152f8ff4c9f2153bfa2450ee02bd3a26a642
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.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl

Download URL jevpipe-0.2.1-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
4d413a7fb69952cb2832a05257b3126caa9466b7cb035546a281a921fe87f454
BLAKE2b-256 checksum
How to use checksums
557e43159e6a5754bbe908213d806404a50785fbd6f2f1675155a3ec488544a7
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.1-py3-none-macosx_11_0_arm64.whl

Download URL jevpipe-0.2.1-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
7aae9dec99a3f5a62793cc4b30552338bf540e80d92ff583d6f98b26c3ca865d
BLAKE2b-256 checksum
How to use checksums
7391d3a935cf09f779b39a961e2f9d44b02a30db404f034b17cfa8fb46ecfb43
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.1-py3-none-macosx_10_12_x86_64.whl

Download URL jevpipe-0.2.1-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
c8bc3b8a92bca8a59157d0646641bd833cfad3f314cdcdbbc7afc6230f2a3766
BLAKE2b-256 checksum
How to use checksums
5caa7b38d538346b98d69a4d95e853135f32f66c024e4ec4d782920a05f7b180
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.1 This release

6 release files

0.2.0

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