Semantic Grep
Paste your text, describe the lines you want in plain language, and Jev filters by meaning — not a regex. A live, in-browser take on the open-source jgrep. No key, just filter.
2026-09-21 08:14:02 INFO user 4821 logged in from 10.0.0.52026-09-21 08:14:09 WARN payment retry 2/3 for invoice INV-2210 (card declined)2026-09-21 08:15:44 INFO cache warm complete in 812ms2026-09-21 08:16:01 ERROR unhandled exception in checkout: TypeError cannot read 'id' of undefined2026-09-21 08:16:03 ERROR stripe webhook signature verification failed for evt_9f22026-09-21 08:17:20 INFO nightly backup uploaded (2.1GB)2026-09-21 08:18:55 WARN slow query 3.4s: SELECT * FROM orders WHERE status = 'pending'2026-09-21 08:19:10 INFO feature flag 'new_checkout' enabled for 5% of users2026-09-21 08:20:31 ERROR failed to send email to user 5567: SMTP timeout2026-09-21 08:21:02 INFO healthcheck ok2026-09-21 08:22:48 ERROR OOM killed worker pid 3120 (memory 2.0GB)2026-09-21 08:23:15 WARN rate limit hit for api key ...a41 (120 req/min)2026-09-21 08:24:00 INFO deploy v2.14.1 started by ci2026-09-21 08:24:52 ERROR checkout payment capture failed: insufficient_funds for user 48212026-09-21 08:25:33 INFO deploy v2.14.1 finished, 0 errors2026-09-21 08:26:19 WARN disk usage 87% on db-primaryFilter your own logs, tickets or rows by meaning — one Jev call per line. Get an API key →
A live, in-browser version of the open-source jgrep — semantic grep on the Jev decision API. Your text is sent to Jev to judge each line and is not stored.
The same demo is one Jev call
- Take each line of your text
- Ask Jev if it matches your plain-language filter (
noul) - Run the lines in parallel
- Keep the lines Jev says match
const results = await Promise.all(items.map((item) => // items = lines of text
fetch("https://jevtypesafeai.com/api/v1/decide", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.JEV_API_KEY}` },
body: JSON.stringify({
state: item,
questions: {
match: { type: "noul",
instructions: "Does this line match: <your filter>?" },
},
}),
}).then((r) => r.json())
));
const kept = lines.filter((_, i) => results[i].answers.match.noul >= 0.5);See a real decision YES · 97% · 188ms
Line: “08:24:52 ERROR checkout payment capture failed: insufficient_funds” Filter: error lines about payments
How it works
Regex matches characters; this matches meaning. You paste your own lines — log entries, support messages, CSV rows — and describe in plain language which ones to keep ("error lines about payments", "customers who sound angry", "anything mentioning a refund"). Every line becomes one Jev call that returns a calibrated yes/no with a probability, streamed back live, and we keep the lines that match. Then copy the filtered set straight out.
It runs entirely in your browser on your own text — nothing is stored — and it's the same primitive the open-source jgrep uses from the command line.
Build it into your pipeline
With a hosted key the same call becomes a real filter in your code or CI: one Jev decision per line at $0.42/M input tokens, returning a clean probability you can threshold — grep your logs for "looks like an outage", triage a support export for "wants to cancel", or gate a dataset on "contains PII" — meaning-based filters a regex can't express.
FAQ
Is this really filtering by meaning?
Yes — each line is an independent Jev decision that returns a calibrated probability that the line matches your plain-language description. There's no keyword matching; "customers who are upset" catches an angry line that never uses the word "angry".
Can I filter my own data?
That's the point — paste your own logs, tickets or rows (up to 60 lines in this free demo) and write your own filter. Nothing you paste is stored; it's sent to Jev only to judge each line.
What is jgrep?
jgrep is an open-source command-line "semantic grep" built on Jev. This is a live, in-browser version of the same idea so you can try it with no install — then use jgrep or the Jev API for real pipelines.
Is it free? How fast and cheap?
Free, no key — a rate-limited call to the live Jev API. Lines are judged in parallel, usually finishing in a second or two; the page shows the running cost (a fraction of a cent).
More: Predictive Spreadsheet · Batch Analyzer (your CSV) · More open-source Jev tools · All Jev tools