Explore Claude Code
A free, growing reference for Claude Code commands, shortcuts, and the errors you'll actually run into — written by the team behind the Claude Code Toolkit.
Commands
- /compact
Compresses the current conversation into a shorter summary so Claude Code can keep working without hitting the context window limit.
- /clear
Wipes the conversation history and starts a brand-new context, in the same working directory and session.
- /init
Analyzes the current project and generates a starting CLAUDE.md — the file Claude reads at the start of every session in that repo.
- /agents
Opens the interface for creating, listing, and editing custom subagents — specialized configurations Claude can delegate focused work to.
- /permissions
Shows and lets you edit which tools and commands Claude is allowed to run automatically versus needing your approval for.
- /model
Switches which Claude model the current session uses — useful for trading off speed against depth of reasoning mid-task.
- /terminal-setup
Installs the keybinding some terminals need for Shift+Enter to insert a newline instead of submitting the message.
- claude --continue and --resume
Terminal launch flags (not in-session commands) for reopening a previous conversation instead of starting fresh.
Keyboard Shortcuts
- Esc — interrupt Claude
Interrupts Claude mid-response or mid-tool-call — the fastest way to redirect without waiting for it to finish.
- Esc, Esc — rewind the conversation
Pressing Esc twice opens a jump-back menu, letting you return to an earlier point in the conversation and continue differently from there.
- Shift+Tab — auto-accept edits mode
Cycles Claude Code's permission mode, including toggling auto-accept edits mode on and off without going through /permissions.
- ! — run a bash command directly
Starting your input with ! runs the rest as a literal shell command, without Claude interpreting or reasoning about it first.
- # — add a quick memory note
Starting your input with # saves it as a note to CLAUDE.md instead of sending it as a conversational message.
- Up arrow — cycle prompt history
Cycles backward through your previously typed messages in the current session, the same way shell history works.
- Ctrl+C — cancel input or exit
Clears whatever you've typed if the input line isn't empty; pressed again quickly on an empty line, it exits Claude Code.
- Ctrl+D — exit on an empty line
Sends an end-of-file signal on an empty input line, exiting Claude Code — the same convention most shells use.
- Shift+Enter — newline without sending
Inserts a line break in the input without submitting the message — plain Enter sends, Shift+Enter doesn't.
- Tab — autocomplete paths and commands
Completes a partially typed file path or slash command name, the same way shell tab-completion works.
- Pasting or dragging an image into the prompt
Images can be added directly to a message by pasting from the clipboard or dragging a file into the input, without a separate upload step.
- Ctrl+L — clear the visible screen
Clears the visible terminal screen, purely a display refresh — it doesn't touch the conversation history the way /clear does.
- Ctrl+R — toggle verbose tool output
Toggles between a collapsed summary and the full detail of tool call output — useful when the short version hides something you need to see.
MCP Configuration
- /mcp — check MCP server status
Shows every MCP server configured for the current session and whether each one is connected, still starting, or failed.
- MCP server scope — project vs. user
MCP servers can be registered per-project (shared via .mcp.json) or per-user (available in every project you open).
- claude mcp add — registering a new MCP server
The CLI command for registering a new MCP server, specifying its start command and which scope it should apply to.
- MCP server takes too long to start
A server that needs to download dependencies or initialize a heavier process on first launch can take noticeably longer than one already warmed up.
- MCP transport type mismatch
MCP servers communicate over a specific transport — commonly stdio for local processes, or HTTP/SSE for remote ones — and the config has to match what the server actually speaks.
- MCP server missing required environment variables
Many MCP servers need their own API key or config value passed in as an environment variable — without it, they fail to start or authenticate.
- MCP tools and permission prompts
Tools exposed by an MCP server go through the same permission system as any other tool — the first use of a new one typically prompts for approval.
- MCP server requiring OAuth login
Some MCP servers authenticate via a browser-based OAuth flow rather than a static API key, similar to how Claude Code's own login works.
- Malformed .mcp.json breaks all servers
A JSON syntax error anywhere in .mcp.json can prevent the whole file from parsing, taking every server in it down at once, not just a specific entry.
- npx-based MCP server fails to install
A server configured to run via npx has to successfully resolve and download that package before it can even start — network or registry issues surface here first.
Errors & Messages
- Context window exceeded
The conversation, including file contents and tool output, has grown too large for the model to hold in a single request.
- No CLAUDE.md found
An informational notice, not an error — it just means this project doesn't have a CLAUDE.md file with project-specific guidance yet.
- Permission denied / tool call blocked
A tool call was stopped by a permission rule or hook, rather than by Claude itself deciding not to run it.
- API rate limited / overloaded
The Anthropic API returned a temporary rate-limit or capacity error — usually resolved automatically with a short retry.
- Custom slash command not found
Claude Code can't find a custom command you expected to exist — almost always a file location or naming issue.
- MCP server connection failed
A configured MCP (Model Context Protocol) server couldn't start or connect, so its tools aren't available this session.
- Terminal doesn't support interactive mode
Claude Code needs an interactive terminal to work normally — this shows up when it's run somewhere that isn't one, like piped input or certain CI environments.
- Invalid API key or authentication error
Claude Code's credentials — whether from a login flow or an API key — have expired, been revoked, or aren't configured, and it can't authenticate.
- Malformed settings.json
A syntax error in settings.json can prevent the whole file from being read, silently dropping permissions, hooks, and other configuration defined in it.
- A configured hook isn't running
A hook defined in settings.json isn't firing when expected — almost always a mismatch between the event name, matcher, or an executable permission issue.
- Large file read gets truncated
Very large files get truncated when read, since the full content would consume an outsized share of the context window on its own.
- Git commands keep prompting for permission
Git commands go through the same permission system as any shell command — without a specific rule, each one (or each new git subcommand) can prompt individually.
- Path issues on Windows
Path-related errors on Windows are usually a mismatch between Windows-style and Unix-style paths, especially when WSL is involved.
- Configuring Claude Code behind a corporate proxy
A corporate network proxy that intercepts outbound HTTPS can block Claude Code's API connection unless it's explicitly configured to route through it.
- Unexpectedly high token usage
A session using far more tokens than expected is usually explained by large file reads, verbose tool output, or a long conversation that hasn't been compacted.
This reference is free. The toolkit is the shortcut.
Every pattern here, plus the full command, hook, and template pack — one $79/month subscription.
Subscribe to the toolkit — $79/mo