En pocas palabras: gptel es un cliente de LLM gratuito y de código abierto para Emacs, mantenido por Karthink, que permite conversar, reescribir texto, refactorizar código y correr agentes con herramientas desde cualquier buffer, con soporte para más de 20 proveedores y modelos locales vía Ollama; su versión estable es la 0.9.8.5, de diciembre de 2024.
gptel es mucho más que una ventana de chat dentro de Emacs: en vez de llevarte a una app aparte, la IA vive en el editor y trabaja donde vos ya estás. En esta nota te contamos qué ofrece, cómo se instala y configura, y hasta dónde llega su lado agéntico.
Para que quede claro desde el arranque: gptel es un cliente de LLM para Emacs, gratuito y de código abierto, mantenido por Karthink. Se conecta por HTTP a servicios como OpenAI, Anthropic o Google Gemini, o a runners locales como Ollama y Llama.cpp, y funciona en el espíritu de Emacs: disponible en todo momento, uniforme en cualquier buffer. Según NonGNU ELPA, la versión estable es la 0.9.8.5, fechada el 31 de diciembre de 2024.
En 30 segundos
- El paquete es gratis. gptel no cuesta nada; lo único que podés llegar a pagar es la API del proveedor que elijas (o nada, si usás modelos locales).
- Más de 20 backends. OpenAI, Claude, Gemini, DeepSeek, Groq, OpenRouter, xAI, AWS Bedrock, Perplexity y Kagi, entre otros, según el sitio oficial.
- Modelos locales sin clave API. Ollama, Llama.cpp, Llamafile, GPT4All y Open WebUI corriendo en tu máquina, sin costo por token.
- Chatear es lo de menos. Reescritura en el lugar, tool use, integración con MCP, imágenes y documentos como entrada, e introspección de requests antes de enviarlas.
- Instalación en un comando. MELPA o NonGNU ELPA, versión estable 0.9.8.5 (diciembre de 2024), con un único requisito duro: Transient 0.7.8 o superior.
GPT es una familia de modelos de lenguaje grandes desarrollada por OpenAI desde 2018, basada en la arquitectura Transformer. Se utiliza para generar texto, responder preguntas y asistir en tareas de programación mediante procesamiento de lenguaje natural.
¿Qué modelos y proveedores de IA soporta gptel?
Casi todos los que importan a agosto de 2026. La lista oficial de gptel.org cubre los grandes de la nube (OpenAI, Anthropic, Google), los alternativos (DeepSeek, Groq, Mistral, xAI, Moonshot) y los runners locales (Ollama, Llama.cpp, GPT4All). ¿Y si tu proveedor no figura? Zafa igual: cualquier endpoint compatible con la API de OpenAI se registra con gptel-make-openai apuntando a la URL que quieras.
En la nube, el backend de OpenAI viene configurado de fábrica y, a la fecha (agosto de 2026), las versiones recientes suman OAuth con tu suscripción Plus o Pro, con acceso a modelos Codex incluido. Para Claude registrás un backend con gptel-make-anthropic, para Gemini con gptel-make-gemini, y así con cada proveedor: un par de líneas en el init y los modelos aparecen con su prefijo en el menú de gptel. Kagi, ojo, tiene letra chica: sus modelos no soportan conversaciones multi-turno ni streaming, según detalla el manual oficial.
| Backend | Dónde corre | Clave API | Dato clave |
|---|---|---|---|
| OpenAI (ChatGPT) | Nube | Sí | OAuth con suscripción Plus/Pro; incluye modelos Codex |
| Claude (Anthropic) | Nube | Sí | Registro con gptel-make-anthropic |
| Gemini (Google) | Nube | Sí | Registro con gptel-make-gemini |
| OpenRouter | Nube (proxy) | Sí | Muchos modelos detrás de una sola clave |
| Ollama | Tu máquina | No | Gratis, registro con gptel-make-ollama |
| Llama.cpp / Llamafile | Tu máquina | No | Servidor local compatible con API de OpenAI |
| GPT4All | Tu máquina | No | Gratis; conviene subir el límite de tokens de respuesta |

¿Cómo se instala y configura gptel en Emacs?
Con MELPA o NonGNU ELPA configurado, la instalación es un solo comando: M-x package-install RET gptel. La versión estable en NonGNU ELPA es la 0.9.8.5, de diciembre de 2024, así que no aceptes imitaciones.
El único requisito que genera consultas en los issues es Transient: gptel exige la versión 0.7.8 o superior, y como Transient viene incluido en Emacs, tu editor no lo actualiza por su cuenta. La solución que recomienda el README del proyecto es poner package-install-upgrade-built-in en t, o actualizarlo a mano antes de instalar.
Después viene la parte de las claves, y acá gptel hace las cosas bien. En vez de pegar tu API key en el init.el (donde la va a leer cualquiera con acceso a tus dotfiles), podés guardarla en authinfo, el almacén de credenciales de Emacs, o leerla de variables de entorno con gptel-api-key-from-environment. Registrás el backend, dejás la clave en .authinfo.gpg, la seteás como default en gptel-backend, reiniciás el daemon para verificar que levante sin pedir contraseña, y recién ahí te sentás a laburar sabiendo que nada de eso se va a romper cuando menos lo esperás.
¿Usás Doom o Spacemacs? Mejor todavía: el módulo :tools llm de Doom trae gptel preconfigurado con keybindings e integración con magit para generar mensajes de commit, y en Spacemacs activás la capa llm-client-enable-gptel y listo.
¿Cómo usar gptel desde cualquier buffer sin abrir un chat?
Acá aparece el primer “más allá del chat”. Ponele que estás corrigiendo un párrafo en un buffer de Org y querés una segunda opinión: seleccionás la región, llamás a gptel-send y la respuesta aparece ahí mismo, en Markdown u Org, sin cambiar de ventana ni abrir una app externa. Funciona desde el minibuffer, un shell o donde se te ocurra. En nuestra guía completa sobre ChatGPT profundizamos sobre esto.
Con el prefijo C-u abrís el menú transient, donde cambiás backend, modelo, system prompt y parámetros de la request al vuelo. ¿Y si Emacs se cuelga esperando la respuesta? No se cuelga: el streaming corre en segundo plano y el editor sigue respondiendo mientras el texto va apareciendo (si alguna vez miraste una ruedita girar en una web de chat, esto es un golazo). También podés adjuntar imágenes y documentos a la consulta, y gptel maneja el contenido de “razonamiento” que devuelven los modelos que lo exponen.
Lo que me parece subvaluado es la introspección. gptel te deja ver qué se va a enviar al modelo y modificarlo antes de mandarlo. Para debuggear prompts, no tiene precio.
¿Para qué sirve la función de reescritura de gptel?
Si el chat es la puerta de entrada, gptel-rewrite es donde la herramienta se pone seria. Seleccionás una región, le decís qué hacer con ella (reescribila, resumila, refactorizala, traducila) y gptel reemplaza el texto en el lugar, con un menú de dispatch para aceptar, rechazar, ver el diff o hacer merge. Es el flujo que más rinde en el uso diario del paquete: magit aplicado a tu prosa y tu código.
Un ejemplo concreto: tenés una función de 80 líneas que funciona pero da vergüenza ajena. La seleccionás, pedís “refactorizá esto en funciones más chicas” y, en vez de confiar a ciegas en lo que vuelve, revisás el diff línea por línea antes de aceptar. ¿No te convence? Rechazás y seguís de largo. Ese control fino es lo que un chat web no te da. Para más detalles técnicos, mirá los fundamentos del modelo GPT.
¿Cómo convertir gptel en un agente con herramientas y MCP?
gptel soporta tool use: definís herramientas con gptel-make-tool y el modelo puede invocarlas para leer archivos, buscar información o ejecutar lo que vos expongas. Encima, la integración con el Model Context Protocol (MCP) vía mcp.el te permite conectar servidores MCP completos desde mcp-hub-servers.
También hay colecciones de herramientas armadas sobre gptel, como llm-tool-collection y ragmacs, para no empezar de cero. Ahora bien, una advertencia honesta: en la práctica, la cantidad de llamadas a herramientas por tarea es acotada. Sí, todo el mundo promete flujos “agénticos” de cien pasos; en la realidad, gptel brilla en tareas cortas dentro del editor. Tomalo por lo que es.
¿Se pueden usar modelos locales y gratis con gptel?
Sí, y es una de sus mejores cartas. Registrás un backend apuntando a localhost y listo: sin clave API y sin enviar tu código a ningún servidor. Con Ollama es una llamada a gptel-make-ollama con el host y el modelo; Llama.cpp, un Llamafile en modo servidor, GPT4All u Open WebUI se configuran de forma parecida, varios vía endpoint compatible con OpenAI.
Para cualquiera que trabaje con código de clientes o datos que no pueden salir de la máquina, esto es re piola: el modelo corre en tu hardware y la conversación queda en archivos de texto. El manual aclara que los modelos que corren en hardware de consumo van de 1 a 120 mil millones de parámetros, así que hay margen de elección según tu RAM. Eso sí, seamos honestos: para razonamiento complejo, un modelo local chico no compite con los de frontera. Para resumir, reescribir y autocompletar, zafa bien. Esto se conecta con lo que analizamos en las novedades de GPT-5.6 Sol para Plus.
¿Por qué guardar los chats como archivos de Org y Markdown es una ventaja?
Porque tus conversaciones dejan de estar secuestradas en la nube. Los chats de gptel son buffers normales de Emacs: los guardás como .org, .md o .txt, los reabris activando gptel-mode y seguís justo donde habías quedado. Nada de exportar ni copiar y pegar: el archivo es la conversación.
Y hay más capas. Podés editar tus prompts anteriores o las respuestas del modelo antes de continuar, y esas ediciones se envían de vuelta al modelo, con lo cual podés ramificar una conversación corrigiendo un paso intermedio. En Org-mode, gptel-org-branching-context maneja el contexto por árbol, gptel-org-set-properties fija parámetros por heading y los presets con cookies @preset-name te permiten reutilizar configuraciones. Probá hacer la mitad de eso con un historial de chat web.
Errores comunes al usar gptel (y cómo evitarlos)
- No actualizar Transient. Es el error número uno: gptel exige la 0.7.8+, Emacs no actualiza los paquetes incluidos por defecto y la instalación falla sin un aviso claro. Solución: package-install-upgrade-built-in en t.
- Pegar la API key en el init.el. Tus dotfiles probablemente terminan en un repo o en un backup. Usá authinfo o variables de entorno, que gptel soporta de fábrica.
- Creer que gptel “incluye” los modelos. Es un cliente, no un proveedor: sin clave API o sin un runner local corriendo, no hay respuestas. Si te aparece el error HTTP 429 de cuota excedida, el problema está en tu cuenta de OpenAI, no en el paquete.
- Esperar streaming y multi-turno de Kagi. Sus modelos no soportan ninguna de las dos cosas, según el manual. Si tu flujo depende de conversaciones largas, elegí otro backend.
Preguntas Frecuentes
¿Qué es gptel y para qué sirve?
gptel es un cliente de modelos de lenguaje (LLM) para Emacs, gratuito y de código abierto, mantenido por Karthink. Sirve para conversar con IA desde cualquier buffer, reescribir y refactorizar texto o código en el lugar, y correr agentes con herramientas e integración MCP.
¿Qué modelos de IA soporta gptel?
Soporta más de 20 backends: OpenAI (ChatGPT), Claude de Anthropic, Gemini de Google, DeepSeek, Groq, OpenRouter, xAI, AWS Bedrock, Perplexity, Kagi, Mistral y GitHub Copilot Chat, entre otros. También corre modelos locales con Ollama, Llama.cpp, Llamafile, GPT4All y Open WebUI. Sobre eso hablamos en armar tu propio recepcionista virtual con IA.
¿Cómo se instala gptel en Emacs?
Instalalo con M-x package-install RET gptel desde MELPA o NonGNU ELPA, donde la versión estable es la 0.9.8.5 (diciembre de 2024). Asegurate de tener Transient 0.7.8 o superior y registrá tu backend en el archivo de configuración.
¿Puedo usar modelos locales como Ollama con gptel?
Sí. Registrás el backend con gptel-make-ollama apuntando a tu servidor local y el modelo aparece en el menú de selección. No necesitás clave API, no pagás por token y todo el procesamiento queda en tu máquina.
¿Gptel es gratis o necesito pagar una suscripción de IA?
El paquete gptel es 100% gratis y open source. Lo que puede costar es el acceso a los modelos: las APIs de OpenAI o Anthropic se pagan por uso, mientras que con modelos locales como Ollama el costo es cero.
Conclusión
El video que dio origen a esta nota lo dice en el título: gptel va mucho más allá de una interfaz de chat. Es un cliente que convierte a Emacs en un entorno completo de trabajo con IA: chat en cualquier buffer, reescritura con diff y merge, agentes con herramientas y MCP, modelos locales sin costo y conversaciones guardadas como texto plano que podés versionar con git. Si querés verlo en acción antes de instalar nada, hay un walkthrough de 18 minutos en YouTube y demos cortas en el repositorio del proyecto.
Mi recomendación después de años viendo estas herramientas ir y venir: instalalo (es un comando), registrá Ollama si te importa la privacidad y probá gptel-rewrite sobre un archivo real antes de sacar conclusiones. Si Emacs ya es tu casa, gptel es el cliente de LLM que estabas esperando. Y si no usás Emacs, quizás esta sea la excusa que faltaba.




