Verified
New (recent release)
Unverified
Builder ▸ claude -p ""

Keys & Shortcuts

General Controls

Ctrl C / DCancel input / Exit session
Ctrl LClear screen + full redraw
Ctrl OToggle between normal and verbose transcript; in a collapsed thinking group, shows the full thinking; focus view toggled with /focus
Ctrl RHistory picker — searches all projects by default; press Ctrl S to narrow to current project or session
Ctrl GOpen prompt in external editor
Ctrl BBackground running task
Ctrl TToggle task list; in claude agents: pin/unpin background session (pinned sessions stay alive when idle, restart in place for CC updates)
Ctrl VPaste image from clipboard
Ctrl BackspaceDelete previous word (Windows)
Ctrl UClear entire input buffer (Ctrl+Y to restore)
Ctrl YRestore input buffer cleared by Ctrl+U
Ctrl X KKill background agents (chord, x2)
Esc EscRewind / undo state

Mode & Input

TabCycle permission modes
\ PSwitch model
\ TToggle thinking on/off
\ EnterNewline (quick)
Ctrl JNewline (control seq)
Ctrl A / Ctrl EMove to start/end of current logical line (multiline input)

Session Picker Nav

P / RPreview / Rename session
/Search sessions
A / BFilter All projects / Current branch
Ctrl AShow all projects in /resume picker (picker defaults to current dir)

Transcript View

[Dump transcript to scrollback
vOpen transcript in editor
?Show keyboard shortcuts in transcript nav view
{ / }Jump between user prompts in transcript nav view
v (nav view)Toggle shortcut panel in transcript nav view

Vim Mode

v / VVisual / visual-line selection mode (NORMAL mode)
/ (NORMAL mode)Open reverse history search (like Ctrl+R), matching bash/zsh vi-mode

Slash Commands (Core)

Session Management

/clearClear conversation context
/compact [focus]Compact context to free space
/resumeDisplay session picker menu; background sessions (from --bg or agent view) now appear alongside interactive sessions, marked with bg; offers to summarize stale large sessions before re-reading
/rename [name]Name current session
/branch [name]Branch convo (formerly /fork)
/usageUnified usage view (cost + stats tabs); per-category limits breakdown (skills, subagents, plugins, per-MCP-server cost); /cost and /stats are shortcuts that open the relevant tab
/usage-creditsRequest extra usage allowance; old name /extra-usage still works; accessible from Remote Control clients
/contextVisualize context window (grid)
/diffInteractive diff viewer; detail view scrollable with arrows, j/k, PgUp/PgDn, Space, Home/End
/copyCopy last response
/exportExport conversation
/recapSummarize away context; auto-triggered on return or invoke manually
/rewind / /undoRewind conversation to previous state; /undo is alias; supports resuming a conversation from before /clear was run
/goal [condition]Set a completion condition; Claude keeps working across turns until met; works in interactive, -p, and Remote Control; shows live elapsed/turns/tokens overlay
/cdMove session to a new working directory without breaking the prompt cache mid-session

Configuration

/configOpen settings interface; search matches option values; Enter and Space change the selected setting; Esc saves and closes
/config key=valueSet any setting from the prompt (e.g. /config thinking=false) — works in interactive, -p, and Remote Control
/config --helpList all available shorthand keys for /config key=value
/model [model]Switch model; selection saved as default for new sessions; claude-sonnet-5 is now the default (native 1M-token context); press s in picker to switch for current session only; warns before switching mid-conversation; startup header shows model pin source; lists models from gateway's /v1/models when ANTHROPIC_BASE_URL points at a compatible gateway; org-restricted models show "restricted by your organization's settings"
/effort [level]Set effort (low/med/high/xhigh/auto); no args opens interactive slider (Faster/Smarter labels); xhigh is Opus 4.8 only; confirms when chosen level will persist as the default for new sessions
/fast [on/off]Toggle Fast mode
/permissionsView/update tool permissions
/color [color]Set prompt-bar color; bare /color with no args picks a random session color
/keybindingsCustomize keyboard shortcuts
/terminal-setupConfigure terminal integration; configures scroll sensitivity and disables GPU acceleration in VS Code, Cursor, and Devin Desktop to prevent garbled-text rendering; enables iTerm2 clipboard access for /copy
/themeChange color theme; create/switch named custom themes, hand-edit ~/.claude/themes/; plugins ship via themes/ dir; includes "Auto (match terminal)"
/tui [fullscreen]Switch to flicker-free fullscreen TUI rendering in same conversation
/focusToggle focus view (fullscreen/TUI mode)
/release-notesInteractive version picker for release notes
/scroll-speedTune mouse wheel scroll speed with a live preview

Slash Commands (Tools)

Development Tools

/initCreate CLAUDE.md memory
/memoryEdit CLAUDE.md files directly
/mcpManage MCP servers; shows tool count for each connected server and flags servers with 0 tools
/hooksManage event lifecycle hooks
/install-github-appInstall the GitHub App; GitHub Actions workflow and repo secret setup is optional — install just the GitHub App and skip the workflow/secret steps
/skillsList available active skills; includes type-to-filter search box for long lists
/chromeChrome browser integration; pick which connected browser to use via /chrome → "Select browser…", or in-chat when a browser action runs with multiple connected
/add-dir <path>Add working directory to context
/reload-pluginsHot-reload local plugins; auto-installs missing dependencies from added marketplaces
/reload-skillsRe-scan skill directories without restarting the session
/plugin listList installed plugins; --enabled/--disabled filters; search bar available when browsing marketplace plugins; surfaces recently-unused plugins for cleanup

Special & Utility

/btw <query>Side question (does not alter context); press c to copy raw markdown answer to clipboard; ←/→ to step through earlier answers
/plan [desc]Switch to Plan Mode directly
/loop [interval]Schedule recurring background task
/proactiveAlias for /loop — schedule recurring background task
/scheduleCloud scheduled tasks
/workflowsView and manage dynamic workflow runs; workflows orchestrate work across tens to hundreds of background agents for large, complex tasks; press f in the agent detail view to filter by status
ultracodePrompt trigger keyword — type in the prompt to start a dynamic workflow; highlighted in violet in the prompt input
/voicePush-to-talk voice prompting
/doctorDiagnose installation/env issues; press f to auto-fix; openable while Claude is responding; shows result of last update attempt; lists npm auto-update fix hints
/pr-comments [PR]Fetch GitHub PR comments
/security-reviewSecurity analysis of uncommitted code
/powerupInteractive lessons teaching CC features with animated demos
/stats / /insightsShortcut to /usage stats tab / HTML sessions report
/desktopContinue session in Desktop app
/remote-controlBridge session to claude.ai/code
/team-onboardingGenerate teammate ramp-up guide from local CC usage

CLI & Headless Flags

Core Execution

claudeStart interactive REPL
claude -p "q"Headless execution (scripting)
claude -c / -r "n"Continue last / Resume specific
claude --from-prResume session linked to a PR; accepts GitHub, GitLab MR, Bitbucket PR, and GitHub Enterprise URLs
claude --fork-sessionFork existing session on resume
claude ultrareview [target]Run /ultrareview non-interactively from CI or scripts; prints findings to stdout; use --json for raw output
claude project purge [path]Delete all Claude Code state for a project (transcripts, tasks, file history, config entry); supports --dry-run, -y/--yes, -i/--interactive, and --all
claude agentsAgent view (Research Preview) — single list of every CC session; running, blocked on you, or done; type ! <cmd> to launch a shell command as a background session you can attach/detach; --cwd <path> scopes list to a directory; --json lists live sessions as JSON (includes waitingFor, id, and state fields); --all flag includes completed sessions; dispatch flags for background sessions: --add-dir, --settings, --mcp-config, --plugin-dir, --permission-mode, --model, --effort, --agent, --dangerously-skip-permissions
claude --bg --exec '<cmd>'Run a shell command as a background session you can attach to and detach from; equivalent to typing ! <cmd> inside claude agents

Headless & CI Flags

--bareMinimal headless (no hooks/LSP)
--channelsPermission relay / MCP push msg; now works with console (API key) auth — console orgs with managed settings must set channelsEnabled: true
--output-format jsonStructured JSON output
--json-schemaStrict JSON schema validation
--dangerously-skip-permissionsSkip all approval prompts; bypasses prompts for writes to .claude/, .git/, .vscode/, shell config files, and other protected paths (catastrophic removal commands still prompt)
--exclude-dynamic-system-prompt-sectionsExclude dynamic prompt sections in print mode for cross-user prompt caching

State & Behavior

-w / --worktreeStart in isolated git worktree
--effortSet effort level (low/med/high/xhigh); xhigh is Opus 4.8 only
--modelOverride specific model at launch
--fallback-modelFallback model for when the primary model is overloaded or unavailable; applies to interactive sessions and headless (-p) mode; configure up to three in order via fallbackModel JSON setting
--thinking disabledDisable thinking on models that think by default; equivalent to MAX_THINKING_TOKENS=0 or toggling the per-model thinking switch
--permission-mode planStart in read-only plan mode
--max-budget-usdSet cost cap for session
--remoteStart web-accessible session
--remote-controlEnable Remote Control mode; bridges CLI session to claude.ai/code
--remote-control-session-name-prefixCustom hostname prefix for Remote Control session names
--plugin-dir <path>Load plugins from a directory or .zip archive at launch
--plugin-url <url>Fetch a plugin .zip archive from a URL for the current session
--safe-modeStart with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled for troubleshooting; paired with CLAUDE_CODE_SAFE_MODE env var

Config & Environment

Files & Priority

~/.claude/settings.jsonUser global defaults
.claude/settings.jsonProject shared (committed)
.claude/settings.local.jsonProject local only (gitignored)
~/.claude.jsonOAuth, MCP, state configuration
.mcp.jsonProject-specific MCP servers
managed-settings.d/Drop-in policy fragments (alphabetical merge)

Key JSON Settings

modelOverridesMap model picker to custom IDs
autoMemoryDirectoryCustom auto-loaded memory dir
worktree.sparsePathsSparse checkout dirs for agents
worktree.baseReffresh (default) branches worktrees from origin/<default>; head branches from local HEAD — applies to --worktree, EnterWorktree, and agent-isolation
worktree.bgIsolationSet to "none" to disable worktree isolation for background sessions
agentDefault agent name for dispatched sessions in claude agents; override per-session with --agent <name>
fallbackModelConfigure up to three fallback models tried in order when the primary model is overloaded or unavailable; paired with --fallback-model CLI flag
showThinkingSummariesShow thinking summaries in interactive sessions (default: false)
languagePin session-title language; titles auto-detect the conversation language by default — set to a BCP 47 tag (e.g. en, ja) to override
disableSkillShellExecutionDisable inline shell execution in skills and custom slash commands
skillOverridesoff hides skill from model and /; user-invocable-only hides from model only; name-only collapses description
forceRemoteSettingsRefreshBlock startup until remote managed settings are freshly fetched; fail-closed on fetch failure
statusLine.refreshIntervalRe-run status line command every N seconds
workspace.git_worktreeStatus line JSON input field — set when current directory is inside a linked git worktree
effort.level / thinking.enabledHooks and status line stdin JSON input fields — current effort level and thinking state
autoScrollEnabledDisable conversation auto-scroll in fullscreen mode
wheelScrollAccelerationEnabledSet to false to disable mouse-wheel scroll acceleration in fullscreen mode
tuiDefault TUI mode; set to "fullscreen" for flicker-free alt-screen rendering
sandbox.network.deniedDomainsBlock specific domains even when a broader allowedDomains wildcard would otherwise permit them
sandbox.bwrapPath / sandbox.socatPathCustom bubblewrap and socat binary paths (Linux/WSL managed settings)
sandbox.allowAppleEventsOpt-in macOS setting to allow sandboxed commands to send Apple Events
sandbox.credentialsBlock sandboxed commands from reading credential files and secret environment variables
wslInheritsWindowsSettingsWSL sessions inherit Windows-side managed settings (policy key)
parentSettingsBehaviorAdmin-tier key: first-wins (default) or merge — opts SDK managedSettings parent tier into policy merge
"$defaults" (autoMode)Include in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list
autoMode.hard_denyAuto mode classifier rules that block unconditionally regardless of user intent — unlike autoMode.soft_deny, cannot be overridden by allow exceptions
autoMode.classifyAllShellRoute all Bash/PowerShell commands through the auto-mode classifier instead of only arbitrary-code-execution patterns
"*" (deny rule glob)Glob patterns supported in deny rule tool-name position; "*" denies all tools; allow rules reject non-MCP globs; unknown tool names in deny rules warn at startup
Tool(param:value)Permission rule syntax to match a tool's input parameters (supports * wildcard); e.g. Agent(model:opus) to block Opus subagents
attribution.sessionUrlSet to false to omit the claude.ai session link from commits and PRs in web and Remote Control sessions
prUrlTemplatePoint footer PR badge at a custom code-review URL instead of github.com
footerLinksRegexesArray of regex patterns for regex-matched link badges in the footer row; configurable via user or managed settings
channelsEnabledSet to true in managed settings to allow --channels with console (API key) auth
allowAllClaudeAiMcpsEnterprise managed setting — load claude.ai cloud MCP connectors alongside managed-mcp.json
pluginSuggestionMarketplacesManaged setting — allowlist org marketplaces whose plugins may be suggested via context-aware tips
requiredMinimumVersion / requiredMaximumVersionManaged settings — CC refuses to start if its version is outside the allowed range; directs user to an approved version
disableBundledSkillsHide bundled skills, workflows, and built-in slash commands from the model; paired with CLAUDE_CODE_DISABLE_BUNDLED_SKILLS env var
enforceAvailableModelsManaged setting — when enabled, the availableModels allowlist also constrains the Default model (a Default that resolves to a disallowed model falls back to the first allowed model); user or project settings cannot widen a managed availableModels list
teammateMode: "iterm2"Use iTerm2 as the teammate backend; shows a warning when auto mode cannot find the it2 CLI
awsAuthRefreshConfigures the "Claude Platform on AWS — refresh credentials" option in /login
respondToBashCommandsSet to false to keep ! bash command output as context-only; default behavior is for Claude to respond automatically

Environment Variables

ANTHROPIC_API_KEYAuth override
ANTHROPIC_MODELDefault model override
CLAUDE_CODE_EFFORT_LEVELDefault effort (low/med/high)
MAX_THINKING_TOKENSCap extended thinking limits; set to 0 to disable thinking on models that think by default via the Claude API
CLAUDE_CODE_PLUGIN_SEED_DIRMultiple plugin seed directories
IS_DEMODemo mode (hides email/org)
CLAUDECODEDetects if running inside CC shell; also injected into stdio MCP server subprocess environments
CLAUDE_CODE_SUBPROCESS_ENV_SCRUBStrip credentials from subprocesses; enables PID namespace isolation on Linux (sandboxing)
CLAUDE_CODE_MCP_SERVER_NAME / CLAUDE_CODE_MCP_SERVER_URLInject server identity into MCP headerHelper scripts
CLAUDE_CODE_NO_FLICKER=1Opt into flicker-free alt-screen rendering with virtualized scrollback
MCP_CONNECTION_NONBLOCKING=trueSkip MCP connection wait in headless (-p) mode
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILUREKeep marketplace cache when git pull fails (offline envs)
CLAUDE_CODE_USE_MANTLE=1Enable Amazon Bedrock powered by Mantle
CLAUDE_CODE_PERFORCE_MODEWhen set, Edit/Write/NotebookEdit fail on read-only files with a p4 edit hint
CLAUDE_CODE_SCRIPT_CAPSLimit per-session script invocations (subprocess sandboxing)
CLAUDE_CODE_CERT_STORE=bundledUse only bundled CAs; by default OS CA cert store is trusted (enterprise TLS proxy support)
OTEL_LOG_USER_PROMPTS / OTEL_LOG_TOOL_DETAILS / OTEL_LOG_TOOL_CONTENTOTEL beta tracing: opt in to emit sensitive span attributes (prompts/tool details/tool content)
OTEL_LOG_ASSISTANT_RESPONSESOpt in to emitting the model's response text as an OTEL log event (claude_code.assistant_response); when unset, follows OTEL_LOG_USER_PROMPTS; set to 0 to log prompts but not responses
ENABLE_PROMPT_CACHING_1HOpt into 1-hour prompt cache TTL (API key, Bedrock, Vertex, Foundry)
FORCE_PROMPT_CACHING_5MForce 5-minute prompt cache TTL
CLAUDE_CODE_ENABLE_AWAY_SUMMARYForce-enable recap/away summary (useful when telemetry disabled)
CLAUDE_CODE_USE_POWERSHELL_TOOLEnable PowerShell tool; on Windows opt in/out, on Linux/macOS requires pwsh on PATH
OTEL_LOG_RAW_API_BODIESEmit full API request/response bodies as OTEL log events for debugging
TRACEPARENT / TRACESTATEDistributed trace context injected from environment for SDK/headless sessions
CLAUDE_CODE_FORK_SUBAGENT=1Enable forked subagents on external (non-Anthropic) builds; also works in non-interactive sessions
DISABLE_UPDATESBlock all update paths including manual claude update; stricter than DISABLE_AUTOUPDATER
CLAUDE_CODE_HIDE_CWDHide working directory in the startup logo
ANTHROPIC_BEDROCK_SERVICE_TIERSelect a Bedrock service tier (default, flex, or priority); sent as the X-Amzn-Bedrock-Service-Tier header
CLAUDE_CODE_FORCE_SYNC_OUTPUT=1Force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs eat)
CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATEOn Homebrew or WinGet installs, runs the upgrade command in the background and prompts to restart when set
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1Opt in to listing gateway /v1/models in the /model picker when using a custom ANTHROPIC_BASE_URL gateway (was automatic in v2.1.126–v2.1.128)
CLAUDE_CODE_SESSION_IDSession ID injected into Bash tool subprocess environment and stdio MCP server subprocess environments, matching the session_id passed to hooks
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1Opt out of the fullscreen alternate-screen renderer; keeps conversation in the terminal's native scrollback
CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELRe-enable the session quality survey for enterprises capturing responses through OpenTelemetry
CLAUDE_PROJECT_DIRInjected into MCP stdio server environments; referenceable as ${CLAUDE_PROJECT_DIR} in plugin configs
CLAUDE_CODE_PLUGIN_PREFER_HTTPSClone GitHub plugin sources over HTTPS instead of SSH; for environments without a GitHub SSH key
ANTHROPIC_WORKSPACE_IDWorkload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one
OTEL_METRICS_INCLUDE_ENTRYPOINT=trueOpt in to including session entrypoint as an OpenTelemetry metric attribute (app.entrypoint)
COLUMNS / LINESInjected into status line command subprocesses so scripts can size output to the terminal width
CLAUDE_CODE_ENABLE_AUTO_MODE=1Opt in to Auto mode on Bedrock, Vertex, and Foundry for Opus 4.7 and Opus 4.8
OTEL_RESOURCE_ATTRIBUTESStandard OTEL env var — values are now used as labels on metric datapoints, so you can slice usage metrics by custom dimensions (e.g. team, repo)
CLAUDE_CODE_SAFE_MODEStart with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled; paired with --safe-mode CLI flag
CLAUDE_CODE_DISABLE_BUNDLED_SKILLSHide bundled skills, workflows, and built-in slash commands from the model; paired with disableBundledSkills JSON setting
API_FORCE_IDLE_TIMEOUT=0Opt out of the default 5-minute idle timeout on Vertex/Foundry; stalled streams will hang indefinitely instead of aborting
CLAUDE_CLIENT_PRESENCE_FILEPath to a marker file — while the file exists, mobile push notifications are suppressed (signals you're at the machine)
CLAUDE_CODE_MAX_RETRIESCaps retry attempts at 15; for unattended sessions use CLAUDE_CODE_RETRY_WATCHDOG instead
CLAUDE_CODE_RETRY_WATCHDOGRetry watchdog for unattended sessions; replaces high CLAUDE_CODE_MAX_RETRIES values
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUTOverride the default 5-minute idle timeout for remote MCP tool calls; stalled calls abort with an error instead of blocking indefinitely
CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1Disable automatic memory-pressure reaping of idle background shell commands
CLAUDE_CODE_DISABLE_MOUSE_CLICKSDisable mouse click/drag/hover in fullscreen mode while keeping wheel scroll active

Skills & Agent Frontmatter

Built-in Skills & Locations

/code-review [effort]Code review; pass --fix to apply findings to working tree (surfacing reuse/simplification/efficiency suggestions); pass --comment to post findings as inline PR comments; optional effort level (e.g. /code-review high)
/simplifyCleanup-only review (reuse, simplification, efficiency, altitude) applied to working tree; does not run the full /code-review --fix bug hunt
/batchLarge parallel changes (5-30 worktrees)
/claude-apiLoad API + SDK reference into context
/less-permission-promptsScan transcripts for read-only Bash/MCP calls; propose settings.json allowlist
/ultrareview [PR#]Cloud code review via parallel agents; no args for current branch, PR# for specific PR
/dataviz Chart and dashboard design guidance with a runnable color-palette validator
.claude/skills/<name>/Project skill directory; auto-loaded without marketplace; nested .claude/skills/ directories also load when working on files there — on a name clash, the nested skill appears as <dir>:<name>
~/.claude/skills/<name>/Global personal skill directory
plugin: bin/Plugin executables in bin/ invocable as bare commands from Bash tool

Skill YAML Frontmatter

descriptionAuto-invocation trigger string
effortOverride effort level specifically for skill
allowed-toolsSkip permission prompts for skill
disallowed-toolsRemove tools from the model while the skill or slash command is active
context: forkRun skill logic in an isolated subagent
$ARGUMENTSUser input placeholder replacement
\$Escape to include a literal $ before a digit in skill command bodies
$FILE_PATHFile path resolution (hook strings only)
${CLAUDE_SKILL_DIR}Reference the skill's own directory
${CLAUDE_EFFORT}Current effort level — available in hooks, Bash tool commands, and skill content
! 'cmd'Dynamic bash execution context injection
keep-coding-instructionsControl plugin output style for coding tasks
monitors (plugin manifest)Background monitor support for plugins; auto-arms at session start or on skill invoke
defaultEnabled: false (plugin manifest)Plugin starts disabled by default; enable with /plugin or claude plugin enable; dependency plugins of enabled plugins are still enabled automatically

Agent YAML Frontmatter

permissionModedefault / acceptEdits / plan / bypass
isolation: worktreeRun agent in isolated git worktree
memory: user|projectPersistent memory storage scope
background: trueRun entirely as background task
initialPromptAuto-submit first turn on spawn
SendMessageAuto-resumes stopped agents
hooks:Agent lifecycle hooks; fire when running as main-thread agent via --agent
mcpServersMCP servers for the agent; now loaded for main-thread agent sessions via --agent

Plugin CLI Commands

claude plugin init <name>Scaffold a new plugin in .claude/skills
claude plugin tagCreate release git tags for plugins with version validation
claude plugin pruneRemove orphaned auto-installed plugin dependencies; plugin uninstall --prune cascades
claude plugin details <name>Show a plugin's component inventory and projected per-session token cost

Memory, Hooks & MCP

Rules & Auto-Memory

.claude/rules/*.mdProject specific structural rules
~/.claude/rules/*.mdUser specific global rules
paths: (frontmatter)Path-specific rule triggers
@path/to/fileImport file directly in CLAUDE.md
.../memory/MEMORY.mdTopic files, automatically loaded

Event Hooks

PreToolUse / PostToolUseIntercept before/after tool execution; PostToolUse hook input includes duration_ms; can replace tool output via hookSpecificOutput.updatedToolOutput for all tools
PostToolUseFailureFires when a tool call fails; hook input includes duration_ms
SessionStartFires on session start/resume; return reloadSkills: true to re-scan skill directories; set hookSpecificOutput.sessionTitle to name the session
SubagentStart / Stop / SubagentStopLifecycle triggers for agent spawning; sub-agents can spawn their own sub-agents (up to 5 levels deep); Stop and SubagentStop hook input includes background_tasks and session_crons fields; Stop and SubagentStop can return hookSpecificOutput.additionalContext to give Claude feedback and continue the turn
SessionEndRun cleanup script when session closes
CwdChanged / FileChangedReact to directory or file changes
TaskCreatedFires when task created via TaskCreate
if: (hook field)Conditional execution (permission rule syntax)
"Bash,PowerShell" (hook matcher)Comma-separated tool type names in a hook's matcher field — fires the hook on any of the listed types; e.g. "Bash,PowerShell" fires on both Bash and PowerShell commands
mcp__name__.* (hook matcher pattern)Hyphenated hook matcher identifiers exact-match — use mcp__name__.* glob to match all tools from a hyphenated MCP server (e.g. mcp__brave-search__.*)
PermissionDeniedFires after auto mode classifier denials; return {retry:true} to allow retry
"defer" (PreToolUse)Headless sessions pause at tool call; resume with -p --resume to re-evaluate
UserPromptSubmitFires on user prompt submit; supports hookSpecificOutput.sessionTitle to set session title
PreCompactFires before compaction; block by exiting with code 2 or returning {"decision":"block"}
type: "mcp_tool" (hook)Hook directly invokes an MCP tool
args: string[] (hook field)Exec form — spawns command directly without a shell; path placeholders never need quoting
continueOnBlock (PostToolUse)Set to true to feed the hook's rejection reason back to Claude and continue the turn
terminalSequence (hook output)Hook JSON output field — emit desktop notifications, window titles, and bells without a controlling terminal
MessageDisplayFires as assistant message text is displayed; hooks can transform or hide the output
EnterWorktreeFires when entering a worktree; can now switch between Claude-managed worktrees mid-session
Notification Fires when a background agent session needs input or finishes; events: agent_needs_input / agent_completed

MCP Servers

claude mcp list/add/removeStandard MCP server management; claude mcp list/get show unapproved .mcp.json servers as ⏸ Pending approval instead of auto-connecting
claude mcp login/logout <name>Authenticate or de-authenticate an MCP server from the CLI without opening /mcp; --no-browser redirects auth code to stdin for SSH completion
claude mcp serveRun Claude Code as an MCP server
--transport http/stdio/sseProtocol connection methods
ElicitationServers can request input mid-task
_meta["anthropic/maxResultSizeChars"]Override max MCP result size per call (up to 500K chars)
alwaysLoad (MCP server config)When true, all tools from that server skip tool-search deferral and are always available

Auth Commands

claude auth login/logoutSession authentication control; auth login accepts OAuth code pasted in terminal when browser callback can't reach localhost (WSL2, SSH, containers)
claude auth statusCheck current authentication validity