Claude Code is a terminal-native coding agent. You point it at a repository and describe an outcome; it reads files, greps, runs your build and tests, edits across the tree, and commits — asking permission at whatever granularity you configure. The design bet is the opposite of an IDE assistant's: instead of surfacing suggestions where your cursor is, it takes a whole task and comes back with a diff.
Surfaces
The same engine runs in several places, and they share your CLAUDE.md,
settings, and MCP servers:
- Terminal CLI — the full-featured surface (
claudein any project) - IDE extensions — VS Code, Cursor, and JetBrains, with inline diffs and @-mentions
- Desktop app — visual diff review, several sessions side by side, scheduled local tasks
- Web and mobile — claude.ai/code for long-running cloud tasks on repos you don't have checked out
- CI — GitHub Actions and GitLab CI/CD for automated review and issue triage
A session isn't pinned to one of them: claude --teleport pulls a web session
into your terminal, /desktop hands the current session to the desktop app, and
Remote Control lets you drive a local session from your phone.
The customization layers (in order of leverage)
CLAUDE.md— a markdown file at the project root, read at the start of every session. Coding standards, architecture decisions, the commands that actually build and test the thing. This is the single highest-leverage file in the repo for agent output quality, and it is criminally under-invested in.- Auto memory — learnings it saves across sessions on its own (build commands, debugging insights) without you writing them down.
- Skills — packaged, repeatable workflows invoked as
/deploy-stagingor/review-pr, checked into the repo and shared by the team. - Hooks — shell commands fired before or after tool events: format after every edit, block a commit that fails lint, log every write.
- MCP servers — external tools and data: Jira, Google Drive, your internal API, a database, a browser.
- Subagents and workflows — fan a task out across parallel agents with a lead coordinating and merging, for work one context window can't hold.
Unix-composable, which is the underrated part
It reads stdin and writes stdout, so it slots into pipelines like any other tool:
tail -200 app.log | claude -p "summarize the anomalies"
git diff main --name-only | claude -p "review these files for security issues"
claude -p "translate new strings into French and raise a PR"
That -p (print) mode is what makes it usable in CI, cron, and git hooks rather
than only in an interactive session.
Standout capabilities
- Agentic multi-file edits with permission modes from ask-every-time to autonomous
- Plan mode: it proposes an approach and waits for approval before touching a file
- Git-native — branches, commits, and PRs, with its own review command
- Parallel subagents and background sessions for large or long tasks
- Routines: scheduled cloud runs that fire on cron, API calls, or GitHub events
- Agent SDK for building your own agents on the same tools and permission model
Pricing shape
Bundled into Claude subscriptions (Pro at the low tier, Max above it for heavier usage), or metered through an Anthropic Console API key. The terminal CLI and VS Code extension also support third-party providers — Amazon Bedrock and Google Vertex — which is usually the path for enterprises with existing cloud commitments. See claude.com/pricing.
Best for
Engineers comfortable in a terminal who want to delegate whole tasks rather than accept line-by-line suggestions: writing the tests nobody wrote, migrating a dependency across forty files, triaging a failing pipeline at 2am.
Where it struggles
- Under-specified tasks. "Make this better" produces motion, not progress. The tool rewards a clear definition of done and a way to check it.
- Repos with no working build or test command — it loses its feedback loop and
falls back to guessing. Fix
CLAUDE.mdfirst. - Cost surprises on large autonomous runs;
/usageand/contextexist for a reason, and so does starting with a plan.
Getting started
curl -fsSL https://claude.ai/install.sh | bash # macOS, Linux, WSL
cd your-project && claude
Then run /init to generate a first CLAUDE.md, and spend ten minutes editing
it by hand. Ask for something small and verifiable before you ask for something
big.
Worth knowing
Anything the agent reads can influence it — a README, an issue comment, a dependency's docs. Treat untrusted repository content as untrusted input, keep permissions tight on unfamiliar codebases, and read the diff before you merge it. An agent that runs your test suite is a productivity tool; an agent that runs arbitrary fetched instructions is an attack surface.
No comments yet.