A Better LLM UI in Emacs
All LLM user interfaces I've seen so far are somewhat frustrating: * ChatGPT web requires a lot of copy-paste, it rewrites whole document even if you need to update a part of it, etc. * Github Copilot completions are rather unreliable and do not leave an option to specify what you want; Copilot's chat sidebar is little more than ChatGPT integrated into the IDE * Google Docs have right UI for non-code text, but they use really dumb model (not Gemini 1.5 Pro). Also won't work for code. So... I wrote a Emacs Lisp function which calls LLM with contents of the buffer to generate text according to…
What it does
In the maker’s words, at launch
All LLM user interfaces I've seen so far are somewhat frustrating: * ChatGPT web requires a lot of copy-paste, it rewrites whole document even if you need to update a part of it, etc. * Github Copilot completions are rather unreliable and do not leave an option to specify what you want; Copilot's chat sidebar is little more than ChatGPT integrated into the IDE * Google Docs have right UI for non-code text, but they use really dumb model (not Gemini 1.5 Pro). Also won't work for code. So... I wrote a Emacs Lisp function which calls LLM with contents of the buffer to generate text according to the (optional) user's command. It can both insert new text and update selected text. In my twitter post I have two videos demonstrating the usage: https://x.com/killerstorm/status/1791840684208463940 I haven't been using Emacs for 10+ years (IntelliJ offers better ergonomics for Kotlin and TS), but it does seem like the easiest platform for this kind of stuff. Took me about 4 hours to implement this, largely because I knew almost nothing about Emacs Lisp, my Common Lisp is rusty (I've used it professionally 10+ years ago) and I decided to use CL server as a proxy for the LLM API. It's likely unnecessary, and it might be possible to achieve the same in pure Emacs Lisp. But I wanted to use more advanced prompting down the line (e.g. feed it adjacent files, chained prompts, etc) and for me it would be a lot easier to do it in CL. Regarding LLM models, OpenRouter offers quite a wide selection and they are easy to switch, so I tried >10 of them. I've got best results with google/gemini-flash-1.5 and openai/gpt-4o. Video demo uses Gemini. GPT-4o seems to be just as fast, and it handles formatting in a cleaner way (i.e. it keeps track of whitespace), also probably a bit smarter. Clause 3 Opus is a good model but it's slow. Llama 3 70B Instruct is fast but you lose some intelligence. Most other models, including 8B Llama 3 Instruct did not understand the prompt... It can be simplified, sure, but do I really want to use a model which cannot understand "You should return the text to be insert in between `before` and `after`?" I tried simpler prompts (i.e. without JSON), and they just struggle with understanding what they need to return. Pretty funny that people said that "mistralai/mixtral-8x7b-instruct" is "almost GPT-4", but it cannot even... Anyway, here's code which you might try at home: https://gist.github.com/killerstorm/0fddba22d778c871452213b1... CL server can trivially be replaced with Python.
Does the same job
all alternatives →

- IBI Built a UI to finetune LLMs x100 faster2024 · finetuna-ui.com · ▲7
After fine-tuning GPT for a personal project, I realized how tedious it is to write plain text in a massive JSON file. That's why I built this app for my own use, and I want to see if others could benefit from a tool like this as well ;)
- LSLLMnesia – search across ChatGPT, Claude, Gemini chats locallyApr 2026 · chromewebstore.google.com · ▲8
I kept running into this annoying problem: I’d remember a really useful answer, but not where it was. ChatGPT? Claude? Gemini? No idea. So I’d end up digging through all of them or just rewriting the prompt. Built this to fix that. It’s a Chrome extension that indexes chats locally and lets you search across them all in one place. Once it’s indexed, search is basically instant. Still early. UIs change and break things sometimes, so it’s a bit fragile in places. Curious if other people have the same issue or if it’s just me jumping between tools too much.
- LOLLM Onestop – Access ChatGPT, Claude, Gemini, and more in one interfaceNov 2025 · llmonestop.com · ▲8
Hi HN! I built LLM OneStop (https://www.llmonestop.com), a unified interface for accessing multiple AI language models in one place. The main problem I wanted to solve: constantly switching between different AI platforms, managing multiple subscriptions, and losing conversation context when comparing outputs across models. Key features: Switch between GPT-4, Claude, Gemini, Llama, and other models mid-conversation Compare responses side-by-side Single interface instead of juggling multiple tabs/subscriptions Free tier available to try it out (no credit card needed) "Connect"…
- CAChatGPT-arcana.el, ChatGPT in your Emacs2023 · github.com · ▲5
This is far from complete, and I am far from an elisp genius, but this is an Emacs package to help you write code or text or whatever in your favourite operating system slash text editor. It's got a couple of useful functions like inserting at point with local code context, querying about something and putting the output in a temporary buffer, passing the current major mode to ChatGPT, contextual system prompts, and so on. Some small demos in the readme. Some of you may enjoy the deep magic this might unleash, so I'm posting it here. And feel free to add pull requests if you are a better…
More ai this month
the category →
I trained a 125M-parameter transformer to autocomplete piano performances in real time (~108 notes/sec on an iPhone 15). The idea is basically GitHub Copilot or Tabnine, except instead of prompting it with code, you prompt it by playing a few notes on a MIDI piano. The model then continues what you played, entirely on-device. The app is free if anyone wants to try it. Happy to answer questions about the model, training, Core ML, or the many things that didn't work.
AI · 17d ago · simedw.com
Astute▲585Automate your B2B brand going viral, with new media creators
AI · 18d ago · company-app.joinastute.com


Hey HN, Henry from Cactus here! We previously released Cactus Needle, a 14MB agentic LLM for tool call, device use, and structured extraction for phones, wearables, smart homes, small robots and microcontrollers. We got really great feedback here, and have now incorporated the suggestions to release Needle 2. The whole model is a single 14MB binary that runs a full session in 28MB of RAM; 45m parameters at 2bit compression. Needle hits 500 tokens/sec decode speed on a Raspberry Pi 5, sits between 400-1,500 tokens/sec on VR devices like Meta Quest 3S and Apple Vision Pro, and ranges…
AI · 26d ago · cactuscompute.com

