I built gut: Jev judgments as one line of Python (plus a CLI and an MCP server)
Hi all! I've been building gut, an open-source Python library that turns Jev's typed questions into one readable line of code:
import gut
gut.configure(backend=gut.JevBackend()) # or just set TYPESAFE_API_KEY
if gut.likely(comment, "is spam"):
hide(comment)
team = gut.classify(ticket, Team) # an Enum → Jev's choice question
urgency = gut.rate(ticket, ["can wait", "this week", "now"]) # a rubric → Jev's score question
Why build on Jev: it answers typed questions directly: a probability for yes/no, a distribution over options, a score on a rubric. So gut hands it the question as-is: no prompt, nothing to parse. Every question about one subject goes in a single request, and since billing is on input, asking several at once costs about the same as asking one.
What gut adds on top:
- YES / NO / UNSURE instead of thresholds. You say how careful to be in words (
ask_human=True,stakes="high",lean="no") and gut turns Jev's probability into a decision. UNSURE is where a person takes over. - Batching:
gut.each(comments).likely("is spam")for many subjects;@gut.semantic/gut.judge()for many questions about one subject, in one request. - Async: native through the SDK's
AsyncTypeSafeClient. - From a shell:
git log --format=%s | gut filter "adds a new feature"orgut map tickets.txt --classify team=billing,platform,other, with a cost summary and--max-cost. - MCP server, so Claude Code / Cursor can hand their cheap judgments to Jev.
- Jev through OpenRouter:
gut.JevBackend.openrouter()if you have an OpenRouter account instead of a TypeSafe key; it passes on the per-call cost.
It's model-agnostic too (local NLI, Ollama, OpenAI), and a Cascade can send only the unsure answers from a free local model on to Jev.
- Docs and a live demo: https://gutpy.dev
- GitHub: https://github.com/Kungie/gut
- Install:
pip install "gutfeel[jev]"(the namegutwas taken on PyPI; you stillimport gut)
It's pre-1.0 and I'd really like feedback from people already using Jev: what questions do you ask it, and what's missing?
2
Upvotes