What Claude Code is, what it can do, and what it does not guarantee
What kind of tool Claude Code is, where it runs and what it can do per the official docs, which parts are instructions rather than enforcement, and how to compare it with Cursor.
Contents
Claude Code is an agentic coding tool that reads your codebase, edits files and runs commands. The official description:
Claude Code is an agentic coding tool that reads your codebase, edits files, runs commands, and integrates with your development tools.
It is not a completion engine. You give it a task and it works across multiple files on its own — which means the real work for you is deciding how much it may do unattended. This article covers what it can do and, just as importantly, what is not guaranteed, both checked against the official documentation.
KEY POINT
What you will learn
- The five surfaces it runs on, and what they share
- What it can do: the work itself, integrations, and automation
- Which parts are instructions rather than enforcement, and what to use when you need a guarantee
Where it runs
Per the official documentation, there are five surfaces:
| Surface | What it is |
|---|---|
| Terminal | The full-featured CLI. Start it with claude |
| VS Code extension | Inline diffs, @-mentions, plan review, conversation history |
| JetBrains plugin | IntelliJ, PyCharm, WebStorm and others, with diff viewing and selection sharing |
| Desktop app | Review diffs visually, run sessions side by side, schedule tasks, start cloud sessions |
| Web | Runs in the browser with no local setup, at claude.ai/code |
What matters is that every surface connects to the same engine. The docs state that your repo's CLAUDE.md files, settings and MCP servers work across all of them, so a setup you build in the terminal applies in the desktop app too.
用語解説
Agentic: rather than answering once, the tool loops — read a file, run a command, look at the result, decide what's next. Compared with completion or one-shot Q&A, that changes how much permission design you need.
Claude Code needs a paid plan or an API key. The differences are in Claude Code on Pro, Max, Team or the API.
What it can do
Grouping what the documentation lists into three:
1. The work itself
- Building features and fixing bugs. Paste an error and it traces the cause through the codebase and implements a fix
- The jobs you keep putting off: tests for untested code, lint errors across a project, merge conflicts, dependency updates, release notes
- Git: staging changes, writing commit messages, creating branches, opening pull requests
2. Integrations
MCP (the Model Context Protocol) connects it to external services. The docs name reading design docs in Google Drive, updating tickets in Jira, pulling data from Slack, and using your own tooling. Setup is covered in Adding MCP servers to Claude Code.
3. Scripting and automation
The CLI follows the Unix philosophy, so it pipes:
# Hand it recent log output
tail -200 app.log | claude -p "tell me about any anomalies"
# Review only the changed files
git diff main --name-only | claude -p "review these changed files for security issues"
The extension mechanisms have distinct roles in the docs:
| Mechanism | Role |
|---|---|
| CLAUDE.md | Persistent context loaded every session: conventions, "always do X" rules |
| Skills | Reusable knowledge, and workflows you invoke with /<name> |
| Subagents | Run in isolated context and return only a summary |
| MCP | Connections to external services |
| Hooks | Run a script and more at a fixed lifecycle event |
| Plugins | The packaging layer that distributes the above |
Subagents are covered in Claude Code subagents and the instruction file in How to write CLAUDE.md.
What it does not guarantee
This is the part that matters most in practice. An instruction written in prose is not enforcement. From the permissions documentation:
Permission rules are enforced by Claude Code, not by the model. Instructions in your prompt or
CLAUDE.mdshape what Claude tries to do, but they don't change what Claude Code allows.
That splits the extension mechanisms in two:
| Kind | Examples | Nature |
|---|---|---|
| Instruction (Claude interprets it) | CLAUDE.md, skills, output styles | Usually followed, never guaranteed |
| Enforcement (Claude Code executes it) | permissions deny / ask, hooks | Always applies when the condition matches |
The docs' own comparison makes the point: an instruction like "never edit .env" in CLAUDE.md or a skill is a request, not a guarantee, while a PreToolUse hook that blocks the edit is enforcement. Anything that must hold without exception belongs in settings and hooks, not prose.
Prose doesn't narrow the working directory either
Telling Claude to touch only one folder does not narrow its reach. That is set by the directory you launched in plus any directories added, and to fence it you use permissions deny rules or blockReadsOutsideWorkingDirectories. See Configuring permissions in Claude Code's settings.json.
The other constraint is context. The conversation is sent with every request, and as it approaches the limit it gets compacted automatically — which is how a detailed instruction from early in a long session fades. See Managing context in Claude Code.
How to compare it with Cursor and Copilot
The short version: comparing by product category no longer works. Checking each vendor's own description on October 6, 2026, all three have converged on "agent".
| Product | Its own description, condensed |
|---|---|
| Claude Code | An agentic coding tool that reads your codebase, edits files, runs commands and integrates with your development tools |
| Cursor | A coding agent for building ambitious software: understand your codebase, plan and build features, fix bugs, review changes |
| GitHub Copilot | An AI assistant that helps you write, understand and ship software: suggests code as you type, answers questions about a codebase, reviews changes, works on tasks you assign |
"Cursor is an editor, Copilot is completion, Claude Code is a terminal" does not match what these vendors currently say. Cursor's own documentation does not describe it as an editor or as VS Code-derived; it positions it as a coding agent.
So compare the mechanisms you can check:
- Shape of permissions: what requires confirmation, what runs automatically, and whether you can declare that in a config file
- Means of enforcement: whether "always do this" can be a rule or a hook rather than a request
- Extension points: external connections such as MCP, reusable procedures, isolated-context work
- Surfaces: how far one configuration carries across terminal, IDE, desktop, browser and CI
One thing worth knowing: Claude Code and Cursor are not mutually exclusive. The official Overview lists a Cursor install link beside the VS Code one, so you can run the Claude Code extension inside Cursor.
For Cursor's and Copilot's individual features and pricing, check their own pages; this article deliberately stops short of a feature-by-feature comparison. For Codex, see Codex vs Claude Code.
The order to adopt things in
The documentation is explicit that you don't configure everything up front. Each feature has a recognizable trigger:
| Trigger | Add |
|---|---|
| Claude gets a convention or command wrong twice | Put it in CLAUDE.md |
| You keep asking for shorter answers or the same format | Set an output style |
| You keep typing the same prompt | Save it as a skill |
| You keep copying data from a browser tab | Connect that system as an MCP server |
| A side task floods your conversation with output | Route it through a subagent |
| You want something to happen every time without asking | Write a hook |
| A second repository needs the same setup | Package it as a plugin |
Before pointing it at work code, check how your input is handled: Is your code used to train Claude?
Summary
- Claude Code is an agentic coding tool, and its terminal, VS Code, JetBrains, desktop and web surfaces share one engine and one configuration
- It implements and fixes code, drives git, connects to external systems through MCP, scripts from the CLI, and automates through its extension layer
- CLAUDE.md, skills and output styles are instructions with no guarantee;
permissionsand hooks are the enforcement - Prose does not narrow the working directory — the launch directory and deny rules do
- Compare with Cursor and Copilot on permissions, enforcement, extension points and surfaces, not product category; and you can run Claude Code inside Cursor
FAQ
- Is Claude Code terminal-only?
- No. Per the official docs it runs in the terminal, in IDE extensions (VS Code and JetBrains), in a desktop app, and in the browser. Each surface connects to the same engine, so your CLAUDE.md, settings and MCP servers work across all of them.
- Are the rules in my CLAUDE.md guaranteed?
- No. The documentation states that permission rules are enforced by Claude Code, not by the model. For anything that must happen every time, use a hook.
- Is Claude Code better than Cursor or Copilot?
- All three vendors now describe their product as a coding agent, so comparing by product category tells you little. Compare the mechanisms you can verify: permissions, enforcement, extension points and surfaces.
- What should I configure first?
- The docs recommend starting with CLAUDE.md and adding the rest as specific triggers come up, and they list those triggers — for example, package a prompt as a skill once you have typed it repeatedly.
Primary sources
This article was drafted by AI from official documentation and reviewed by the site operator before publishing. Found a mistake? Let us know via the contact page.