Published
jevelry turns a Jev call into a folder, a verdict, and a log
Pavel Hegler posted backant-io/jevelry, an MIT npm runtime. A jevel is a folder with one JEVEL.md. The CLI asks Jev once, maps each answer to act, mark, or fall_back, and appends a log. The live sample in the README is one state on jev-1.13.0. Three on-demand API calls took 2.49 seconds.
Pavel Hegler posted backant-io/jevelry on September 22, under TypeSafe’s note that the waitlist was gone. The repository is MIT. The npm package is jevelry, for Node 20. The command takes a name and a state file: npx jevelry ask wake-gate --state @state.json.
A jevel is a directory with one JEVEL.md. The frontmatter is what the tool reads: name, version, model, required state fields, and questions. The body is for the person editing it. Two jevels ship in the package, wake-gate and return-kind. check refuses a file the API would refuse, including more than 255 options, a threshold outside 0 to 1, and a question with no instructions. It also warns on a yes/no whose “yes” means no, a double negative, and a model that is not pinned. Discovery looks at --jevels, then JEVELRY_JEVELS, then ./jevels, then ~/.jevelry/jevels.
Each answer comes back with a verdict. act means the threshold in the jevel cleared and the code can use the answer. mark means use it and flag it. fall_back means the call was not sure enough, and the code should do what it did before jevelry. A noul threshold is how far the probability sits from 0.5. A choice or a score uses the confidence Jev reports. The raw probabilities stay in the JSON either way. The process writes one document to stdout, including on failure, and the exit code is 0 through 7: answered, usage error, bad jevel or state, rate limit, missing key, over budget, network, or a response shape this build cannot read. A missing key or an over-budget state does not send the request.
The README prints one live document for wake-gate on jev-1.13.0. worth_a_turn is a noul of 0.19, verdict mark. depth is a score of 0.43, verdict fall_back. same_as[0] is 0.88, verdict act. same_as[1] is 0.17, verdict mark. Usage on that document is 615 input tokens and 77 output tokens. Another sentence says a reference ask, one question about one sentence, is 307 input tokens. The price it cites is TypeSafe’s $0.042 per million input tokens, output free. That document is one state, not a scored corpus.
Every ask is appended to ~/.jevelry/log.jsonl with the answers, the verdicts, and a hash of the state. jevelry outcome records what was later true. jevelry report counts asks, verdicts, and agreement on the ones that have an outcome. The sample report in the README has a single outcome on worth_a_turn and dashes where the other questions have none.
Tests: 111 offline, against recorded answers from TypeSafe’s API reference. Four more run on demand with npm run test:live. The README says the last live run used jev-1.13.0 and finished three calls in 2.49 seconds, and that one of those tests checks the key is absent from the log. The default API root is https://api.typesafe.ai. TYPESAFE_BASE_URL overrides it. We did not install the package.
jevctl is the other shell wrapper on this desk. Its distinctive command is compact, which keeps lines verbatim above 0.5. jym asks one Choice when a subcommand is unknown and then runs the real CLI. jevelry’s extra piece is the verdict threshold in the file and the log you can score later. The 2.49 second line is three test calls.
This site's reading
Editorial notes evaluating claims against primary sources, contextualizing findings alongside related implementations, and defining technical terms.
Verify
Primary post is @pavelhegler, September 22, 2026, 13:44 UTC, quoting TypeSafe's September 20 no-waitlist post. The post says he built a CLI and links https://github.com/backant-io/jevelry. The repo is MIT, npm package jevelry, Node 20. A jevel is a folder with JEVEL.md. Two ship with the package: wake-gate and return-kind. Verdicts are act, mark, and fall_back, from per-question thresholds in the file. A noul uses distance from 0.5. A choice or score uses the confidence Jev reports. The README prints one live answer on jev-1.13.0 for wake-gate: worth_a_turn noul 0.19, verdict mark; depth score 0.43, verdict fall_back; same_as[0] noul 0.88, verdict act; same_as[1] noul 0.17, verdict mark; usage 615 input tokens and 77 output tokens. A separate sentence says the reference ask, one question about one sentence, is 307 input tokens. Price cited is $0.042 per million input tokens. 111 tests run offline against recorded answers from TypeSafe's API reference. Four tests run against the live API with npm run test:live. The last of those runs answered with jev-1.13.0 in 2.49 seconds for three calls, and one test checks that the key stays out of the log. check refuses more than 255 options, a threshold outside 0 to 1, and a question without instructions. Exit codes 0 through 7 are listed. Default API root is https://api.typesafe.ai. We did not install the package or run the live tests.
Compare
jevctl is the other npm CLI on this desk. Its compact command keeps lines verbatim above a 0.5 threshold. jevyoumean asks one Choice when a subcommand is missing and then execs the real binary. jevelry does not compact a session and does not rewrite argv. It loads a question file, returns a verdict, and keeps a jsonl log so a later outcome command can score the asks. The 2.49 second figure is three live test calls, not a benchmark set.
Terms
- jevel
- A folder with one JEVEL.md. Frontmatter names the model, the required state fields, and the questions. jevelry reads that file. The body is for people.
- verdict
- act, mark, or fall_back, chosen from thresholds in the jevel. act means the probability clears the bar to use the answer. mark means use it and flag it. fall_back means do what the code did before the call.