llm 0.33
Upgraded to OpenAI Python library 3.x with a switched HTTP client dependency, resolving prior compatibility issues Embedding models (`llm embed` and `llm embed-multi`) now accept `--key` flag and Python methods accept `key=` parameter for per-call API key resolution without mutating shared model state `llm prompt -t/--template` can now be repeated to compose multiple templates in order, enabling modular template packaging patterns Reasoning-capable Responses API models now support a `reasoning_s
Analysis
TL;DR
- Upgraded to OpenAI Python library 3.x with a switched HTTP client dependency, resolving prior compatibility issues
- Embedding models (
llm embedandllm embed-multi) now accept--keyflag and Python methods acceptkey=parameter for per-call API key resolution without mutating shared model state llm prompt -t/--templatecan now be repeated to compose multiple templates in order, enabling modular template packaging patterns- Reasoning-capable Responses API models now support a
reasoning_summaryoption withauto,concise, anddetailedvalues viallm openai endpoint --responses - Backward compatibility is preserved for existing plugins that read
self.keythrough a compatibility fallback
Why It Matters
This release addresses a critical dependency upgrade to the OpenAI Python library 3.x, which is essential for practitioners relying on the llm CLI to maintain compatibility with upstream API changes. The per-call key injection for embedding models and template composition feature significantly improve workflow flexibility for AI engineers building modular, multi-model pipelines.
Technical Details
- OpenAI Library Upgrade: Migrated from the previous OpenAI Python library version to 3.x, including a switch in HTTP client dependency. A prior quick fix (0.32.1) was superseded by this comprehensive update.
- Embedding Key Injection: The
EmbeddingModel.embed(),EmbeddingModel.embed_multi(),Collection.embed(), andCollection.embed_multi()methods now accept akey=parameter. This passes a resolved per-call API key to embedding plugins without altering shared model state, aligning embedding models with the key pattern already used by regular LLM models. - Template Composition:
llm prompt -t/--templatesupports repeated invocations to chain templates in order. This enables a pattern where one template packages model configuration (e.g.,llm -m gpt-5.6-luna -o reasoning_effort high --save lhigh) and another packages the prompt (e.g.,llm "Generate an SVG..." --save pelican), combined viallm -t lhigh -t pelican. - Reasoning Summary Option: Reasoning-capable Responses API models support
reasoning_summarywithauto,concise, anddetailedvalues, accessible throughllm openai endpoint --responses. This is particularly relevant for models imitating the OpenAI Responses API.
Industry Insight
- The per-call key injection pattern for embedding models reflects a growing industry need for secure, multi-tenant CLI tools that avoid hardcoding or globally mutating API credentials—practitioners should adopt this pattern in their own plugin architectures.
- Template composition is a practical step toward modular prompt engineering workflows; teams should experiment with separating model configuration from prompt content to improve reusability across projects.
- Support for
reasoning_summaryin third-party Responses API imitations signals increasing ecosystem alignment with OpenAI's reasoning model interface, making cross-platform compatibility testing more viable for AI platform builders.
Disclaimer: The above content is generated by AI and is for reference only.