jev-semgrep
grep by meaning, and across languages.
Jun Uehara’s tool scores every line against a meaning instead of matching a pattern, and meanings combine with AND, OR and NOT. Because Jev reads language, a Japanese query finds English lines and the other way round.
# sys1grep — System 1 for your files; uses TypeSafe AI's Jev [日本語版はこちら](README.ja.md) Background and design notes (Japanese): [Jevのキラーアプリ、「意味で探す grep」を作った](https://zenn.dev/uehaj/articles/jev-semgrep-grep-by-meaning) on Zenn. > **Renamed from semgrep (0.5.0).** Two reasons. The name collided with the static-analysis tool [Semgrep](https://semgrep.dev/), a trademark. And the tool was never meant for Jev alone: it targets System 1 models in general, and I'd like it to work with any models TypeSafe AI may release after Jev under other names :). So from 0.5.0 this is **sys1grep** (System 1 + grep): npm package `@uehaj/sys1grep` (was `@uehaj/semgrep`), commands `sys1grep` / `git sys1grep`, environment `SYS1GREP_*`, config `~/.config/sys1grep/.env`. The old `SEMGREP_*` names and `~/.config/semgrep/.env` still work for one minor release, each use printing a deprecation line; 1.0.0 drops them. Details: [CHANGELOG](CHANGELOG.md#renamed). The Zenn article's URL keeps its old slug. A grep that finds lines by **what they mean**, not by regular expressions. Matching is done by **Jev**, the System One model from [TypeSafe AI](https://typesafe.ai/). Jev does not generate text. It answers typed questions with probabilities, so for every line sys1grep asks "does this line match the meaning *network failure*?", gets a probability back, and applies a threshold. ```sh sys1grep -n -e "customer is angry or frustrated" tickets.txt ``` [](https://sys1grep.js.org/) <sub>▶ Click the demo, or open <a href="https://sys1grep.js.org/">sys1grep.js.org</a>, for the full demo on the landing page; <a href="https://sys1grep.js.org/#try">try it in your browser</a>, no key needed.</sub> - Zero dependencies. Node.js 20.16+ and `fetch`, nothing else. - Fast. 30 lines go into one request, requests run