For about a decade my default for writing code was Visual Studio Code. Then, briefly, Cursor — the same editor with an AI panel bolted on. Both fine. Then I tried Claude Code, which is not an editor at all. It's a terminal agent that lives in your project, reads your files, runs your commands, and edits things on your behalf. After about a month I'd stopped opening VS Code for most of my work.
This post is the practical version of why.
What it actually is
Claude Code is a CLI you launch inside a project directory. You type natural language; it has tools — Read, Write, Edit, Bash, Grep, and a few more — that it uses to inspect and modify your codebase. You see every action it's about to take before it takes it. You can approve, deny, or refine. It also reads a file called CLAUDE.md at the project root, which is where you put the conventions and behaviours you want it to follow.
That's the whole interface. No autocomplete popup. No sidebar of suggestions. No “AI panel.” Just a conversation with something that can actually do things in your project.
The shift
The thing that broke my brain at first: I wasn't writing code anymore. I was describing code. The act of editing migrated from “hands on keyboard, characters appearing” to “hands on keyboard, intent appearing.” The agent does the typing.
That sounds bad if you imagine it as Copilot's autocomplete grown up. But it's the opposite. Autocomplete asks you to write code and offers to finish your sentences. Claude Code asks you to think about what you want and translates that into the file changes. The cursor is no longer where the work happens.
The things that got better
Cross-file reasoning is now trivial
In an IDE, when I wanted to refactor something that touched four files, I'd open four tabs, jump between them, hold the context in my head, hope I didn't break anything. With Claude Code I describe the refactor and it does the four-file pass while I watch. If something needs to change in a fifth file I forgot about, it changes the fifth file too. Project-wide thinking is now the default thinking, not the expensive thinking.
The CLAUDE.md file is genuinely powerful
I put project conventions in there once, and they stop being a thing I have to remember. “Use Tailwind, not styled-components.” “Don't add comments unless they explain a why that's not obvious.” “Tests live next to the file they test, not in __tests__.” Every session inherits these. I stopped re-stating preferences on every prompt.
It does the boring parts I always procrastinated
Reading through a logfile to find the error. Writing tests for the thing I just finished. Updating the README to match what actually changed. Adding the right entries to .gitignore. None of these are hard. All of them are the work I'd skip when I was tired. The agent doesn't get tired.
The things that took longer to get used to
Letting the agent run commands felt wrong for about a week
The first time it offered to run my migration, I genuinely paused. There's something deep in the developer reflex that says “I run my own commands.” Once I let it actually do the work — and once I noticed it explicitly tells you what it's about to do before doing it — that reflex faded. The permission model is the friend, not the enemy.
I had to learn to write better prompts
“Fix this” is not a prompt. “The form on /signup silently fails when the email contains a plus sign — look at the validator in auth/signup.ts and the API handler in api/auth/register.ts and identify whether the issue is client-side or server-side” is a prompt. The quality of output scales with the quality of input in a way that's genuinely new. After a month I notice myself writing prompts with the precision I used to reserve for production code.
What it's not good for (yet)
It's worth being honest:
- Heavy visual / UI tweaking. If I'm sitting with a designer adjusting padding on a hover state, an editor with live preview is still the right tool. Claude Code can do it, but the iteration loop is slower than direct manipulation.
- Anything where the feedback loop is hidden. If “did this work” requires opening a browser and clicking through five screens, the agent is flying blind. Pair it with good logs, good tests, and concrete acceptance criteria — otherwise it's guessing.
- Performance work that requires profiling and intuition. The agent can read profiles, but the “hmm, why is this slow” phase of optimisation is still mostly human work.
Net
The pitch isn't that Claude Code replaces VS Code for everyone or for every job. It's that for a particular shape of work — building features across files, refactoring with confidence, doing the operational scaffolding around a project — it's straightforwardly faster and more pleasant than the editor-first workflow I used for ten years.
The fact that the same agent also runs the operational repo behind Havenga Labs is gravy. One tool, one mental model, two jobs.