LLM CLI 0.37: Power-User Guide to Simon Willison’s November 2026 Release

Last updated: November 4, 2026

LLM CLI 0.37, released November 2, 2026, adds GPT-6.1 Sol and GPT-6.1 Terra, switches the default model to the cheaper GPT-6 Luna, adds llm openai endpoint commands for OpenAI-compatible models, and lets embeddings accept images, audio and other typed files. Version 0.37.1 followed on November 3 with fixes.

Contents

LLM is Simon Willison’s command-line tool and Python library for running prompts against hosted and local models and logging every result to SQLite. In his release post he describes 0.37 as about two months of accumulated features and fixes, with contributions from 12 authors. This guide covers what changed according to the official changelog and how to use it.

What changed in 0.37 and 0.37.1

Area What changed
New OpenAI models gpt-6.1-sol, gpt-6.1-terra and chat-latest
Default model gpt-6-luna, replacing gpt-5.6-luna for users with no default set
Endpoint management llm openai endpoint add, list, remove and path
Embeddings Typed attachments with -a/–attachment and –at/–attachment-type on llm embed, llm embed-multi and llm similar
Chat llm chat -u/–usage prints token usage after each turn
Python API chain.on_response(callback) runs code for each completed response in a tool chain
Python versions Python 3.15 added, Python 3.10 dropped
Removed models Shut-down OpenAI models such as gpt-3.5-turbo, gpt-4, o1, o3-mini and o4-mini
0.37.1 (November 3) Fixes for endpoint YAML handling, system prompts with messages=, missing usage data, blob output and log search

How to upgrade

  1. Upgrade with the tool you used to install LLM: pip install -U llm, pipx upgrade llm, uv tool upgrade llm or brew upgrade llm.
  2. Run llm --version and confirm it reports 0.37.1, the current release on PyPI.
  3. Check your Python version. PyPI lists Python 3.11 or newer, and 0.37 dropped Python 3.10.
  4. Run llm models default to see which model your prompts now use by default.
  5. Run llm logs -n 1 after a test prompt to confirm logging still works.

New models and the GPT-6 Luna default

LLM now ships with gpt-6.1-sol, gpt-6.1-terra and chat-latest. If you never set a default, prompts without -m now go to gpt-6-luna, which the documentation calls OpenAI’s cheapest frontier model. Simon Willison says it is half the price of the old gpt-5.6-luna default.

If you rely on stable output for scripts, pin the model explicitly with -m or run llm models default gpt-5.6-luna to restore the old behavior. For current OpenAI rates, see our OpenAI API pricing answer and our GPT-6.1 Terra guide.

The release also removes OpenAI models that have been shut down, including gpt-4, gpt-4-turbo, o1, o3-mini and o4-mini, along with aliases like 4, 4t and chatgpt. Scripts that still call those names will need updating.

Managing OpenAI-compatible endpoints

Before 0.37 you edited extra-openai-models.yaml by hand to use a local server or a gateway such as OpenRouter. The new commands, documented under Configure an OpenAI-compatible model, write that file for you.

  1. Store the key: llm keys set openrouter.
  2. Add the model: llm openai endpoint add https://openrouter.ai/api/v1 -m anthropic/claude-sonnet-4.5 --id claude-sonnet --alias claude --key openrouter --supports-tools --vision.
  3. Check it: llm models --options -m claude-sonnet.
  4. Prompt it: llm -m claude 'Summarize this file'.
  5. Review saved records with llm openai endpoint list and delete one with llm openai endpoint remove MODEL_ID.

Other flags map to YAML keys: --responses for the Responses API, --supports-schema, --reasoning, --audio, --no-stream and --service-tier. Adding an ID that already exists is an error unless you pass --replace. The add command appends without touching your comments, but --replace and remove rewrite the file and drop them. The same commands work for local servers, which pairs well with tools in our Ollama guide and LM Studio Bionic guide.

Typed attachments for embeddings

Embedding plugins can now declare the MIME types they accept, and LLM passes matching files as llm.Attachment objects. Simon Willison says this is needed for models such as Gemini Embedding 2, which embed text, audio, images and video. Collections record the type in a new content_type column.

Per the embeddings CLI documentation, llm embed -m MODEL -a image.jpg embeds one file, and --at recording.data audio/wav overrides a type that cannot be detected. llm embed-multi accepts repeated -a and --at options. These options cannot be combined with -c, -i or --binary. You need an embedding plugin that supports attachments for this to work.

Tool chain and logging fixes

  • Tool approval: Response.reply() now keeps before_call and after_call. Previously a tool rejected by before_call could still run in a later reply.
  • Chain limits: chains that finish within their limit no longer raise a chain limit error, and a schema now applies to every request in a chain.
  • Logging: each response in a tool chain is logged as soon as it completes, llm chat respects llm logs off, and concurrent processes no longer hit SQLITE_BUSY errors.
  • Files: llm embed-multi --files no longer corrupts non-ASCII UTF-8 text. Rerun the same command to repair an affected collection.

Power-user workflows

  • Watch costs in chat: start sessions with llm chat -u. Usage prints to standard error, for example “Token usage: 10 input, 20 output”, and tool calls are reported per response.
  • Keep one config for many providers: register OpenRouter, a local server and any gateway with llm openai endpoint add, then switch with -m while every result lands in the same log database.
  • Audit agent runs: in Python, use chain.on_response(callback) to record or stop each response before its tool calls execute.
  • Build a media search index: embed a folder of images and audio with llm embed-multi and typed attachments, then query it with llm similar.

If you prefer a full coding agent in the terminal rather than a prompt tool, compare our Codex CLI 0.166 guide and Gemini API CLI guide.

Limitations

  • Python 3.10 users must upgrade Python before installing 0.37.
  • The default model change can alter output and cost for scripts that never set -m.
  • llm embed accepts one typed attachment at a time, and typed attachments only work with plugins that declare support.
  • llm similar still uses a brute-force search, which the documentation says does not scale well to large collections.
  • Install 0.37.1 rather than 0.37, since 0.37 could write invalid YAML after removing the last saved endpoint.

Frequently asked questions

What is new in LLM CLI 0.37?

LLM 0.37, released November 2, 2026, adds the gpt-6.1-sol, gpt-6.1-terra and chat-latest models, makes GPT-6 Luna the default model, adds llm openai endpoint commands for OpenAI-compatible models, lets embedding models accept typed attachments, and adds a -u/–usage option to llm chat.

What is the default model in LLM 0.37?

If you have not set your own default, LLM 0.37 uses gpt-6-luna. The previous default was gpt-5.6-luna, and Simon Willison says GPT-6 Luna costs half as much. Run llm models default gpt-5.6-luna to switch back.

How do I add an OpenAI-compatible model to LLM?

Run llm openai endpoint add with the API base URL, the model name with -m and an ID with –id. Add –key NAME to use a stored key, plus flags such as –supports-tools, –vision or –reasoning. The command writes a record to extra-openai-models.yaml.

How do I upgrade to LLM 0.37?

Use the upgrade command for the tool you installed it with, such as pip install -U llm, pipx upgrade llm, uv tool upgrade llm or brew upgrade llm. The latest version on PyPI is 0.37.1, which requires Python 3.11 or newer.

Which Python versions does LLM 0.37 support?

LLM 0.37 added support for Python 3.15 and dropped Python 3.10. PyPI lists Python 3.11 or newer as the requirement for 0.37.1.

Which OpenAI models were removed in LLM 0.37?

LLM 0.37 removed shut-down OpenAI models including gpt-3.5-turbo, gpt-4, gpt-4-turbo, gpt-4.1-nano, o1, o3-mini and o4-mini, along with aliases such as 3.5, chatgpt, 4 and 4t.

Sources

Image: Simon Willison, the developer of LLM, photographed by Paul Downey, CC BY 2.0, via Wikimedia Commons (cropped and resized). FreeAnswers is not affiliated with or endorsed by the LLM project.



Related answers

Leave a Comment