On the UI of Coding Assistants And Agents
It was interesting hearing Ben Thompson compare Cursor and Claude Code in his weekly article and how it contrasts with how these two companies’ approach to AI:
This, by extension, explains why Anthropic is different; the other leading independent foundational lab is clearly focused on agents, not chatbots, i.e. AI that does stuff for you, instead of a tool. Consider the contrast between Cursor and Claude Code: Cursor is an integrated development environment (IDE) that provides the best possible UI for AI-augmented programming; Claude Code, on the other hand, barely bothers with a UI at all. It runs in the terminal, which people put up with because it is the best at one-shotting outputs
I’m not sure I agree that Anthropic’s drive to be an agent company explains why they decided to use the bare minimum of UI for Claude Code. Or at least, I’m not sure the UI makes much of a difference as to whether people approaching it would consider it an agent. They may just be those that prefer using the terminal; or they already use and like an IDE for coding, and are not interested in changing. At that point, does it make a different whether the company is hoping to build an agent or merely an assistant?
I played around with Claude Code a few days ago. Had it help me build an Obsidian plugin which rendered a code-block of CSV table as a HTML table. The agent was very useful for getting the basic plugin off the ground, and about half the time I was cutting my own code while turning to the agent when I got stuck with Obsidian’s plugin API. And I gotta say, I found the experience quite good. This wasn’t an example of vibe coding: the agent wasn’t doing all the work for me. Rather, it was more like playing duet, where the agent would take on some of the work I couldn’t do myself, leaving me to make the changes I was quite comfortable in doing already.
This is in contrast with my brief experience with using Cursor to write a Go app. It had features offering the back-and-forth with a model that came with using Claude Code, but since it was integrated with an editor, it also offered things like smart auto-complete. And I found it to be quite an annoying experience, with the smart auto-complete disrupting me whenever I wanted to write something by hand. By Ben’s definition above I was using AI-empowered tools rather than agent which, by taking a Steve Jobs bicycle-of-the-mind definition of such things, are meant to empower me. Yet it was more likely more to get in my way.
So, given that I found working with Claude Code a more pleasant experience, am I someone who prefers to work with AI agents more than mere AI tools? I didn’t think I would be. I mean, I have no real desire for agents to do my personal projects for me: half the fun of such projects is being able to work on them. But I guess there’s nothing stopping me from using an agent to, say, get enough of the scaffolding in place for me to get started with my own skills: to play duet, as it were. Then for areas where I can play solo, the agent can be set aside and I can do what I need to do unencumbered.
I guess this is just a long-winded way to say that minimalist approach taken by Anthropic for Claude Code works for me. And Anthropic can build what they think. I have no use for an agent yet, but an assistant could be helpful.