I put off adopting popular agents for most of 2025 primarily because there was no agent-agnostic path to first-class Emacs integration. That changed with ACP (https://agentclientprotocol.com), thus I started working on agent-shell.
I'm happy with how the integration is shaping up, enabling me to have my cake and eat it too (Emacs + AI agents).
I'm not sure AI Agents can already beat the average VIM user.
I use VIM and I get some inspiration from LLMs sometimes, but me and other developers always after some time give up and just quickly do it manually.
AI Agents will just full the code with maaaassive swaths of texts it will just make a project unusable.
We even get paid to turn client's AI LLM Claude sketches into real programs.
keithnz1 hour ago
This is not my experience at all, the AI agents are many many many times faster than what I can do. What anyone can do. It's crazy how quick I can create stuff these days.
armchairhacker8 minutes ago
AI can generate code much much faster.
But do you never need a specific change (e.g. bugfix), that even describing in English is slower than just doing it? Especially in vim where editor movements are fast.
zhann_dc1 minute ago
I'd argue you should be working towards no longer having to do these because agentic systems in place will do it in your stead.
All you need to do now, is sign off the code and adjust the agent so it would do these as you would.
gdorsi28 minutes ago
It really depends on what kind and of job you do.
If it's not something very common LLMs could end up generating random code.
Also if you work on something performance critical, you can get inspiration from LLMs, but they often don't write fast code.
keithnz8 minutes ago
not my experience, they write fast code, and if you ask them to optimize, can pull all kinds of tricks out of the bag. Even with some of the niche stuff I work on, they seem really good.
bandrami36 minutes ago
You're forgetting to count the time you spend deleting the excess stuff
keithnz10 minutes ago
no... I'm not.
beemboy2 hours ago
I'm not convinced that terminal orientedness of AI tooling itself will last. My hypothesis is that it was chosen by developers of the current generation building for developers of the current generation. I hypothesize that there is a future where command lines and terminals don't matter, and hence I feel the focus will shift to, as the author points out, to planning, reviewing and ideation tools none of which demands a command line. In fact I expect an entirely new class of tool to emerge that does these things well that is neither an IDE nor terminal based. I think Claude Code's core will live but it's interface will morph in the coming years to adapt to the builders of the next generation. The analogy I use is my kids and manual transmission cars -- they grow up with EVs and single gear drives with linear torque curves, and will have no nostalgia for a manual transmission, engine noises, or supercharger whines. If you never used a terminal, will you pine for it?
vohk35 minutes ago
I'm not about to put any money down - I lack that degree of confidence in my prognosticating - but I doubt the terminal will ever really vanish, for much the same reason that 20 years of touch screens hasn't really put in a dent in a keyboard and mouse for serious work, and game controllers have barely changed despite multiple attempts at VR and other interfaces, and why the stylus is still going strong after more than 5000 years. Sometimes you just get it right.
A text interface is just really damn good at efficient and precise information delivery and interaction, in a way that takes a lot more work for a GUI to match, and they are composable in a way GUIs simply are not. Most users won't - and currently don't - care about terminals, but I doubt it will ever stop being a standard tool for power users.
I don't doubt we'll see new paradigms emerge, but I think they'll come in the form of higher level abstractions for certain classes of task rather than a replacement for the sort of TUIs and GUIs we have today.
i_am_a_peasant20 minutes ago
Yeah, I can’t imagine why anyone would think that moving away from the most explicit source of truth possible would make AI work any better. the things good UIs excel at is data representation, not processing. Representing a tree or a graph in text sucks. But AI can sure read a text representation of a tree or a graph and reason about it much faster than through a UI
rtpg49 minutes ago
This stuff stands on the foundations it's built off of. It's very hard to argue against the stoic determinism of an `ls` call.
And all the success stories I've seen in people using these tools have had a similar theme: top level might be LLM-y but you rush to get to deterministic straightforward building blocks so that you can have reliability.
That, to me, looks like writing up a bunch of small programs to help establish vocabularies and workflows to avoid just churning and getting lost in the weeds.
I'd be interested in seeing some future form of process orientation, but in the meantime.... shells in general have proven they are decently good at tying stuff together quite well.
`ls dir | grep thingy | process` gonna involve less possibility of annoying drift and churn than "run process on all the files with thingy in their name in directory"
discardable_dan31 minutes ago
Coining this phrase now: "It's the tokens stupid"
Hooking up to and generating calls across filesystem APIs cost multiple orders of magnitude more than calling `ls`. These tooling ideas are interesting, though. Maybe Kenneth_E._Iverson was right all along?
Talking to another senior dev over drinks tonight, we both worried not about our work but about who might come up never having written a single line of code. Never even opened a terminal. Is looking at the code something you learn in semester 5?
I think computer science education is going to stomp onward, poorly. And we will get that generation. And things like "terminal tooling is going out of style" won't even be said any more. Hacker groups will turn from discussions about new ideas to talking about doing leetcode without AI.
Our art died because we used our art to kill it. We are the last human masters.
That's a funny thing to think about.
rekrsiv57 minutes ago
A terminal still offers a more composable interface than a GUI. Analog feedback is still a concern for high level pilots. You are confusing power tools with entry-level instruments.
ManuelKiessling39 minutes ago
My current assumption is that the interfaces and workflows that stakeholders and product owners use today to manage software engineering resources are the future interfaces and workflows towards agentic engineering systems.
myrak1 hour ago
[dead]
flipped50 minutes ago
What a complete abysmal take. Terminals are never going to go away, they are the literal foundation of interaction you dumb fucking moron.
keithnz42 minutes ago
please see the HN FAQ, this is NOT acceptable for this site.
flipped21 minutes ago
What exactly are you gonna do? "Oh look at me, I am gonna complain to thought police". Shut up.
HauntingPin4 minutes ago
I often get the impulse to call people stupid fucking morons on this site, because despite how intelligent people supposedly are, they really are complete fucking morons. It will, however, get you flagged and banned.
slopinthebag49 minutes ago
Woah dude you don't need to be so calm and polite.
szopa2 hours ago
I have been a die hard emacs user for 20 years, and I have a very nice emacs setup (if a little bit idiosyncratic, but all emacs configs are idiosyncratic). However, recently I realized that I read code, but almost never write it. What is more, I spend a lot of time doing it in tmux, over mosh, from my phone. Emacs ergonomy is just not great if all you have is a horrible phone keyboard (and no swiping, because tmux redraws the screen if you swipe). And then I discovered helix. It has all the things I was jealous about vim, BUT it has sane defaults ootb. And truth be told, another thing I use a lot is bat, which is cat with syntax highlighting and an automatic pager.
truncate1 hour ago
>> recently I realized that I read code, but almost never write it.
I think most engineers are reading code than writing it. I find it very hard to not use Emacs when reading large codebases. Interestingly, its mostly because of file navigation. I love using ido/ivy for file navigation, quickly filtering through buffers, magit.
Emacs in terminal is not an ideal experience though. So I can imagine it being multi-fold worse with phone keyboard.
johanvts1 hour ago
Emacs has multicursor, lsp and treesitter so from just reading the helix landing page idk what you gain? Bat sounds interesting, thanks.
locknitpicker36 minutes ago
> However, recently I realized that I read code, but almost never write it.
This has been the norm for a few decades. Even software engineering courses emphasize the fact that code is read far more often than it is changed, which leads to all the basic software engineering principles around the importance of making code easier to read and to navigate through.
marwanet38 minutes ago
I suspect terminals will stick around longer than people expect.
Not because they’re ideal, but because they compose well with everything else.
dsrtslnd2339 minutes ago
I think a terminal is still the perfect UI for coding agents on desktop systems. But now that I have running agents in background that only sometimes require some extra input on the go - I hate the terminal use on the go: terminus or other mobile app + virtual keyboard is horrible to use. For that I envision a better interface.
gbro3n1 hour ago
I'm a muggle when it comes to vim, but I've considered learning it again recently because of AI. I'm building more than I have in years because I love being able to try things out without investing 3 months to get something working before I can really test the idea. And so I am typing A LOT. Less code, but lots of markdown, prompts and config. My hands are hurting, I really wish I had a power tool for typing. Writing is always going to allow us to be more precise than speech, and is a tool for creative thought in its self. I can see how we might be bearish on our expectations around new adoptees, but I think there's pressure to get more out of our editors too. Two of my recent projects have been vscode extensions, because I'm needing more help from my editor, not less: https://www.appsoftware.com/blog/fixing-agent-llm-context-de..., https://www.appsoftware.com/blog/as-notes-turn-vs-code-into-...
arcanemachiner1 hour ago
Start using speech to text more. You likely have the hardware needed to run a Whisper model locally.
gbro3n26 minutes ago
I will give a go. But my rambling mumblings to Gemini on my phone sor far confirm that I write with more clarity than I speak
pjmlp1 hour ago
I lived in XEmacs between 1995 and 2005, because in many UNIX variants having an IDE was a foreign word, not even something that could provide the affordances of a Turbo Pascal with Turbo Vision based IDE for MS-DOS.
Between Emacs, the improved XEmacs, and vi, the answer was obvious at the time, I joined the Emacs faction with XEmacs.
Mastered elisp good enough, had my configuration scripts, go to know enough vi to handle telneting (or sshing) into random UNIX servers without anything else installed.
Both are still kind of stuck in time, going back to them in random UNIX distribution feels like I am back in that UNIX decade.
stephc_int131 hour ago
How much of this article was AI written? I can sense the AI smell all over the place, also I found it way too long with little substance, but maybe that’s just me.
operatingthetan1 hour ago
At this point a lot of the articles on this site are just a 'prompt' for us to have a discussion about.
acron01 hour ago
Bozhidar always writes like this. I can see why you would think it's AI style but I would vote that it isn't. Look at some of his pre-AI blogs, if you care to.
gbro3n1 hour ago
I didn't get that feeling. But it is long, which is a bit of an AI smell. That said, I think use of AI in writing might not always be a negative. On a couple of documentation pieces I have used AI to provide better structure to writing that I've started and check for technical correctness parts of a document where I need to check my terminology. As long as the original idea is human and AI helps to make the signal clearer, I'm ok with it.
lorenzohess3 hours ago
Agreed.
We should also consider whether the rise of AI for any type of implementation task will reduce the number of new Emacs and Vim users, thereby limiting and ultimately killing the communities' growth.
I came to Vim, and then Emacs, because I wanted a tool for coding that I could configure exactly how I liked. If AI does my coding for me, my need for a custom editor will decrease. More generally speaking, if AI can do any type of implementation task -- coding, task management, email, etc -- my need for software customized for those things will decrease.
If people don't need custom software, many fewer people may seek out and find Emacs and Vim.
Who will maintain them and evangelize once today's generation cannot?
nine_k3 hours ago
If implementation of anything is easy, far fewer people would be needed to keep the projects alive.
AI is okay at doing simple things, but it needs to be overseen. Even before any viable AI, I used to read code more than to write. And Emacs is a good tool for that.
Then, Emacs specifically has a killer app, Org mode. For me, it's about as important as good programming modes, if not more
More importantly, Emacs is a platform (as is Neovim, and VS Code). It adjusts to the needs of the user and the moment.
keithnz1 hour ago
vim (neovim these days) for me is my text editor I use to look at code when dealing with AI, more often than not I'm working on a bug list as I test things. I haven't opened my IDE (Jetbrains tools) for nearly 2 weeks now. Only thing I often want is to be able to run sql queries, I used datagrip for that... Now I'm writing my own tui sql tool that is lightning quick and has most of the features I like from data grip, plus a bunch of new things that make my life easier. I've made it work as a MCP server also so that I can get my agent to directly inject queries and I can browse the result sets easily. I feel like the terminal, because its text based and super great at manipulating text is such a perfect match for these AI agents. But, yes, the need for code editing itself is really limited.
ywatanabe19891 hour ago
In my view, Emacs is getting more powerful in the AI era. The cost of writing Elisp has dropped significantly — I've ended up with 15+ personal Elisp packages as a result. The freedom Emacs offers is still unmatched. For example, I heavily rely on sending automatic response (https://github.com/ywatanabe1989/emacs-claude-code), monitoring repository, and targeted context building from dired.
johanvts1 hour ago
Fully agree, but it is also the buffer based navigation approach that is just fantastic. I wish other programs would adopt this. Most applications use dedicated areas for various functions, instead of letting me just hit a key to bring the function to where I am currently looking.
igor474 hours ago
Agreed on the config. I just launch a Claude code in my vimrc directory now if I want to change anything about my setup or have any questions about how to do something.
Also, I love running a tmux pane for vim, and then like 4 or 5 more -- a few Claude code instances, one for the dev environment, one for interacting with jj/git or other random commands. So easy to switch between tasks. My main annoyance with my setup is that my Bluetooth trackball times out after a period of inactivity, and when I eventually need to use the pointer again there's a lag while it reconnects...
lelanthran3 hours ago
Yeah, I use Slime in vim to drive programs (like psql) via their stdin/stdout, so an "agent" that does stdin/stdout only for UI is perfect.
If I ever write my own agent, it will be in this fashion.
-----------------
[1] I have a `scratchpad.sql` file filled with whatever sql snippets I am testing and have `psql mydbname` in a vertical split. Doing C-c C-c in the scratchpad sends the paragraph to the psql instance.
emporas3 hours ago
In my mind I had the opposite picture than the one the article portrays.
Emacs was lagging behind common IDEs, like IntelliJ and VsCode, cause big companies put thousands of developers to combine many features into one integrated package and everything works together providing a very smooth experience compared to Emacs (and Vim probably).
Now IDEs are useless. I personally haven't felt the need to goto_definition or autocomplete variable names for almost 2 years.
Now programming becomes closer to plain text writing and editing and it levels the playing fields for all editors.
Also Emacs can run Rust plugins, the user is not limited to Elisp. Not very convenient but possible.
globular-toast1 hour ago
> Now IDEs are useless. I personally haven't felt the need to goto_definition or autocomplete variable names for almost 2 years.
So you are vibe coding? Some of us still check every line of code generated and an IDE definitely helps with that. Even more so when you need to take control.
rgoulter4 hours ago
May be splitting hairs, but I don't think it's the terminal-native part that's relevant, so much as that both LLMs and emacs/vim are text oriented in ways which e.g. VSCode isn't. (Or perhaps just the text-oriented nature is a result from initial constraint from being terminal-native).
As the author points out, that Emacs is a highly extensible 'operating system' which makes it relatively easy to bring different tasks together. -- This ought to be a natural parallel to what the agentic tools are trying to do (use MCPs and skills etc. to bring different functionality to the LLM execution environment).
That LLMs can help users extend emacs ought to lower the difficulty curve.
Still. It's silly to wish that Emacs could be the LLM's best friend, rather than demonstrating how it is.
RE: "what if in the future all coding skills are irrelevant". My experience has been that good results from LLMs come from putting good thought into its usage. They're quite far from a magic "push the button and get the result you want" where the skill doesn't matter.
chamomeal3 hours ago
Not totally related to your point BUT I’d like to tack on that lisps and generally repl-friendly languages are in an interesting spot in the LLM-enabled world.
The calva-backseat-driver vscode extension runs an MCP that lets LLMs manipulate and eval clojure expressions in a REPL. It provides a tighter feedback loop and lets LLMs do much more complicated stuff with much more confidence. They can test functions as they go, read docs, check query outputs, write and eval tests. It’s actually crazy what Claude opus can do with REPL access.
It might be insanity to let an LLM modify your emacs on the fly, but I’m sure people will have some crazy and interesting ideas in that vein!
FabianCarbonara3 hours ago
This is super exciting. Emacs already treats UI as just more Elisp to eval. The AI could sculpt the entire editor to whatever you need in the moment. No plugin to install, no config to maintain. Just describe what you need and the editor becomes it.
jaypatelani25 minutes ago
Hmm.. asistant i can't escape this screen what is it?
A.i: this is vi text editor.
Human: exit from it and open word processor.
A.i: rm -rf /
Human: good job exiting. Now where's my word processor?
....
Hello? Where's my word processor? Brint it on screen.
Can you hear me ?
lenkite1 hour ago
If AI companies don't break even and continue to remain in 2 digit billions and more growing debt, all these are nice cookies that can be taken away at any time with a 5-10x increase in price.
athrowaway3z2 hours ago
I have been an emacs user for almost a decade now.
My laptop taskbar is: terminal, filebrowser, emacs, firefox.
With emacsd running to make startup instance.
This week I removed emacsd service and Emacs from my taskbar because I had more miss-clicks - accidentally opening it - than I had need for it in the past few months.
layer825 minutes ago
What’s interesting is that as an Emacs user and caring about instant startup, you use clicks to open things instead of keyboard shortcuts.
baokaola2 hours ago
I find Emacs better than ever in the age of AI. Install agent-shell to run Claude Code inside Emacs and give it a skill to run Emacs Lisp using emacsclient. Voila - now you have all the integration you could ever need if you are a little resourceful.
Claude Code can now introspect the entire editor and it can manipulate everything. You can have it build whatever features are missing - it will even debug those features for you, live in the editor.
I recently came back to Emacs from VSCode and ended up just letting Claude build me the features I was missing, mainly related to tabs and project management.
I think Emacs has unique advantages in the age of LLMs, you can just mold it like clay.
globular-toast1 hour ago
Emacs is a true bicycle for the mind. It sets you free in many ways, always wanting to be the tool that simply allows you to do your job more efficiently and effectively.
LLMs are like living with a depressed person who doesn't see the point in doing anything because it's all just been done before. Who cares if you do a good job? Just recycle some shit that others have done and it'll be passable. This isn't a bicycle for the mind, it's just going to drag you into depression with it.
gitaarik3 days ago
With the idea of the recent HN article that files are the common media of communication between humans and LLM's, it's still useful to have direct file-skills; to be able to read raw files the LLM outputs, or give it input through files, and able to manipulate the files efficiently. You can use an LLM to prompt to search through the files and all that, but for such basic things it's worth learning it yourself, if you do it often.
4b11b44 hours ago
learning and using and customizing emacs has never been better
getting a bibliography and citation workflow up and running in org is incredibly easy. Use a model to read the first page of your PDFs dir and add bibtex entries...
then you just build your static site around that
please don't write with a model. We want your own prose
codemac2 hours ago
emacsclient + codex has been a game changer.
I probably add or change a feature in emacs once a day, or every other day. I've been using emacs for some insane amount of time, maybe 20 years? And still I had more customization to go.
Emacs and programs with it's level of programmatic user customization will survive the AI period in my opinion. Anything static will falter.
komali259 minutes ago
> Imagine an AI assistant that can read your org-mode agenda, draft email replies in mu4e, help you write commit messages in Magit, and refactor code in your source buffers – all within the same environment, sharing context. No other editor architecture makes this kind of deep, cross-domain integration as natural as Emacs does.
I've been a devout emacs amateur for 10 years, and recently learned nvim/lazy.vim because I was tired of web dev kinda sucking in emacs. Sure, you can get a setup with lint-on-save, inline TS errors, and all the other bells and whistles you get in vscode working on a react-tsx project, but then when you `helm-projectile-switch-project` to a vue project, suddenly you have to get a whole new config set up. And oops, for whatever reason, tab spacing isn't being pulled from the editor config for this directory...
But like the author says, LLMs fixed that. I pointed Warp at my emacs config, said my problems, and said "fix plz," and it did. No more "oops," just "fix plz" whenever I'm editing rust, or svelte, or golang, or whatever else for the first time in emacs.
I'm very excited for the possibility in the portion I quoted. I moved away from mu4e and org mode because managing it all was getting tedious: too much time procrastinating by tweaking org configs. Too many emails not rendered properly in mu4e or fat fingered by me and lost. But in world+llm, that's not really a problem anymore. I haven't migrated back to org mode yet but I did an experiment recently asking claude to set up org similar to my trilium set up, and it did a passable enough job that I was convinced it's possible.
So, now I'm back in emacs, trying out the various LLM tools, doing poorly at getting anything other than copilot to work well, and waiting with patience and desperation for someone to make an LLM completion experience in emacs that has a multiline completion experience at least 50% as good as Cursor's.
imiric2 hours ago
> Part of the case for Emacs and Vim has always been that they make you faster at writing and editing code.
That was a side-effect of using software that is deeply customizable, but not the main goal. It comes from being comfortable with your tools to the point of relying on muscle memory to use them. The main benefit to me has always been comfort. My favorite commands are a keystroke away, I know how the tool will react and what it's doing at any moment, I know all of its quirks, etc.
None of that changes in the age of "AI". This new technology won't replace computing for me. My hurdle to adopting "agentic" workflows has nothing to do with my choice of tools, and everything with not trusting the companies and ecosystems around this new tech, especially during this insane hype cycle. I've been slowly adopting parts of the stack I'm comfortable with, because, again, my comfort trumps anything else.
Besides, if anything, a deeply customizable platform like Emacs is ideal for building any type of workflow. There are already great packages for LLM integration, and I don't think Emacs users are missing out on anything. The fact "AI" companies decide to build their moats with custom tooling is not a problem I care about. Apple has been pushing their idea of what computing should look like for decades, and it has never appealed to me. I don't miss something I don't want.
Anyway, confusing article. The author acknowledges all of these points, but also the alternative scenarios. Both cannot be true for the same person. There will always be people who enjoy using Emacs and Vim because of their customizability, not necessarily their features. And there will always be people who just want to use a supported and official product, without any tinkering. Emacs and Vim will outlast this hype cycle just fine.
Thanks for all your work, batsov! I do hope you stick around these communities. :)
shevy-java1 hour ago
> The learning curve argument gets harder to justify too. “Spend six months learning Emacs and you’ll be 10x faster” is a tough sell when a junior developer with Cursor can scaffold an entire application in an afternoon.
IF this is the case. But is it?
I have some doubts because to me it seems as if domain knowledge is shifted onto an AI. Then you become dependent on the AI. Is AI really better than a skilled human though? After all, if AI is doing the work and the human providing the input to it as guide, it should be possible to cut away the human completely. So Skynet 3.0 does not need humans. But when it does, then something doesn't work in that explanation - AI must thus not be "smart enough".
I put off adopting popular agents for most of 2025 primarily because there was no agent-agnostic path to first-class Emacs integration. That changed with ACP (https://agentclientprotocol.com), thus I started working on agent-shell.
I'm happy with how the integration is shaping up, enabling me to have my cake and eat it too (Emacs + AI agents).
I wrote an agent-shell post recently with the latest changes https://xenodium.com/agent-shell-0-47-1-updates
¿Por qué no los dos?
I'm not sure AI Agents can already beat the average VIM user.
I use VIM and I get some inspiration from LLMs sometimes, but me and other developers always after some time give up and just quickly do it manually.
AI Agents will just full the code with maaaassive swaths of texts it will just make a project unusable.
We even get paid to turn client's AI LLM Claude sketches into real programs.
This is not my experience at all, the AI agents are many many many times faster than what I can do. What anyone can do. It's crazy how quick I can create stuff these days.
AI can generate code much much faster.
But do you never need a specific change (e.g. bugfix), that even describing in English is slower than just doing it? Especially in vim where editor movements are fast.
I'd argue you should be working towards no longer having to do these because agentic systems in place will do it in your stead.
All you need to do now, is sign off the code and adjust the agent so it would do these as you would.
It really depends on what kind and of job you do.
If it's not something very common LLMs could end up generating random code.
Also if you work on something performance critical, you can get inspiration from LLMs, but they often don't write fast code.
not my experience, they write fast code, and if you ask them to optimize, can pull all kinds of tricks out of the bag. Even with some of the niche stuff I work on, they seem really good.
You're forgetting to count the time you spend deleting the excess stuff
no... I'm not.
I'm not convinced that terminal orientedness of AI tooling itself will last. My hypothesis is that it was chosen by developers of the current generation building for developers of the current generation. I hypothesize that there is a future where command lines and terminals don't matter, and hence I feel the focus will shift to, as the author points out, to planning, reviewing and ideation tools none of which demands a command line. In fact I expect an entirely new class of tool to emerge that does these things well that is neither an IDE nor terminal based. I think Claude Code's core will live but it's interface will morph in the coming years to adapt to the builders of the next generation. The analogy I use is my kids and manual transmission cars -- they grow up with EVs and single gear drives with linear torque curves, and will have no nostalgia for a manual transmission, engine noises, or supercharger whines. If you never used a terminal, will you pine for it?
I'm not about to put any money down - I lack that degree of confidence in my prognosticating - but I doubt the terminal will ever really vanish, for much the same reason that 20 years of touch screens hasn't really put in a dent in a keyboard and mouse for serious work, and game controllers have barely changed despite multiple attempts at VR and other interfaces, and why the stylus is still going strong after more than 5000 years. Sometimes you just get it right.
A text interface is just really damn good at efficient and precise information delivery and interaction, in a way that takes a lot more work for a GUI to match, and they are composable in a way GUIs simply are not. Most users won't - and currently don't - care about terminals, but I doubt it will ever stop being a standard tool for power users.
I don't doubt we'll see new paradigms emerge, but I think they'll come in the form of higher level abstractions for certain classes of task rather than a replacement for the sort of TUIs and GUIs we have today.
Yeah, I can’t imagine why anyone would think that moving away from the most explicit source of truth possible would make AI work any better. the things good UIs excel at is data representation, not processing. Representing a tree or a graph in text sucks. But AI can sure read a text representation of a tree or a graph and reason about it much faster than through a UI
This stuff stands on the foundations it's built off of. It's very hard to argue against the stoic determinism of an `ls` call.
And all the success stories I've seen in people using these tools have had a similar theme: top level might be LLM-y but you rush to get to deterministic straightforward building blocks so that you can have reliability.
That, to me, looks like writing up a bunch of small programs to help establish vocabularies and workflows to avoid just churning and getting lost in the weeds.
I'd be interested in seeing some future form of process orientation, but in the meantime.... shells in general have proven they are decently good at tying stuff together quite well.
`ls dir | grep thingy | process` gonna involve less possibility of annoying drift and churn than "run process on all the files with thingy in their name in directory"
Coining this phrase now: "It's the tokens stupid"
Hooking up to and generating calls across filesystem APIs cost multiple orders of magnitude more than calling `ls`. These tooling ideas are interesting, though. Maybe Kenneth_E._Iverson was right all along?
Talking to another senior dev over drinks tonight, we both worried not about our work but about who might come up never having written a single line of code. Never even opened a terminal. Is looking at the code something you learn in semester 5?
I think computer science education is going to stomp onward, poorly. And we will get that generation. And things like "terminal tooling is going out of style" won't even be said any more. Hacker groups will turn from discussions about new ideas to talking about doing leetcode without AI.
Our art died because we used our art to kill it. We are the last human masters.
That's a funny thing to think about.
A terminal still offers a more composable interface than a GUI. Analog feedback is still a concern for high level pilots. You are confusing power tools with entry-level instruments.
My current assumption is that the interfaces and workflows that stakeholders and product owners use today to manage software engineering resources are the future interfaces and workflows towards agentic engineering systems.
[dead]
What a complete abysmal take. Terminals are never going to go away, they are the literal foundation of interaction you dumb fucking moron.
please see the HN FAQ, this is NOT acceptable for this site.
What exactly are you gonna do? "Oh look at me, I am gonna complain to thought police". Shut up.
I often get the impulse to call people stupid fucking morons on this site, because despite how intelligent people supposedly are, they really are complete fucking morons. It will, however, get you flagged and banned.
Woah dude you don't need to be so calm and polite.
I have been a die hard emacs user for 20 years, and I have a very nice emacs setup (if a little bit idiosyncratic, but all emacs configs are idiosyncratic). However, recently I realized that I read code, but almost never write it. What is more, I spend a lot of time doing it in tmux, over mosh, from my phone. Emacs ergonomy is just not great if all you have is a horrible phone keyboard (and no swiping, because tmux redraws the screen if you swipe). And then I discovered helix. It has all the things I was jealous about vim, BUT it has sane defaults ootb. And truth be told, another thing I use a lot is bat, which is cat with syntax highlighting and an automatic pager.
>> recently I realized that I read code, but almost never write it.
I think most engineers are reading code than writing it. I find it very hard to not use Emacs when reading large codebases. Interestingly, its mostly because of file navigation. I love using ido/ivy for file navigation, quickly filtering through buffers, magit.
Emacs in terminal is not an ideal experience though. So I can imagine it being multi-fold worse with phone keyboard.
Emacs has multicursor, lsp and treesitter so from just reading the helix landing page idk what you gain? Bat sounds interesting, thanks.
> However, recently I realized that I read code, but almost never write it.
This has been the norm for a few decades. Even software engineering courses emphasize the fact that code is read far more often than it is changed, which leads to all the basic software engineering principles around the importance of making code easier to read and to navigate through.
I suspect terminals will stick around longer than people expect. Not because they’re ideal, but because they compose well with everything else.
I think a terminal is still the perfect UI for coding agents on desktop systems. But now that I have running agents in background that only sometimes require some extra input on the go - I hate the terminal use on the go: terminus or other mobile app + virtual keyboard is horrible to use. For that I envision a better interface.
I'm a muggle when it comes to vim, but I've considered learning it again recently because of AI. I'm building more than I have in years because I love being able to try things out without investing 3 months to get something working before I can really test the idea. And so I am typing A LOT. Less code, but lots of markdown, prompts and config. My hands are hurting, I really wish I had a power tool for typing. Writing is always going to allow us to be more precise than speech, and is a tool for creative thought in its self. I can see how we might be bearish on our expectations around new adoptees, but I think there's pressure to get more out of our editors too. Two of my recent projects have been vscode extensions, because I'm needing more help from my editor, not less: https://www.appsoftware.com/blog/fixing-agent-llm-context-de..., https://www.appsoftware.com/blog/as-notes-turn-vs-code-into-...
Start using speech to text more. You likely have the hardware needed to run a Whisper model locally.
I will give a go. But my rambling mumblings to Gemini on my phone sor far confirm that I write with more clarity than I speak
I lived in XEmacs between 1995 and 2005, because in many UNIX variants having an IDE was a foreign word, not even something that could provide the affordances of a Turbo Pascal with Turbo Vision based IDE for MS-DOS.
Between Emacs, the improved XEmacs, and vi, the answer was obvious at the time, I joined the Emacs faction with XEmacs.
Mastered elisp good enough, had my configuration scripts, go to know enough vi to handle telneting (or sshing) into random UNIX servers without anything else installed.
Both are still kind of stuck in time, going back to them in random UNIX distribution feels like I am back in that UNIX decade.
How much of this article was AI written? I can sense the AI smell all over the place, also I found it way too long with little substance, but maybe that’s just me.
At this point a lot of the articles on this site are just a 'prompt' for us to have a discussion about.
Bozhidar always writes like this. I can see why you would think it's AI style but I would vote that it isn't. Look at some of his pre-AI blogs, if you care to.
I didn't get that feeling. But it is long, which is a bit of an AI smell. That said, I think use of AI in writing might not always be a negative. On a couple of documentation pieces I have used AI to provide better structure to writing that I've started and check for technical correctness parts of a document where I need to check my terminology. As long as the original idea is human and AI helps to make the signal clearer, I'm ok with it.
Agreed.
We should also consider whether the rise of AI for any type of implementation task will reduce the number of new Emacs and Vim users, thereby limiting and ultimately killing the communities' growth.
I came to Vim, and then Emacs, because I wanted a tool for coding that I could configure exactly how I liked. If AI does my coding for me, my need for a custom editor will decrease. More generally speaking, if AI can do any type of implementation task -- coding, task management, email, etc -- my need for software customized for those things will decrease.
If people don't need custom software, many fewer people may seek out and find Emacs and Vim.
Who will maintain them and evangelize once today's generation cannot?
If implementation of anything is easy, far fewer people would be needed to keep the projects alive.
AI is okay at doing simple things, but it needs to be overseen. Even before any viable AI, I used to read code more than to write. And Emacs is a good tool for that.
Then, Emacs specifically has a killer app, Org mode. For me, it's about as important as good programming modes, if not more
More importantly, Emacs is a platform (as is Neovim, and VS Code). It adjusts to the needs of the user and the moment.
vim (neovim these days) for me is my text editor I use to look at code when dealing with AI, more often than not I'm working on a bug list as I test things. I haven't opened my IDE (Jetbrains tools) for nearly 2 weeks now. Only thing I often want is to be able to run sql queries, I used datagrip for that... Now I'm writing my own tui sql tool that is lightning quick and has most of the features I like from data grip, plus a bunch of new things that make my life easier. I've made it work as a MCP server also so that I can get my agent to directly inject queries and I can browse the result sets easily. I feel like the terminal, because its text based and super great at manipulating text is such a perfect match for these AI agents. But, yes, the need for code editing itself is really limited.
In my view, Emacs is getting more powerful in the AI era. The cost of writing Elisp has dropped significantly — I've ended up with 15+ personal Elisp packages as a result. The freedom Emacs offers is still unmatched. For example, I heavily rely on sending automatic response (https://github.com/ywatanabe1989/emacs-claude-code), monitoring repository, and targeted context building from dired.
Fully agree, but it is also the buffer based navigation approach that is just fantastic. I wish other programs would adopt this. Most applications use dedicated areas for various functions, instead of letting me just hit a key to bring the function to where I am currently looking.
Agreed on the config. I just launch a Claude code in my vimrc directory now if I want to change anything about my setup or have any questions about how to do something.
Also, I love running a tmux pane for vim, and then like 4 or 5 more -- a few Claude code instances, one for the dev environment, one for interacting with jj/git or other random commands. So easy to switch between tasks. My main annoyance with my setup is that my Bluetooth trackball times out after a period of inactivity, and when I eventually need to use the pointer again there's a lag while it reconnects...
Yeah, I use Slime in vim to drive programs (like psql) via their stdin/stdout, so an "agent" that does stdin/stdout only for UI is perfect.
If I ever write my own agent, it will be in this fashion.
-----------------
[1] I have a `scratchpad.sql` file filled with whatever sql snippets I am testing and have `psql mydbname` in a vertical split. Doing C-c C-c in the scratchpad sends the paragraph to the psql instance.
In my mind I had the opposite picture than the one the article portrays.
Emacs was lagging behind common IDEs, like IntelliJ and VsCode, cause big companies put thousands of developers to combine many features into one integrated package and everything works together providing a very smooth experience compared to Emacs (and Vim probably).
Now IDEs are useless. I personally haven't felt the need to goto_definition or autocomplete variable names for almost 2 years.
Now programming becomes closer to plain text writing and editing and it levels the playing fields for all editors.
Also Emacs can run Rust plugins, the user is not limited to Elisp. Not very convenient but possible.
> Now IDEs are useless. I personally haven't felt the need to goto_definition or autocomplete variable names for almost 2 years.
So you are vibe coding? Some of us still check every line of code generated and an IDE definitely helps with that. Even more so when you need to take control.
May be splitting hairs, but I don't think it's the terminal-native part that's relevant, so much as that both LLMs and emacs/vim are text oriented in ways which e.g. VSCode isn't. (Or perhaps just the text-oriented nature is a result from initial constraint from being terminal-native).
As the author points out, that Emacs is a highly extensible 'operating system' which makes it relatively easy to bring different tasks together. -- This ought to be a natural parallel to what the agentic tools are trying to do (use MCPs and skills etc. to bring different functionality to the LLM execution environment).
That LLMs can help users extend emacs ought to lower the difficulty curve.
Still. It's silly to wish that Emacs could be the LLM's best friend, rather than demonstrating how it is.
RE: "what if in the future all coding skills are irrelevant". My experience has been that good results from LLMs come from putting good thought into its usage. They're quite far from a magic "push the button and get the result you want" where the skill doesn't matter.
Not totally related to your point BUT I’d like to tack on that lisps and generally repl-friendly languages are in an interesting spot in the LLM-enabled world.
The calva-backseat-driver vscode extension runs an MCP that lets LLMs manipulate and eval clojure expressions in a REPL. It provides a tighter feedback loop and lets LLMs do much more complicated stuff with much more confidence. They can test functions as they go, read docs, check query outputs, write and eval tests. It’s actually crazy what Claude opus can do with REPL access.
It might be insanity to let an LLM modify your emacs on the fly, but I’m sure people will have some crazy and interesting ideas in that vein!
This is super exciting. Emacs already treats UI as just more Elisp to eval. The AI could sculpt the entire editor to whatever you need in the moment. No plugin to install, no config to maintain. Just describe what you need and the editor becomes it.
Hmm.. asistant i can't escape this screen what is it?
A.i: this is vi text editor.
Human: exit from it and open word processor.
A.i: rm -rf /
Human: good job exiting. Now where's my word processor? ....
Hello? Where's my word processor? Brint it on screen.
Can you hear me ?
If AI companies don't break even and continue to remain in 2 digit billions and more growing debt, all these are nice cookies that can be taken away at any time with a 5-10x increase in price.
I have been an emacs user for almost a decade now.
My laptop taskbar is: terminal, filebrowser, emacs, firefox.
With emacsd running to make startup instance.
This week I removed emacsd service and Emacs from my taskbar because I had more miss-clicks - accidentally opening it - than I had need for it in the past few months.
What’s interesting is that as an Emacs user and caring about instant startup, you use clicks to open things instead of keyboard shortcuts.
I find Emacs better than ever in the age of AI. Install agent-shell to run Claude Code inside Emacs and give it a skill to run Emacs Lisp using emacsclient. Voila - now you have all the integration you could ever need if you are a little resourceful.
Claude Code can now introspect the entire editor and it can manipulate everything. You can have it build whatever features are missing - it will even debug those features for you, live in the editor.
I recently came back to Emacs from VSCode and ended up just letting Claude build me the features I was missing, mainly related to tabs and project management.
I think Emacs has unique advantages in the age of LLMs, you can just mold it like clay.
Emacs is a true bicycle for the mind. It sets you free in many ways, always wanting to be the tool that simply allows you to do your job more efficiently and effectively.
LLMs are like living with a depressed person who doesn't see the point in doing anything because it's all just been done before. Who cares if you do a good job? Just recycle some shit that others have done and it'll be passable. This isn't a bicycle for the mind, it's just going to drag you into depression with it.
With the idea of the recent HN article that files are the common media of communication between humans and LLM's, it's still useful to have direct file-skills; to be able to read raw files the LLM outputs, or give it input through files, and able to manipulate the files efficiently. You can use an LLM to prompt to search through the files and all that, but for such basic things it's worth learning it yourself, if you do it often.
learning and using and customizing emacs has never been better
getting a bibliography and citation workflow up and running in org is incredibly easy. Use a model to read the first page of your PDFs dir and add bibtex entries...
then you just build your static site around that
please don't write with a model. We want your own prose
emacsclient + codex has been a game changer.
I probably add or change a feature in emacs once a day, or every other day. I've been using emacs for some insane amount of time, maybe 20 years? And still I had more customization to go.
Emacs and programs with it's level of programmatic user customization will survive the AI period in my opinion. Anything static will falter.
> Imagine an AI assistant that can read your org-mode agenda, draft email replies in mu4e, help you write commit messages in Magit, and refactor code in your source buffers – all within the same environment, sharing context. No other editor architecture makes this kind of deep, cross-domain integration as natural as Emacs does.
I've been a devout emacs amateur for 10 years, and recently learned nvim/lazy.vim because I was tired of web dev kinda sucking in emacs. Sure, you can get a setup with lint-on-save, inline TS errors, and all the other bells and whistles you get in vscode working on a react-tsx project, but then when you `helm-projectile-switch-project` to a vue project, suddenly you have to get a whole new config set up. And oops, for whatever reason, tab spacing isn't being pulled from the editor config for this directory...
But like the author says, LLMs fixed that. I pointed Warp at my emacs config, said my problems, and said "fix plz," and it did. No more "oops," just "fix plz" whenever I'm editing rust, or svelte, or golang, or whatever else for the first time in emacs.
I'm very excited for the possibility in the portion I quoted. I moved away from mu4e and org mode because managing it all was getting tedious: too much time procrastinating by tweaking org configs. Too many emails not rendered properly in mu4e or fat fingered by me and lost. But in world+llm, that's not really a problem anymore. I haven't migrated back to org mode yet but I did an experiment recently asking claude to set up org similar to my trilium set up, and it did a passable enough job that I was convinced it's possible.
So, now I'm back in emacs, trying out the various LLM tools, doing poorly at getting anything other than copilot to work well, and waiting with patience and desperation for someone to make an LLM completion experience in emacs that has a multiline completion experience at least 50% as good as Cursor's.
> Part of the case for Emacs and Vim has always been that they make you faster at writing and editing code.
That was a side-effect of using software that is deeply customizable, but not the main goal. It comes from being comfortable with your tools to the point of relying on muscle memory to use them. The main benefit to me has always been comfort. My favorite commands are a keystroke away, I know how the tool will react and what it's doing at any moment, I know all of its quirks, etc.
None of that changes in the age of "AI". This new technology won't replace computing for me. My hurdle to adopting "agentic" workflows has nothing to do with my choice of tools, and everything with not trusting the companies and ecosystems around this new tech, especially during this insane hype cycle. I've been slowly adopting parts of the stack I'm comfortable with, because, again, my comfort trumps anything else.
Besides, if anything, a deeply customizable platform like Emacs is ideal for building any type of workflow. There are already great packages for LLM integration, and I don't think Emacs users are missing out on anything. The fact "AI" companies decide to build their moats with custom tooling is not a problem I care about. Apple has been pushing their idea of what computing should look like for decades, and it has never appealed to me. I don't miss something I don't want.
Anyway, confusing article. The author acknowledges all of these points, but also the alternative scenarios. Both cannot be true for the same person. There will always be people who enjoy using Emacs and Vim because of their customizability, not necessarily their features. And there will always be people who just want to use a supported and official product, without any tinkering. Emacs and Vim will outlast this hype cycle just fine.
Thanks for all your work, batsov! I do hope you stick around these communities. :)
> The learning curve argument gets harder to justify too. “Spend six months learning Emacs and you’ll be 10x faster” is a tough sell when a junior developer with Cursor can scaffold an entire application in an afternoon.
IF this is the case. But is it?
I have some doubts because to me it seems as if domain knowledge is shifted onto an AI. Then you become dependent on the AI. Is AI really better than a skilled human though? After all, if AI is doing the work and the human providing the input to it as guide, it should be possible to cut away the human completely. So Skynet 3.0 does not need humans. But when it does, then something doesn't work in that explanation - AI must thus not be "smart enough".
[dead]
[dead]