Claude Code has grown from a simple terminal chatbot into a full agentic development environment — slash commands, permission modes, MCP integrations, recurring automation, subagents, hooks, and persistent memory. This guide explains every major feature, what it's actually for, and when engineers reach for it.
Claude Code is Anthropic's official agentic coding tool. Unlike a typical chat assistant, it can directly read, write, and edit files, run shell commands, search the web, and orchestrate multi-step engineering tasks — all inside your actual project, under permission controls you configure. It runs as a CLI in the terminal, as IDE extensions (VS Code, JetBrains), as a desktop app, and as a web app.
The feature set below is organized the way engineers actually encounter it: commands you type, modes that control autonomy, integrations that extend its reach, and background systems (memory, hooks) that make it behave consistently across sessions.
Slash commands are typed directly into the prompt and trigger a specific action instead of a normal conversational turn. Here are the ones engineers use daily:
| Command | What it does | Use case |
|---|---|---|
/model | Switch the active model (Opus, Sonnet, Haiku, etc.) | Drop to a faster/cheaper model for simple tasks, or up to a stronger one for hard problems |
/agents | Create, edit, or list custom subagents | Define a project-specific reviewer or specialist agent |
/clear | Wipe the conversation and start fresh | Starting an unrelated task without old context interfering |
/compact | Summarize and shrink the current context | Long sessions approaching the context limit |
/permissions | View and edit tool permission rules | Allow/deny specific Bash commands or file paths |
/hooks | Manage lifecycle hooks | Reload hook config after editing settings.json |
/mcp | Manage connected MCP servers | Add, remove, or inspect external tool integrations |
/memory | View or edit persistent memory files | Correct something Claude remembered incorrectly |
/init | Generate a starter CLAUDE.md for the repo | Bootstrapping project instructions on a new codebase |
/review | Review a GitHub pull request | Automated PR review before merging |
/resume | Resume a previous session | Picking up work from yesterday without re-explaining context |
/rewind | Roll back files to a prior checkpoint | Undo a bad edit without manual git surgery |
/cost | Show token usage and cost for the session | Monitoring spend on long agentic runs |
/config | Quick access to common settings (theme, model, etc.) | Fast tweaks without hand-editing settings.json |
/vim | Toggle vim keybindings in the input box | Vim users who want modal editing in the prompt |
/doctor | Diagnose installation/environment issues | Debugging a broken or misconfigured install |
/pr-comments | Fetch review comments from a GitHub PR | Addressing reviewer feedback without leaving the terminal |
/security-review | Run a security-focused review of pending changes | Catching injection, auth, or secrets issues before merging |
/bug | Report a bug directly to Anthropic | Flagging a Claude Code issue with session context attached |
/add-dir | Grant access to an additional directory | Working across a monorepo or a linked sibling project |
/export | Export the current conversation transcript | Sharing a session or archiving a completed task |
/status | Show account, model, and connection status | Quick health check of the current session |
/output-style | Change how responses are formatted | Switching to a terser or more explanatory style |
/statusline | Configure the custom status line | Showing git branch, cost, or custom info in the prompt bar |
/terminal-setup | Configure terminal key bindings (e.g. Shift+Enter) | Fixing newline/submit behavior in certain terminals |
/ide | Connect to a running IDE instance | Getting diagnostics and open-file context from VS Code/JetBrains |
/login / /logout | Switch or sign out of an account | Swapping between personal and team/enterprise accounts |
/upgrade | Upgrade your plan | Moving from a free/lower tier to unlock higher usage limits |
| Custom commands | Project- or user-defined slash commands (Markdown files) | Standardizing a recurring workflow, e.g. /deploy-staging |
Custom slash commands are just Markdown files with optional frontmatter, stored in .claude/commands/ (project) or ~/.claude/commands/ (personal) — any team can define its own without writing code.
Every action Claude Code takes — editing a file, running a command, pushing to git — is filtered through a permission mode. This is the single most important safety lever in the tool.
A project's CLAUDE.md file can pre-authorize specific categories of actions (e.g. "always commit and push without asking"), which is how teams run Claude Code close to fully autonomously on a given repo while still keeping a written record of what was pre-approved.
MCP is an open standard that lets Claude Code talk to external tools and data sources through one consistent interface, instead of Anthropic building a custom integration for every possible service.
claude mcp add github --url https://mcp.github.com claude mcp add postgres --command "npx @modelcontextprotocol/server-postgres" claude mcp list
Common MCP servers connect Claude Code to:
Because MCP is an open protocol, any team can write a server for their own internal systems and Claude Code will use it the same way it uses an official one.
/loop repeats a prompt or slash command on an interval — either a fixed cadence you specify, or a self-paced schedule the model chooses based on what it's waiting for.
/loop 5m /babysit-prs /loop /check-deploy-status (model self-paces the interval)
Typical uses: polling a CI pipeline until it finishes, checking for new pull-request comments, or running a recurring maintenance routine (e.g. a nightly dependency audit) without a human re-triggering it each time.
Subagents are specialized agents Claude Code can spawn mid-task, each with its own context window and its own tool access. This keeps large investigations from bloating the main conversation's context.
| Agent type | Best for |
|---|---|
Explore | Fast, read-only code search — locating files, symbols, or patterns across a large codebase |
Plan | Architecture and implementation planning before writing any code |
general-purpose | Open-ended multi-step research or execution tasks |
Custom agents (via /agents) | Project-specific roles — e.g. a dedicated code-reviewer, security auditor, or test-runner |
Subagents can run in the foreground (you wait for the result before continuing) or background (you keep working, and get notified when it finishes) — useful for parallelizing independent research or long-running builds.
Hooks run a command automatically at specific points in Claude Code's lifecycle — before or after a tool call, when a session starts, or when Claude finishes a turn.
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "prettier --write \"$FILE\"" }]
}]
}
}
Common hook use cases: auto-formatting code after every edit, logging every shell command Claude runs, blocking a specific dangerous command pattern outright, or running the test suite automatically after a change.
Claude Code can maintain a file-based memory system that persists across separate conversations — remembering user preferences, past feedback, and ongoing project context so you don't have to re-explain them every session.
This is distinct from CLAUDE.md, which is checked into the repo and read by every contributor's Claude Code session — memory is personal and persists for one user across their own sessions.
Skills package specialized knowledge or workflows that Claude invokes by name — for example a data-visualization skill that enforces consistent chart design, or a code-review skill with a structured findings format. Skills can be built-in, project-specific, or installed from a plugin marketplace.
Instead of dumping HTML into the chat, Claude Code can render a page as an Artifact — a hosted, shareable web view (dashboards, reports, diagrams, small tools). Each redeploy updates the same URL, so it behaves like a lightweight, disposable web app rather than a one-off file.
Workflows (sometimes triggered with the keyword "ultracode") coordinate multiple agents and a higher reasoning effort automatically for large, ambiguous tasks — planning, delegating, and merging work across subagents without you manually spinning each one up.
Long commands, subagents, and monitors can run in the background while you keep working in the foreground. Claude Code notifies you when they finish instead of blocking the conversation — useful for builds, test suites, deployments, or a Monitor watching logs for a specific event.
Claude Code snapshots file state before edits, so /rewind can restore a previous checkpoint if a change goes wrong — a safety net that doesn't require manual git stashing or reset.
Plugins bundle skills, commands, agents, and MCP servers together for one-click installation from a marketplace — letting teams distribute a whole workflow (not just one script) to every contributor on a project.
| Feature | One-line summary |
|---|---|
| Slash commands | Typed shortcuts for specific actions (/model, /clear, /review, etc.) |
| Permission modes | Controls how much Claude can do without asking (default → plan → accept edits → bypass) |
| MCP | Open protocol connecting Claude to external tools and data sources |
| /loop | Repeats a task on a recurring or self-paced interval |
| Subagents | Specialized agents spawned for isolated research or execution |
| Hooks | Commands that run automatically at lifecycle events |
| Memory | Persistent, personal context across sessions |
| Skills | Reusable, invocable specialized capabilities |
| Artifacts | Shareable, redeployable hosted web pages |
| Workflows | Automatic multi-agent orchestration for large tasks |
| Background tasks | Long-running work with completion notifications instead of blocking |
| /rewind | Restore files to a pre-edit checkpoint |
| Plugins | Bundled skills + commands + agents + MCP, installed from a marketplace |
/loop turns Claude Code into a recurring automation runner, not just a one-shot assistant