npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jevctl

v0.2.3

Published

Command-line tool for TypeSafe's Jev AI model. Check claims against evidence, detect prompt injection, find the best match in a list, or ask your own yes/no, multiple-choice, and rating questions. Returns probabilities, not text.

Readme

jev-cli

CI npm License: MIT Website

Fast, typed AI judgments from the command line, powered by TypeSafe's Jev model.

Jev does not write text. You give it content and a question with a fixed set of answers, and it returns a probability for each answer in a few hundred milliseconds for a fraction of a cent. jev wraps that into commands you can pipe into, script around, and gate CI on.

Installed from npm as jevctl. The command is jev. Website: jevcli.vectorz.app.

Install

npm install -g jevctl
jev auth login        # paste your TypeSafe key at the hidden prompt; stored in the OS keychain
jev config            # confirms the key is found and shows the effective settings

Needs Node.js 20.12+ and a key from console.typesafe.ai/settings/keys. No install: npx jevctl <command>.

First run

jev verify "Helmets are optional for adults" \
  --evidence "Every rider must wear an approved helmet."
#  Verdict       Conf  Action  Claim
-  ------------  ----  ------  -------------------------------
1  contradicted  1.00  auto    Helmets are optional for adults

Exit code was 2: a claim was contradicted. Add --json to any command for machine-readable output, or --dry-run to see exactly what would be sent without calling the API.

Commands

Each command has its own page with options, output fields, and examples.

| Command | Answers | Docs | | --- | --- | --- | | jev verify | Does this evidence support, contradict, or ignore each claim? | docs/verify.md | | jev screen | Is this text trying to hijack an AI agent? Is it worth reading? | docs/screen.md | | jev classify | Which label fits? Which labels apply? Where in this hierarchy? | docs/classify.md | | jev extract | Which span in the text is the email, amount, date, id I want? | docs/extract.md | | jev find | Which candidate best answers the query? Does any? | docs/find.md | | jev rerank | How relevant is each result to the query, on its own? | docs/rerank.md | | jev match | Do these two records describe the same thing? | docs/match.md | | jev route | Which handler takes this request, with which arguments? | docs/route.md | | jev ask | Any yes/no, pick-one, or rated question you write yourself | docs/ask.md | | jev compact | Which old tool calls in this agent transcript still matter? | docs/compact.md | | jev batch | Any of the above, over many rows, with a concurrency pool | docs/batch.md | | jev auth | Store the API key in the keychain instead of exporting it | docs/auth.md | | jev config | Show or edit settings; check which key source is in use | docs/config.md | | jev models | List the models your account can use | docs/config.md#models | | jev update | Check npm for a newer jevctl release and install it | docs/update.md |

Conventions

Same rules for every command. Details in docs/output.md and docs/config.md.

| | Rule | | --- | --- | | Input | Any value is literal text, @path for a file, or - for stdin (one per command). @@x is a literal starting with @. | | Output | Table by default. --json for scripts, --md for PR comments, --format csv\|tsv\|jsonl, --pluck <path> for one value. JSON field names are a stable contract. | | Exit codes | 0 ok · 1 usage, config, input, or network error (stderr) · 2 a --fail-on condition matched. Code 2 makes jev a gate in &&, hooks, and CI. | | Thresholds | Defaults follow TypeSafe's cookbooks. Sample your data with --json, then tune via flags or config. | | Global flags | --json --md --format --pluck --dry-run -m -P --timeout -q --no-color, before or after the subcommand. | | Errors | One line on stderr, exit 1. A response that is not one answer per question is Malformed response, never a silent pass. |

Claude Code plugin

The repo ships a plugin that teaches Claude Code when to use jev, adds /jev:* slash commands, and replaces Claude Code's compaction summary with jev compact's verbatim procedure.

claude plugin marketplace add Nasrallah-AL/jev-cli
claude plugin install jev@jev-cli

See plugin/README.md, and plugin/hooks/README.md for the compaction hook.

More

License

MIT