Claude Code lives in your terminal, understands your entire project, and makes changes with your permission. Think of it as a brilliant coworker who has already read every file.
Reading src/auth/login.test.ts
Reading src/auth/login.ts
Found it. Line 42 expects the session to have a user field, but after your recent change to the expiry logic, expired sessions return null for user.
I can fix this by adding a null check before accessing user.id. Want me to make the change?
Editing src/auth/login.ts
Running npm test -- auth/login
All tests passing. Fixed and verified.
You describe what you need in plain English. Claude Code figures out which files to look at, what changes to make, and what commands to run — then does it, step by step, explaining as it goes.
Describe what you need in plain English. Ask a question, request a change, or describe a feature.
Reads relevant files, searches your codebase, understands the context. Figures out the right approach.
Writes code, edits files, runs commands, executes tests. Does the actual work, step by step.
Nothing changes until you say yes. Review every proposed change before it happens. Always in control.
This loop repeats as many times as needed — Claude Code can use multiple tools per question, working through complex tasks automatically.
Real examples of what you can ask Claude Code to do.
"Why is this test failing?"
Reads the test, traces the logic, finds the bug, explains it in plain English, and offers to fix it.
"Add dark mode to the settings page"
Finds your components, identifies the styling system, creates the toggle, writes the CSS, and tests it works.
"What does this codebase do?"
Scans the project structure, reads key files, and writes a clear summary. Perfect for onboarding to a new repo.
"Refactor auth to use JWT tokens"
Plans changes across multiple files, executes them step by step, then runs your existing tests to confirm nothing broke.
"Create a PR for this feature"
Stages your changes, writes a meaningful commit message, pushes the branch, and creates a pull request with a description.
"Investigate and fix all the failing tests"
Splits the work into parallel tasks — like cloning itself to investigate multiple failures simultaneously, then fixing each one.
Like a contractor who shows you the blueprint and asks "should I go ahead?" before making changes. Nothing happens without your approval.
Claude Code wants to edit src/auth/login.ts
- if (session.user.id) {
+ if (session.user?.id) {
Green = being added. Red = being removed.
You see exactly what will change and decide:
Only after you approve does anything change. Plus:
Works with git, so every change is reversible
Configure which actions need approval — start strict, loosen as you build trust
See everything it does — full transparency, no hidden actions
No configuration needed. Works with any codebase.
$ claude
You: What does this project do?
It will guide you through a quick login on first run. After that, just type claude and start talking.
As you get comfortable, Claude Code grows with you.
The conversation loop, how it picks which tools to use, and how it understands your codebase.
hubLink it to GitHub, databases, and APIs so it has even more context about your world.
groupsTackle complex multi-file refactors. It can split work across parallel tasks — like having a small team.
architectureFor the technically curious — the full architecture, from startup to streaming to tool execution.