sys1grep
Grep by meaning: a zero-dependency Node CLI where Jev scores each line against a described meaning, combinable with AND/OR/NOT.
Overview
sys1grep (formerly jev-semgrep, renamed to avoid clashing with Semgrep and to cover System 1 models generally) is a grep that finds lines by what they mean rather than by regular expressions. For each line it asks Jev whether the line matches a meaning such as 'customer is angry or frustrated', gets a probability, and applies a threshold (0.5 by default, since probabilities are calibrated). Meanings combine with AND, OR and NOT, and regex terms can pre-filter so only candidate lines are sent, because the cheapest line is the one never sent.
It is a single dependency-free Node file. Thirty lines go into one request with eight requests in parallel, so a 210-line file finishes in under a second. It is language-agnostic: an English meaning finds Japanese lines and a Japanese meaning finds English ones, with no translation step, though the README notes Japanese meanings wobble a little more near the threshold. It also works as git sys1grep, and documentation is in English and Japanese.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this line match the meaning '<description>'? | — |
How it works
- Give one or more meanings and optional regex pre-filters
- Batch lines (30 per request, 8 in parallel) to Jev
- Apply the threshold and combine meanings with AND/OR/NOT
- Print matching lines, optionally with probabilities
Strengths
- Cross-language matching without translation
- Zero dependencies, single file
- Regex pre-filter cuts cost
Caveats
- Every line sent costs money
- Non-English meanings slightly less stable near threshold
Getting started
Download sys1grep (or npm @uehaj/sys1grep), set the TypeSafe key, then ./sys1grep -n -e "meaning" file.txt.At a glance
- Type
- Project
- Status
- beta
- Language
- JavaScript
- Runtime
- Node 20.16+ CLI
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Grep by meaning, across languages. TypeSafe Jev scores every line against a meaning; combine meanings with AND/OR/NOT. 意味で探す grep。日本語で英語を、英語で日本語を検索できる.
hellogumbo/awesome-jevGreps by meaning rather than pattern, scoring every line against a description and combining meanings with AND, OR and NOT; a single dependency-free Node file. Japanese and English. Formerly jev-semgrep.
MrJev/awesome-jev
Frequently asked questions
What does Jev decide?
Whether each line matches the meaning you describe.
Can it search across languages?
Yes, meaning and text can be in different languages.
How do I keep costs down?
Use regex pre-filters so only candidate lines go to Jev.
Related projects
Semantic grep that asks Jev a yes/no about every function for questions no regex can express, with cost reporting.
ProjectbetaDeterministic code-graph context for coding agents on Postgres, AGE and pgvector, with optional Jev or local re-selection of symbols.
MCP serverbetaPythonClaude Code plugin that adds Jev as an independent judge for review findings, debugging hypotheses, design options and search hits.
PluginbetaRetrieval layer for Codex that finds evidence locally, optionally ranks sanitized excerpts with Jev, and returns bounded, cited evidence.
ProjectbetaDeepSeek Harness jev_search tool that runs ripgrep, scores every hit line with Jev, and returns only the top rows above a cut.
PluginbetaJavaScriptCLI that asks one yes/no question of every function in a codebase with Jev and ranks them by probability: grep whose pattern is a question.
CLIbetaPython