Manual/Going further
Jev, an optional second opinion
Jev is an optional second account moh can consult for small decisions. It is a service run by TypeSafe that answers with typed judgments — one probability or one choice per question — and never with text. moh works exactly as described in this manual without it.
What Jev helps decide
| Use case | What it does | Default |
|---|---|---|
| Guardrail | Judges risky shell commands and can raise a yes/no question before one runs. | on, once a key is stored |
| Classification | Recognises what kind of request you made, to pick the right help (the project map uses it). | on |
| Model routing | Chooses, per message, which of your models should answer: a cheap, balanced or powerful tier. | off |
| Anti-injection | Checks whether text you pasted tries to hijack the AI. | off — it is the only one that sends what you typed |
Turning it on
- Open the settings with ctrl+s and choose Jev (TypeSafe).
- Enter your key. moh checks it with one real call and stores it in your system's keychain — never in a project file.
- Flip the switches you want. They apply from your next conversation. To change one inside the conversation you have open, use
/jev.
From the terminal: moh jev status, and for example moh jev routing on.
What leaves your machine
The settings panel shows this next to the Jev entry, and it is the whole list:
- Judgments send the command being judged, the working folder and the git branch and state.
- Anti-injection, only if you turn it on, also sends your message text (up to 4 KB) and the text of web results (up to 8 KB) — which is why it never starts on.
Nothing else about a conversation leaves moh. Jev is hosted in the US, and TypeSafe declares it does not train on what it receives.
Model routing, in practice
With routing on, Jev answers with a tier — economico, bilanciato,
potente — never a model name, and moh maps it to a model you actually have.
If fewer than two tiers can be filled, the router stays idle. Picking a model yourself with
/model pauses it for the conversation; /routing shows its state and
hands control back.
If Jev is unreachable
moh carries on exactly as it would without Jev, and shows a small ∅ jev offline
chip at the bottom of the screen until it is back (∅ jev key rejected if the key
stopped working). Nothing waits for it, and no AI call is made in its place.
Written for moh 0.61. Inside moh, ctrl+h opens the built-in manual for your exact version.
