Feature: use TypeSafe Jev for commit-type/scope/gitmoji classification (typed output, ~$0.04/M in, free out)

Author: ariel-frischerCreated Sep 18, 2026Updated Sep 18, 2026

What

Add optional support for Jev, TypeSafe's "System One" decision model, for opencommit's classification steps.

Jev doesn't generate text. It returns typed, calibrated decisions via three primitives (choice, score, noul), all evaluated in parallel in a single request. Available now on OpenRouter as typesafe/jev-1.13 (no waitlist, no separate account) or direct via POST https://api.typesafe.ai/v1/systemone.

  • Input: $0.042/M. Output: free.
  • Context: 32K. Latency: 70-500ms (vendor-reported).
  • OpenRouter uptime 99.95% / availability 99.81% over 3 days.

Why it fits opencommit

Jev can't write the commit message. But opencommit has several decision points that currently ride along on a full LLM call or on brittle heuristics:

  • Conventional-commit type (feat/fix/chore/docs/refactor/test) -> choice
  • Scope selection when OCO_OMIT_SCOPE is off -> choice
  • Gitmoji selection -> choice
  • "Is this a breaking change?" -> noul
  • "Does this need a body or is a one-liner enough?" -> noul
  • Diff complexity gating, i.e. is this worth a frontier call -> score

All of those fit in one sub-second call, and the main provider then only has to write the summary prose with type/scope/emoji pinned. That should cut tokens on the expensive provider and make the structured fields deterministic instead of parsed out of a string.

Proposed shape

OCO_AI_PROVIDER=typesafe is the wrong fit since Jev can't produce the message. Instead a complementary opt-in:

OCO_CLASSIFIER=jev
OCO_CLASSIFIER_MODEL=typesafe/jev-1.13   # via existing OpenRouter path

Unset -> current behavior, unchanged. Since opencommit already has an OpenRouter provider, this reuses the existing key and HTTP client; the only new code is the questions payload and mapping decisions onto the prompt.

Caveats

Vendor-reported perf/cost numbers, no third-party reproduction yet. Typed output guarantees structure, not correctness, so the classification can still be wrong. Worth keeping behind the opt-in flag.