xenodium/chatgpt-shell
A multi-llm Emacs shell (ChatGPT, Claude, DeepSeek, Gemini, Kagi, Ollama, Perplexity) + editing integrations
What it solves
chatgpt-shell is an Emacs package that provides a shell-like interface for interacting with various Large Language Models (LLMs). It eliminates the need to switch between browser tabs and your editor, allowing you to query models like ChatGPT, Claude, Gemini, and others directly within Emacs buffers.
How it works
The project implements a comint shell, which means it integrates with Emacs's native shell prompt experience. It uses curl to send requests to various API endpoints (OpenAI, Anthropic, Google, DeepSeek, etc.) and supports streaming responses for a more responsive feel. Users can switch between different LLM providers and models using a single shell session.
Who it’s for
Emacs users who want a deep integration of AI assistance within their editor, specifically those who prefer a shell-based workflow and the same keybindings they are used to in Emacs shells.
Highlights
- Multi-model support: Access OpenAI, Anthropic, Claude, Gemini, DeepSeek, Ollama (local), OpenRouter, and Perplexity from one interface.
- Compose buffer: A dedicated editable buffer for crafting complex queries, featuring shortcuts for replying, requesting more data, or requesting full code snippets.
- Code execution: Integrates with
org-babelto execute source blocks returned by the LLM directly within the shell. - Transient menu: A quick-access overlay menu for common actions like refactoring code, writing git commits, or describing images.
- Vision capabilities: Support for image queries (currently ChatGPT only) to describe images or extract text/vocabulary from them.
- Session management: Ability to save and restore session transcripts for later use.
Related
- Project
- Project
- Project
- Project
- Project