Modes and abilities
Claude Code is a small toolbox of distinct modes and abilities. Knowing which to reach for, and when, is most of the skill.
Permission modes
On every potentially-sensitive action (writing a file, running bash, making a network request) Claude Code asks you to approve it. That’s the default: safe, slow, and a drag if you’re running the agent full-tilt. The current modes:
default: Claude asks before each action. Safe but interrupt-heavy. Right for careful work or unfamiliar territory.acceptEdits: file edits are pre-approved; other sensitive actions still prompt.plan: Claude reads and plans but changes nothing until you approve (see the next section).auto: Claude acts freely, with a safety classifier reviewing actions. Skips most prompts but catches the genuinely dangerous stuff. Plastic scissors: you can still cause trouble, but you have to work at it.dontAsk: Claude never stops to ask; actions that would need approval are declined instead.bypassPermissions: Claude runs anything without asking. Fast. Best reserved for scratch repos, containers, or situations where you’ve audited what the agent will do and have good backups.
Pick the lowest level that doesn’t slow you down. Start at default when you’re new. Graduate to acceptEdits or auto once you trust the shape of what Claude does in your project. Use bypassPermissions only when the blast radius is small.
Plan mode
Plan mode makes Claude propose an approach before writing any code. It reads the relevant files, thinks through the task, and produces a structured plan, which you then approve, modify, or reject.
Use plan mode when:
- The task is complex or unfamiliar
- The blast radius is large (touching many files, changing architecture)
- You want the approach in writing before committing to it
Skip it when:
- The task is small and obvious
- You’re exploring and want to iterate without planning overhead
Entering plan mode is usually a keystroke (Shift+Tab cycles through modes). The value is that the plan becomes a reviewable artifact before any files change: cheaper to correct at the plan stage than after implementation.
Web search
Claude Code can search the web when needed; availability depends on your configuration. It has a context cost: search results land in the window and count against the budget.
Use web search for:
- Truly current information (news, pricing, recent releases)
- Verifying facts that might have changed since training
- Finding docs or examples for unfamiliar libraries
Skip it for:
- Information that’s stable (math, core programming concepts, established APIs)
- Anything you can resolve from local docs (see Deep research)
The tradeoff: web searches are slow relative to local retrieval, and noisy. Reach for them when local can’t answer.
Fast mode
- Fast mode (
/fast): runs Opus with lower latency at a higher per-token cost. Available on Opus 4.8 and 4.7.
Sub-agents
A sub-agent is a fresh Claude session launched from the main session to do a scoped task. It starts with its own (limited) context, inheriting only what you explicitly pass, and returns a summary to the parent.
Useful when:
- The task would fill the main session’s context with noise (e.g., “read these 30 files and tell me which are relevant”)
- You want to parallelize several independent explorations
- You want to protect the main session’s context from a potentially-messy subtask
The main session stays clean; sub-agents absorb the context blast.
MCP servers
MCP (Model Context Protocol) is how Claude Code talks to external tools and data sources. Two kinds:
- Local (stdio) servers: the MCP server runs on your machine (e.g., as part of a desktop app). Low latency; local state.
- Remote HTTP servers: the server runs remotely and Claude calls it over HTTP. Useful for SaaS integrations (Linear, Slack, GitHub, and so on).
MCP is the primitive tool-use protocol. Most third-party integrations with Claude Code are MCP servers. Understanding MCP means understanding how any future tool will plug in; see Stay close to the primitives.
Skills
Skills are load-on-demand expertise packaged into a directory: frontmatter for discovery, a playbook for the model, optional scripts and references. They’re one of the most durable ways to extend what Claude Code does on your projects. Covered in depth in Skills.
Agent teams
For larger tasks, you can run multiple Claude sessions coordinating on the same project, an agent team. Common patterns:
- One session leading the work, others handling scoped subtasks
- Specialist agents (e.g., a code-reviewer agent, a test-writer agent) invoked when appropriate
- Parallel sessions exploring different branches of a decision
Each agent has its own context window, runs in its own process, and communicates via shared files or structured handoffs.
Agent teams are powerful for large tasks but add coordination overhead. For most day-to-day work, a single focused session is better.