jev ask

September 20, 2026 ยท View on GitHub

The general form: any state, any questions, one typed answer each. Every other command is a specialization of this.

jev ask [state] (--noul ... | --choice ... | --score ... | --questions <ref>) [options]

When to use

When none of the purpose-built commands fits, or when you want several different questions answered about one input in a single request. Questions run in parallel over the same state, so asking five costs about the latency of one.

Question types

FlagAnswerShorthand
--noulProbability of "yes", 0 to 1id=Question text?
--choiceOne option, a probability per option, a confidenceid=Question text?|optionA,optionB:description,optionC
--scoreA position on an ordered scale, a probability per level, a confidenceid=Question text?|low level,middle level,high level

Shorthand rules: = separates the id from the question, the first | separates the question from its options, options are comma separated. Write \| or \, for a literal pipe or comma. Ids use letters, digits, _, -, ..

Options

OptionMeaning
[state]Text, @file, or -. Reads stdin when omitted and piped.
--state-jsonTreat the state as JSON so you can send objects or arrays
-Q, --questions <ref>A JSON questions map in the TypeSafe API shape, instead of shorthands

Example

jev ask @ticket.txt \
  --noul urgent="Does this convey urgency?" \
  --choice team="Which team?|billing:refunds and invoices,technical:bugs and outages,sales" \
  --score frustration="How frustrated is the customer?|calm,frustrated,very angry"
urgent: 0.92
team: billing  conf 0.82  [billing 0.85, technical 0.08, sales 0.07]
frustration: 1.60  conf 0.71  [0 0.10, 1 0.20, 2 0.70]

Tips

  • One narrow judgment per question. Include an escape option (other, none) when nothing may fit.
  • Describe options when the labels alone are ambiguous; put domain rules in the descriptions.
  • A noul near 0.5 means "as likely yes as no", not medium intensity.

Docs: primitives, speculative fan-out.