Agent
Jev sits beside the agent.
It is not a drop-in model for Cursor, Claude Code, or any chat agent. Those tools need a model that writes. Jev is the fast judgment you call when the next step is a branch.
Where it earns the call
- Route a request to one of a fixed set of handlers, and read the confidence before you act.
- Score urgency, risk, or quality on a rubric you wrote.
- Check a claim against evidence you already have.
- Replace a prompt that says “return JSON” with a call whose shape cannot drift.
A personal key
Create the key in the TypeSafe console. Put it in a local secret or TYPESAFE_API_KEY. For the MCP server on this site, the same value is sent as JEV_API_KEY — we forward it and do not store it.
export TYPESAFE_API_KEY="your-typesafe-key" export JEV_API_KEY="$TYPESAFE_API_KEY"
Skills
Skills tell the agent when to call, which fields to send, and what to do with the probability. They do not grant extra permission. Install the pack from the skills page.
Official agent skill
TypeSafe also ships a skill for writing correct systemone code:
npx skills add typesafe-ai/skills --skill typesafe-ai
Use that when the agent is generating an integration. Use the jevai.ai skills when the agent should call a preset tool at runtime.
A policy, not a vibe
The agent should not “see how it feels” about a tool call. Put the cuts in one place and make the skill point at them.
action = answers["action"]
risk = answers["risk"].score
if action.choice == "deny" or action.choice == "review":
stop()
elif action.choice == "confirm" or risk >= 2:
ask_user()
elif action.confidence < 0.6:
ask_user()
else:
run_tool()
Those numbers are a starting sketch for a refund, not a default for every tool. A read-only lookup can allow at a lower confidence. A payment cannot.
What goes wrong if you skip the gate
- The main model writes a plausible tool call that the user did not ask for. The guard’s
purposefield is where you pass the user’s words, so the decision can notice the mismatch. - The trace says the task is done because the last message says so. jev-completion-review compares the objective to the work, not to the tone of the write-up.
- A citation is glued on after the sentence. jev-research-guard only sees evidence you already have. If you have none, the honest verdict is insufficient, and the agent should go get some before claiming support.
Two skills, two moments
The official TypeSafe skill is for the human (or the coding agent) who is writing the integration: question shapes, fan-out, confidence. The jevai.ai skills are for the running agent: which tool, which fields, what to do with a low probability. Installing both does not duplicate a model. One teaches the API. The other teaches the moment to call it.
Do not put the API key inside a skill file, a repo, or a prompt. The MCP client reads it from the environment. A skill that contains a key is a leaked key.