<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed.css?v=208f42b55cff" type="text/css"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:site="https://lalitm.com/feed/ns#"><channel><title>Lalit Maganti (Tag: Llm)</title><link>https://lalitm.com/tags/llm/</link><description>Recent content tagged Llm on Lalit Maganti</description><site:notice>This is a feed.
Feeds let you subscribe to updates from this site using a feed reader. Copy this page's URL from your address bar and paste it into your reader.
New to feeds? Read: https://aboutfeeds.com</site:notice><docs>https://aboutfeeds.com</docs><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 29 Jan 2026 00:34:22 +0000</lastBuildDate><atom:link href="https://lalitm.com/tags/llm/index.xml" rel="self" type="application/rss+xml"/><item><title>The surprising attention on sprites, exe.dev, and shellbox</title><link>https://lalitm.com/trying-sprites-exedev-shellbox/</link><pubDate>Thu, 29 Jan 2026 00:34:22 +0000</pubDate><guid>https://lalitm.com/trying-sprites-exedev-shellbox/</guid><description>Over the last few weeks, three new products have announced themselves on Hacker News to great success, each making the frontpage:
Sprites (fly.io) with 508 votes and hit #7 exe.dev with 457 votes and hit #2 shellbox.dev with 316 votes and hit #4 All three have a very simple pitch: they will give you full access to Linux virtual machines to act as a sandboxed developer environment in the cloud.
At first glance, the attention these have gotten is very head-scratching. The idea of a Linux VPS has been around for more than 20 years at this point and VPS providers like DigitalOcean and Hetzner are widely known and used in the industry. From a technological standpoint, there’s very little revolutionary here.
Is it price then? Well no: the hardware specs are pretty awful for what you pay. For example, exe.dev gives you 2 CPUs and 8GB RAM shared across your whole account for $20/month. For comparison, at Hetzner for roughly that price, you can get a single VPS with 16 CPUs and 32GB RAM…</description><content:encoded>&lt;p&gt;Over the last few weeks, three new products have announced themselves on Hacker
News to great success, each making the frontpage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sprites.dev"&gt;Sprites&lt;/a&gt; (fly.io) with
&lt;a href="https://news.ycombinator.com/item?id=46557825"&gt;508 votes&lt;/a&gt; and hit
&lt;a href="https://hnrankings.info/46557825/"&gt;#7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://exe.dev"&gt;exe.dev&lt;/a&gt; with
&lt;a href="https://news.ycombinator.com/item?id=46397609"&gt;457 votes&lt;/a&gt; and hit
&lt;a href="https://hnrankings.info/46397609/"&gt;#2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://shellbox.dev"&gt;shellbox.dev&lt;/a&gt; with
&lt;a href="https://news.ycombinator.com/item?id=46638629"&gt;316 votes&lt;/a&gt; and hit
&lt;a href="https://hnrankings.info/46638629/"&gt;#4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All three have a very simple pitch: they will give you full access to Linux
virtual machines to act as a sandboxed developer environment in the cloud.&lt;/p&gt;
&lt;p&gt;At first glance, the attention these have gotten is very head-scratching. The
idea of a Linux VPS has been around for more than 20 years at this point and VPS
providers like DigitalOcean and Hetzner are widely known and used in the
industry. From a technological standpoint, there&amp;rsquo;s very little revolutionary
here.&lt;/p&gt;
&lt;p&gt;Is it price then? Well no: the hardware specs are pretty awful for what you pay.
For example, exe.dev gives you 2 CPUs and 8GB RAM &lt;strong&gt;shared across your whole
account&lt;/strong&gt; for $20/month. For comparison, at Hetzner for roughly that price, you
can get a single VPS with 16 CPUs and 32GB RAM&amp;hellip;&lt;/p&gt;
&lt;p&gt;And moving a local dev environment to the cloud has real downsides: added
latency, needing a network connection, making graphical access painful. If all
you wanted was the ability to partition hardware resources, we&amp;rsquo;ve had VMs and
containers for more than a decade. You can use Docker on any decent Linux
machine and spin up containers to your heart&amp;rsquo;s content. And with
&lt;a href="https://github.com/apple/container"&gt;apple/container&lt;/a&gt;, it&amp;rsquo;s very easy to launch
a semi-sandboxed Linux environment on macOS too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So why is there so much excitement around fancy VPSes?&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="why-the-criticisms-miss-the-point"&gt;Why the criticisms miss the point&lt;a class="heading-anchor" href="#why-the-criticisms-miss-the-point" aria-label="Permalink to Why the criticisms miss the point"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;The real reasons are two-fold: we&amp;rsquo;re in the age of AI &lt;em&gt;and&lt;/em&gt; the user experience
of these products.&lt;/p&gt;
&lt;p&gt;First, sandboxing. If you&amp;rsquo;re using LLM coding agents and you&amp;rsquo;re not looking to
YOLO things, sandboxing matters. Most prominently, Simon Willison has been
&lt;a href="https://simonwillison.net/2025/Nov/2/new-prompt-injection-papers/"&gt;beating&lt;/a&gt;
&lt;a href="https://simonwillison.net/2025/Aug/9/bay-area-ai/"&gt;the&lt;/a&gt;
&lt;a href="https://simonwillison.net/2025/Sep/23/why-ai-systems-might-never-be-secure/"&gt;drum&lt;/a&gt;
on the security risks of agents, with sandboxing being a good way to cut off the
&amp;ldquo;Access to Private Data&amp;rdquo; part of the
&lt;a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/"&gt;Lethal Trifecta&lt;/a&gt;.
Segregating to a fresh VM, while by no means perfect, significantly limits the
blast radius compared to using your personal dev machine if something goes
wrong.&lt;/p&gt;
&lt;p&gt;Second, there&amp;rsquo;s been an explosion in prototyping projects due to tools like
Claude Code and Codex. They make it so easy to spin things up that developers
want more &amp;ldquo;fresh starts&amp;rdquo; instead of piling features onto existing projects. And
if an experiment doesn&amp;rsquo;t work out, you just delete the machine and start over
without figuring out how to clean up.&lt;/p&gt;
&lt;p&gt;But why these new services over a traditional VPS? Speed. All three are
optimized to get you from zero to &amp;ldquo;machine running Claude Code&amp;rdquo; in 1-2 minutes,
versus 20-30 with traditional providers. They also handle the annoying bits of
sharing web services: reverse proxy, TLS termination, DNS are all available
instantaneously and with zero fuss; it&amp;rsquo;s night and day vs trying to roll your
own.&lt;/p&gt;
&lt;p&gt;In some sense, this is developer environments catching up to what has happened
to production systems over the last decade. We&amp;rsquo;ve had infrastructure-as-code and
&lt;a href="http://cloudscaling.com/blog/cloud-computing/the-history-of-pets-vs-cattle/"&gt;&amp;ldquo;cattle not pets&amp;rdquo;&lt;/a&gt;
thinking in deployment since containers and Kubernetes took the world by storm.
GitHub Codespaces was a step in this direction for dev environments. Put another
way, this new crop of services are an evolution: they let you go beyond just the
&amp;ldquo;development&amp;rdquo; part and to the full end-to-end stack.&lt;/p&gt;
&lt;h2 id="speedrunning-the-services"&gt;Speedrunning the services&lt;a class="heading-anchor" href="#speedrunning-the-services" aria-label="Permalink to Speedrunning the services"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;But enough about the abstract philosophy about why these services are having a
moment: I decided to try out all of these services to see for myself whether
they were actually useful and which one I liked the most.&lt;/p&gt;
&lt;p&gt;My motivating use case for this: I was looking to understand how
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cross-Origin-Opener-Policy"&gt;COOP&lt;/a&gt;
and
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cross-Origin-Embedder-Policy"&gt;COEP&lt;/a&gt;
work in all modern browsers for building a new feature in Perfetto &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. This
was a perfect vibe-coding task: it was fully throw-away code for testing
something that would never directly end up in any prod project. And it was a web
based thing where I &lt;em&gt;needed&lt;/em&gt; https and certs etc. Literally could not design a
better use case for this.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a quick rundown of the services:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Pricing&lt;/th&gt;
&lt;th&gt;Specs&lt;/th&gt;
&lt;th&gt;Interface&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;exe.dev&lt;/td&gt;
&lt;td&gt;$20/mo for up-to 25 VMs&lt;/td&gt;
&lt;td&gt;2 CPU, 8GB RAM, 25GB disk &lt;em&gt;shared across all 25 VMs&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;SSH + web shell + built-in AI agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sprites&lt;/td&gt;
&lt;td&gt;Usage-based ($0.07/CPU-hr, need to pay for RAM + storage also)&lt;/td&gt;
&lt;td&gt;Bursts to 8 CPU, 16GB RAM&lt;/td&gt;
&lt;td&gt;CLI tool for setup + SSH afterwards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;shellbox&lt;/td&gt;
&lt;td&gt;Usage-based ($0.05/hr running, $0.005/hr stopped)&lt;/td&gt;
&lt;td&gt;2 CPU, 4GB RAM, 50GB SSD&lt;/td&gt;
&lt;td&gt;Pure SSH&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Immediately, it&amp;rsquo;s clear that there are three different &amp;ldquo;dimensions&amp;rdquo; these
services are competing on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pricing model&lt;/strong&gt;: flat fee vs usage based&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maximum possible specs&lt;/strong&gt;: laughably poor vs somewhat reasonable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interface&lt;/strong&gt;: ssh vs custom CLI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It&amp;rsquo;s amazing how three tools in such a short space ended up in such different
places! But which one actually worked best for me?&lt;/p&gt;
&lt;h2 id="my-experiences"&gt;My experiences&lt;a class="heading-anchor" href="#my-experiences" aria-label="Permalink to My experiences"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;h3 id="shellbox"&gt;shellbox&lt;a class="heading-anchor" href="#shellbox" aria-label="Permalink to shellbox"&gt;#&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;The UX to interface with shellbox is very cool: everything (billing, creating
VMs, deleting VMs) is &lt;em&gt;all&lt;/em&gt; done via ssh! You ssh into a server and they use
your public key to figure out your account. You then add &amp;ldquo;credits&amp;rdquo; to your
account that you can then use. Having not seen any other service like this
before, I was already very impressed by the &amp;ldquo;cool factor&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://lalitm.com/img/trying-sprites-exedev-shellbox/shellbox.png" alt="shellbox.png"&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, that quickly faded as I found I couldn&amp;rsquo;t even try it without
paying first some amount of money. And the payment UX was rough: no indication
of how long I&amp;rsquo;d have to wait, and for a while their SSH status command kept
telling me I had no credits; they finally showed up 15 minutes later.&lt;/p&gt;
&lt;p&gt;Once in, I found Ubuntu 18.04: not exactly a &amp;ldquo;modern&amp;rdquo; environment (it&amp;rsquo;s actually
been EOL since 2023&amp;hellip;). And &lt;strong&gt;nothing&lt;/strong&gt; was pre-installed; I even had to
install Python myself! Certainly not ideal if the goal is &amp;ldquo;get to a usable dev
environment fast&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;But the real dealbreaker for me is that, in their world, they consider a VM
&amp;ldquo;stopped&amp;rdquo; &lt;em&gt;the moment you disconnect SSH&lt;/em&gt;. To my understanding, this means you
can&amp;rsquo;t run a webserver in the background even for a day or two to test something.
Instead you need to stay connected constantly, which for the sort of thing I was
trying to build, was very non-ideal.&lt;/p&gt;
&lt;h3 id="exedev"&gt;exe.dev&lt;a class="heading-anchor" href="#exedev" aria-label="Permalink to exe.dev"&gt;#&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;Firstly, I want to make clear that the homepage for exe.dev sucks, especially on
mobile: it doesn&amp;rsquo;t tell you anything about what you&amp;rsquo;re getting and just tells
you &amp;ldquo;ssh exe.dev&amp;rdquo;; I wasn&amp;rsquo;t about to SSH into a random server without
understanding why. You only understand what you&amp;rsquo;re getting by clicking &amp;ldquo;About&amp;rdquo;
at the bottom which takes you to their docs (which are actually decent!).&lt;/p&gt;
&lt;p&gt;Once you SSH in, though? The UX is fantastic. It recognized my public key,
looked it up against my GitHub account automatically &lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; and pulled my email
and associated it to my account. On the VM, there was Ubuntu 24.04, Claude
pre-installed, recent Python. They clearly understand their user base and what
they&amp;rsquo;re trying to accomplish.&lt;/p&gt;
&lt;p&gt;And beyond the command line, there&amp;rsquo;s a web shell for when SSH isn&amp;rsquo;t convenient.
And they have a custom, web-based coding agent called
&lt;a href="https://github.com/boldsoftware/shelley"&gt;Shelley&lt;/a&gt; which works surprisingly well
(honestly, in many ways, nicer than Claude Code on web). I especially like their
ability to look at the web service running and take screenshots to understand
the state of the page; very cool!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://lalitm.com/img/trying-sprites-exedev-shellbox/shelly.png" alt="shelly.png"&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s night and day between the homepage and the actual product. The only
annoyance I ran into is that you can only expose a single public port, which I
needed in my particular case (but I can understand this is a somewhat niche
ask). Beyond that, I had a very nice experience.&lt;/p&gt;
&lt;h3 id="sprites"&gt;sprites&lt;a class="heading-anchor" href="#sprites" aria-label="Permalink to sprites"&gt;#&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;Having tried shellbox and exe.dev, the need to generate a token and install
their CLI for sprites made me feel like I&amp;rsquo;d left my magic SSH kingdom and was
back in the real world.&lt;/p&gt;
&lt;p&gt;Once installed, the process to create a VM and ssh in was very smooth. Claude
comes pre-installed, and interestingly, they configure it with
&lt;code&gt;--dangerously-skip-permissions&lt;/code&gt; by default! You&amp;rsquo;re given Ubuntu 25.04, so
relatively bleeding edge. Beyond that, it all felt very standard, you&amp;rsquo;re just
getting a VPS fast and fuss-free but with no other &amp;ldquo;magic&amp;rdquo; like exe.dev had.&lt;/p&gt;
&lt;p&gt;In general though, the vibe I got throughout my experience of interacting with
the tools and their web dashboard was that it felt very corporate&amp;quot; and designed
for companies with teams of developers.&lt;/p&gt;
&lt;p&gt;I think this feeling is best summed up by how their home page looks when logged
in:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://lalitm.com/img/trying-sprites-exedev-shellbox/sprites.png" alt="sprites.png"&gt;&lt;/p&gt;
&lt;p&gt;Not exactly flattering to see myself labelled as an organization!&lt;/p&gt;
&lt;h2 id="overall-assessment"&gt;Overall assessment&lt;a class="heading-anchor" href="#overall-assessment" aria-label="Permalink to Overall assessment"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;exe.dev&lt;/strong&gt; is my pick for solo developers. The flat $20/month cap feels
psychologically nice—you know your max spend. The 2 vCPUs might feel limiting,
but for Claude Code sessions where you&amp;rsquo;re not doing anything CPU-intensive, it&amp;rsquo;s
probably fine. And frankly, the UX is so good it makes up for a lot.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;shellbox&lt;/strong&gt; has the simplest pricing model, but the user experience left me
underwhelmed. The environment is ancient, the payment flow was confusing, and
the SSH-disconnect behavior kills too many use cases. It feels a bit hacked
together.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;sprites&lt;/strong&gt; is the most interesting technically. I love
&lt;a href="https://fly.io/blog/design-and-implementation/"&gt;their design blog post&lt;/a&gt;: the
ability to burst to 8 CPUs and 16GB RAM while only paying for what you use is
very clever and I can imagine it would be great if you were only planning light
usage. But the UX feels corporate, not magical. If I were running a company, I&amp;rsquo;m
reasonably certain sprites would be the way to go. But for solo experimentation,
exe.dev wins.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;a class="heading-anchor" href="#conclusion" aria-label="Permalink to Conclusion"&gt;#&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;You might find these services incredible or baffling depending on your stance on
AI and how much you&amp;rsquo;re willing to pay for convenience.&lt;/p&gt;
&lt;p&gt;These services aren&amp;rsquo;t targeting customers who care about &amp;ldquo;value for money&amp;rdquo; or
raw specs. They&amp;rsquo;re targeting developers who want frictionless access to
machines, without setting up VMs, wrestling with containers, or configuring
certificates to show off prototypes.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been won over by the neat UX and &amp;ldquo;joyous&amp;rdquo; feeling of exe.dev. I&amp;rsquo;ll probably
pay for it in months where I expect to do a lot of prototyping. Having tried the
alternatives (Docker, local VMs, traditional VPSes) it&amp;rsquo;s nice to have something
that just works.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;&lt;a href="https://github.com/google/perfetto/discussions/3227"&gt;https://github.com/google/perfetto/discussions/3227&lt;/a&gt; if you&amp;rsquo;re interested!&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;How, you might ask? Well if you didn&amp;rsquo;t know GitHub by default makes the all
SSH public keys &lt;em&gt;publicly accessible&lt;/em&gt; both via their API but also just by going
to github.com/username.keys. For example, for my account:
&lt;a href="https://github.com/lalitmaganti.keys"&gt;https://github.com/lalitmaganti.keys&lt;/a&gt;.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content:encoded></item><item><title>What Makes a Good Tool for Claude Code</title><link>https://lalitm.com/writing-tools-for-claude-code/</link><pubDate>Sun, 12 Oct 2025 00:00:00 +0000</pubDate><guid>https://lalitm.com/writing-tools-for-claude-code/</guid><description>I’ve been using Claude Code extensively for personal projects, and similar AI coding tools at work. Recently I came across this excellent blog post that resonated with a lot of my experience.
One part stuck with me though: Noah emphasizes that tools fail with LLMs when they’re “overly complex,” with the Unix philosophy being particularly well-suited for tool calling. But then I thought about git.
Git breaks the Unix philosophy completely. It’s sprawling, stateful, and complex. And yet Claude Code handles it effortlessly. It composes commands that, even after 10+ years of daily git usage, I wouldn’t think to use. It handles rebasing, cherry-picking, complex resets—stuff that trips up experienced developers regularly.
So if simplicity and the Unix philosophy aren’t the whole story, what else matters?
I’ve come up with three “hallmarks” of a good tool for tool calling with LLMs.
1. It’s been around for a long time and/or is used by lots of people</description><content:encoded>&lt;p&gt;I&amp;rsquo;ve been using Claude Code extensively for personal projects, and similar AI
coding tools at work. Recently I came across
&lt;a href="https://www.alephic.com/writing/the-magic-of-claude-code"&gt;this excellent blog post&lt;/a&gt;
that resonated with a lot of my experience.&lt;/p&gt;
&lt;p&gt;One part stuck with me though: Noah emphasizes that tools fail with LLMs when
they&amp;rsquo;re &amp;ldquo;overly complex,&amp;rdquo; with the Unix philosophy being particularly
well-suited for tool calling. But then I thought about &lt;code&gt;git&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Git breaks the Unix philosophy completely. It&amp;rsquo;s sprawling, stateful, and
complex. And yet Claude Code handles it effortlessly. It composes commands that,
even after 10+ years of daily git usage, I wouldn&amp;rsquo;t think to use. It handles
rebasing, cherry-picking, complex resets—stuff that trips up experienced
developers regularly.&lt;/p&gt;
&lt;p&gt;So if simplicity and the Unix philosophy aren&amp;rsquo;t the whole story, what else
matters?&lt;/p&gt;
&lt;p&gt;I’ve come up with three “hallmarks” of a good tool for tool calling with LLMs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. It’s been around for a long time and/or is used by lots of people&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Examples: Unix tools like &lt;code&gt;cat&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, &lt;code&gt;awk&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;find&lt;/code&gt;—but also &lt;code&gt;git&lt;/code&gt;,
&lt;code&gt;npm&lt;/code&gt;, &lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;kubectl&lt;/code&gt;. Every Stack Overflow thread, blog post, and tutorial
using these tools has likely ended up in the training data. Claude isn’t
reasoning from first principles—it’s drawing on millions of examples.&lt;/p&gt;
&lt;p&gt;This is why git works despite its complexity: Claude has effectively memorized
decades of collective wisdom.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. It has really good documentation (built-in help or external docs)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Even if a tool isn’t widely used, great documentation can bridge the gap. I’ve
been building a finance system on top of
&lt;a href="https://beancount.github.io/docs/"&gt;Beancount&lt;/a&gt;—a double-entry accounting system
that’s definitely not mainstream (maybe I’ll write a post about this in the
future). Claude Code handles it surprisingly well because Beancount has
exceptional documentation. When I point Claude at the docs, it can figure out
the directive syntax, transaction formats, and account structures without
necessarily having seen millions of examples in its training data.&lt;/p&gt;
&lt;p&gt;Good &lt;code&gt;--help&lt;/code&gt; text matters. Clear external documentation matters. If Claude can
discover how your tool works, it can use it effectively.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Good error messages&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Error messages, especially those with suggestions like “you used X, did you mean
Y?”, can be tremendously helpful for LLMs. The best example is the Rust
compiler: it gives errors like “you typed foobar, did you mean foobaz?” and
Claude Code can actually use that feedback to correct itself.&lt;/p&gt;
&lt;p&gt;This might be one reason why people feel Claude Code is particularly good at
Rust programming—the compiler is essentially coaching it through mistakes in
real time.&lt;/p&gt;
&lt;p&gt;This isn’t to say the Unix philosophy is wrong — it’s that Unix tools work well
with Claude Code for different reasons than we might think. Tools like sed and
awk nail hallmarks 1 and 2: they’ve been around for decades (massive training
data) and have extensive man pages (great documentation). The fact that they
follow “do one thing well” is almost incidental to their success with LLMs.&lt;/p&gt;
&lt;p&gt;So if I’m building a tool today, I can’t make it instantly popular, but I can
make it understandable. That means good documentation, clear error messages, and
a few solid examples of how it’s used. Those aren’t new ideas — they’ve always
mattered. The difference now is that there’s much higher ROI in doing them than
there used to be.&lt;/p&gt;
&lt;p&gt;In other words, we used to write docs for humans. Now, we’re also writing for
AIs that help humans. That shift changes the economics of good documentation in
a big way.&lt;/p&gt;</content:encoded></item><item><title>Harnessing Frustration: Using LLMs to Overcome Activation Energy</title><link>https://lalitm.com/llm-motivation-via-emotions/</link><pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate><guid>https://lalitm.com/llm-motivation-via-emotions/</guid><description>One of my biggest weaknesses as a software engineer is procrastination when facing a new project. When the scope is unclear, I have a tendency to wait until I feel I’ve “felt out” the problem to start doing anything. I know I’ll feel better and work much faster when I get “stuck in” but I still struggle with that first step, overcoming the “activation energy” required to engage with the details.
LLMs have been a game-changer for me in this respect: I can just throw a couple of sentences at them with the shape of the problem. This leads to one of two outcomes:
The LLM comes up with a good solution, usually in a slightly different way than what I was thinking. I realize “oh wow the solution is much simpler than I thought”. Straight away I start thinking about the consequences of implementing and improving what the LLM suggested. The LLM comes up with a solution that I intuitively recognize as “wrong”. My immediate reaction is frustration (“How could it get it so wrong”) which leads me to go back and forth with the model, explaining to it why its solution could not possibly work. But in the process of arguing with the model, my brain is churning away and generating variations or different approaches that could work. After a while, even if the AI is still on the wrong track, the debate will trigger a moment of inspiration where suddenly the solution will come to me. I’ll excitedly start up a new conversation and start working through it with the model. The key is the emotional reaction I have immediately to the LLM’s response, either excitement or frustration. By harnessing this immediate feedback loop, I get my brain out of its passive, procrastination mode. It’s almost like a jolt: either I’m thrilled because it’s simpler than I thought, or I’m spurred to action by the urge to correct a perceived ‘wrong’ answer. This forces me to engage with the problem in a meaningful way.</description><content:encoded>&lt;p&gt;One of my biggest weaknesses as a software engineer is procrastination when
facing a new project. When the scope is unclear, I have a tendency to wait until
I feel I&amp;rsquo;ve &amp;ldquo;felt out&amp;rdquo; the problem to start doing anything. I know I&amp;rsquo;ll feel
better and work much faster when I get &amp;ldquo;stuck in&amp;rdquo; but I still struggle with that
first step, overcoming the &amp;ldquo;activation energy&amp;rdquo; required to engage with the
details.&lt;/p&gt;
&lt;p&gt;LLMs have been a game-changer for me in this respect: I can just throw a couple
of sentences at them with the shape of the problem. This leads to one of two
outcomes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The LLM comes up with a good solution, usually in a slightly different way
than what I was thinking. I realize &amp;ldquo;oh wow the solution is much simpler than
I thought&amp;rdquo;. Straight away I start thinking about the consequences of
implementing and improving what the LLM suggested.&lt;/li&gt;
&lt;li&gt;The LLM comes up with a solution that I intuitively recognize as &amp;ldquo;wrong&amp;rdquo;. My
immediate reaction is frustration (&amp;ldquo;How could it get it so wrong&amp;rdquo;) which
leads me to go back and forth with the model, explaining to it why its
solution could not &lt;em&gt;possibly&lt;/em&gt; work. But in the process of arguing with the
model, my brain is churning away and generating variations or different
approaches that &lt;em&gt;could&lt;/em&gt; work. After a while, even if the AI is still on the
wrong track, the debate will trigger a moment of inspiration where suddenly
the solution will come to me. I&amp;rsquo;ll excitedly start up a new conversation and
start working through it with the model.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The key is the emotional reaction I have immediately to the LLM&amp;rsquo;s response,
either &lt;strong&gt;excitement or frustration&lt;/strong&gt;. By harnessing this immediate feedback
loop, I get my brain out of its passive, procrastination mode. It&amp;rsquo;s almost like
a jolt: either I&amp;rsquo;m thrilled because it&amp;rsquo;s simpler than I thought, or I&amp;rsquo;m spurred
to action by the urge to correct a perceived &amp;lsquo;wrong&amp;rsquo; answer. This forces me to
engage with the problem in a meaningful way.&lt;/p&gt;
&lt;p&gt;For what it&amp;rsquo;s worth, this experience is very similar to talking through a
problem with another engineer: the advantage of LLMs is that it&amp;rsquo;s available 24/7
and I never have to worry about my problem being &amp;ldquo;too insignificant&amp;rdquo; to bother
someone with. The simple act of articulating my thoughts and hearing a response
seems sufficient, regardless of the response&amp;rsquo;s quality.&lt;/p&gt;
&lt;p&gt;So next time you&amp;rsquo;re procrastinating a problem don&amp;rsquo;t wait around for inspiration.
Outsource the first step. Throw the problem at an LLM and see what happens.
Whether excitement or frustration, by channeling that emotion you can solve your
problem faster.&lt;/p&gt;</content:encoded></item></channel></rss>