Four months ago I switched to Claude Code as my primary development tool. I work in the terminal now, with Claude, without VS Code or JetBrains. After four months, I have a pretty good sense of where it helps and where I still need something else.
What works well
Refactoring is where Claude Code helps me most. I can ask it to "refactor this service to use the repository pattern" and it follows the change across files, updating tests and fixing imports.
When I describe a small change in natural language, the draft follows the architecture already in the codebase: the same layers, naming and dependency injection as the code around it. Consistent patterns are what make that possible, and I still review every line before it goes anywhere.
For debugging, I paste the error and let Claude trace through the code to diagnose it and suggest a fix. Having the full context helps a lot with complex bugs that span multiple files.
Asking it to "write tests for this service, cover edge cases" gets me real tests that check real behavior, not the half-assed "the function exists, right? Cool." kind.
It also handles commit messages, PR descriptions, and branch management. With the Git Safety rules in my config, Claude asks before destructive git commands like force push or reset --hard, and I still check what it runs.
Where it falls short
Visual work is rough in a terminal-only setup because you cannot see what you are building. I still switch to a browser-based workflow for frontend stuff. CSS, layout and responsive work need eyes on a screen.
The terminal workflow also has limits when I need to set breakpoints and step through code while inspecting runtime state.
Claude is great when I know what I want built and less useful when I am still exploring. "Try something" is not a good prompt.
How my workflow changed
I now describe the change I want in a prompt. Where I used to think "open file, go to line 47, change this variable," I think "extract this validation logic into its own function." That makes me more deliberate about what I am asking for.
I commit more often now. Claude makes small, atomic commits easy. I commit after every meaningful change instead of batching.
My code review got better too. I use Claude to review my own code before pushing. It catches things I miss.
Would I go back?
No. Even with the limitations, refactors I used to postpone now get done the same day. Fast implementation helps, and consistent patterns make the next refactor easier too.
I still need to know when to step out of the terminal. I make the architecture decisions and judge whether the code is good. Claude just gets me to that point faster.