What is Claude Code?
Claude Code is Anthropic's coding agent - a CLI tool that lets you run Claude inside your own development environment. You launch it from a terminal at the root of your project, talk to it in natural language, and it reads files, writes diffs, runs commands, and iterates on the code in front of it. The model is the same Claude family covered in What is Claude?. The novelty is the harness around it: a CLI agent that treats your repository, your shell, and your tooling as the surface it acts on.
That positioning makes Claude Code different from anything that came before it in the Anthropic product line. claude.ai is a chat surface for the model. The Anthropic API is a programmatic interface for application developers. Claude Code is the model wearing a developer's tools - the same way a human engineer pairs an IDE with a terminal with version control. It is meant to do the work, not to discuss it.
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you ship features faster.- claude.com/product/claude-code
Why terminal, not chat
Most AI coding assistants today are tightly bound to a particular IDE or editor. They live in a sidebar, complete code as you type, and ask permission before doing anything bigger. Claude Code went the other direction: it is a terminal-native agent, with the whole filesystem available, in any editor you want.
Three consequences fall out of that design choice:
- It works wherever your code does. If your terminal can reach the repository, Claude Code can reach the repository. No editor-specific plugin to install, no walled-garden integration to wait on. Vim, Emacs, VS Code, JetBrains, a remote SSH session, a Docker container - all the same to it.
- It can do bigger work in one step. Editor sidebars are optimized for completing the next line. A terminal agent is optimized for completing the next feature: read these five files, propose a plan, edit the code, run the tests, fix what broke, commit.
- It composes with the rest of the Unix toolchain. Pipe input in, pipe output out, run it from a script, chain it with other CLIs. Claude Code is a normal command-line citizen, which means it inherits everything the shell already does well.
The trade-off is honest: you give up the inline ghost-text completions that some developers love. What you get in return is an agent that operates at the size of a task, not at the size of a keystroke.
Getting it running
Claude Code ships as a single npm package. The full path from "I have nothing installed" to "Claude is editing my code" is short:
Authentication happens the first time you run it. Claude Code supports two routes:
- Claude Pro or Max subscription. Sign in with the same Anthropic account you use on claude.ai. Your subscription covers Claude Code usage within the plan's limits.
- Anthropic API key. Pay-as-you-go through the Anthropic API. Set
ANTHROPIC_API_KEYin your environment and Claude Code picks it up.
Once authenticated, the claude command drops you into an interactive session in the current directory. You type a request in plain English. Claude reads the repository structure, proposes a plan, and starts making changes. You can stop, redirect, accept, or reject at any point.
What it can do
Claude Code is best understood through what it actually performs on a typical codebase:
Write and refactor code
Reads existing files, proposes diffs, applies them. Handles multi-file refactors, type changes, API migrations.
Execute commands
Runs your test suite, build, linter, formatter. Reads the output, fixes what failed, re-runs.
Read the codebase
Grep, glob, follow imports, build a working mental model of the project before touching code.
Propose changes
Lays out a plan before edits. You can approve, reject, or rewrite the plan before Claude commits to anything irreversible.
Branch and commit
Creates branches, writes commit messages, opens pull requests through the GitHub CLI when it is installed.
Investigate failures
Reads stack traces, traces a bug to its source, proposes a fix. The "what is wrong with my code?" loop, automated.
The throughline is that Claude Code is meant to do work - the unit it operates on is a task, not a question. "Add a search box to the orders page" is a typical prompt. "Migrate this service from REST to GraphQL" is a more ambitious one. Both are within scope, and both end with Claude having actually changed the code.
Tools, MCP, and skills
The reason Claude Code can be more than a sophisticated autocomplete is its tool system. Each session has access to a set of tools - read file, write file, run command, list directory, fetch URL, and so on - and the model decides when to use each one. The decisions are visible: every tool call is shown in the terminal, so you can see exactly what Claude is doing as it does it.
Two extensions of this make Claude Code dramatically more capable in real codebases:
- Model Context Protocol (MCP). An open protocol Anthropic published for connecting Claude to external systems. An MCP server can expose your database, your design system, your internal documentation, your build platform - and Claude Code can consume it as additional tools. The result is an agent that knows about your specific environment, not just generic public knowledge.
- Agent skills. Project-specific instructions and reusable workflows you can save into a
.claude/directory at the root of your repository. Skills travel with the codebase, so anyone on the team gets the same conventions, the same investigation steps, the same coding standards baked into how Claude works on that project.
Both are covered in the AI resources page - Anthropic publishes a full set of courses on MCP, on building skills, and on the agent abstractions Claude Code is built on.
Claude Code vs claude.ai
The two products both surface the same underlying model. They are useful for very different things.
The chat surface
- Browser-based, with mobile apps
- Conversations, file uploads, projects, custom styles
- Cannot run code on your machine
- Stops at what you paste in or upload
- Best for: research, writing, exploration, planning
The agent surface
- Terminal-native, runs in your shell
- Direct filesystem and command access in the current repo
- Can read, write, run, branch, commit
- Has the codebase as live context, not as a paste
- Best for: shipping features, refactoring, debugging, automation
In a typical day, both can be open. Use claude.ai to design the change, talk through trade-offs, sanity-check the approach. Then drop into Claude Code in the terminal to actually do it. The two products are designed to complement each other rather than overlap.
When to reach for it
Claude Code is the right tool when the work is a real coding task in a real repository:
- Adding a feature that touches three or four files
- Refactoring a module to use a new API or pattern
- Migrating from one library or framework version to another
- Investigating a flaky test or production bug
- Writing scripts, build tooling, or one-off automation
- Bringing test coverage up on a section of code that has none
Reach for something else when the work is at a different scale: claude.ai for thinking through requirements before any code exists, an IDE-native autocomplete tool for inline suggestions while you write line-by-line yourself, or a hand-built CI pipeline when you need automation that runs on every commit without a human in the loop.
For the broad middle - "I know what I want, I want it done, I want to be in control of the diff" - Claude Code is the surface most software engineers settle into. It is also the most direct way to feel what an AI agent is, because the whole loop happens in front of you, in the same terminal where the rest of your work already lives.