SemDecide
Unix CLI for typed semantic decisions in pipelines and CI: Jev predicates, routes, scores and filters with predictable exit codes.
Overview
SemDecide calls itself grep for meaning and jq for judgment. You pipe text or JSONL into commands like is (a semantic predicate), choose (route among named options), score and filter, and get a verdict, probabilities and a stable process exit code without writing prompt, parsing, retry or confidence glue. For example, piping a login-and-payout description into semdecide is 'This describes a plausible account takeover' returns TRUE with probability 0.86 against a 0.70 threshold.
Outputs have a versioned JSON schema with model and usage, thresholds and an uncertainty margin are configurable, and borderline results are not forced into true or false: an uncertain result returns exit code 3. A guard mode has Jev evaluate narrow signals such as authorization, destructiveness, ambiguity, secret exposure and consequence, with deterministic local code returning allow, escalate or block. Input is validated before any call, and the README reminds users that evaluated input is sent to TypeSafe. It is independent of TypeSafe and installed from GitHub release wheels.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | This describes a plausible account takeover | — |
| Choice | Which queue should receive this ticket? | support · security · billing |
| Choice | Guard: should this action be allowed, escalated or blocked? | allow · escalate · block |
How it works
- Pipe text or JSONL into a semdecide command
- Jev answers the typed question
- Apply threshold, margin and confidence floor locally
- Emit a verdict, JSON and an exit code (3 for uncertain)
Strengths
- Fits shell scripts and CI with stable exit codes
- Uncertainty surfaced instead of hidden
- Input validation before calls
Caveats
- Not yet on PyPI
- Input is sent to TypeSafe
Getting started
pipx install https://github.com/sharziki/semdecide/releases/download/v0.2.1/semdecide-0.2.1-py3-none-any.whl, then export TYPESAFE_API_KEY.At a glance
- Type
- CLI
- Status
- beta
- Language
- Python
- Runtime
- CLI
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Developer tooling: Unix CLI for semantic decisions in shell pipelines and CI, evaluating Jev predicates, routes, and scores with predictable exit codes.
yibie/awesome-jevA Python CLI for semantic predicates, routing, scoring and filtering over text or JSONL.
logicrw/awesome-jev-projectsTyped semantic decisions for Unix pipelines and CI, powered by TypeSafe AI Jev.
wh000wh000/awesome-jev-liveTyped semantic decisions for Unix pipelines and CI.
cobanov/awesome-jevTyped semantic decisions for Unix pipelines and CI, powered by TypeSafe AI Jev.
hellogumbo/awesome-jevUnix-style CLI for typed semantic decisions: classify, score, filter, and guard inside shell scripts, CI, and data pipelines.
MrJev/awesome-jev
Frequently asked questions
What does SemDecide decide?
Semantic predicates, routes, scores and filters over text or JSONL, plus allow/escalate/block guards.
What happens with borderline results?
They are reported as uncertain with exit code 3, not forced to true or false.
Is it an official TypeSafe tool?
No, it is an independent open-source project.
Related projects
Language and VM for long-running agent programs that pause for approval, resume after restarts and replay, with typed decision cells.
ProjectresearchTypeScriptMac app with AI bots running business ops on cloud computers, using TypeSafe for small yes/no calls like risk and which bot takes a job.
ProjectproductionAI workspace with chat, durable tasks, integrations and a wiki whose approval review for workspace actions runs through Jev.
ProjectproductionTypeScriptNatural-language CLI where Jev picks which installed 'reflex' programs a sentence calls, running them only when sure enough.
CLIbetaTypeScriptComposio agent SDK with an optional TypeSafe provider that uses Jev to shortlist and pick tools and closed-set arguments.
ProjectproductionTypeScriptLangChain's Python framework, which includes an optional TypeSafeClassifier runnable plus model-routing and risky-tool middleware using Jev.
PluginproductionPython