The AI coding assistant has left the sidebar and moved into the terminal.
What Claude Code is
Claude Code is a CLI-based AI coding agent from Anthropic. You run it in your terminal, give it a task in natural language, and it reads your codebase, plans changes, edits files, runs tests, and iterates until the task is done.
$ claude
> Add pagination to the /api/articles endpoint. Use cursor-based
pagination with a default page size of 20.From that prompt, the agent reads your existing route handler, picks up the ORM patterns in your project, modifies the endpoint, updates the response schema, adds query parameters, writes or updates tests, and runs them. If a test fails, it reads the error, fixes the code, and tries again.
This isn't autocomplete. This isn't "generate a snippet and paste it." This is an agent running in a loop — read, think, edit, verify — with full access to your project.
How it differs from Copilot
GitHub Copilot (and similar inline tools) work at the suggestion level. You're writing code, and the tool predicts what comes next. It's a very good autocomplete that understands context. You're the driver, the tool is a passenger making suggestions.
Claude Code works at the task level. You describe what you want done, and the agent figures out how to do it. It navigates the codebase, makes multi-file changes, and validates its own work. You're the reviewer, the agent is the driver.
The practical difference:
| Aspect | Copilot-style | Claude Code-style |
|---|---|---|
| Input | Partial code + cursor position | Natural language task description |
| Scope | Current file, current function | Entire codebase |
| Changes | Single insertion | Multi-file coordinated edits |
| Verification | None (you check) | Runs tests, reads errors, iterates |
| Workflow | You code, it suggests | You describe, it codes |
They're complementary, not competing. Copilot is great for in-flow productivity while you're actively writing code. Claude Code is great for tasks where you'd rather describe the outcome and review the result.
The agent loop
Under the hood, Claude Code runs a read-plan-edit-verify loop.
Read. The agent explores your project structure, reads the relevant files, and builds an understanding of conventions, patterns, and dependencies. It uses tools like file search, grep, and directory listing — the same tools you'd use.
Plan. Based on the task and what it learned from the codebase, it figures out which files need changes, in what order, and what those changes should accomplish. For complex tasks it breaks the work into steps.
Edit. It makes targeted edits to specific files. Not whole-file rewrites — surgical changes that respect existing code style and patterns.
Verify. It runs your test suite, linter, or type checker. If something fails, it reads the error output, diagnoses the issue, and loops back to the edit step.
The loop continues until the task is complete or the agent decides it needs human input. The verification step is what makes the agent self-correcting. First-pass code doesn't have to be perfect, it just has to be close enough that test feedback can guide the refinement.
Hooks and customization
Claude Code supports hooks — custom scripts that run at specific points in the agent's lifecycle. That lets you enforce project-specific rules without trusting the model to remember them.
A few common hook patterns. Pre-commit validation runs linters or formatters before the agent commits changes. Post-edit checks verify after any file edit that imports are sorted or that specific patterns are followed. Custom tool authorization requires approval before the agent runs destructive commands.
You can also configure the agent through project-level settings and memory files that persist context across sessions: coding conventions, architectural decisions, files to avoid modifying, preferred patterns.
# CLAUDE.md (project instructions)
- Use absolute imports, never relative
- All API endpoints must have OpenAPI docstrings
- Tests go in tests/ mirroring the source structure
- Never modify files in migrations/ directlyMCP integration
Claude Code supports MCP (Model Context Protocol) servers, which means you can extend the agent's tool set well beyond file operations. Connect MCP servers for database access (the agent can query your development database to understand schema and test data), API testing (connect to your running dev server to test endpoints directly), issue trackers (read GitHub issues or Jira tickets as part of understanding task requirements), or custom tooling (any internal tool or service wrapped as an MCP server becomes available to the agent).
That turns Claude Code from a code editor into a development environment participant that can talk to your entire stack.
Working with existing codebases
The most impressive capability is how Claude Code handles codebases it has never seen. It doesn't need a special index, a trained model, or a configuration wizard. It reads files on demand, the same way you would.
Give it a bug report:
> The /api/search endpoint returns 500 when the query parameter contains
special characters like & or %. Fix it.
The agent finds the search endpoint, reads the handler, sees that the query string isn't being URL-decoded or sanitized, makes the fix, writes a test with special characters, and runs it. If your project uses a particular testing framework or assertion style, it picks that up from your existing test files.
This works because the agent has a large context window and the ability to search across files. It doesn't need to understand your entire codebase — it needs to find and understand the parts that matter for the task. That's how experienced developers work on unfamiliar projects.
The IDE extension ecosystem
Claude Code started as a CLI tool but has expanded to IDE integrations.
The VS Code extension brings Claude Code's agent capabilities into VS Code with a panel interface alongside your editor. The JetBrains plugin offers the same capabilities in IntelliJ, PyCharm, WebStorm, and the other JetBrains IDEs.
The IDE integrations add visual affordances. You can see which files the agent is reading, review diffs before they're applied, get inline annotations. The underlying agent loop is the same. The terminal stays available for people who prefer it.
What this means for dev workflows
AI-assisted development is shifting several patterns.
Code review becomes the primary skill. When the agent writes code, your job shifts from writing to reviewing. That's a different skill — reading code critically, evaluating architectural decisions, catching edge cases the agent missed. Developers who are strong reviewers become more valuable.
Task description is the new interface. The precision and clarity of your task description directly determines the quality of the output. "Fix the bug" produces worse results than "The checkout flow fails when a user has multiple addresses because the address selector component doesn't handle the case where the default address is deleted. Fix the address selector to fall back to the first available address."
Iteration speed goes up. Instead of implementing a feature over hours, you describe it, review the result in minutes, and iterate with feedback. "This is close but the error handling should use our custom AppError class, not generic exceptions."
Documentation and tests get cheaper. Tasks developers historically deprioritized — writing tests for existing code, adding docstrings, updating READMEs — become trivial to delegate.
What's still hard
The agent isn't infallible.
Large-scale refactors that touch dozens of files with subtle interdependencies can produce inconsistencies. The agent handles each file well but can miss cross-file invariants. Subtle bugs that need deep domain understanding or only reproduce under specific conditions are hard for the agent to diagnose without detailed descriptions. Architectural decisions should stay human-driven. The agent can implement any architecture you describe, but it shouldn't be choosing your system's architecture for you. Performance optimization that needs profiling and measurement is still outside what the agent loop handles well.
The tool is a force multiplier for competent developers, not a replacement for competence. You still need to know what good code looks like. You just spend more time directing and reviewing than typing.
