Skip to content

Back to the catalog

simonwillison.netwriteup

llm-openai-decisions 0.1a0

Simon Willison built llm-openai-decisions, a plugin for his `llm` CLI tool that wraps OpenAI's newly announced Decisions API (unveiled at DevDay), modeled on his existing llm-typesafe plugin for Jev's competing API. Both APIs support structured yes/no, multiple-choice, and score-style questions, but OpenAI's gpt-6-luna model also accepts image input (at 10 cents per million input tokens, versus Jev's 4.2 cents), and the plugin itself was built by having GPT-6 Astra read OpenAI's docs. The post includes install instructions and a worked example querying an image attachment for a yes/no answer.

TL;DR Simon Willison's new llm plugin wraps OpenAI's just-launched Decisions API, a structured yes/no/choice/score API rivaling Jev's, with image-input support via gpt-6-luna.
Document

What it claims

llm-openai-decisions (version 0.1a0, an alpha) adds OpenAI's Decisions API to the llm CLI. It exposes the gpt-6-luna decision model as openai-decisions/gpt-6-luna. Both OpenAI and Jev bill decision models on input tokens only, with no charge for output: OpenAI charges 10 cents per million input tokens and Jev charges 4.2 cents. That makes text-only workloads roughly 2.4× cheaper on Jev. Image input is the reason to pay more for OpenAI.

How it works

The page says the API is "conceptually" similar to Jev's. Each API has the same three question types: yes/no, choices, and scores. The page does not compare the request or response schemas field by field.

A yes/no question does not return a boolean. It returns a probability under a predicate type:

{"type": "predicate", "name": "evaluation", "probability": 0.0}

That output comes from asking whether a photo of two pelicans contains any mammals. Pelicans are birds, so 0.0 is correct. If you build on this, you choose your own threshold for turning the probability into a yes or no. The page does not show the output shapes for the choice and score types.

How to use it

llm install llm-openai-decisions

The question goes in the system prompt flag -s. The image is passed as an attachment with -a, which accepts a URL:

llm -m openai-decisions/gpt-6-luna \
  -a https://static.simonwillison.net/static/2025/two-pelicans.jpg \
  -s 'Does this image contain any mammals?'

The page says the README covers how to run the choice and score question types. Those invocations are not shown on the page.

Limits

  • The version is 0.1a0, and GPT-6 Astra generated the plugin from OpenAI's documentation. The page reports no tests and no checks against the API beyond the single example above.
  • Only one query is demonstrated: a text question about an image. There are no accuracy, calibration or latency figures for gpt-6-luna, and no comparison with Jev on quality.
  • The comparison with Jev is a conceptual one. Check the README and OpenAI's documentation before you assume prompts or parsing code will carry over from llm-typesafe.

Organisations named here

Technologies named here

Also named here

  • Simon Willison