I would like to take some time to talk about AI coding tools, specifically my experience moving from GitHub Copilot to Claude Code CLI.
This isn't going to be a "Copilot vs Claude" cage match. I still use Copilot daily inside VS Code. It's great at what it does.
But over the last few months, I noticed something changing in the way I worked with AI.
I started with Copilot mostly with:
- autocomplete
- inline questions
- formatting help
- quick logic block reviews
Alongside that, I'd use ChatGPT for debugging, refactoring, tests, and explaining concepts when my brain temporarily hits a blue screen. And all this worked well.
Then one day, my company got a subscription to Claude, and things started shifting pretty quickly.
Not because the code generation was magically better. But because Claude Code made me think differently about context.
The early days
The first moment that really sold me on Claude Code wasn't some massive autonomous feature implementation. But rather a skill.
I had set up a reusable skill that updated multiple files across a test structure while keeping formatting and conventions consistent.
That was the moment it stopped feeling like "smart autocomplete" and started feeling collaborative. And honestly, the transition wasn't too difficult for me because I was already used to properly prompting AI by:
- giving enough context
- clearly defining goals
- discussing changes before implementation
- reviewing plans before execution
The harder part was learning how to structure everything around Claude Code, because once you start using the skills, hooks, CLAUDE.md file, and agents, you realize pretty quickly:
The real power of Claude Code isn't the code generation.
It's the systems you build around it
Copilot vs Claude Code
Copilot still shines for quick edits for me. If I'm manually working through a logic block and know exactly what I want, Copilot's inline autocomplete is fast and lightweight. I still use it constantly.
Claude Code feels different in that it feels more context-aware, especially when working across multiple files.
With Copilot, I tend to monitor more closely. With Claude Code, I spend more time planning before implementation even starts. And strangely enough, that planning phase has made me think more like an architect than just a developer.
This honestly has been one of the biggest benefits for me.
My Claude Setup
Every project I work on now has its own Claude structure:
.claude/
| skills/
| agents/
| hooks/
| docs/
CLAUDE.md
This setup was heavily inspired by Anthropic's courses, which I'd genuinely recommend if you want to use Claude Code properly. They are free to all.
The ones I found most useful were:
- Claude Code 101
- Introduction to Claude Cowork
- Claude Code in Action
- Introduction to Agent skills
- Introduction to Subagents
What I like about project-specific setups is that each codebase gets its own context. A React TypeScript frontend gets frontend-focused skills. A Go backend gets backend-focused skills. And each CLAUDE.md file contains things like:
- coding standards
- naming conventions
- architecture rules
- project overviews
- patterns to follow
Even some simple rules have a huge difference in consistency.
The skill I use the most
The skill I always use is a planning skill.
The workflow is simple:
- I describe the feature or bug
- The skill scans the codebase
- It identifies what exists and what may need to change
- It creates a planning document inside: .claude/docs/
Once the document is created, I manually review and approve it before implementation starts.
The approval step matters the most because one thing I've learned real quick is this:
AI should not be left alone to do the heavy lifting
Hooks, Guardrails, and Security
Another thing I think many developers overlook with AI tooling is security. These tools can read a lot if you let them.
I use hooks to prevent Claude from accessing sensitive files using PreToolUse matchers for:
- Read
- Edit
- Write
- Grep (this one is often overlooked) A simplified version looks something like this:
{
"matcher": "Read|Edit|Write|Grep",
"block": [
".env",
"secrets/",
"private-keys/"
]
}
It's not perfect, but it adds guardrails. And I think guardrails should be one of the most important parts of AI-assisted development. Because AI tools are incredibly capable, but they're also extremely confident, sometimes they're confidently wrong.
The best description I've heard, and the one I now use constantly, is this:
Treat AI like a super confident junior developer.
It will be Fasr, Helpful, and sometimes brilliant, but they still require oversight.
Where I am today
Right now, I still don't fully trust Claude Code to implement large features without supervision. And I think that's a healthy mindset because sometimes it hallucinates patterns, over-engineers, or confidently walks directly into the architectural equivalent of a wall.
But despite that, it has already changed the way I develop software. I spend more time planning, more time thinking about systems, and creating reusable workflows instead of solving the same problem time and time again.
My goal is not to stop coding, it's to code better. AI should not be used to replace developers, but rather to help developers think at a higher level.
That’s it from me for this post.
I'd love to hear how other developers are using Claude Code, Copilot, Cursor, or any other AI tooling in their workflow.
What's your current setup looking like?
And which AI has become your go-to coding copilot so far?
Top comments (0)