gptel and chatgpt-shell
These are complementary Emacs LLM interfaces optimized for different workflows—gptel prioritizes lightweight integration into existing buffers and workflows, while chatgpt-shell provides a dedicated interactive shell environment with broader model support and editing features.
About gptel
karthink/gptel
A simple, extensible LLM client for Emacs
Supports tool-use for agentic workflows, multi-modal input (images/documents), and Model Context Protocol integration. Uses Curl with fallback to built-in url-retrieve, enabling work across 25+ LLM backends (OpenAI, Claude, Ollama, Gemini, etc.). Provides introspection to inspect/modify queries before sending, editable conversation history, and persistent chat sessions as Markdown/Org files.
About chatgpt-shell
xenodium/chatgpt-shell
A multi-llm Emacs shell (ChatGPT, Claude, DeepSeek, Gemini, Kagi, Ollama, Perplexity) + editing integrations
Built on Emacs's comint shell infrastructure, it provides a unified interface for querying multiple LLM providers (OpenAI, Anthropic, Google, Ollama, etc.) with instant model-swapping. Beyond the shell, a compose-buffer workflow enables region-based prompt crafting with editable drafts, in-context navigation through source blocks, and transient menus for common actions like code refactoring or unit test generation.
Related comparisons
Scores updated daily from GitHub, PyPI, and npm data. How scores work