Claude Code: the features every user should know
Claude Code ships with a lot of surface area. You can use it productively the first day knowing only the basics — but the features below are the ones that turn a workable tool into a serious daily driver. This article walks through the most important ones, with enough detail to know when to reach for each.
For background on what Claude Code is and how it’s built, see the overview article.
Slash commands
The control surface of Claude Code. You type / and a list of available commands appears.
/help— built-in help, lists everything available in the current session./permissions— manage your tool-call allowlist. Add tools you use constantly, remove ones you no longer trust./agents— list and configure sub-agents (more below)./init— bootstraps aCLAUDE.mdfor your project with project-specific instructions.- Custom commands. Any markdown file in
.claude/commands/becomes a slash command./release-checklist,/review-pr,/scaffold-feature— whatever your team runs often.
Custom commands are the easiest way to codify team workflows. One markdown file, one shared command, everyone runs the same playbook.
Plan mode
Plan mode is a permission mode in which Claude Code is not allowed to execute any tools that change state. It can read, search, and analyze — and then it must present a plan in chat before the user authorizes execution.
Use it for: large refactors, anything touching production data, exploratory work where you want to think before you cut. The trade-off is obvious — slower than just letting the agent run — but for high-stakes tasks the plan-then-execute pattern pays for itself in avoided rework.
Hooks
Hooks are shell commands Claude Code runs automatically when specific events fire. They’re configured in .claude/settings.json and let you weave the agent into your existing tooling.
Common hook events:
PreToolUse— runs before a tool call. Can inspect the call and block it.PostToolUse— runs after. Useful for auto-formatters, linters, audit logs.Stop— runs when the agent finishes. Often used to play a sound or send a notification.UserPromptSubmit— runs when the user submits a message. Useful for injecting project context or enforcing prompt conventions.
A practical example: a PostToolUse hook that runs pnpm format after every file edit, so the diff stays clean without the agent having to remember.
Sub-agents
Sub-agents are specialized agents Claude Code can spawn for sub-tasks. Each runs in its own context window, with its own system prompt and (often) its own tool allowlist.
Why they matter:
- Parallelism. The main agent can dispatch several sub-agents at once — one searches the codebase, one reviews a doc, one drafts a test. They run independently and report back.
- Context isolation. A sub-agent investigating an unrelated bug doesn’t pollute the main conversation with thousands of tokens of irrelevant file reads.
- Specialized roles. A
code-reviewersub-agent with a focused prompt and read-only tools. Atest-writersub-agent with write access only to the test directory. Roles get sharper than a single generalist.
Sub-agents shine on big tasks. For a 10-minute change, the orchestration overhead isn’t worth it. For an afternoon migration, they’re a real force multiplier.
MCP servers
The Model Context Protocol is how Claude Code talks to external systems — databases, issue trackers, internal APIs. Server configuration lives in .mcp.json, and once wired in, MCP tools appear alongside built-in ones.
This article only mentions the feature briefly. For wiring details, security implications, and recommended permission discipline, see the full MCP article.
Permission modes
Four modes, each a different point on the safety/speed curve:
- Plan. No tool execution, only planning. Highest safety, slowest.
- Default. Tool calls run, the auto-classifier gates risky ones, prompts appear when needed. The everyday mode.
- Accept Edits. File edits go through without prompting; other risky calls still gated. Good for long refactors where you’ll review the diff at the end anyway.
- Bypass. No prompts, no classifier checks. Only safe inside sandboxed environments — containers, throwaway VMs — where nothing important is reachable.
Switch with /permissions or via keyboard shortcut. Treat Bypass as a “I know what I’m doing and the blast radius is contained” choice, not a default.
Memory system
Claude Code maintains persistent memory across sessions through a few mechanisms:
CLAUDE.md— project-level instructions. Lives in the repo root (or any parent directory) and gets loaded at session start. The canonical place for “how this codebase works, what conventions matter, what’s off-limits.”/memory— interactive command to view and edit user-level and project-level memory.- Auto-memory. Some configurations write short observations to a per-project memory file so they persist between sessions.
The biggest leverage point is CLAUDE.md. A clear, well-maintained one saves you from re-explaining the same project conventions every session.
TodoWrite
A structured task-list tool. The agent writes a list of upcoming steps, marks them in progress as it works, and checks them off as it finishes. You see the list update live.
Why it matters: for any task with more than three or four sub-steps, TodoWrite makes the agent’s plan legible. You can interrupt early if it’s heading the wrong way, and you can see what’s still ahead. It’s a small feature with an outsized effect on trust.
What to learn first
If you’re starting from zero, three features pay back fastest:
CLAUDE.md. Spend 30 minutes writing a good one. Every session benefits./permissions+ allowlisting. Cut the prompt friction on tools you use constantly without compromising safety on tools you don’t.- Plan mode. Get into the habit of using it for high-stakes work. Faster than fixing a wrong autonomous run.
Sub-agents, hooks, and custom slash commands come next — they’re force multipliers, but the three above are the ones that move you from “trying out Claude Code” to “using Claude Code daily.”
Part of: Anthropic Claude Code — what it is and how it works
Claude Code and MCP servers: how external tools get integrated
How the Model Context Protocol connects Claude Code to databases, APIs and custom tools — and what to watch out for on permissions.
Claude Code auto-classifier: the security layer between model and tools
How the auto-classifier in Claude Code scores tool calls live, blocks risky actions, and which defense layers sit behind it.
Claude Code: the features every user should know
The most important features in Claude Code — from slash commands and hooks to plan mode, sub-agents and MCP integration.