Published 2026-07-14
tag(s): #overblown-minor-annoyances #failures #programming
I still dislike LLMs and I think they are a disgrace.
That said, I've been using the thing more at work - a combination of curiosity and trying to
get more of the "I told you so" moments.
I also have the feeling that if I don't use them, I am going to be out of a job soon. That's
100% just how I feel, no one suggested or implied this, to be fair. The AI craze at my
employer takes more the form of enthusiasm, not obligation. I just have a hard time feeling
enthusiastic. 🤷
And honestly, sometimes the results are great, which I kinda hate. But it can be useful, what
can I say.
Others times the results are completely off. And I feel validated!
The worst part when the results are off, is that if I don't realize (because I am not that
familiar with that portion of our systems, or because they are off in subtle enough ways) then
I end up spending more time in a wild goose chase.
But the tokens are spent, and eventually the job is turned in, so yay?
Everyone happy? Except for {insert here all the problems with LLMs regarding natural
resources usage, intellectual property, etc. etc. etc. etc.}
I've come a long way from what I described
in this
post at work.
A while after posting that, I changed my setup to use the
excellent gptel and gptel-agent packages. I was meaning to
write a post about it. I highly recommend it, even though now I use a completely different
approach.
I figured I would get a personal Copilot subscription, to run experiments at home that I
wouldn't feel comfortable running on the company's dime. Things like asking the thing to
review my Emacs dotfiles, or see how it handles Common Lisp.
Turns out, at least until then (a couple months back) you couldn't have more than one Copilot
subscription tied to a GitHub username. Since sebasmonia was associated to the
enterprise subscription of my employer, I ended up asking a few friends and reading online
what were the alternatives, and landed on Claude.
That's the story of how I switched to using LLM CLI tools. First Claude Code for my at home stuff, a few days later to Copilot CLI at work, in both cases via the awesome agent-shell Emacs package.
Even if I was running these CLI inside Emacs[1], the way they modify files
meant that I was constantly either reverting buffers that I had open, or fishing for the files
that the tool modified in its run.
No matter how much people say that they don't write code anymore, I keep finding that I want
to review what it outputs. Little stylistic tweaks, simplifying a block, adding a comment
about why we make a change.
And the truth is, I don't regularly write that much code! I am working in a pretty
big codebase, with a mixture of styles and things that evolved over the years in multiple
directions, some of them unplanned. More or less the average for any company that's been
around for over 20 years. :)
I mostly add little things here and there, if anything, being minimal about the changes is
better. It is very important to know where to add or remove something, and
understanding its consequences.
When running Copilot CLI in Windows, it wouldn't run any external tools because the version of
Powershell in my laptop was too old. For reasons to this day unknown, the Powershell installer
for a newer version failed. This was really annoying.
I also I couldn't get Copilot CLI to use the
GNU native executables I have
installed in my work laptop, but this blocker gave me an idea...
So, Copilot won't use ls or grep on Windows, but what if it used dired or
project-find-regexp in Emacs? Then it won't matter which OS I am using.
So I asked it how to achieve this, it suggested an MCP server, and thus mincp
was born. A "minimal MCP", that exposed buffer finding and editing tools.
Eventually we got the option to use Claude at work too, and honestly Claude Code is way more
mature than Copilot CLI (or so it was then), so I swiched to Claude everywhere.
As time went by, this minimal MCP kept growing in features as I got Claude Code to run more
tasks using Emacs-specific tools, avoiding the annoyances I experienced with reverted buffers
and not having the same context the agent is using.
In part 2 I will go over a more details of my current setup, including a few things that didn't quite work in early versions.
I have the impressions that I built something that adjusts to my preferences, if only to make these tools "fun" to use. Even if my setup is very personal, there's value in documenting the journey.