LLM 0.37 Released: New Models and Lessons from AI-Assisted PRs

LLM 0.37 adds models, endpoint commands, multimodal embeddings, and shares AI-assisted PR governance lessons.
Simon Willison's LLM CLI tool and Python library release version 0.37, consolidating two months of work. It adds gpt-6.1-sol and gpt-6.1-terra models plus the llm openai endpoint add command for OpenAI-compatible services. The default model switches to gpt-6-luna at half the previous price. Embeddings now support per-content content-types for multimodal models. Simon also addresses AI-assisted PR governance, using Opus 5.5 or GPT-6 Astra to triage PRs with a lower-than-expected review burden.

Simon Willison's LLM CLI tool and Python library has reached version 0.37, a release that consolidates roughly two months of development work. Beyond new model support and command-line tooling, this version also reflects how open source projects are responding to the wave of AI-assisted code contributions.
New Models and Configuration Tooling
LLM 0.37 adds two new model options: gpt-6.1-sol and gpt-6.1-terra. At the same time, the llm openai endpoint add command makes configuring OpenAI-compatible endpoints much easier—users no longer need to manually edit config files to connect additional third-party model services.
Another practical change is the adjustment to the default model: if you haven't set your own default, LLM now uses gpt-6-luna. According to Simon, it costs half as much as the previous default, gpt-5.6-luna. For users making frequent API calls, this directly lowers usage costs.
OpenAI-compatible endpoints refer to third-party inference services (such as locally deployed vLLM, Ollama, or various cloud vendors' managed services) that implement the same or similar request and response formats as the OpenAI Chat Completions API, allowing existing clients to switch backends without code changes. Previously, connecting to such services usually required hand-writing YAML configuration to declare the base URL, API key environment variable, and model list—error-prone and difficult for catching typos; llm openai endpoint add turns this process into a command, lowering the barrier to entry and making it routine to have multiple endpoints coexist on the same machine with routing by model name.
Embeddings Support Multimodal Content
LLM's support for embeddings has been extended in this version: it can now accept different content-types for different binary content. This change is designed to accommodate models like Gemini Embedding 2 that can embed text, audio, images, and video.
Previously, the embeddings interface may have assumed all input was plain text, but the emergence of multimodal models requires higher-level tools to distinguish content types. This adjustment in LLM lets developers handle embedding requests in multiple formats within the same workflow.
Embeddings is the process of mapping raw content such as text, images, and audio into high-dimensional dense vectors, where distances between vectors can be used for semantic search, clustering, deduplication, and recommendation. Traditional embedding models handle only a single modality, so the calling layer can usually assume plain-text input; multimodal embedding models (like Gemini Embedding 2 mentioned above) accept multiple media types on the same interface, requiring the caller to explicitly declare content-type, otherwise the server cannot decode correctly. This change in LLM essentially passes "content + type" as a single unit, allowing embedding requests in different formats to reuse the same abstraction within the same batch or workflow.
AI-Assisted PRs: Burden or Boon?
In the release notes, Simon specifically addresses a hot topic in the open source community: whether AI-assisted Pull Requests place an excessive burden on maintainers. He admits that LLM is the project where he's been most affected, but the actual experience hasn't been as bad as many peers describe.
His approach is to use Opus 5.5 or GPT-6 Astra to help triage PRs and quickly identify the most useful fixes. This version includes fixes from 12 authors, almost all with AI assistance involved. Simon feels the review burden is far lower than expected, treating these PRs as bug reports with accompanying examples—sometimes merging them directly, other times using them as reference and implementing the fix himself.
This experience offers a perspective different from the mainstream narrative: the governance challenge of AI-assisted contributions may depend more on whether maintainers are willing to adopt equivalent AI tools to help with triage, rather than simply closing the door.
Pull Request (PR) is the code-merge request mechanism on platforms like GitHub: contributors submit changes from their own branch, and maintainers conduct code review, discuss, and decide whether to merge into the mainline. Open source projects have long faced insufficient review resources, and AI-generated PRs often achieve well-formatted, detailed descriptions while potentially containing plausible-looking but incorrect changes, which actually increases the cost of discernment—this is the source of the "AI slop PR" controversy. Simon's approach described here is to downgrade PRs to "bug reports with accompanying examples": not treating the author's submitted patch itself as the final product, but rather as a clue for problem localization and fix ideas, with the maintainer deciding whether to merge directly or rewrite—this approach sidesteps the cost of line-by-line review of AI code.
Release Cadence and Community Collaboration
Version 0.37 accumulates two months of features and fixes, indicating that the LLM project, while maintaining stable iteration, is also gradually absorbing community feedback. From new models and endpoint configuration commands to compatibility adjustments in the embeddings interface, these changes all point in the same direction: making LLM smoother as a multi-model, multimodal calling layer.
For developers using LLM, after upgrading it's worth checking whether the change in default model affects existing workflows, and whether the new endpoint command can simplify your own model access configuration.
One-line Summary
LLM 0.37 adds new models and endpoint commands, supports multimodal embeddings, and shares lessons on governing AI-assisted PRs.
Paragraph Summary
Simon Willison's LLM CLI tool and Python library release version 0.37, consolidating about two months of development work. This version adds two new models, gpt-6.1-sol and gpt-6.1-terra, and introduces the llm openai endpoint add command, letting users connect OpenAI-compatible third-party services without manually editing config files. The default model switches to gpt-6-luna, at half the price of the previous default gpt-5.6-luna, directly reducing costs for frequent API calls. The embeddings interface now supports specifying different content-types for different binary content, accommodating multimodal models like Gemini Embedding 2 that can embed text, audio, images, and video. Simon also specifically addresses the AI-assisted PR controversy, saying LLM is the project where he's been most affected, but he uses Opus 5.5 or GPT-6 Astra to help triage PRs, and the actual review burden is lower than expected.
Related articles

AI Tools Quietly Altering Settings: Postman Silently Installs Plugin, Codex Sharing Option Auto-Resets
AI Daily reports: Postman silently installs a Mac plugin and self-approves startup hooks, logged as auto-existing upgrade; Hacker News developers say Codex data-sharing opt-out flips back. Plus Simon Willison's raw float weight experiment with QEN 3.8-27B.

AI Learns to Rewrite AI: MIT's "Weightspace Programming" Redraws the Path to Recursive Self-Improvement
MIT team proposes weightspace programming: GPT-6 Astra reads and edits AI model weights directly. Math scores jump several-fold, hand-written networks beat trained models. Eight experiments analyzed, plus Anthropic's same-day warning and the real boundaries of recursive self-improvement.

Running Qwen 3.8 on a Laptop to Read Raw Weights: 46 Minutes Per Answer
Simon Willison reproduced weight space programming with Qwen 3.8 27B on a laptop: a 17GB model file, 46 minutes per answer, 43,506 reasoning tokens, Pong over an hour, Freeway failed. Suited for interpretability researchers.