llm 0.33 CLI: templates combinables y embeddings

“`html

En pocas palabras: llm 0.33 es la versión de la herramienta open source de Simon Willison para consultar modelos de lenguaje desde la terminal, lanzada el 22 de agosto de 2026. Suma templates combinables en un solo comando, claves API por llamada para embeddings y control de razonamiento con la Responses API.

Simon Willison lanzó el 22 de agosto de 2026 la versión 0.33 de llm CLI, su herramienta open source para consultar modelos de lenguaje desde la terminal. Esta release permite combinar templates en un mismo comando, renueva el manejo de embeddings con claves API por llamada y migra a la librería OpenAI Python 3.x, según el anuncio oficial en su blog.

llm es una herramienta de línea de comandos gratuita y de código abierto creada por Simon Willison para enviar prompts a modelos de lenguaje grandes desde la terminal, registrar las respuestas y trabajar con embeddings. La versión 0.33, publicada el 22 de agosto de 2026, agrega templates combinables, claves API resueltas por llamada para plugins de embeddings y control de razonamiento en modelos compatibles con la Responses API de OpenAI.

En 30 segundos

  • Lanzamiento: llm 0.33 se publicó el 22 de agosto de 2026 en el blog de Simon Willison, junto con el paquete actualizado en PyPI.
  • Templates combinables: el flag -t/–template ahora se puede repetir en un mismo comando para encadenar configuración de modelo y prompt.
  • Embeddings renovados: nuevos métodos embed() y embed_multi() con claves API resueltas por llamada, sin romper plugins existentes gracias a un fallback de compatibilidad.
  • Migración técnica: la herramienta pasó a la librería OpenAI Python 3.x y cambió su dependencia de cliente HTTP.
  • Razonamiento configurable: los modelos con capacidad de razonamiento vía Responses API aceptan ajustes como reasoning_effort y thinking_budget.

GPT-5 es un modelo de lenguaje grande desarrollado por OpenAI, lanzado en agosto de 2025. Funciona como un sistema unificado que combina respuestas rápidas con capacidades de razonamiento profundo, y se utiliza para generar texto, responder preguntas y asistir en tareas de programación.

¿Qué es llm y por qué los desarrolladores lo usan?

Es la puerta de entrada a los LLMs sin tocar el navegador. Si alguna vez quisiste mandarle un documento a un modelo, guardar la respuesta y después buscar en ese historial, sabés que la interfaz web de turno no te deja hacer nada de eso. Con llm hacés las tres cosas desde la terminal, y de paso todo queda registrado en una base de datos SQLite local.

Eso la vuelve ideal para scripting y automatización: podés enchufarla en un pipe de UNIX, procesar archivos por lotes o disparar prompts desde cron. La instalación es un solo comando (pip install llm) y de ahí en adelante cada proveedor se suma con plugins.

¿Qué novedades trae llm 0.33 CLI?

Cinco cambios concretos, todos confirmados en el anuncio oficial del 22 de agosto de 2026:

  • Migración a OpenAI Python 3.x: la herramienta actualizó su librería base y cambió la dependencia del cliente HTTP, un arreglo más profundo que el parche parcial que Willison había publicado el día anterior.
  • Nuevos métodos de embeddings: EmbeddingModel.embed(), EmbeddingModel.embed_multi() y Collection.embed_multi() estandarizan cómo generás vectores.
  • Claves API por llamada: los plugins de embeddings reciben la clave resuelta de cada llamada sin alterar el estado compartido del modelo.
  • Templates combinables: el flag -t/–template se puede repetir para encadenar varios templates en orden.
  • Razonamiento configurable: los modelos con capacidad de razonamiento vía Responses API aceptan valores como reasoning_effort y thinking_budget.
CambioAntesAhora en 0.33
Librería de OpenAIVersión anterior de la librería PythonOpenAI Python 3.x, con nuevo cliente HTTP
Claves en embeddingsPlugins leían la clave del estado compartido del modeloClave resuelta por llamada, con fallback para plugins viejos
TemplatesUn solo template por comando-t repetible: combinás config y prompt de templates distintos
RazonamientoSin exposición directa de estos parámetrosreasoning_effort y thinking_budget en modelos Responses API
llm 0.33 cli diagrama explicativo

Dicho esto, conviene aclarar qué significa cada cosa en la práctica, porque hay dos features que cambian tu flujo diario y una que es más plomería interna.

¿Cómo combino templates en llm 0.33?

Repitiendo el flag -t. Antes podías pasar un solo template por comando; ahora llm los ejecuta en orden y el resultado es la suma de todos: la configuración de modelo y las opciones del primero se aplican al prompt del siguiente. El ejemplo que trae el propio anuncio:

llm -m gpt-5.6-luna -o reasoning_effort high --save lhigh
llm "Generate an SVG of a pelican riding a bicycle" --save pelican
# Combinamos y ejecutamos los templates
llm -t lhigh -t pelican

El primer comando guarda un template llamado lhigh que fija el modelo gpt-5.6-luna con reasoning_effort en high. El segundo guarda el prompt del pelícano en bicicleta (sí, ese pelícano: es el test clásico con el que Willison evalúa modelos). El tercero combina ambos y ejecuta.

Creás un template que empaqueta el modelo con sus opciones por defecto, creás otro que guarda el prompt y los combinás en un tercer comando. De ahí en más tenés un sistema modular donde la configuración vive separada del contenido. Podés mezclar combos de razonamiento con cualquier prompt y no volvés a escribir un flag kilométrico jamás, o al menos hasta que cambien la API otra vez.

¿Por qué me gusta este cambio? Porque ataca el problema real: nadie quiere memorizar veinte flags. Guardás el combo una vez y lo reutilizás.

¿Para qué sirven los embeddings en llm 0.33 y qué cambió?

Los embeddings son representaciones numéricas de un texto que permiten calcular similitud semántica: son la base de cualquier búsqueda por significado o sistema RAG. Si alguna vez armaste eso de “buscá en mis documentos lo que responda esta pregunta”, el paso pesado era generar los vectores, y ahí entran las colecciones de llm.

La 0.33 ordena esa casa. Ahora los modelos de embedding usan el mismo patrón de claves que los modelos de chat regulares, algo que Willison presenta como cuestión de integridad conceptual: si dos partes de la herramienta hacen lo mismo, deberían hacerlo igual. Más contexto en nuestra guía completa de herramientas-dev.

Los métodos nuevos son tres: EmbeddingModel.embed() para un texto, EmbeddingModel.embed_multi() para lotes, y Collection.embed_multi() para llenar una colección directo. El cambio de fondo está en las claves: cada llamada recibe su clave resuelta, sin que el plugin tenga que mutar el estado compartido del modelo.

¿Y los plugins viejos? Siguen andando. Los que leían la clave desde el modelo encuentran un fallback de compatibilidad, así que tu código no se rompe al actualizar (spoiler: igual conviene migrar cuando puedas).

¿Qué modelos puedo usar con llm CLI?

OpenAI viene soportado de fábrica y el resto se suma con plugins: existen conectores para Anthropic Claude, Google Gemini, modelos locales vía Ollama y un catálogo enorme de opciones de la comunidad. Ese diseño de plugins es la razón por la que la herramienta sobrevive a los vaivenes del mercado: cuando aparece un proveedor nuevo, alguien escribe el plugin y vos seguís usando los mismos comandos.

La novedad de esta release para modelos de razonamiento: los que exponen la Responses API de OpenAI ahora aceptan parámetros como reasoning_effort y thinking_budget, y podés apuntar la CLI a cualquier endpoint custom con llm openai endpoint --responses. Esto sirve para probar los servicios de terceros que montan su propia “imitación” de la Responses API, algo frecuente entre proveedores que quieren compatibilidad drop-in con el ecosistema OpenAI.

Willison dejó una nota al margen en su blog sobre Qwen 3.8 27B: le parece un modelo excelente, pero escribió que “por defecto sobrepiensa las cosas”. Justo para esos casos sirve el control fino que trae la 0.33: bajás el esfuerzo de razonamiento y el modelo deja de darle tres vueltas a una pregunta de dos líneas. En la integración de GPT-5.4 en Copilot profundizamos sobre esto.

¿Cómo actualizo a llm 0.33 y cuánto cuesta?

Un comando: pip install -U llm. Después verificás con llm --version que estés en 0.33. Necesitás Python en tu máquina y, si instalaste por otro canal, el detalle completo de instalación está en la documentación oficial.

La herramienta es gratuita y de código abierto. Lo que pagás es el consumo de APIs: una clave de OpenAI se configura con llm keys set openai, y cada proveedor extra tiene la suya. Si preferís gastar cero, los plugins de modelos locales como Ollama corren en tu máquina sin costo por token.

Ojo con un detalle operativo: si automatizás generación de embeddings por lotes en un servidor, manejá las claves por variables de entorno y no las hardcodees en los scripts. Y si el proceso corre en un VPS, un proveedor local como donweb.com te da acceso SSH y control total del entorno para este tipo de cargas.

llm frente a otras CLIs de IA: ¿cuál conviene?

Depende del trabajo. llm brilla cuando querés una navaja suiza de modelos con historial y embeddings; otras herramientas apuntan a nichos más específicos. Tabla rápida con las alternativas más conocidas:

HerramientaQuién la mantieneFortaleza principalCosto
llmSimon WillisonMulti-modelo vía plugins, logging en SQLite, embeddingsGratis, pagás las APIs
AiderPaul GauthierEditar código en un repo Git con commits automáticosGratis, pagás las APIs
ModsCharmbraceletPipes UNIX y salida limpia para shell scriptsGratis, pagás las APIs
FabricDaniel MiesslerCatálogo de patrones de prompts listos para usarGratis, pagás las APIs

Mi criterio después de años usando varias: para explorar modelos, armar datasets y automatizar tareas sueltas, llm; para refactorizar código dentro de un proyecto, Aider le gana porque entiende el contexto del repo. No compiten tanto como parece.

¿Qué está confirmado y qué falta confirmar en llm 0.33?

Todo lo que sigue figura en el anuncio oficial, así que se puede tomar como confirmado:

  • La migración a OpenAI Python 3.x y el cambio de cliente HTTP, que Willison describe como el arreglo comprehensivo tras un fix parcial del día anterior.
  • Los tres métodos de embeddings nuevos y el paso de claves resueltas por llamada a los plugins.
  • El fallback de compatibilidad para plugins existentes que leen la clave desde el modelo.
  • Los templates combinables con -t/–template repetible.
  • El soporte de razonamiento en modelos Responses API y el flag –responses para endpoints custom.

Lo que conviene tener en cuenta antes de actualizar:

  • El changelog completo: el post resume los highlights; el detalle íntegro está en el repositorio de GitHub del proyecto.
  • El comportamiento de plugins de terceros: el fallback existe, pero nadie garantiza comportamiento idéntico a largo plazo; probá tus flujos después de actualizar.

Errores comunes al usar llm (y cómo evitarlos)

  • Pensar que llm trae un modelo incluido: es la CLI, no la inteligencia. Sin clave API configurada o sin un plugin local como Ollama, el comando no devuelve nada útil. Primero llm keys set openai, después cualquier prompt.
  • Repetir configuración en cada comando: si escribís -m y -o una y otra vez, estás trabajando de más. Guardá combos con –save y en 0.33 combinálos con -t.
  • Tratar el fallback de compatibilidad como hogar definitivo: existe para darte tiempo de migrar tus plugins de embeddings al nuevo patrón de claves, no para vivir en él. Actualizá cuando puedas.
  • Dejar reasoning_effort en high por defecto: el ejemplo oficial lo usa, pero subir el esfuerzo de razonamiento dispara latencia y consumo de tokens. Como advirtió Willison sobre Qwen 3.8 27B, hay modelos que por defecto sobrepiensan; el parámetro existe para ajustar, no para decorar.

Preguntas Frecuentes

¿Qué cambios importantes trae la versión 0.33 de llm?

llm 0.33, lanzada el 22 de agosto de 2026, combina templates repetibles con el flag -t, renueva los embeddings con los métodos embed() y embed_multi() y claves API por llamada, migra a la librería OpenAI Python 3.x y agrega control de razonamiento (reasoning_effort y thinking_budget) en modelos compatibles con la Responses API. Te puede servir nuestra cobertura de quién conviene en DeepSWE según costos.

¿Cómo combino templates en la herramienta llm?

Repetís el flag -t en un mismo comando: llm -t lhigh -t pelican ejecuta el prompt del segundo template con el modelo y las opciones del primero. Guardás cada template antes con –save, por ejemplo llm -m gpt-5.6-luna -o reasoning_effort high --save lhigh.

¿Qué modelos puedo usar con llm CLI?

OpenAI viene soportado de fábrica y el resto se agrega con plugins: hay conectores para Anthropic Claude, Google Gemini, modelos locales vía Ollama y muchas opciones de la comunidad. Con llm openai endpoint --responses podés apuntar además a endpoints de terceros compatibles con la Responses API.

¿Cómo paso claves API por llamada en llm 0.33?

La versión 0.33 resuelve la clave por llamada y se la pasa al plugin de embeddings sin modificar el estado compartido del modelo. Los plugins existentes que leen la clave desde el modelo siguen funcionando mediante un fallback de compatibilidad.

¿Es gratis llm CLI o hay que pagar?

La herramienta es gratuita y de código abierto. Pagás únicamente el consumo de las APIs de los proveedores que uses; con modelos locales vía Ollama el costo por token es cero.

Conclusión

llm 0.33 no trae fuegos artificiales, y está bien que sea así. Es una release de arquitectura: uniformiza cómo se manejan las claves entre chat y embeddings, convierte los templates en piezas combinables y pone palancas de razonamiento al alcance de un flag. Para quien usa la herramienta a diario, el cambio más visible es el patrón de templates; para quien mantiene plugins, el nuevo contrato de claves.

Mi recomendación concreta: actualizá con pip install -U llm, probá el combo de templates con un caso tuyo real y revisá si algún plugin de embeddings tuyo lee la clave del estado del modelo. Si la respuesta es sí, migrá al nuevo patrón mientras el fallback te cubre. Son quince minutos de trabajo que te ahorran sorpresas en la próxima release.

Fuentes

Desplazarse hacia arriba