grev
Unix-style thinking coreutils in Go: filter, label, sort, and cut by meaning with TypeSafe Jev, and print the user's own lines back.
Overview
grev (github.com/aurorainfra/grev, Apache-2.0 or MIT, your choice) is a Go suite of Unix filters that ask TypeSafe Jev a typed question instead of matching a pattern. The README rule is that output is always your input. Labels and scores appear only as explicit columns. The tools are grev, isv, oneof, tagv, sortv, rank, pickv, uniqv, unwrap, seg, cutv, seek, trv, lookv, probev, and grev-settings. Each has --help and a man page. Install from GitHub Releases (deb, rpm, apk, Arch packages, and archives for Linux, macOS, FreeBSD, and Windows), with go install github.com/aurorainfra/grev/cmd/...@latest, or with make and sudo make install, which also installs man pages and bash, zsh, and fish completions. grev-settings skill install copies an agent skill into ~/.claude/skills and ~/.agents/skills. npx skills add aurorainfra/grev works too. The default endpoint is TypeSafe. OpenRouter and Fastino are documented alternates. Public counts were 55 stars and 1 fork when this listing was drafted.
Problem: grep, sort, and cut match strings. The line you want is often a meaning: the crash, the refund, the vegan meal, the column that is an email. A chat model answers with a paraphrase. A pipeline still needs the original line.
Built for: Shell users and coding agents who want Unix-style filters that keep the input text, add labels or scores only as explicit columns, and stop a run before it overspends.
First indexed on Jev Directory: 2026-10-03
Creator and team
- Name
- aurorainfra
- Handle
- @aurorainfra
“Unix filters that ask questions instead of matching patterns.”
How Jev is used
- Role in the product flow
- Semantic coreutils: each tool asks Jev a typed question and prints the user's own records, with labels or scores only when a flag asks for a column
- Primitives
- ChoiceScoreNoul
- State in
- The user's records. grev asks one yes/no per record, a line by default, and --about tells the model what the lines are. A {} in the question, or {1} and {2} after -d, names a field. isv and oneof judge the whole input once. Relational tools such as unwrap, seg, and pickv put a window of line-tagged text in the state.
- Decision out
- The selected input lines, verbatim and in input order. -s prints P(yes). -n prints the line number. probev -H prints probability columns for awk. tagv --split writes records into files. isv answers with the exit status. Counting stays in code, one answer per line. DESIGN.md names 2 normalizations: CRLF comes out as LF, and cutv re-encodes CSV quoting while TSV passes through byte for byte.
- Install a release package, go install github.com/aurorainfra/grev/cmd/...@latest, or make and sudo make install
- grev-settings key set writes the TypeSafe key into ~/.grevconfig with mode 0600. CI can set TYPESAFE_API_KEY and skip the file
- Optional: point api.endpoint at OpenRouter or https://api.fastino.ai and set the model. OpenRouter does not serve the default jev-1.13.0. Fastino uses fastino/GLiDE
- Run grev, tagv, rank, cutv, seek, or the rest of the suite. -Q quotes first. --max-cost and the daily and monthly caps stop a run. Closing the output pipe stops spending
- grev-settings skill install for Claude Code and for ~/.agents/skills, which the README says Codex, Gemini CLI, GitHub Copilot, Cursor, OpenCode, Goose, and Amp read
grev is the shell suite. dzhng-jevgrep is the coding-agent search CLI: it walks a repo and returns excerpts, and the lines on stdout are leads for the agent to open. iurysza-logview-jev is an Android log viewer whose semantic mode scores retained lines inside the TUI. leepokai-jev-guard scores tool calls and scans results for coding agents. kitfunso-hippo-memory reranks local notes on recall. grev stays on the pipe. docs/tools/grev.md says the match is the original record. DESIGN.md adds the 2 output normalizations, CRLF to LF and CSV re-encoding in cutv, and still keeps labels in columns. The Go rows already in this catalog are mostly API clients. marcus-frost is a Go CLI that routes models. grev's job is the filter. Cite github.com/aurorainfra/grev README, docs/tools/grev.md, and docs/DESIGN.md.
Sourced performance claims
- README tool table: grev filters like grep, isv answers yes/no like test, oneof picks a label like case, tagv labels every record, sortv sorts by a described order, rank sorts by fit or by ordered levels, pickv returns the one best line, uniqv collapses adjacent records that mean the same thing, unwrap rejoins hard-wrapped lines, seg splits a stream into topic segments, cutv cuts columns by description, seek walks a tree, trv translates where an instruction applies, lookv finds where an ordered answer flips, probev prints probability columns, and grev-settings holds config, the key, spend, and the skill.Source: github.com/aurorainfra/grev README tool table
- docs/tools/grev.md example: 16-line examples/app.log, 1 request, 1,388 tokens, $0.000058, 0.6 seconds, model jev-1.13.0. The printed lines were the panic, the fatal concurrent map write, the OOM kill, and the supervisor restarts. A 502 retry and a delayed email stayed out. -v selects the no rows as 1 minus P(yes), not as a negated question. Default threshold is 0.5. Exit status: 0 if a record was selected, 1 if none, 2 on error, 3 if only uncertain records, 4 if declined at -Q or stopped by --max-cost.Source: github.com/aurorainfra/grev docs/tools/grev.md
- README cost: Jev is $0.042 per million input tokens and output is free. Grepping a 4,000-line source file costs about $0.008. A quote above confirmAbove asks first and refuses without a terminal. The built-in confirmAbove is $1. The sample config sets it to $0.25, with daily 5 and monthly 50 USD caps. Fastino GLiDE is $0.30 per million input tokens and bills the shared context once per question, so those runs cost several times more. Quotes include that.Source: github.com/aurorainfra/grev README Cost and safety and Through Fastino
- DESIGN.md: a request carries about 262 tokens of framing plus about 7 per question, plus the text. Choice allows up to 255 options. Score uses 2 to 10 ordered levels. Putting each record inside its own question scored 94% against 91% for a state array on labelled sets, and the doc points at eval/RESULTS.md. --about adds 3 to 5 points. Packing limits: the whole request stays at or under 64k tokens, the state plus its longest question at or under 32k, with a 15% margin and 128 questions per request. The scheduler respects 1,200 requests per minute and 250k tokens per second.Source: github.com/aurorainfra/grev docs/DESIGN.md
- README lookv example comment: the first health check that reports a failure takes 3 requests for 600 lines. OpenRouter setup uses jev-latest or jev-1.13 because the default jev-1.13.0 is not served there. Package upgrades keep the agent skill current when the deb, rpm, apk, or Arch package links it to /usr/share/grev/skills/grev.Source: github.com/aurorainfra/grev README examples and Use with coding agents
- Public GitHub repo aurorainfra/grev had 55 stars and 1 fork on 2026-10-03. License Apache-2.0 or MIT. Language Go. Created 2026-09-24. Last push 2026-10-02.Source: GitHub API 2026-10-03
Features and stack
Features
- 16 tools from grev and isv through seek, trv, lookv, probev, and grev-settings
- Output contract: your lines back, scores and labels only as columns
- Man pages, shell completions, and deb, rpm, apk, Arch, and archive packages
- Spend quote, confirmAbove, --max-cost, and daily and monthly caps
- OpenRouter and Fastino endpoints beside the TypeSafe default
- Agent skill installer for Claude Code and ~/.agents/skills
Stack
- Go
- Apache-2.0 or MIT
- TypeSafe Jev, OpenRouter, or Fastino GLiDE
- man pages and shell completions
Pricing: Dual-licensed code. Jev calls spend your key at the README rate of $0.042 per million input tokens, output free. A 4,000-line grep is about $0.008. Fastino GLiDE is $0.30 per million on that endpoint. The built-in confirm prompt sits at $1.
Links
FAQ
- Does grev rewrite the lines it keeps?
- docs/tools/grev.md: grev prints the records the model says yes to, verbatim and in input order. The README says labels and scores appear only as explicit columns, for example -s or probev -H. DESIGN.md adds 2 normalizations: CRLF comes out as LF, and cutv re-encodes CSV quoting. TSV passes through byte for byte.
- How is this different from jevgrep?
- dzhng-jevgrep searches a repository for a coding agent and returns excerpts. grev is a pipe filter over lines you already have, with man pages and an exit status. The docs example on a 16-line log printed the original crash lines and left the rest out.
- What stops a long run from spending?
- README and DESIGN.md: a quote above confirmAbove asks on a terminal and refuses without one. The built-in value is $1. --max-cost and the daily and monthly caps refuse a quote that does not fit, and they keep checking during the run. Closing the output pipe cancels the run. A failed request on a big terminal run asks whether to retry, skip, or stop.
- Can the same binaries call OpenRouter or Fastino?
- README: set api.endpoint and api.model, then grev-settings key set. OpenRouter wants jev-latest or jev-1.13, because the default jev-1.13.0 is not served there. Fastino uses fastino/GLiDE at $0.30 per million input tokens, and DESIGN.md says a Score of 3 or more levels can take extra passes that the quote includes.
Related learn guides
Original Jev guidance that pairs with this product pattern.
- Jev use cases
The patterns builders actually search for: moderation, routing, triage, RAG verify, and agent gates.
- Jev vs LLM classification
When to gate with System One probabilities instead of asking a chat model to label things.
Related products
Hand-picked neighbors with rich profiles or overlapping tags.