{"slug": "stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli", "title": "Stop Parsing LLM Answers: Classify Any Text From Your Terminal With jev-cli", "summary": "A developer has released jev-cli, an open-source command-line tool that wraps TypeSafe AI's Jev model to return calibrated probabilities instead of prose, letting scripts branch on typed answers via exit codes. The tool supports three query types — noul (yes/no probability), choice (multi-option selection), and score (rubric-based rating) — and can run as an MCP server so AI agents can offload small classification judgments to it. The project is community-built and not affiliated with TypeSafe AI.", "body_md": "Every developer who has plugged an LLM into a script knows this moment.\n\nYou ask a simple question: *\"Is this customer angry?\"* The model answers with a friendly paragraph. Now you write code to parse that paragraph. Tomorrow it words things differently, and your parser breaks.\n\nYou didn't want a paragraph. You wanted a **yes or no**, and ideally **how sure** it is.\n\nThat is why we built **jev-cli**, a free, open-source command-line tool that turns any text into a clear, typed answer your code can act on.\n\n`jev` is a command-line tool for TypeSafe AI's **Jev** model, the model that never writes text\nSend it some content and a question you defined, get a calibrated probability, and branch on it\nin a shell script, a CI job or an AI agent. It is a **semantic `if` statement** for your terminal.\n\n[Quick start](https://github.com/shaharia-lab/jev-cli#-quick-start) · [What can I use it for?](https://github.com/shaharia-lab/jev-cli#-what-can-i-use-it-for) · [Documentation](https://github.com/shaharia-lab/jev-cli/docs/README.md) · [Command reference](https://github.com/shaharia-lab/jev-cli/docs/commands.md) · [FAQ](https://github.com/shaharia-lab/jev-cli/docs/user-guide/faq.md)\n\nIt takes two seconds, and it is how the next person finds `jev`.\n\nAsk a question, get a probability, branch on the exit code, then ask several questions at once.\n\nImportant\n\n**Unofficial project.** `jev` is community-built. It is not affiliated with, endorsed by, or\nsponsored by TypeSafe AI. \"TypeSafe\" and \"Jev\" belong to their owner. You…\n\njev-cli is an open-source CLI for **Jev**, a model from TypeSafe AI that never writes text. Instead of a reply, it gives you back a **probability**.\n\nYou give it two things:\n\nYou get back a number. Your script decides what to do with it.\n\n```\njev noul \"Is this customer angry?\" --state \"You charged me twice. Fix it now.\"\nanswer  noul  yes  0.96\nmodel jev-1.13.0 · 280 input tokens · est. cost $0.000012\n```\n\nThat's it. No prompt engineering, no JSON parsing, no \"As an AI language model...\".\n\nThink of it as an **`if` statement that understands meaning**.\n\n| Type | Ask it when | You get back | \n|---|---|---|\n| `noul` | Something is true or not | Probability of \"yes\", 0 to 1 | \n| `choice` | One option out of many must win | The winner plus a probability for each option | \n| `score` | You want a position on a scale | A level on your own 2 to 10 step rubric | \n\nFor example, routing a ticket to the right team:\n\n```\njev choice \"Which team should handle this?\" --state-file ticket.txt \\\n  --option billing --option technical --option other\n```\n\n|  | Regular LLM prompt | jev-cli | \n|---|---|---|\n| What you get | A sentence to parse | A number in a shape you defined | \n| Same input tomorrow | Might be worded differently | Same contract, every time | \n| Cost per short ticket | Cents | About a thousandth of a cent | \n| In a shell script | Parse and hope | Branch on the exit code | \n\nAnswers become **exit codes**, so a shell script never has to read output:\n\n```\nif jev noul \"Is this ticket about billing?\" --state-file ticket.txt --fail-under 0.7 --quiet; then\n  echo \"send to billing\"\nfi\n```\n\nExit `0` means the condition holds. Exit `10` means it doesn't (and that is never treated as an error). Anything unsure can land in its own \"ask a human\" band with `--abstain-band 0.4,0.6`.\n\nIf you use Claude Code, Cursor or another AI agent, jev-cli can make it **faster and cheaper**. Instead of the big model spending tokens deciding \"is this relevant?\" a hundred times, it hands those small judgments to jev.\n\n`jev mcp serve` runs it as an `jev spec` and `jev schema` describe every command in JSON, so agents don't guess`--dry-run` checks a request offline, for free, before anything is spent\n\n```\nclaude mcp add jev -- jev mcp serve\n# Linux and macOS\ncurl -fsSL https://raw.githubusercontent.com/shaharia-lab/jev-cli/main/install.sh | sh\n\n# or Homebrew\nbrew install shaharia-lab/tap/jev\n```\n\nAdd your TypeSafe API key and ask your first question:\n\n```\nexport TYPESAFE_API_KEY=...\njev noul \"Is this message angry?\" --state \"You charged me twice. Fix it now.\"\n```\n\nWindows, Cargo and other options are in the [installation guide](https://github.com/shaharia-lab/jev-cli/blob/main/docs/user-guide/installation.md).\n\njev-cli is free, open source and built in the open. If it saves you a parsing headache or a few dollars of tokens:\n\n*Disclosure: we maintain jev-cli. It is an unofficial, community project and is not affiliated with or endorsed by TypeSafe AI. \"TypeSafe\" and \"Jev\" belong to their owner. You need a TypeSafe API key to use it.*", "url": "https://wpnews.pro/news/stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli", "canonical_source": "https://dev.to/shaharia/stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli-2ige", "published_at": "2026-09-27 19:02:06+00:00", "updated_at": "2026-09-27 19:31:14.864888+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents", "agent-protocols", "large-language-models"], "entities": ["jev-cli", "TypeSafe AI", "Jev", "Claude Code", "Cursor", "shaharia-lab", "MCP"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli", "markdown": "https://wpnews.pro/news/stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli.md", "text": "https://wpnews.pro/news/stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli.txt", "jsonld": "https://wpnews.pro/news/stop-parsing-llm-answers-classify-any-text-from-your-terminal-with-jev-cli.jsonld"}}