Skip to content

vibecheck

Python library that turns decision-model judgment calls into plain function calls: check, classify, label and score.

Projectbeta

Overview

vibecheck, published as vibecheck-py, lets Python code call a decision model such as Jev as an ordinary function. It has four functions: check answers yes or no and returns a bool, classify picks one option, label picks every option that applies, and score rates on a scale and returns a float. There are no prompts to template or text to parse.

Probabilities, thresholds and "unsure" answers are available when needed and hidden when not, and batching lets you ask about ten questions over the same data for about the cost of one. Functions are async by default with blocking versions in vibecheck.sync. It reads TYPESAFE_API_KEY and can use any compatible provider. Runnable examples are included for each function.

What the decision model decides

TypeQuestionAnswers
Yes / noAre the vibes good?True · False
ChoiceWhich one of these? (classify)—
ScoreWhere on this scale? (score)—

How it works

  1. Install vibecheck-py and set TYPESAFE_API_KEY.
  2. Call check, classify, label or score with a question and data.
  3. Get a plain Python value back.
  4. Use thresholds or unsure handling when needed.

Strengths

  • Minimal API: judgment calls as function calls.
  • Batching reduces cost for multiple questions.
  • Async and sync variants.

Caveats

  • Hides probabilities by default; tune thresholds for important uses.
  • Requires a TypeSafe or compatible provider key.

Getting started

uv add vibecheck-py; export TYPESAFE_API_KEY=...

At a glance

Type
Project
Status
beta
Language
Python
Runtime
library
Has code
yes

Use cases and integrations

How curated lists describe it

  • Drops a decision model into ordinary Python code, so a judgement call is a function call rather than a prompt.

    MrJev/awesome-jev

Frequently asked questions

What functions does it provide?

check, classify, label and score.

Do I get probabilities?

Yes, when you ask for them; by default you get plain values.

Can I use providers other than TypeSafe?

Yes, any compatible provider can be configured.

Related projects

  • Simon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.

    PluginproductionPython
  • Go integration bringing TypeSafe Choice, Score and Noul to Google's adk-go agents, with a typed client, routing agent and callbacks.

    ProjectbetaGo
  • Ruby gem for probabilistic conditionals like Feelings(msg).like?("urgent"), answered by Jev or other decision models.

    ProjectbetaRuby
  • Rust CLI and library that asks Jev typed questions via OpenRouter and combines the probabilities with fuzzy-logic rules into decisions.

    CLIbetaRust
  • Elixir DSL (Gut.feel) that picks an Elixir value for a subject and question, with a Jev evaluation adapter among LLM options.

    ProjectbetaElixir
  • Independent OpenClaw plugin exposing one explicitly invoked typesafe_decide tool that sends supplied state and typed questions to Jev.

    HookbetaTypeScript