Automation·terminal·MIT
typesafe-mod
TypeSafe's Jev scores the agent's this-or-that questions, or answers them for you.

typesafe-mod puts a second, smaller model between Claude Code and the choices it stops to make. When Claude asks you a this-or-that question through the AskUserQuestion tool, the mod sends the question and its options to TypeSafe’s Jev model and draws a probability bar per option above the dialog. One switch lets Jev answer in your place. A second, optional router ranks your installed skills against every prompt you type. Both routers send data to TypeSafe’s API, so read How it works before you install.
What it does
- Decision router, on by default. Each single-choice question in an AskUserQuestion dialog gets a distribution over its options and a confidence score. The dialog opens as usual with a panel above it, and the same numbers go to the transcript as a
typesafe-mod:line. You still pick. - Auto-answer, opt-in. With
TYPESAFE_AUTO_ANSWER=1, a dialog with a single question whose confidence reaches 0.75 never opens: the mod answers it and Claude carries on. Below the floor, or with several questions in one dialog, you get asked. - Skill router, opt-in. With
TYPESAFE_SKILL_ROUTER=1, one request per prompt ranks every installed skill against what you typed and asks whether the turn needs a procedure at all. A confident winner becomes one advisory line in the model’s context; the skill list itself is not changed, so prefix caching still holds. - Fails open. A missing key, an HTTP error, an unparseable body or a call over 4 seconds let the turn continue as if the mod were not there.
According to the README, Jev returns typed answers (a choice, a yes/no score) with probabilities instead of prose. The README says nothing more about what TypeSafe is, beyond a hosted API with its own key and per-token billing.
Install
Needs Claude Code 2.1.287 or later and a TypeSafe API key, obtained at console.typesafe.ai/keys and exported as TYPESAFE_API_KEY in the environment Claude Code runs in. Without the key the mod loads and does nothing. A comment in the code says the dialog panel was measured on 2.1.274.
claude plugin marketplace add BeLazy167/typesafe-mod
claude plugin install typesafe-mod@typesafe-mod
To try it for one session, start claude --plugin-dir /path/to/typesafe-mod from a checkout. Four environment variables control it:
TYPESAFE_API_KEY: unset, and neither router runs.TYPESAFE_DECIDE_OFF: any value stops the decision router.TYPESAFE_AUTO_ANSWER=1: Jev answers single questions outright instead of advising.TYPESAFE_SKILL_ROUTER=1: turns the skill router on.
The same author publishes claude-mods-skill, a skill for building mods like this one.
How it works
Everything goes to one endpoint, https://api.typesafe.ai/v1/systemone, as a POST with your key as a bearer token and jev-latest as the model. No other network call is made.
On tool.call for AskUserQuestion, the mod reads the tool’s questions array. For each single-select step with two or more options it sends the question text, every option’s label and description, and the path of your working directory, framed as “a coding agent paused mid-task in last-decision.v1 and writes one transcript line per question. Multi-select steps are skipped with a note saying why.
With auto-answer on and exactly one question over the 0.75 floor, the hook answers the tool call itself, so a question meant for you is answered by a third-party model. It checks first that the label is one of the options offered. A hook can only answer a tool call through deny, which the model receives as an error result, so a successful decision renders in red and, in the author’s words, “the agent may argue with it rather than proceed.” That is why advice is the default.
On ui.render for AskUserQuestion, the mod reads the stored decision and wraps the engine’s own dialog in a box: a title, up to four bar rows and a footer saying whether the confidence cleared the floor. A dialog with several questions gets one row per question rather than one question’s bars, because the render event does not say which step is on screen.
On session.start, only when the skill router is on, the mod runs one shell command, find -L over ~/.claude/skills and ~/.claude/plugins for every SKILL.md, and reads the first 60 lines of each. It keeps the name and the first 80 characters of the description, up to 500 skills, in the plugin store under skill-roster.v1.
On prompt.submit, again only when the skill router is on, the mod sends your full prompt text together with the roster of skill names and truncated descriptions. Prompts under 12 characters and slash commands are skipped. If Jev names a skill with confidence 0.6 or more and judges that the turn needs a procedure, the mod appends a <skill_relevance> block naming that skill to the prompt’s context. This adds 166 to 420 ms to every prompt, which is why it is off by default.
Cost. Jev bills input tokens only, at $0.042 per million. The README measures one decision at 374 tokens and one skill-router call at 6,772 tokens on 194 skills, roughly $0.85 a month at 100 prompts a day. The decision router costs almost nothing because it fires only when Claude asks you something.
Limitations
- The decision router judges from the question, its options and your working directory path, not from the conversation. Questions that depend on anything else route worse.
- Skill names that appear in more than one plugin (54 of 194 in the author’s install) keep the first copy found, so the hint may name a different plugin’s version.
- The skill scan runs through
shandfind, so it needs a Unix-like shell. Every prompt pays for the whole roster in tokens. - The confidence floors (0.6 for skills, 0.75 for decisions) are constants in
hooks/suggest.ts, not settings. Changing them means editing a checkout.
Similar Claude Mods
critical-decisions
The calls Claude made without being asked, above the prompt, each with a rethink button.
lane-stack
Claude Code as PM for Codex, Qwen and Grok, with Jev compaction and effort routing.
multi-core
ChatGPT, Cursor, Zen, Antigravity and Grok models in one Claude Code session, via /model.
hermitd
An always-on Claude Code agent in your chat, where /model and /clear run in the session.
Popular Claude Mods
The whole directory →cache-tax
Keeps the prompt cache warm during breaks and stops a cold send once with its price.
savvy-progress
Running, finished and planned subagents with model, context, cost and time, in one panel.
prismantis
Claude's replies in 15 themes: colored tables, highlighted code, diagrams and charts.
Human in the loop
Claude assigns you what only you can do. Tasks wait in a pane until you answer.






