Claude Code Documentation Map
This is a comprehensive map of all Claude Code documentation pages with their headings, designed for easy navigation by LLMs.Note: This file is auto-generated by GitHub Actions. Do not edit manually. Last updated: 2026-09-30 17:33:07 UTC
Document Structure
This map uses a hierarchical structure:- ## marks documentation groups (e.g., ‘Getting started’)
- ### marks individual documentation pages
- ### Parent > Child marks a nested group; #### marks its pages
- Nested bullets show the heading structure within each page
- Each page title links to the full documentation
Getting started
overview
- Get started
- What you can do
- Use Claude Code everywhere
- Next steps
quickstart
- Before you begin
- Step 1: Install Claude Code
- Step 2: Log in to your account
- Step 3: Start your first session
- Step 4: Ask your first question
- Step 5: Make your first code change
- Step 6: Use Git with Claude Code
- Step 7: Fix a bug or add a feature
- Step 8: Test out other common workflows
- Essential commands
- Pro tips for beginners
- What’s next?
- Getting help
changelog
- (No headings found)
Core concepts
how-claude-code-works
- The agentic loop
- Models
- Tools
- What Claude can access
- Environments and interfaces
- Execution environments
- Interfaces
- Work with sessions
- Work across branches
- Resume or fork sessions
- The context window
- Context Claude Code adds on its own
- When context fills up
- Manage context with skills and subagents
- Stay safe with checkpoints and permissions
- Undo changes with checkpoints
- Control what Claude can do
- Work effectively with Claude Code
- Ask Claude Code for help
- It’s a conversation
- Interrupt and steer
- Delegate, don’t dictate
- What’s next
features-overview
- Overview
- Match features to your goal
- Build your setup over time
- Compare similar features
- Understand how features layer
- Combine features
- Understand context costs
- Context cost by feature
- Understand how features load
- Learn more
claude-directory
- Explore the directory
- What’s not shown
- Choose the right file
- File reference
- Frontmatter fields by file
- Troubleshoot configuration
- Application data
- Cleaned up automatically
- Session scratchpad directory
- Kept until you delete them
- Plaintext storage
- Clear local data
- Related resources
context-window
- What the timeline shows
- What survives compaction
- When your context fills up
- Check your own session
- Related resources
prompt-caching
- How the cache is organized
- Where the cache lives
- Actions that invalidate the cache
- Switching models
- Changing effort level
- Turning on fast mode
- Connecting or removing an MCP server
- Enabling or disabling a plugin
- Plugin components that keep the cache
- Plugins that provide MCP servers
- Code intelligence plugins
- When plugin changes apply
- Plugins you enable and then disable in one session
- Denying an entire tool
- Compacting the conversation
- Accumulating many images
- Upgrading Claude Code
- Actions that keep the cache
- Editing files in your repository
- Editing CLAUDE.md mid-session
- Changing permission mode
- Changing output style
- Invoking skills and commands
- Running
/recap - Rewinding the conversation
- Resuming a session
- Cache lifetime
- Which TTL each request gets
- Choose the TTL yourself
- Cache scope
- Check cache performance
- Subagents and the cache
- Disable prompt caching
- Related resources
Use Claude Code
memory
- CLAUDE.md vs auto memory
- CLAUDE.md files
- When to add to CLAUDE.md
- Choose where to put CLAUDE.md files
- Set up a project CLAUDE.md
- Write effective instructions
- Audit your instruction files
- Import additional files
- How CLAUDE.md files load
- Load from additional directories
- Organize rules with
.claude/rules/- Set up rules
- Path-specific rules
- Rule frontmatter reference
- Share rules across projects with symlinks
- User-level rules
- Manage CLAUDE.md for large teams
- Deploy organization-wide CLAUDE.md
- Exclude specific CLAUDE.md files
- AGENTS.md
- When Claude Code reads AGENTS.md
- Choose which instruction files load
- When AGENTS.md support is unavailable
- Where AGENTS.md differs from CLAUDE.md
- Remove an earlier AGENTS.md workaround
- Share one file with other coding tools
- Migrate instructions from other tools
- Auto memory
- Enable or disable auto memory
- Storage location
- How it works
- Audit and edit your memory
- View and edit with
/memory - Troubleshoot memory issues
- Claude isn’t following my CLAUDE.md
- My AGENTS.md isn’t loading
- I don’t know what auto memory saved
- My CLAUDE.md is too large
- Instructions seem lost after
/compact
- Related resources
sessions
- Resume a session
- What a resumed session restores
- Permission mode on resume
- Resume in plan mode with
-p
- Resume in plan mode with
- Permission mode on resume
- Resume from a summary
- Where the session picker looks
- What a resumed session restores
- Name your sessions
- Use the session picker
- Branch a session
- Manage context within a session
- Export and locate session data
- Access conversations from scripts
- Where transcripts are stored
- Delete session data
- Name the project directory yourself
- See also
common-workflows
- Prompt recipes
- Understand new codebases
- Get a quick codebase overview
- Find relevant code
- Fix bugs efficiently
- Refactor code
- Work with tests
- Create pull requests
- Handle documentation
- Work in notes and non-code folders
- Work with images
- Reference files and directories
- Run Claude on a schedule
- Ask Claude about its capabilities
- Example questions
- Understand new codebases
- Resume previous conversations
- Run parallel sessions with worktrees
- Plan before editing
- Delegate research to subagents
- Pipe Claude into scripts
- Next steps
prompt-library
- What makes these prompts work
- Where these come from
- Related resources
best-practices
- Give Claude a way to verify its work
- Explore first, then plan, then code
- Provide specific context in your prompts
- Provide rich content
- Configure your environment
- Write an effective CLAUDE.md
- Configure permissions
- Use CLI tools
- Connect MCP servers
- Set up hooks
- Create skills
- Create custom subagents
- Install plugins
- Communicate effectively
- Ask codebase questions
- Let Claude interview you
- Manage your session
- Course-correct early and often
- Manage context aggressively
- Use subagents for investigation
- Rewind with checkpoints
- Resume conversations
- Automate and scale
- Run non-interactive mode
- Run multiple Claude sessions
- Fan out across files
- Run autonomously with auto mode
- Add an adversarial review step
- Avoid common failure patterns
- Develop your intuition
- Related resources
Platforms and integrations
platforms
- Where to run Claude Code
- Connect your tools
- Work when you are away from your terminal
- Related resources
- Platforms
- Integrations
- Remote access
remote-control
- Requirements
- Start a Remote Control session
- Check connection status
- Connect from another device
- What connected devices see
- Enable Remote Control for all sessions
- Resume sessions after stopping the server
- Connection and security
- Trusted Devices
- Enable Trusted Devices for a Team or Enterprise organization
- What members see
- Manage enrolled devices
- Remote Control vs cloud sessions
- Mobile push notifications
- Limitations
- Troubleshooting
- “Remote Control requires a claude.ai subscription”
- “Remote Control requires a full-scope login token”
- “Unable to determine your organization for Remote Control eligibility”
- “Remote Control isn’t enabled for this account”
- “Couldn’t verify Remote Control eligibility”
- “Remote Control requires feature-flag evaluation”
- “Remote Control is only available when using Claude via api.anthropic.com”
- “Remote Control is disabled by your organization’s policy”
- “Couldn’t verify your organization’s policy for remote control”
- “Remote credentials fetch failed”
- “Couldn’t reconnect to your Remote Control session”
- “Previous session is unavailable — run /remote-control to start a new one”
- “Remote Control got an unexpected server response”
- “Your organization requires Trusted Devices for Remote Control, but this device is not enrolled”
- “session expired for trusted-device check”
- Related resources
claude-projects
- When to use a project
- When something else fits better
- How a project is organized
- Create a project
- Check the prerequisites
- Start a new project from scratch
- Start from an existing cloud session
- Set up GitHub access
- Work in a project
- Your first batch
- Send work and read results
- Review a thread’s pull request
- See what needs you in Overview
- Open a thread when you need control
- Choose models and let Claude manage context
- Tune how Claude runs a project
- Unblock a thread waiting on approval
- Run a thread on your own computer
- Give a project standing context
- Write project instructions
- Decide which repositories to add
- Add files and folders
- What threads pick up from your repositories
- Choose an environment for threads
- Get skills, plugins, connectors, and tools into threads
- Project settings reference
- Pause, archive, or delete a project
- Usage and cost
- What draws on your plan
- See and reduce a project’s usage
- How projects relate to other Claude Code features
- Limitations
- Troubleshooting
- A thread looks stuck
- Threads guessed or stalled instead of asking
- Claude hasn’t responded
- Repository access errors
- A thread hit the usage limit
- Additional usage credits are required
- Lost contact with your folder
- Other messages
- Related resources
mobile
- Get the app
- Work from your phone
- Start and monitor cloud sessions
- Continue a local session with Remote Control
- Get push notifications
- Limitations
- Related resources
chrome
- Capabilities
- Prerequisites
- Get started in the CLI
- Install the extension when Claude asks
- Enable Chrome by default
- Manage site permissions
- Browser tools in plan mode
- Example workflows
- Test a local web application
- Debug with console logs
- Automate form filling
- Upload files to web pages
- Draft content in Google Docs
- Extract data from web pages
- Run multi-site workflows
- Record a demo GIF
- Save screenshots to disk
- Troubleshooting
- Extension not detected
- Browser not responding
- Connection drops during long sessions
- Windows-specific issues
- Common error messages
- See also
computer-use
- What you can do with computer use
- When computer use applies
- Enable computer use
- Approve apps per session
- How Claude works on your screen
- One session at a time
- Apps are hidden while Claude works
- Screenshots are downscaled automatically
- Stop at any time
- Safety and the trust boundary
- Example workflows
- Validate a native build
- Reproduce a layout bug
- Test a simulator flow
- Differences from the Desktop app
- Troubleshooting
- “Computer use is in use by another Claude session”
- macOS permissions prompt keeps reappearing
computer-usedoesn’t appear in/mcp
- See also
vs-code
- Prerequisites
- Install the extension
- Get started
- Use the prompt box
- Reference files and folders
- Paste text
- Resume past conversations
- Resume cloud sessions from Claude.ai
- Check account and usage
- Customize your workflow
- Choose where Claude lives
- Run multiple conversations
- Organize sessions into groups
- Filter the sessions list
- Switch to terminal mode
- Manage plugins
- Install plugins
- Share a plugin install link
- Manage marketplaces
- Automate browser tasks with Chrome
- VS Code commands and shortcuts
- Launch a VS Code tab from other tools
- Configure settings
- Extension settings
- Use a screen reader
- Use the chat panel from the keyboard
- VS Code extension vs. Claude Code CLI
- Rewind with checkpoints
- Run CLI in VS Code
- Switch between extension and CLI
- Include terminal output in prompts
- Monitor background processes
- Connect to external tools with MCP
- Work with git
- Create commits and pull requests
- Use third-party providers
- Security and privacy
- The built-in IDE MCP server
- Fix common issues
- Extension won’t install
- Spark icon not visible
- Cmd+Esc does nothing on macOS
- Claude Code never responds
- Uninstall the extension
- Next steps
jetbrains
- Supported IDEs
- Features
- Installation
- Usage
- From your IDE
- From external terminals
- Configuration
- Claude Code settings
- Plugin settings
- General settings
- ESC key configuration
- Special configurations
- Remote development
- WSL configuration
- Allow WSL2 traffic through Windows Firewall
- Switch WSL2 to mirrored networking
- Troubleshooting
- Plugin not working
- IDE not detected
- Command not found
- Security considerations
- The built-in IDE MCP server
slack
- Use cases
- Prerequisites
- Setting up Claude Code in Slack
- How it works
- Automatic detection
- Context gathering
- Session flow
- User interface elements
- Message actions
- Repository selection
- Access and permissions
- User-level access
- Workspace-level access
- Channel-based access control
- What’s accessible where
- Best practices
- Writing effective requests
- When to use Slack vs. web
- Troubleshooting
- “Claude Code is not enabled for your account”
- Sessions not starting
- Sessions from a Claude Tag channel fail to start
- Repository not showing
- Wrong repository selected
- Authentication errors
- Current limitations
- Related resources
claude-tag
- (No headings found)
Platforms and integrations > Claude Code in the cloud
web-quickstart
- How sessions run
- Compare ways to run Claude Code
- Connect GitHub
- Connect from your terminal
- Remove the
/web-setuptoken
- Remove the
- Connect from your terminal
- Start a task
- Pre-fill sessions
- Review and iterate
- Troubleshoot setup
- No repositories appear after connecting GitHub
- The page only shows a GitHub login button
- “Claude Code isn’t available on your account”
/web-setupsays “Not signed in to Claude”/web-setupwarns that your token doesn’t have theworkflowscope/web-setupshows “No commands match” or “Unknown command”- “Could not create a cloud environment” or “No cloud environment available” when using
--cloud - Setup script failed
- New sessions hang or time out during setup
- Session keeps running after closing the tab
- Next steps
claude-code-on-the-web
- Cloud environments
- GitHub authentication options
- Move tasks between terminal and cloud
- From terminal to cloud
- Tips for cloud tasks
- Send local repositories without GitHub
- Send follow-ups from the CLI
- Output and errors
- From cloud to terminal
- Teleport requirements
--teleportis unavailable
- From terminal to cloud
- Work with sessions
- Take back a queued message
- Manage context
- Permission modes in cloud sessions
- Review changes
- Share sessions
- Share from an Enterprise or Team account
- Share from a Max or Pro account
- Archive sessions
- Delete sessions
- Auto-fix pull requests
- How Claude responds to PR activity
- Security and isolation
- Troubleshooting
- Session creation failed
- Unable to get organization UUID
- Remote Control session expired or access denied
- Environment expired
- Limitations
- Related resources
routines
- Example use cases
- Create a routine
- Create from the web
- Create from the CLI
- Configure triggers
- Add a schedule trigger
- Schedule a one-off run
- Add an API trigger
- Trigger a routine
- API reference
- Add a GitHub trigger
- Supported events
- Filter pull requests
- Add a schedule trigger
- Manage routines
- View and interact with runs
- Edit and control routines
- Manage routines from the CLI
- Repositories and branch permissions
- Connectors
- Environments and network access
- Usage and limits
- Troubleshooting
/schedulereturns “Unknown command”- “Routines are disabled by your organization’s policy”
- Related resources
ultrareview
- Run ultrareview from the CLI
- Review against a different base
- Review a pull request
- Post findings to the pull request
- Pass a request in plain words
- Diff limits and fallbacks
- Pricing and free runs
- Track a running review
- Run ultrareview non-interactively
- How ultrareview compares to /code-review
- Related resources
Platforms and integrations > Claude Code on desktop
desktop-quickstart
- Install
- Start your first session
- Now what?
- What’s next
desktop
- Start a session
- Work with code
- Use the prompt box
- Add files and context to prompts
- Choose a permission mode
- Preview your app
- Browse external sites
- Approve Claude’s actions on a site
- Choose between the Browser and the Chrome extension
- Restrict external browsing for your organization
- Review changes with diff view
- Review your code
- Monitor pull request status
- Arrange your workspace
- Run commands in the terminal
- Open and edit files
- Open files in other apps
- Switch view modes
- Keyboard shortcuts
- Check usage
- Let Claude use your computer
- When computer use applies
- Enable computer use
- App permissions
- Manage sessions
- Work in parallel with sessions
- Ask a side question without derailing the session
- Watch background tasks
- Work across sessions
- Run long-running tasks in the cloud
- Continue in another surface
- Sessions from Dispatch
- Extend Claude Code
- Connect external tools
- Use skills
- Install plugins
- Configure preview servers
- Auto-verify changes
- Configuration fields
- When to use
programvsruntimeExecutable - Open the preview at a specific URL
- When to use
- Port conflicts
- Examples
- Environment configuration
- Local sessions
- Local sessions on managed devices
- Cloud sessions
- SSH sessions
- Pre-configure SSH connections for your team
- Restrict which SSH hosts users can connect to
- Local sessions
- Enterprise configuration
- Admin console controls
- Managed settings
- Device management policies
- Network access requirements
- Authentication and SSO
- Data handling
- Deployment
- Coming from the CLI?
- CLI flag equivalents
- Shared configuration
- MCP servers from the Claude Desktop chat app
- Feature comparison
- What’s not available in Desktop
- Troubleshooting
- Check your version
- 403 or authentication errors in the Code tab
- Blank or stuck screen on launch
- “Failed to load session”
- Session not finding installed tools
- Git and Git LFS errors
- MCP servers not working on Windows
- App won’t quit
- Windows-specific issues
- “Branch doesn’t exist yet” when opening in CLI
- Still stuck?
desktop-linux
- Requirements
- Cowork requirements
- Install
- Install from a downloaded file
- Update
- Uninstall
- Troubleshoot
- Unable to locate package claude-desktop
- Unmet dependencies
- Running as root without
--no-sandboxis not supported - Cowork isn’t available
- What’s not in the Linux beta yet
desktop-wsl
- Requirements
- Start a WSL session
- What works in a WSL session
- Managed devices
desktop-scheduled-tasks
- Compare scheduling options
- Create a scheduled task
- Schedule options
- How scheduled tasks run
- Missed runs
- Permissions for scheduled tasks
- Manage scheduled tasks
- Related resources
desktop-ios-simulator
- Requirements
- Choose which Xcode the simulator pane uses
- Run your app in the simulator
- Control the simulator yourself
- How sessions manage devices
- Grant Claude access to a device
- Allow a device the first time
- Actions that follow your permission mode
- Turn off simulator access
- Limitations
- Troubleshooting
- The simulator pane doesn’t open when Claude runs the app
- The simulator pane says no simulators were found
- See also
Platforms and integrations > Code review & CI/CD
security-guidance
- Prerequisites
- Install the plugin
- Enable for your team in local sessions
- What the plugin checks
- On each file edit
- At the end of each turn
- On each commit or push Claude makes
- Review independence and limits
- Add your own rules
- Add guidance for the model-backed reviews
- Add custom per-edit patterns
- Rule file lookup locations
- Usage cost
- Disable or uninstall
- How the plugin integrates with Claude Code
- How this fits with other security tools
- Troubleshooting
- Related resources
claude-security
- Prerequisites
- Models and providers
- Install the plugin
- Uninstall the plugin
- Scan and fix your codebase
- Scan only your changes
- Scope large repositories
- Read the scan results
- Fix findings
- Patches are never applied automatically
- How the plugin fits with other security tools
- Troubleshooting
- Related resources
code-review
- How reviews work
- Severity levels
- Rate and reply to findings
- Check run output
- What Code Review checks
- Set up Code Review
- Manually trigger reviews
- Review pull requests from forks
- Customize reviews
- CLAUDE.md
- REVIEW.md
- What you can tune
- Example
- Keep it focused
- View usage
- Pricing
- Troubleshooting
- Retrigger a failed or timed-out review
- Review didn’t run and the PR shows a spend-cap message
- Find issues that aren’t showing as inline comments
- Review a diff locally
- What the review reads and edits
- Tune effort and arguments
- Run in the foreground
- Let Claude start the review
- Escalate to ultrareview
- Related resources
github-actions
- Setup
- Quick setup
- Manual setup
- Set up for an organization
- Uninstall
- GitHub App permissions
- Interactive and automation modes
- Who can trigger runs
- Example use cases
- Respond to @claude mentions
- Run a skill
- Run on a schedule
- Best practices
- Define project standards in CLAUDE.md
- Protect your credentials
- Manage costs
- Use a cloud provider
- Troubleshooting
- Claude not responding to @claude commands
- CI not running on Claude’s commits
- Authentication errors
- Advanced configuration
- Action parameters
- Pass CLI arguments
- Upgrade from beta
- What’s next
github-actions-cloud-providers
- Choose your provider
- Prerequisites
- Set up the integration
- Troubleshooting
- What’s next
github-enterprise-server
- What works with GitHub Enterprise Server
- Admin setup
- GitHub App permissions
- Manual setup
- Network requirements
- Developer workflow
- Teleport sessions to your terminal
- Plugin marketplaces on GHES
- Add a GHES marketplace
- Pre-register GHES marketplaces with managed settings
- Allowlist GHES marketplaces in managed settings
- Limitations
- Troubleshooting
- Cloud session fails to clone repository
- Marketplace add fails with a policy error
- Marketplace add on claude.ai fails with a GitHub access error
- GHES instance not reachable
- Session start fails with
Unable to get organization UUID
- Related resources
gitlab-ci-cd
- Why use Claude Code with GitLab?
- How it works
- What can Claude do?
- Setup
- Quick setup
- Manual setup (recommended for production)
- Example use cases
- Turn issues into MRs
- Get implementation help
- Fix bugs quickly
- Using with Amazon Bedrock and Google Cloud
- Configuration examples
- Amazon Bedrock job example (OIDC)
- Agent Platform job example (Workload Identity Federation)
- Best practices
- CLAUDE.md configuration
- Security considerations
- Optimizing performance
- CI costs
- Troubleshooting
- Claude not responding to @claude commands
- Job can’t write comments or open MRs
- Authentication errors
- Advanced configuration
- Common parameters and variables
- Customizing Claude’s behavior
Agents and parallel work
agents
- Choose an approach
- Check on running work
- Learn more
sub-agents
- Built-in subagents
- Quickstart: create your first subagent
- Configure subagents
- Choose the subagent scope
- Write subagent files
- Frontmatter reference
- Subagent files Claude Code skips
- Check an
agentsdirectory before a session
- Check an
- Subagent files Claude Code skips
- Choose a model
- Run every subagent on one model
- Control subagent capabilities
- Available tools
- Restrict which subagents can be spawned
- Scope MCP servers to a subagent
- Permission modes
- Preload skills into subagents
- Enable persistent memory
- Persistent memory tips
- Conditional rules with hooks
- Disable specific subagents
- Define hooks for subagents
- Hooks in subagent frontmatter
- Project-level hooks for subagent events
- Work with subagents
- Understand automatic delegation
- Invoke subagents explicitly
- Run subagents in foreground or background
- Subagent names
- API errors in subagents
- Subagent output scanning
- Common patterns
- Isolate high-volume operations
- Run parallel research
- Chain subagents
- Choose between subagents and main conversation
- Let subagents spawn their own subagents
- Concurrent subagent limit
- Manage subagent context
- What loads at startup
- Resume subagents
- Auto-compaction
- Fork the current conversation
- Observe and steer running forks
- How forks differ from other subagents
- Turn fork mode on or off
- Example subagents
- Code reviewer
- Debugger
- Data scientist
- Database query validator
- Next steps
agent-view
- Quick start
- Open agent view by default
- Monitor sessions with agent view
- Read session state
- Row summaries
- Pull request status
- Peek and reply
- Attach to a session
- Switch sessions without leaving the terminal
- Organize the list
- Filter sessions
- Keyboard shortcuts
- Dispatch new agents
- From agent view
- Dispatch to a specific directory
- From inside a session
- Send the session to the background
- Copy the session with /fork
- What carries over when you background
- From your shell
- Run a shell command
- How file edits are isolated
- What deleting a session removes
- Set the model
- Permission mode, model, and effort
- Settings and provider
- LLM gateway
- Permission mode
- Dispatch defaults
- What persists across restarts
- Settings, plugins, and MCP servers
- From agent view
- Manage sessions from the shell
- List sessions as JSON
- Read session state from a script
- How background sessions are hosted
- The supervisor process
- Where state is stored
- Turn off agent view
- Troubleshooting
claude agentslists subagents instead of opening agent view- Agent view opens with no sessions
- Backgrounding shows a
Background this session?dialog - Prompt rejected as too short
- Sessions show as failed or stopped after shutdown
- Opening a session says the conversation is already open
- Opening a session says it has no saved transcript
- The terminal host died or the session stopped responding
- Terminal host died
- Session isn’t responding
- A session fails before starting with a
possibly low memorynote - Agent view says the background service did not respond
- Dispatch fails with
Could not resolve authentication method - Background sessions can’t read Desktop, Documents, or Downloads on macOS
- Background sessions can’t reach local-network hosts on macOS
- A session is slow to respond after attaching
.claude/worktrees/is filling up
- Limitations
- Related resources
- Version history
agent-teams
- When to use agent teams
- Compare with subagents
- Enable agent teams
- Start your first agent team
- Control your agent team
- Choose a display mode
- Specify teammates and models
- Have teammates plan before implementing
- Talk to teammates directly
- Assign and claim tasks
- Shut down teammates
- Enforce quality gates with hooks
- How agent teams work
- How Claude starts agent teams
- Architecture
- Use subagent definitions for teammates
- Permissions
- Messages between agents
- Context and communication
- Token usage
- Use case examples
- Run a parallel code review
- Investigate with competing hypotheses
- Best practices
- Give teammates enough context
- Choose an appropriate team size
- Size tasks appropriately
- Wait for teammates to finish
- Start with research and review
- Avoid file conflicts
- Monitor and steer
- Troubleshooting
- Teammates not appearing
- Claude spawns teammates instead of subagents
- Too many permission prompts
- Agents stopping early
- Orphaned tmux sessions
- Limitations
- Next steps
cross-session-messaging
- When to use cross-session messaging
- Message another session
- Message delivery
- Get a notice when another session goes idle
- Ask for a notice
- What each session shows
- Limits
- See which sessions Claude can reach
- Message sessions on other machines
- How a session treats an incoming message
- What a message looks like
- Control inbound messages
- Non-interactive sessions
- The session’s inbox socket
- Restrict cross-session messaging
- Require approval for cross-machine messages
- Turn off cross-session messaging
- Availability
- Limitations
- Related resources
workflows
- When to use a workflow
- Run a bundled workflow
- Bundled workflows
- Watch the run
- Have Claude write a workflow
- Ask for a workflow in your prompt
- Dismiss or turn off the keyword
- Where the keyword works
- Let Claude decide with ultracode
- Approve the plan before it runs
- Save the workflow for reuse
- Distribute a workflow in a plugin
- Pass input to a saved workflow
- Ask for a workflow in your prompt
- Example workflow prompts
- Audit many files for the same issue
- Keep fixing until a check passes
- Migrate many files in parallel
- Review every changed file and write one summary
- Research a topic across many sources
- Find issues until the list stops growing
- What the saved script looks like
- Edit a saved script
- How a workflow runs
- Prompt caching in a fan-out
- Behavior and limits
- Manage runs
- Resume after a pause
- When a run hits your usage limit
- Cost
- Set a size guideline
- Turn workflows off
- Related resources
worktrees
- Start Claude in a worktree
- Set up the worktree environment
- Ask Claude to create a worktree
- Clean up worktrees
- Resume a worktree session
- How Claude Code enforces isolation
- Isolate subagents with worktrees
- Clean up subagent and background-session worktrees
- Customize worktree creation
- Choose the base branch
- Branch from a pull request
- Copy gitignored files into worktrees
- Reuse a worktree name
- Replace worktree creation with a hook
- What worktrees share with the main checkout
- Manage worktrees manually
- Non-git version control
- Troubleshooting
- Claude Code can’t enter the worktree at startup
- Worktree creation fails on a symlinked path
- Git LFS files are pointer files in a worktree Claude Code created
- Claude Code refuses to use a worktree
- The session resumes outside its worktree
- See also
MCP
mcp-quickstart
- Before you begin
- Add and verify a server
- Where servers are saved
- Find your configuration on disk
- Change server scope
- Use a server in all your projects
- Share a server with your team
- Additional MCP server examples
- Add a local server
- Connect a server that requires sign-in
- Edit .mcp.json directly
- Connect from other surfaces
- Troubleshooting
- Next steps
mcp
- What you can do with MCP
- Find and build MCP servers
- Installing MCP servers
- Option 1: Add a remote HTTP server
- Option 2: Add a remote SSE server
- Option 3: Add a local stdio server
- Option 4: Add a remote WebSocket server
- Add a server from setup instructions written for another client
- From a URL
- From an
npx,uvx, or binary command - From an
mcpServersJSON block
- Managing your servers
- Server status
- Project server approvals and workspace trust
- Server status detail
- Configuration warnings
- Tool availability
- Disable a server without removing it
- MCP client runtimes
- Dynamic tool updates
- Notification streams on the v2 runtime
- Automatic reconnection
- Mid-session drops of a remote server
- Failed first connections
- Failed discovery requests
- How Claude learns that a server failed
- Push messages with channels
- Automatic backgrounding of long tool calls
- Plugin-provided MCP servers
- MCP installation scopes
- Local scope
- Project scope
- User scope
- Scope hierarchy and precedence
- Environment variable expansion in
.mcp.json- Supported syntax
- Expansion locations
- Example with variable expansion
- Unset variables without a default
- Credential variables that read as empty
- How references appear in
/mcpand CLI output
- Practical examples
- Example: Connect to GitHub for code reviews
- Example: Query your PostgreSQL database
- Authenticate with remote MCP servers
- Authenticate from the command line
- Use a fixed OAuth callback port
- Use pre-configured OAuth credentials
- Override OAuth metadata discovery
- Restrict OAuth scopes
- Use dynamic headers for custom authentication
- Where the helper runs
- Which variables a helper can read
- Trust a folder before its headersHelper runs
- Add MCP servers from JSON configuration
- Import MCP servers from Claude Desktop
- Use MCP servers from claude.ai
- How connectors reach Claude Code
- Organization controls on connector tools
- Disable claude.ai connectors
- Use Claude Code as an MCP server
- MCP output limits and warnings
- Raise the limit for a specific tool
- Images in tool results
- Tool input schemas with a root-level combinator
- Tools with invalid input schemas
- Require approval for a specific tool
- Respond to MCP elicitation requests
- Use MCP resources
- Reference MCP resources
- Scale with MCP tool search
- For MCP server authors
- Configure tool search
- Exempt a server from deferral
- Use MCP prompts as commands
- Execute MCP prompts
- Managed MCP configuration
Skills
skills
- Bundled skills
- Run and verify your app
- Work on Claude API projects
- Getting started
- Create your first skill
- Choose where skills load
- Load skills in monorepos and subdirectories
- Load skills from a directory outside the project
- Resolve skills that share a name
- Use skills in Cowork and cloud sessions
- Skills synced from claude.ai
- Where synced skills load
- When a synced skill name matches another command
- Names reserved for synced skills
- How Claude Code handles the frontmatter of a synced skill
- How Claude Code handles the body of a synced skill
- Edit a skill during a session
- Remove a skill
- Configure skills
- Types of skill content
- Frontmatter reference
- Using skill frontmatter outside Claude Code
- How a skill gets its command name
- Available string substitutions
- Add supporting files
- Control who invokes a skill
- Skill content lifecycle
- Pre-approve tools for a skill
- Pass arguments to skills
- Advanced patterns
- Inject dynamic context
- How injected commands run
- When an injected command fails
- Permission checks on injected commands
- Run skills in a subagent
- Example: Research skill using Explore agent
- Restrict Claude’s skill access
- Override skill visibility from settings
- Find unused skills
- Inject dynamic context
- Evaluate and iterate on a skill
- Run evals with skill-creator
- Share skills
- Generate visual output
- Troubleshooting
- Skill not triggering
- Skill triggers too often
- Skill descriptions are cut short
- Personal skills disappeared
- Related resources
Artifacts
artifacts
- When to use an artifact
- What an artifact is not
- Create an artifact
- Update an artifact
- Find an artifact again
- Share an artifact
- Let someone edit with you
- Read an artifact shared with you
- Collect comments on an artifact
- Let Claude reply to comments on its own
- Pull live data with MCP connectors
- How connector calls work for viewers
- The page shows no live data for a viewer
- Offer a file download
- What you can build
- Walk through a change
- Compare alternatives
- Tune with interactive controls
- Bring the result back to your session
- Track work in progress
- Improve the visual design
- Start from a Slides, Design, or Docs template
- Make a slide deck
- Draft a design canvas
- Write a document with Claude Docs
- Page constraints
- Availability
- Disable artifacts
- Manage artifacts for your organization
- Enable or disable artifacts
- Control connector calls from artifacts
- Control public sharing
- Set a retention policy
- Review the audit log
- Allowlist the viewer domain
- List and delete artifacts with the Compliance API
- Related resources
Automation
hooks-guide
- Set up your first hook
- What you can automate
- Get notified when Claude needs input
- Auto-format code after edits
- Block edits to protected files
- Re-inject context after compaction
- Audit configuration changes
- Reload environment when directory or files change
- Auto-approve specific permission prompts
- How hooks work
- Combine results from multiple hooks
- Read input and return output
- Hook input
- Hook output
- Structured JSON output
- Filter hooks with matchers
- Filter by tool name and arguments with the
iffield
- Filter by tool name and arguments with the
- Configure hook location
- Prompt-based hooks
- Agent-based hooks
- HTTP hooks
- Limitations and troubleshooting
- Limitations
- Hooks and permission modes
- Hook not firing
- Hook error in output
/hooksshows no hooks configured- Stop hook hits the block cap
- Hook JSON has no effect
- Debug techniques
- Learn more
channels
- Supported channels
- Quickstart
- Security
- Enterprise controls
- Enable channels for your organization
- Restrict which channel plugins can run
- Research preview
- How channels compare
- Next steps
scheduled-tasks
- Compare scheduling options
- Run a prompt repeatedly with /loop
- Run on a fixed interval
- Let Claude choose the interval
- Run the built-in maintenance prompt
- Customize the default prompt with loop.md
- Stop a loop
- Set a one-time reminder
- Manage scheduled tasks
- How scheduled tasks run
- Jitter
- Seven-day expiry
- Cron expression reference
- Disable scheduled tasks
- Limitations
goal
- Compare ways to keep a session running
- Use
/goal- Set a goal
- Write an effective condition
- Check status
- Clear a goal
- Resume with an active goal
- Run non-interactively
- How evaluation works
- When a turn fails
- Errors you have to fix clear the goal
- Other errors retry or pause the goal
- Background work defers evaluation
- Evaluation model and cost
- When a turn fails
- Requirements
- See also
headless
- Basic usage
- Start faster with bare mode
- Background tasks at exit
- Stop a run with SIGTERM
- If the working directory is deleted
- Examples
- Pipe data through Claude
- Add Claude to a build script
- Get structured output
- Stream responses
- Follow subagent messages
- Handle API retries
- Read session metadata
- Fail CI when a plugin or MCP server doesn’t load
- Track plugin installs
- Auto-approve tools
- Turn off permission prompts in unattended runs
- Create a commit
- Customize the system prompt
- Continue conversations
- Next steps
deep-links
- How deep links work
- What a launched session shows
- Build a link
- Choose between
cwdandrepo
- Choose between
- Examples
- Embed a link in a runbook
- Open a link from the shell
- Registration and supported platforms
- Open a VS Code tab instead of a terminal
- Troubleshooting
- Clicking the link does nothing
- xdg-open is not found on Linux
- The link renders as plain text instead of being clickable
- The session opens in my home directory instead of the repo
- The link opens the wrong terminal
- Learn more
Guides
large-codebases
- What this guide covers
- Settings on this page
- The example monorepo
- Choose where to start Claude
- Layer CLAUDE.md files by directory
- Choose between per-directory CLAUDE.md and path-scoped rules
- Exclude irrelevant CLAUDE.md files
- Reduce what Claude reads
- Block reads of generated and vendored code
- Reduce file reads with code intelligence
- Scope worktrees and file access
- Check out only the directories you need
- Grant access across packages or repositories
- Add per-directory skills
- Keep skills discoverable
- Centralize conventions when layering stops scaling
- Recommend the right plugin at session start
- Put it together
- Scope and plan changes that span packages
- Next steps
Troubleshooting
troubleshoot-install
- Find your error
- Run diagnostic checks
- Check network connectivity
- Verify your PATH
- Check for conflicting installations
- Check directory permissions
- Verify the binary works
- Common installation issues
- Install script returns HTML instead of a shell script
command not found: claudeafter installationcurl: (56) Failure writing output to destination- Homebrew cask unavailable or outdated
- TLS or SSL connection errors
Failed to fetch version from downloads.claude.ai- Wrong install command on Windows
running scripts is disabled on this systemThe process cannot access the fileduring Windows installclaude.exemissing after an update on Windows- Install killed on low-memory Linux servers
- Install hangs in Docker
Raw mode is not supportedduring installclaude updateorclaude doctorhangs- Claude Desktop overrides the
claudecommand on Windows - Claude Code on Windows requires either Git for Windows (for bash) or PowerShell
- Claude Code does not support 32-bit Windows
- Linux musl or glibc binary mismatch
Illegal instructiondyld: cannot loadon macOSExec format erroron WSL1- npm install errors in WSL
- Permission errors during installation
- Native binary not found after npm install
- npm
ENOTEMPTYerror during update or reinstall
- Login and authentication
- Reset your login
- OAuth error: Invalid code
- 403 Forbidden after login
- Claude Code access has not been granted for this account
- This organization has been disabled with an active subscription
- OAuth login fails in WSL2, SSH, or containers
- Not logged in or token expired
- Bedrock, Agent Platform, or Foundry credentials not loading
- Still stuck
troubleshooting
- Performance and stability
- High CPU or memory usage
- Large tables are cut off in the terminal
- Auto-compaction stops with a thrashing error
- Command hangs or freezes
- Garbled or corrupted text in an editor’s integrated terminal
- Mouse wheel scrolls one line at a time in fullscreen rendering
- Clipboard commands such as
pbcopyfail inside the sandbox - Copied text doesn’t reach your local clipboard over SSH
- Search and discovery issues
- Slow or incomplete search results on WSL
- Get more help
debug-your-config
- See what loaded into context
- Check resolved settings
- Check MCP servers
- Check hooks
- Test against a clean configuration
- Check common causes
- Related resources
errors
- Find your error
- Automatic retries
- What you see while Claude Code retries or waits
- Tune retry behavior
- Server errors
- API Error: 500 Internal server error
- API Error: Repeated 529 Overloaded errors
- Request timed out
- No response from API
- The response above may be incomplete
- Auto mode cannot determine the safety of an action
- The server returned no safety verdict
- Agent terminated early due to an API error
- Usage limits
- You’ve hit your session limit
- Usage credits required for 1M context
- The prompt to confirm went unanswered
- Server is temporarily limiting requests
- Request rejected (429)
- You’ve hit your monthly spend limit
- Spend limit reached
- Credit balance is too low
- Could not update your spend limit
- Authentication errors
- Not logged in
- Could not resolve authentication method
- Invalid API key
- Your apiKeyHelper script is failing
- Invalid request header value
- This organization has been disabled
- Your organization has disabled API key authentication
- Your organization has disabled Claude subscription access
- Routines are disabled by your organization’s policy
- Remote Control requires the Anthropic API
- Remote Control couldn’t refresh your login
- Remote Control stopped because the signed-in account changed
- Remote Control stopped because the app running the session signed out or switched accounts
- OAuth token revoked or expired
- API Error: 401 Invalid authentication credentials
- Login expired
- Could not refresh your login because another Claude Code process is refreshing it
- Couldn’t save your login
- Failed to start OAuth callback server
- Claude login not accepted
- Artifacts need a claude.ai login
- Administrator policy requires a Cloud gateway sign-in
- Your account is on hold
- Anthropic profile login expired
- OAuth scope requirement
- claude.ai rejected the session token
- MCP server needs you to sign in again
- MCP server URL is missing or not a valid URL
- Issuer mismatch in authorization response
- Refusing to send credentials to non-https token endpoint
- AWS credentials expired or invalid
- AWS authentication failed
- Google Cloud credentials expired or invalid
- Google Cloud authentication failed
- Microsoft Foundry authentication failed
- Could not load AWS or Google Cloud credentials
- AWS default-chain credential resolve timed out
- Bedrock setup verification timed out waiting for AWS
- Cloud gateway session expired
- Sign-in timed out while waiting for you to continue
- Gateway refused the request
- Network and connection errors
- Unable to connect to API
- Unable to connect to Anthropic services
- Socket is closed
- API returned an empty or malformed response
- Streaming response ended before any complete data was received
- Bedrock streaming response has an unexpected content-type
- SSL certificate errors
- Host not allowed in a cloud session
- The proxy refused the connection
- The cloud environments service returned an empty or unexpected response
- Couldn’t reconnect to your Remote Control session
- Sessions ended while this machine was offline
- Couldn’t share the transcript
- Couldn’t send feedback
- Request errors
- Prompt is too long
- Context exceeds the token limit
- Request too large
- Image was too large
- Unable to resize image
- PDF errors
- Extra inputs are not permitted
- Tool input schema is invalid
- tool_use.name over 200 characters
- There’s an issue with the selected model
- Model is not a recognized model id
- Model not found
- Couldn’t confirm model with the API
- API error when checking the picked model
- Claude Opus is not available with the Claude Pro plan
- Claude Code does not support this model
- Model is restricted by your organization’s settings
- Can’t switch to the default model
- Model switch was blocked by a PreModelSwitch hook
- Couldn’t save it as your default
- thinking.type.enabled is not supported for this model
- Effort isn’t available with thinking turned off
- Thinking budget exceeds output limit
- Tool use or thinking block mismatch
- Invalid data in redacted_thinking block
- Unsupported tool content removed
- role ‘system’ must precede an ‘assistant’ message
- Invalid encrypted_content in search_result block
- Usage Policy refusal
- Safety measures flagged a cybersecurity topic
- Installation errors
- Installation was killed before it could finish
- The connection dropped while downloading the update
- Command-line errors
- Conflict between
--bgand--print - Invalid
--agentsconfiguration - Cloud sessions cannot be created from a
--restrictedsession - Cloud sessions are disabled by your organization’s policy
- The
--json-schemavalue is not a valid JSON Schema - Settings file exceeds the 2MiB limit
- The current directory no longer exists
- Temp directory refused or cannot be created
- Directory couldn’t be resolved to a real location
- Workspace not trusted when starting Remote Control
- Not carried over to the sessions Remote Control starts
- claude import is not yet available in this build
- Could not read Claude Code config
- Could not import a server from Claude Desktop
- Cannot add MCP server to the managed scope
- Can’t read .mcp.json
- MCP server was not saved or removed
- MCP server may not have been saved or removed
- Server is Anthropic-hosted and doesn’t support local OAuth
- Server rejected the Authorization header minted by the configured headersHelper
- MCP permission prompt tool not found
- OAuth callback port is already in use
- No available ports for OAuth redirect
- /security-review fails without origin/HEAD
- Input must be provided when using
--print - Input contained only whitespace
- stream-json input carried over 256M characters with no newline
- Unknown command
- Diff is too large for ultrareview
- Could not find merge-base with the base branch
- Your checkout has no branches
- No GitHub account is connected to your Claude account
- Your connected GitHub account can’t see the repository
- The GitHub App preflight failed transiently
- The repository upload can’t follow a git setting
- GitHub isn’t connected to your Claude account
- Single sign-on authorization needed
- Failed to resume the conversation
- No conversation found with the session ID
- Windows reported an error (EBADF) when Claude Code read this session’s transcript file
- Cannot switch renderers in this session
- Couldn’t open Claude Desktop
- /terminal-setup left your Zed keymap unchanged
- Skill usage reports are not available on this connection
- Custom output styles can’t be selected over Remote Control
- Output styles are saved to local settings which this session doesn’t load
- Conflict between
- Plugin errors
- plugin eval is currently in early access
- Marketplace is registered from an untrusted source
- Marketplace name is another spelling of a reserved name
- Claude Code refuses the marketplace name
- Marketplace is already added from a different source
- Plugin command references user_config in a shell command
- Plugin archive integrity check failed
- Path escapes plugin directory
- Path could not be checked
- Marketplace entry path does not stay inside the marketplace directory
- Failed to load marketplace configuration
- Plugin is required by your organization
- Plugin was not uninstalled
- Tool errors
- Agent would be spawned with zero tools
- File is covered by a Read deny rule
- Path cannot contain null bytes
- subagent_type is required
- Memory index is over its read limit
- pkill pattern matches the Claude Code process
- Failed to write to a teammate’s inbox
- Teammate’s agent definition was not restored
- Message too large for cross-session delivery
- Too many messages to this session just now
- Cross-session message was dropped at the recipient session’s inbox
- Refusing to send a cross-session message
- Refusing to read, write, or search a path
- Task output swap refused
- Disk quota or temp filesystem is full
- The source file is not valid UTF-8 text
- Reading a local file from outside the connected folders in a Cowork session
- WebFetch cannot fetch localhost
- Background session errors
- Commands refused in a background session
- Write or command blocked because the path cannot be safely resolved
- Write or command blocked because the path names a network location
- Command blocked by the worktree isolation checks
- This session has no saved transcript
- This session is running in another terminal
- This session’s saved conversation is no longer on disk
- Worktree has commits that are not pushed anywhere
- Terminal host process died
- Session isn’t responding
- Session was stopped while the respawn was in flight
- Session agent no longer available
- CLAUDE_CODE_PROCESS_WRAPPER launcher errors
- EUNKNOWN when starting a background session
- EACCES when starting a background session
- Background service exited before it became reachable
- Working directory no longer exists when starting a background session
- Workspace not trusted when dispatching a background session
- Wrapper and IDE errors
- Claude Code process exited with code N
- Could not locate the Claude CLI on PATH
- The connection to Claude Code ended before this message completed
- Rewind warnings and errors
- Restored the code, but skipped files
- No files were restored
- Session saving warnings
- Transcript writes are failing
- Transcript saving is off because CLAUDE_CODE_SKIP_PROMPT_HISTORY is set
- Transcript saving is off because of an inherited CLAUDE_CODE_CHILD_SESSION marker
- Configuration warnings
- Fullscreen renderer didn’t finish starting
- Claude Code exited after an unrecoverable interface error
- Agent descriptions are over the 15.0k-token limit
- A skill, command, or workflow wasn’t loaded because its name is reserved
- Workspace has not been trusted
- Working directory is a network path
- Remote managed settings failed to load
- Managed settings were not approved
- Managed settings block the default model
- MCP server is blocked by enterprise managed policy
- Managed settings document could not be parsed
- otelHeadersHelper failed
- headersHelper not run
- Malformed Tool(content) rule
- Is not matched by file permission checks
- Has a wildcard before the rest of the command
- crossSessionInbound must be one of accept, hold, refuse
- The 200K limit isn’t enforced
- Unrecognized model ID on a request
- Stale sandbox mask files left by a killed session
- Responses seem lower quality than usual
- Report an error
Plugins
overview
- Understand what a plugin is
- Decide whether you need a plugin
- What an enabled plugin adds to your sessions
- Get plugins from a marketplace
- Make an installed plugin available in your session
- Tell Anthropic’s marketplaces from third-party ones
- Understand install scopes
- Next steps
Use plugins
install
- Install a plugin
- Choose an install scope
- JetBrains, non-interactive runs, and the Agent SDK
- Plugins from your claude.ai account
- Install from your shell
- Add a marketplace
- Add a marketplace and install in one command
- Add a private marketplace
- Add a marketplace from claude.ai
- Manage installed plugins
- Manage plugins synced from claude.ai
- Uninstall a plugin the project enables
- See what an installed plugin adds to your sessions
- Find plugins you no longer use
- Plugins with dependencies
- Manage plugins from your shell
- Keep plugins updated
- Turn auto-update on or off for a marketplace
- Update one plugin now
- Auto-update from a private marketplace
- Manage marketplaces
- Next steps
anthropic-marketplaces
- Anthropic’s marketplaces
- The demo marketplace in
anthropics/claude-code
- The demo marketplace in
- Find plugins in the official marketplace
- Browse and install from Anthropic’s marketplaces
- Add the community or demo marketplace
- Third-party marketplaces
- Next steps
code-intelligence
- Install a code intelligence plugin
- See what Claude gains
- Read the diagnostics yourself
- Accept or dismiss the recommendation dialog
- When the recommendation dialog appears
- Respond to the recommendation dialog
- Turn recommendations back on
- Troubleshoot code intelligence
- Add a language without an official plugin
- Next steps
security
- Understand what a plugin can do
- Identify Anthropic’s marketplaces by name
- Official marketplace names
- Review a plugin before you install
- Remove a plugin you no longer trust
- Recognize when Claude Code refuses or warns
- Trust warning before you install
- Untrusted marketplace sources and failed integrity checks
- Enforce plugin controls for your organization
- Find plugins in telemetry
- Next steps
Create plugins
create
- Decide when to use a plugin
- Create your first plugin
- Share your plugin
- Plugin layout
- Develop without a marketplace
- Load a plugin for one session
- From a directory or
.zip - From a folder of plugins
- From a URL
- From an environment variable
- From a directory or
- Make a plugin load in every session
- Scaffold the plugin with
claude plugin init - Name the plugin’s skills
- Stop loading the plugin
- Share the plugin through a repository
- Scaffold the plugin with
- Load a plugin for one session
- Test and debug
- A component path isn’t found
--plugin-dirat a marketplace root doesn’t load the plugins underplugins/- The plugin loads but its skills are missing
- The
userConfigdialog never appears - Check that the plugin changes Claude’s behavior
- Convert an existing
.claude/setup - Next steps
components
- Explore the plugin directory
- Add each kind of component
- Skills
- Commands
- Define commands in the manifest
- Agents
- Organize agents in subfolders
- Frontmatter fields in plugin agents
- Hooks
- When plugin hooks fire
- Environment, quoting, and matching MCP tools
- MCP servers
- Reach users on claude.ai and Cowork
- Server names, tool names, and reloads
- Include a packaged MCPB server
- LSP servers
- Executables
- Default settings
- Themes and output styles
- Channels
- Monitors
- Ask the user for configuration values
- When the configuration dialog appears
- Reference plugin paths and store data
- Install dependencies into the data directory
- Next steps
dependencies
- Declare dependencies
- Declare a dependency with a version constraint
- Bundle plugins for a team
- Depend on a plugin from another marketplace
- Test a plugin and its dependency locally
- Release a plugin that others depend on
- Create a release tag
- Constrain a dependency that has a non-git source
- How dependencies behave for your users
- How a constraint resolves against tags
- Confirm the resolved version
- Combine constraints from several plugins
- See also
plugin-evals
- Requirements
- How an eval run works
- What happens in a run
- How a case is scored
- The no-plugin baseline
- Create your first eval suite
- Write and refine cases
- Write a case manually
- Set run limits and tools in prompt.md
- Choose and weight graders
- Choose graders that give a stable signal
- Score against the no-plugin baseline
- Use a different eval directory
- Set up fixtures and mocks
- Seed the workspace or conversation
- Mock MCP servers
- Replay agent mock answers
- Run evals
- Choose what to evaluate
- Grant tools
- Command options
- Run evals in CI
- Read the results
- HTML report
- JSON result
- What a run can access
- Trust the plugin directory
- How runs are isolated
- Eval suite reference
- prompt.md frontmatter
- case.yaml fields
- Grader frontmatter
- What a grader can look at
- Grader types
- Mock files
- Troubleshooting
- “plugin eval is currently in early access”
- “plugin eval is currently unavailable”
- “is not a trusted plugin directory, and this run cannot stop to ask you about it”
- “is too old for claude plugin eval”
- “No eval cases found”
- The baseline arm shows no plugin, or delta is zero
- “Agent type ’…’ not found” for one of your plugin’s agents
- Everything scores zero although the right files were produced
- A regex over the trace doesn’t match text I can see
- Tools are denied, MCP tools are missing, or Bash won’t run
- The run exits 1 but the results look fine
--json output path must end in .json- A grader shows passed: false under a run that scored 1.0
- Runs fail with a usage-limit or rate-limit error partway through
- Runs time out or hit the turn cap
- See also
publish
- Choose how to distribute
- Prepare your plugin for release
- Share a plugin without a marketplace
- Ship a plugin with your own tool
- Publish through your own marketplace
- Add the marketplace file to your repository
- Control who can install
- Tell users how to install
- Ship updates to users
- Submit to Anthropic’s directory
- How a listed plugin reaches Claude Code users
- Ship updates, renames, and removals
- Release a new version
- Tag a release
- Rename or remove a plugin
- Declare dependencies
- Next steps
measure
- Measure what a plugin costs
- Lower the always-on figure
- Cost shown to users before install
- Check whether a plugin is used
- Not used recently in
/plugin - Find skills that never run
- Unused plugins in
/doctor - Usage share in
/usage
- Not used recently in
- Measure across a fleet
- OpenTelemetry events for plugin installs and use
- Redacted plugin names in your backend
- Query the Analytics API
- Next steps
cli-hints
- Emit the hint
- Hint format
- Check when the prompt appears
- Preview what the user sees
- Next steps
Run a marketplace
create-marketplace
- Create a marketplace
- Add plugin entries
- Rules for plugin entries
- Write relative paths from the marketplace root
- Keep the entry name and the manifest name the same
- Choose a plugin source
- Validate and test
- Problems that validation reports
- Problems that surface when you add or install
- Test an edit to a plugin
- Remove the marketplace to start over
- Host your marketplace
- Next steps
host-marketplace
- Host your marketplace
- Register the marketplace for everyone in a repository
- Avoid relative-path entries in a URL-hosted marketplace
- Stay within the download limits for hosted files
- Edit plugins in place on a shared directory
- Keep plugin files out of Git LFS
- Share files within a marketplace with symlinks
- Distribute through organization settings
- Grant access to a private marketplace
- Serve users who have no git-host account
- What background auto-update does with credentials
- Roll out to a whole company
- Keep users up to date
- Turn on auto-update
- Release a new version
- Hold users on one version
- Change the command of a command source
- Run release channels
- Rename or remove a plugin
- Migrate users with a renames map
- Uninstall removed plugins from users’ machines
- Authenticate archive downloads
- Add a headersHelper to a plugin entry
- Write the headersHelper command
- When Claude Code skips a headersHelper command or drops its output
- How users accept a headersHelper command
- Installs and updates that refuse a command instead of asking
- When a marketplace
urlsource’s command runs
- Depend on and recommend other plugins
- Work around what a marketplace can’t do
- Next steps
relevance
- Understand how plugin relevance works
- Add relevance to a plugin entry
- Field reference
relevancerelevance.signals- Working directory matching
- Command name matching
- Manifest dependency matching
- Validate your marketplace
- Enable suggestions in managed settings
- Preview what the user sees
- See also
Manage plugins for your organization
org
- Pre-install and require plugins
- Choose a delivery mechanism
- Which managed source applies on a machine
- Require a marketplace and its plugins
- Require plugins per repository
- When each surface applies the plugin keys
- Confirm the rollout
- Choose a delivery mechanism
- Seed containers and CI
- Restrict what users can install
- Control matrix
- Aliases for the marketplace keys
- Allowlist with
strictKnownMarketplaces- How entries match
- Keep skills-directory plugins loading
- Marketplaces hosted on claude.ai
- Lock every source out
- Blocklist with
blockedMarketplaces - Allow the official marketplace and your own
- Control matrix
- Set update policy
- Turn auto-update on or off per marketplace
- Turn updates off for the whole fleet
- Assign release channels to user groups
- Recommend plugins
- Audit and review
- OpenTelemetry events
- Analytics API
- Plan for what managed settings can’t enforce
- Troubleshoot policy
- Next steps
Troubleshooting
troubleshooting
- Find where
/pluginruns/plugin isn't available in this environmentzsh: no such file or directory: /pluginThe term '/plugin' is not recognized as the name of a cmdletclaude: command not foundafterclaude plugin ...Unknown commandand command spellings that don’t exist
- Add a marketplace
Marketplace "claude-plugins-official" not foundMarketplace "<name>" not foundInvalid marketplace source format'<source>' is not a valid GitHub owner/repo shorthandPath does not exist: <path>Marketplace file not found at <path>/.claude-plugin/marketplace.jsonSSH authentication failedorHTTPS authentication failedSSH host key is not in your known_hosts fileCommand 'git' not found or is in an unsafe locationGit clone timed out after 120s- Marketplace updates keep failing offline
- Marketplace add fails on a GitHub Enterprise Server host
- Install a plugin
Plugin "<name>" not found in marketplace "<marketplace>"not found in marketplacewith a refresh hintnot found in marketplacewith no hint
Plugin "<name>" not found in any marketplacePlugin '<name>@<marketplace>' is already installed globallyThis plugin uses a source type your Claude Code version does not supportPlugin archive integrity check failedMarketplace "<name>" is registered from an untrusted sourcePlugin <name> has a corrupt manifest fileorhas an invalid manifest filePlugin directory not found at path: <path>No plugins availableorNo marketplaces configuredMarketplace "<name>" is already added from a different sourceCannot add marketplace "<name>": its network source differs from the one declared for it in settingsFailed to install: <plugin> (<reason>)Could not move the new copy of this plugin version into <path>- Dependency errors
- Plugin installed but not working
- Plugin doesn’t appear or its skills don’t show up
Run /reload-plugins to activate.Plugin "<name>" not cached at <path>installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot readinstalled_plugins.json could not be read and was rebuiltinstall records under names that no version of Claude Code can use were removed from installed_plugins.jsonDisabled in ~/.claude/settings.json but still loadsPlugin "<name>" is enabled in project settings but isn't installed hereFailed to load hooks from <path>and hooks that don’t fire- Hooks fail to load
hook errornotices in the transcript- A plugin hook blocks a tool call or prompt
- Hook loads but never fires
Invalid MCP server config for "<server>"and MCP servers that don’t startInvalid MCP server config for "<server>": <error>- Server is configured but never connects
- Server works with
--plugin-dirbut fails after install
- Language server doesn’t start, uses too much memory, or reports wrong diagnostics
- Language server doesn’t start
- Language server uses too much memory
- False positive diagnostics in a monorepo
- Build a plugin
commands path not found: <path>--plugin-dirat a marketplace root doesn’t load the plugins underplugins/- Files the plugin references outside its directory aren’t found
${CLAUDE_PLUGIN_ROOT}shows forward slashes on Windows- Plugin loads but its skills are missing
- Skill loads but Claude never invokes the skill
<directory> is not a plugin or skill folderfromclaude plugin eval init- The
userConfigdialog never appears claude plugin validatereports errorsPlugin <name> has conflicting manifestsWarning: No commands found in plugin <name> custom directory
- Host a marketplace
- Plugins with relative paths fail in URL-based marketplaces
- Marketplace validation errors
- Blocked by your organization
Marketplace source '<source>' is blocked by enterprise policyMarketplace "<name>" is not in the allowed marketplace listPlugin "<name>" is blocked by your organization's policy and cannot be installed--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)Plugins from ~/.claude/skills/ are blocked by your organization's managed settingsCommand-sourced plugins are disabled by your organization's managed settingsMarketplace '<name>' is seed-managed
- Next steps
loading
- Check which stage a plugin reached
- Plugins and marketplaces that aren’t on disk at session start
- Find where a plugin came from
- Entry name and manifest name
- Plugins shared through a repository
- Plugins synced from claude.ai
- Sync timing in terminal sessions
- Sign-in requirements for terminal sync
- Control which synced plugins load
- Find where a plugin is enabled
- Disabled in user settings but still loads
- Enabled in project settings but not installed
- Find plugins on disk
- In-place and copied plugins
- Paths that escape the plugin directory
- Cleanup of previous versions
- Node.js package dependencies
- When the dependency install runs
- Limits on the dependency install
- When the dependency install fails or is skipped
- Versions and updates
- How Claude Code computes the version
- When Claude Code refreshes a marketplace before an install
- When auto-update runs
- Which marketplaces and plugins auto-update
- When a command source re-runs
- Name conflicts
- Keep a session-only plugin from loading
- Next steps
Reference
manifest-reference
- Manifest file
- Unrecognized fields
- Validate the manifest
- Fields
namedisplayNameversionmetadatadefaultEnableddependenciessettings
- Component path forms
- Path-only fields
commandshooksmcpServerslspServersmonitors
- Path rules
- Containment and existence
- How each key combines with its default location
- User configuration
- Limit a field to fixed options
- Where values are stored
- Reference a saved value
- Fields that run through a shell
- Channels
- Environment variables
- Where each variable resolves
- Quoting and path separators
- Standard layout
- Marketplace entries and the manifest
- How entry fields combine with
plugin.json - Metadata precedence
- How entry fields combine with
- Next steps
marketplace-reference
- Marketplace file
- Reserved names
- Top-level fields
- Plugin entries
- How an entry combines with plugin.json
- Hooks in an entry
- Display fields
- Strict mode
- How an entry combines with plugin.json
- Plugin sources
- Relative path plugin source
- Bare names under pluginRoot
- github plugin source
- url plugin source
- git-subdir plugin source
- npm plugin source
- archive plugin source
- command plugin source
- What the command must do
- Output that fails the install or update
- Copy mode and link mode
- Relative path plugin source
- Marketplace sources
- Fields by type
- Source values valid only in policy lists
- Source objects in settings
- Validation messages
- Invalid input on a source
- Failures that validation doesn’t catch
- Next steps
cli-reference
- claude plugin commands
- plugin init
- plugin install
- JSON result format
- Accept a displayed install command
- plugin uninstall
- What an uninstall deletes and keeps
- plugin enable
- plugin disable
- plugin update
- plugin list
- JSON output
- plugin details
- plugin prune
- plugin eval
- plugin eval init
- plugin tag
- plugin validate
- Validate a directory
- Output and exit codes
- claude plugin marketplace commands
- plugin marketplace add
- plugin marketplace list
- plugin marketplace remove
- plugin marketplace update
- /plugin in a session
- /reload-plugins
- Reload summary
- Reloads that change MCP tools
- Sessions without an interactive terminal
- Flags that load a plugin for one session
- Next steps
Setup and access
admin-setup
- Choose your API provider
- Decide how settings reach devices
- WSL sessions in Claude Code Desktop
- Decide what to enforce
- Set up usage visibility
- Review data handling
- Verify and onboard
- Next steps
setup
- System requirements
- Additional dependencies
- Install Claude Code
- Set up on Windows
- Alpine Linux and musl-based distributions
- Verify your installation
- Authenticate
- Update Claude Code
- Auto-updates
- Configure release channel
- Pin a minimum version
- Disable auto-updates
- Update manually
- Advanced installation options
- Install a specific version
- Install with Linux package managers
- Install with npm
- Binary integrity and code signing
- Verify the manifest signature
- Platform code signatures
- Uninstall Claude Code
- Native installation
- Homebrew installation
- WinGet installation
- apt / dnf / apk
- npm
- Remove configuration files
authentication
- Log in to Claude Code
- Log in with multiple accounts
- Set up team authentication
- Claude for Teams or Enterprise
- Claude Console authentication
- Sign in without an API key
- Cloud provider authentication
- Restrict login to your organization
- Credential management
- Renew an expiring login
- Authentication precedence
- Anthropic profiles and federation credentials
- Generate a long-lived token
managed-settings
- Deploy a managed settings file
- Choose a delivery mechanism
- Where and when a policy applies
- Where each mechanism stores the policy
- Split a file-based policy across teams
- How Claude Code combines managed sources
- Keys read from every admin source
- Compose every managed source
- Compute the policy with a helper program
- Let an embedding host add policy
- Keep Cowork folder access when only managed rules apply
- What a developer can change
- Check that a policy is in force
- Read the source in /status
- Find entries Claude Code dropped
- Keys that fail closed
- Invalid values inside
sandbox
- Keys only a managed source can set
- Turn telemetry off for your organization
- See also
server-managed-settings
- Requirements
- Choose between server-managed and endpoint-managed settings
- Configure server-managed settings
- Verify settings delivery
- Access control
- Managed-only settings
- Current limitations
- Settings delivery
- Settings precedence
- Per-key exceptions across managed sources
- Fetch and caching behavior
- Invalid entries in delivered settings
- Enforce fail-closed startup
- Security approval dialogs
- Approval memory
- Environment variables and the approval dialog
- Platform availability
- Audit logging
- Security considerations
- See also
managed-mcp
- Choose a pattern
- Exclusive control with managed-mcp.json
- Deploy managed-mcp.json
- Authenticate with per-user credentials
- Servers passed with
--mcp-configor--strict-mcp-config - How allowlists and denylists apply to the managed set
- Validate the configuration
- Disable MCP entirely
- Allow claude.ai connectors alongside the managed set
- Allow Claude in Chrome alongside the managed set
- Provide servers through managed settings
- What an entry can contain
- How provided servers load
- What users can see and change
- Where
managedMcpServersapplies - When provided servers connect
- Policy-based control with allowlists and denylists
- Match servers by URL, command, or name
- How a server is evaluated
- How policy entries expand
- Example configuration
- Restrict the allowlist to managed settings only
- How restrictions appear to users
- Monitor MCP usage
- Configuration summary
- Related resources
auto-mode-config
- Common boundaries
- Add a human checkpoint
- Where the classifier reads configuration
- Define trusted infrastructure
- Generate environment entries with
/auto-mode-setup- What
/auto-mode-setupreads - Review and save the draft
- Turn off
/auto-mode-setup
- What
- Override the block and allow rules
- Edit rules from
/permissions - Route all shell commands through the classifier
- Inspect the defaults and your effective config
- Review denials
- Fix a denial with an allow rule, an environment entry, or a retry
- Fix repeated denials
- See also
Deployment
third-party-integrations
- Compare deployment options
- Configure proxies and gateways
- Best practices for organizations
- Invest in documentation and memory
- Simplify deployment
- Start with guided usage
- Pin model versions for cloud providers
- Configure security policies
- Use MCP for integrations
- Next steps
feature-availability
- Availability by model provider
- Features available on every provider
- Features that require a Claude subscription
- CLI capabilities that vary by provider
- Admin and analytics
- Summary by provider
- Availability by subscription plan
- Model availability
- Related resources
amazon-bedrock
- Prerequisites
- Sign in with Bedrock
- Set up manually
-
- Submit use case details
-
- Configure AWS credentials
- Credential caching and resolution timeout
- Advanced credential configuration
- Example configuration
- Configuration settings explained
-
- Configure Claude Code
-
- Pin model versions
- Map each model version to an inference profile
-
- Startup model checks
- Cross-region inference profile prefixes
- IAM configuration
- 1M token context window
- Service tiers
- AWS Guardrails
- Use the Mantle endpoint
- Enable Mantle
- Select a Mantle model
- Run Mantle alongside the Invoke API
- Route Mantle through a gateway
- Mantle environment variables
- Troubleshooting
- Authentication loop with SSO and corporate proxies
- Certificate errors behind a TLS-inspecting proxy
- Region issues
- Streaming errors behind a gateway or proxy
- Zero token counts in /context
- Mantle endpoint errors
- Additional resources
claude-platform-on-aws
- Prerequisites
- Setup
-
- Configure AWS credentials
-
- Configure Claude Code
-
- Pin model versions
-
- Launch and verify
-
- Use the Agent SDK
- Route through a corporate proxy
- Troubleshooting
403 ForbiddenorAccessDeniedon every request- Requests fail with a missing-workspace error
- Requests still go to
api.anthropic.com
- Additional resources
google-vertex-ai
- Prerequisites
- Sign in with Agent Platform
- Region configuration
- Set up manually
-
- Enable Agent Platform API
-
- Request model access
-
- Configure GCP credentials
- Advanced credential configuration
-
- Configure Claude Code
-
- Pin model versions
-
- Verify your configuration
-
- Startup model checks
- IAM configuration
- 1M token context window
- Troubleshooting
- Additional resources
microsoft-foundry
- Prerequisites
- Setup
-
- Provision Microsoft Foundry resource
-
- Configure Azure credentials
-
- Configure Claude Code
-
- Pin model versions
-
- Run Claude Code
-
- Azure RBAC configuration
- Troubleshooting
- Additional resources
network-config
- Proxy configuration
- Environment variables
- Basic authentication
- CA certificate store
- Custom CA certificates
- mTLS authentication
- Verify your configuration
- Apply network settings to background agents
- Set network variables in settings, not the shell
- Configure a corporate launcher as a setting
- Streaming idle watchdogs
- Network access requirements
- Organization IP allowlists and proxy egress
- GitHub allow lists and firewalls
- Desktop and claude.ai
- Additional resources
corporate-launcher
- What the launcher covers
- Processes that start outside the launcher
- Helper process names in process monitors
- Set up the launcher
- The launcher contract
- Format of the launcher value
- Relationship to
CLAUDE_CODE_SHELL_PREFIX - Related resources
devcontainer
- Add Claude Code to your dev container
- Persist authentication and settings across rebuilds
- Enforce organization policy
- Restrict network egress
- Run without permission prompts
- Try the reference container
- Next steps
Gateways
gateways
- How a gateway works
- Choose a gateway
- Claude apps gateway
- Other gateways
- Subscriptions and gateways
- Configure separately from the gateway
- Next steps
Gateways > Claude apps gateway
claude-apps-gateway
- Why Claude apps gateway
- Other gateway implementations
- Quickstart
- Prerequisites
- Steps
- Connect developers
- Set the gateway URL
- Allow a gateway on public address space you own
- Deliver policy to Claude Desktop sessions
- Which machines need the opt-in
- Set the opt-in
- Restrict parent settings
- Deploy the locks
- Lock behavior across sources
- Settings the locks don’t cover
- Connect Claude Desktop
- CI pipelines and remote machines
- What’s enforced on developers
- What the organization can see
- Availability and limitations
- Next steps
claude-apps-gateway-config
- File structure
- Secret expansion
- Required sections
listenoidc- IdP requests through a forward proxy
- Proxy-only egress
sessionstoreupstreams- Upstream error messages
- Anthropic API
- Per-user identity headers for a proxy you run
- Amazon Bedrock
- Apply an Amazon Bedrock guardrail
- Claude Platform on AWS
- Google Cloud Agent Platform
- Microsoft Foundry
- Static headers on upstream requests
- Multiple upstreams
- Optional sections
adminenforcementpricing- Mark prices up
- Send the rates to signed-in clients
modelsmanaged- Matcher values that stop the gateway at boot
- What goes in
cli - MCP servers in a policy
- Claude Desktop overlay
- Precedence with other managed sources
telemetry- Add your own labels
- Export directly to your collector
- When a destination fails
- HTTP tuning
load_test_mode
- Complete example
- Client-side managed settings
- Related
claude-apps-gateway-spend-limits
- Set a cap
- Authenticate to the admin API
- How enforcement works
- How requests are priced
- Postgres availability
- Usage warnings in Claude Code
- Admin API reference
/effective/audit- Pagination
- Data lifecycle
- Related
claude-apps-gateway-deploy
- Identity provider setup
- Deployment
- Container image
- Kubernetes
- Cloud Run
- Push the gateway URL to developer machines
- Large rollouts
- Operations
- Logs
- Health
- Concurrent upstream requests
- Outage behavior
- Readiness grace period
- JWT secret rotation
- Postgres
- Upgrades
- Security
- Data flow
- Threat model summary
- User-code brute-force resistance
- Compliance posture
- Troubleshooting
- Related
claude-apps-gateway-on-aws
- Architecture
- Prerequisites
- Set your environment variables
- Deploy the gateway
- Terraform reference
- Troubleshooting
- Telemetry
- Client metrics, logs, and traces
- Gateway logs
- Container metrics
- Spend
- Next steps
claude-apps-gateway-on-gcp
- What you’ll build
- Prerequisites
- Deploy the gateway
- Terraform reference
- Troubleshooting
- Next steps
Gateways > Other gateways
llm-gateway
- What a gateway provides
- Roll out a gateway
- Subscriptions and gateways
- Related pages
llm-gateway-connect
- Check for an existing configuration
- Configure Claude Code yourself
- Set the credential variable
- Set the base URL and credential
- Set as shell environment variables
- Set in a settings file
- Verify the connection
- Confirm in Claude Code
- How the credential variable maps to a header
- Conflicts with an existing login
- Configure each surface
- VS Code extension
- Desktop app
- GitHub Actions
- Agent SDK
- Slack, cloud sessions, and Remote Control
- Additional configuration
- Send additional headers
- Add gateway models to the model picker
- Rotate credentials with apiKeyHelper
- Turn off traffic outside the gateway path
- Route to a cloud provider through a gateway
- Amazon Bedrock
- Google Cloud’s Agent Platform
- Microsoft Foundry
- Claude Platform on AWS
- Confirm the provider route
- Troubleshoot gateway errors
- Related resources
llm-gateway-rollout
- Prerequisites
- Gateway requirements
- Rollout steps
- Confirm the gateway routes your models
- Issue developer credentials
- Test Claude Code against the gateway
- Distribute the configuration
- What to distribute
- Distribute through managed settings
- Hand developers the values to set themselves
- Verify the rollout
- Maintain the gateway
- Plan Claude Code version upgrades
- Related resources
llm-gateway-protocol
- API formats
- Foundry and Claude Platform on AWS
- Optional endpoints and startup traffic
- Streaming
- Format mismatch with the upstream
- How the connection method changes client behavior
- Requests and defaults by connection method
- Settings for unrecognized model IDs
- Request headers
- Gateway hint headers
- Forward as open lists
- Response headers
- System prompt attribution block
- Feature pass-through
- Automatic retry and error forwarding
- Disable pre-release capabilities
- Model discovery
- When discovery runs
- Request and response
- Picker entries and caching
- Related resources
Usage and costs
monitoring-usage
- Quick start
- Administrator configuration
- How managed settings lock the OTLP destination
- Configuration details
- Common configuration variables
- mTLS authentication
- Metrics cardinality control
- Traces (beta)
- Span hierarchy
- Span attributes
- Dynamic headers
- Settings configuration
- Script requirements
- Refresh behavior
- Multi-team organization support
- Example configurations
- Telemetry from cloud sessions and Claude Tag
- Attribute telemetry to cloud sessions
- Available metrics and events
- Standard attributes
- Repository attributes
- Metrics
- Metric details
- Session counter
- Lines of code counter
- Pull request counter
- Commit counter
- Cost counter
- Token counter
- Code edit tool decision counter
- Active time counter
- Events
- Event correlation attributes
- User prompt event
- Assistant response event
- Tool result event
- API request event
- API error event
- API refusal event
- API request body event
- API response body event
- Tool decision event
- Permission mode changed event
- Auth event
- MCP server connection event
- Internal error event
- Plugin installed event
- Plugin loaded event
- Skill activated event
- At mention event
- API retries exhausted event
- Hook registered event
- Hook execution start event
- Hook execution complete event
- Hook plugin metrics event
- Compaction event
- Subagent completed event
- Feedback survey event
- Retention sweep event
- Managed settings resolved event
- Standard attributes
- Interpret metrics and events data
- Usage monitoring
- Cost monitoring
- Alerting and segmentation
- Detect retry exhaustion
- Event analysis
- Audit security events
- Attribute actions to users
- Audit MCP activity
- Map security questions to events
- Send events to a SIEM
- Backend considerations
- For metrics
- For events/logs
- For traces
- Service information
- ROI measurement resources
- Security and privacy
- Monitor Claude Code on Amazon Bedrock
costs
- Track your costs
- Using the
/usagecommand- Prompt cache statistics
- Plan usage breakdown
- Check your usage-credits spend
- When the usage request fails
- Analyze your usage patterns
- Add usage credits to your subscription
- Using the
- Manage costs for your organization
- Report spend at your contracted rates
- Claude for Teams and Enterprise
- Claude Console
- Rate limit recommendations
- Cloud providers
- When a developer asks about a limit
- Agent team token costs
- Reduce token usage
- Manage context proactively
- Choose the right model
- Reduce MCP server overhead
- Install code intelligence plugins for typed languages
- Offload processing to hooks and skills
- Move instructions from CLAUDE.md to skills
- Adjust extended thinking
- Delegate verbose operations to subagents
- Manage agent team costs
- Write specific prompts
- Work efficiently on complex tasks
- Background token usage
- Why usage climbs in a long session
- Understanding changes in Claude Code behavior
analytics
- Access analytics for Team and Enterprise
- Enable contribution metrics
- Review summary metrics
- Explore the charts
- Track adoption
- Measure PRs per user
- View pull requests breakdown
- Find top contributors
- PR attribution
- Attribution process
- Time window
- Excluded files
- Attribution notes
- Get the most from analytics
- Monitor adoption
- Measure ROI
- Identify power users
- Access data programmatically
- Access analytics for API customers
- View team insights
- Related resources
Security and data
security
- How we approach security
- Security foundation
- Permission-based architecture
- Built-in protections
- User responsibility
- Protect against prompt injection
- Core protections
- Privacy safeguards
- Additional safeguards
- MCP security
- IDE security
- Cloud execution security
- Security best practices
- Working with sensitive code
- Team security
- Reporting security issues
- Related resources
data-usage
- Data policies
- Data training policy
- Development Partner Program
- Feedback using the
/feedbackcommand - Session quality surveys
- Data retention
- Data access
- Local Claude Code: Data flow and dependencies
- Cloud execution: Data flow and dependencies
- Telemetry services
- Default behaviors by API provider
- WebFetch domain safety check
zero-data-retention
- ZDR scope
- Route Claude Code traffic to your ZDR organization
- What ZDR covers
- What ZDR does not cover
- Features disabled under ZDR
- Model availability under ZDR
- Data retention for policy violations
- Request ZDR
Adoption
communications-kit
- Launch communications
- Before you send
- The announcement
- Executive sponsor variant
- Pilot group variant
- Champion recruitment DM
- Tips and tricks campaign
- Get started
- Project memory
- Control and safety
- Connect your tools
- Automate your workflows
- Day-to-day development
- Share and scale
- Security and admin
- Quick reference
- FAQ responses
- Prompt templates
champion-kit
- The champion role
- What this should cost you
- Share what you discover
- What is worth sharing
- Where to share it
- The format that works
- Be the person people ask
- Answer with a prompt rather than an explanation
- Point at the feature rather than the documentation
- Questions you are likely to hear
- Grow the circle
- Patterns that tend to work
- Thirty-day playbook
- When someone wants to go deeper
- Respond to common concerns
- Quick-reference sheet
Settings
settings
- Settings files and who they affect
- Compare the scope of each settings file
- Find or create your settings files
- Share settings with your team
- Keep personal settings out of a repository
- Where Claude Code keeps the local file in a git repository
- Check what your organization enforces
- Change a setting
- Use the /config menu
- Edit a settings file
- Change a setting for one session
- When edits take effect
- Confirm what loaded
- Fix a broken settings file
- Settings precedence
- Lists merge instead of overriding
- Precedence examples
- Team settings override personal settings
- Organization settings override everything
- The command line overrides your files for one session
- A flag or environment variable sets the same thing
- Troubleshoot a setting that doesn’t apply
- A value you set is ignored
- A change you made in Claude Code is lost in new sessions
- A managed change hasn’t reached you
- A committed key doesn’t reach teammates
- Permission rules combine differently than you expected
- Exceptions to managed settings precedence
- Settings in cloud sessions
- What’s next
settings-reference
- Settings index
- Model and responses
advisorModelalwaysThinkingEnabledavailableModelsavailableModelsMatchdeniedModelseffortLevelenforceAvailableModelsfallbackModelfastModefastModePerSessionOptInlanguagemaxEffortLevelmodelmodelOverridesmodelPicker- Fields for
modelPicker
- Fields for
modelPricing- Fields for
modelPricing - Which models a
modelPricingrow applies to
- Fields for
modelSettingsoutputStylepromptCacheTtlshowThinkingSummariessubagentPromptCacheTtlswitchModelsOnFlagultracode
- Permission settings
allowManagedPermissionRulesOnlyautoModeautoMode.classifyAllShelldisableAutoModepermissionsuseAutoModeDuringPlanpermissions.allow- Permission rule syntax
permissions.askpermissions.denypermissions.additionalDirectoriespermissions.blockReadsOutsideWorkingDirectories- Sandboxed commands under the block
permissions.defaultModepermissions.disableBypassPermissionsModeskipAutoPermissionPromptskipDangerousModePermissionPrompt
- Sandbox settings
sandboxsandbox.enabledsandbox.failIfUnavailablesandbox.autoAllowBashIfSandboxedsandbox.excludedCommandssandbox.allowUnsandboxedCommandssandbox.filesystem- Sandbox path prefixes
sandbox.filesystem.allowWritesandbox.filesystem.denyWritesandbox.filesystem.denyReadsandbox.filesystem.allowReadsandbox.filesystem.allowManagedReadPathsOnlysandbox.filesystem.disabledsandbox.ignoreViolationssandbox.enableWeakerNestedSandboxsandbox.enableWeakerNetworkIsolationsandbox.allowAppleEventssandbox.ripgrepsandbox.bwrapPathsandbox.socatPathsandbox.credentials- Invalid credential entries in managed settings
sandbox.credentials.files- Mask fields for files
sandbox.credentials.envVars- Mask fields for environment variables
sandbox.credentials.allowPlaintextInjectsandbox.credentials.awsPairssandbox.credentials.sigv4sandbox.networksandbox.network.allowUnixSocketssandbox.network.allowAllUnixSocketssandbox.network.allowLocalBindingsandbox.network.allowMachLookupsandbox.network.allowedDomainssandbox.network.deniedDomainssandbox.network.strictAllowlistsandbox.network.allowManagedDomainsOnlysandbox.network.httpProxyPortsandbox.network.socksProxyPortsandbox.network.tlsTerminate
- Memory and context
autoCompactEnabledautoCompactWindowautoMemoryDirectoryautoMemoryEnabledbashOutputMaxCharsclaudeMdclaudeMdExcludesenv- How
envvalues interact with your shell - When Claude Code applies
envvalues - Variables Claude Code ignores in
env
- How
fileCheckpointingEnabledplansDirectoryskillListingBudgetFractionskillListingMaxDescCharstaskOutputMaxChars
- Interface and terminal
askUserQuestionTimeoutautoContinueAtUsageLimitautoScrollEnabledaxScreenReaderbashEditDiffEnabledcompanyAnnouncementsdefaultShelldialogExpiryeditorModeemojiCompletionEnabledfileSuggestion- Command input and output
footerLinksRegexes- Badge constraints
keybindingFlavormaxProseWidthprefersReducedMotionpromptSuggestionEnabledrespectGitignorerespondToBashCommandsshowClearContextOnPlanAcceptshowTurnDurationspellcheckspinnerTipsEnabledspinnerTipsOverridespinnerVerbsstatusLinesubagentStatusLinesyntaxHighlightingDisabledterminalProgressBarEnabledterminalTitleFromRenamethemetimeFormattimeZonetuiverboseviewModevimInsertModeRemapsvoicevoiceEnabledwheelScrollAccelerationEnabled
- Git and attribution
attributionincludeCoAuthoredByincludeGitInstructionsprUrlTemplateattribution.commitattribution.prattribution.sessionUrl
- Hooks and automation
allowedHttpHookUrlsallowManagedHooksOnly- What runs under
allowManagedHooksOnly
- What runs under
disableAllHooks- Status line and file suggestion gates
disableWorkflowsenableWorkflowshookshttpHookAllowedEnvVarsworkflowKeywordTriggerEnabledworkflowSizeGuideline
- Plugins and skills
disableBundledSkillsdisableSkillShellExecutionskillOverridessyncClaudeAiSkillssyncClaudeAiPluginsallowedChannelPluginsblockedMarketplaceschannelsEnableddisableCommandPluginSourcespluginSuggestionMarketplacespluginTrustMessagestrictKnownMarketplaces- Allowed source types
- Owner wildcards
- Exact matching
- Allow only the official marketplace
- Combine with
extraKnownMarketplaces
strictPluginOnlyCustomizationstrictPluginOnlyCustomization.skillsstrictPluginOnlyCustomization.agentsstrictPluginOnlyCustomization.hooksstrictPluginOnlyCustomization.mcpenabledPluginsextraKnownMarketplaces- Marketplace source types
- Marketplace key aliases
pluginConfigs
- MCP
allowAllClaudeAiMcpsallowClaudeInChromeWithManagedMcpallowedMcpServersallowManagedMcpServersOnlydeniedMcpServersdisableClaudeAiConnectorsdisabledMcpjsonServersenableAllProjectMcpServersenabledMcpjsonServersmanagedMcpServers
- Agents, sessions, and worktrees
agentcrossSessionInbounddisableAgentViewisolatePeerMachinesprocessWrapperteammateModeworktreeworktree.baseRefworktree.symlinkDirectoriesworktree.sparsePathsworktree.bgIsolation
- Remote, desktop, and notifications
agentPushNotifEnabledawaySummaryEnableddisableArtifactdisableDeepLinkRegistrationdisableDesktopLocalSessionsdisableRemoteControlenableArtifactinputNeededNotifEnabledpreferredNotifChannelremote.defaultEnvironmentIdremoteControlAtStartupsshConfigssshHostAllowlist
- Authentication and providers
apiKeyHelperawsAuthRefreshawsCredentialExportforceLoginMethodforceLoginGatewayUrlforceLoginOrgUUIDgatewayInternalNetworksgcpAuthRefreshotelHeadersHelper
- Updates and versioning
autoUpdatesChannelminimumVersionrequiredMaximumVersionrequiredMinimumVersion
- Tools
browserExternalPageToolsdisableBrowserExternalNavigationdisableMobileSimulatorTools
- Privacy and telemetry
cleanupPeriodDaysdesktopSessionCleanupPeriodDaysfeedbackDraftsfeedbackSurveyRateskipWebFetchPreflight
- Enterprise and managed settings
disableSideloadFlagsforceRemoteSettingsRefreshmanagedSourcesBehaviorparentSettingsBehaviorpolicyHelper- Write the helper output
- Helper failures
policyHelper.pathpolicyHelper.timeoutMspolicyHelper.refreshIntervalMswslInheritsWindowsSettings
- Global config settings
autoConnectIdeautoInstallIdeExtensionclaudeInChromeDefaultEnabledcopyFullResponsecopyOnSelectdefaultToAgentsViewdiffToolexternalEditorContextleftArrowOpensAgentspermissionExplainerEnabledprStatusFooterEnabledteammateDefaultModel
- See also
settings-example
- Your own settings
- A team’s shared settings
- An organization’s managed settings
Permissions and sandboxing
permissions
- Permission system
- Add a comment when you answer a permission prompt
- Manage permissions
- Permission modes
- Permission rule syntax
- Match all uses of a tool
- Use specifiers for fine-grained control
- Match by input parameter
- Wildcard patterns
- Tool name wildcards
- Tool-specific permission rules
- Bash
- Compound commands
- Wrappers
- What a Bash rule doesn’t match
- Read-only commands
- Redirections
- PowerShell
- Read and Edit
- Symlinks
- How rules match a symlinked path
- Writes through a symlink
- Paths that can’t be resolved or that change
- Symlinks
- WebFetch
- Allow or deny every fetch
- MCP
- Agent (subagents)
- Cd
- Bash
- Extend permissions with hooks
- Working directories
- Move the session to another directory
- Additional directories grant file access, not configuration
- How permissions interact with sandboxing
- Managed settings
- Settings precedence
- Project allow rules and workspace trust
- When your local settings file needs trust
- What runs before you trust a folder
- Example configurations
- See also
permission-modes
- Available modes
- Actions no mode auto-approves
- Common setups
- Which mode a session starts in
- Start in a different permission mode
- Switch permission modes
- Auto-approve file edits with acceptEdits mode
- Analyze before you edit with plan mode
- Review and approve a plan
- Set plan mode as the default
- Eliminate permission prompts with auto mode
- Auto mode on Bedrock, Agent Platform, or Foundry
- Server-side classifier review
- What the classifier blocks by default
- The first read outside the working directories
- Boundaries you state in conversation
- Approvals you state in conversation
- When auto mode falls back
- Repeated-block thresholds
- How auto mode evaluates actions
- Allow only pre-approved tools with dontAsk mode
- Skip all checks with bypassPermissions mode
- Protected paths
- Critical paths
- Which paths are critical
- Other targets that count as critical paths
- Removals inside nested commands and inline scripts
- Rewrite a flagged command
- Critical-path removals in each permission mode
- Time limits and denials in auto and bypassPermissions modes
- Remove-Item in PowerShell
- See also
sandboxing
- Get started
- Set up Linux and WSL2
- Sandbox modes
- Auto-allow mode
- Regular permissions mode
- The unsandboxed retry escape hatch
- Temporary directories
- Configure sandboxing
- Disable filesystem isolation
- Which settings can disable it
- What changes when filesystem isolation is off
- Protect credentials
- Mask credentials
- Mask environment variables
- Re-sign AWS requests
- Mask credential files
- Disable filesystem isolation
- How sandboxing works
- Filesystem isolation
- Protected paths
- Network isolation
- Per-command allowed domains in auto mode
- IPv6 addresses in domain lists
- OS-level enforcement
- How sandboxing relates to permissions and permission modes
- Permission rules
- Permission modes
- Configure the sandbox for your organization
- Enforce sandboxing with managed settings
- Keep developers from widening the policy
- Custom proxy configuration
- Troubleshooting
- Limitations
- Security limitations
- Platform and tool compatibility
- Scope
- See also
sandbox-environments
- Compare sandboxing approaches
- Choose an approach
- How isolation relates to permission modes
- Sandboxed Bash tool
- Sandbox runtime
- Set up and launch the runtime
- What the runtime blocks on its own
- After unattended runs
- Dev containers
- Custom container
- Virtual machine
- Cloud sessions
- Enforce isolation across an organization
- See also
Environments
cloud-environments
- The Default environment
- Configure your environment
- Set environment variables
- Add API credentials
- Requirements
- Add a credential
- Which requests get the credential
- Requests that never get the credential
- Select an environment from the CLI
- Archive an environment
- Organization-shared environments
- Set the environment a Claude Tag channel uses
- Network access
- Access levels
- Allow specific domains
- GitHub proxy
- Security proxy
- What’s available in cloud sessions
- What carries over from your setup
- Installed tools
- Work with GitHub issues and pull requests
- Link output back to the session
- Run tests, start services, and add packages
- Run tests
- Start services
- Add packages
- Resource limits
- Time limits
- Setup scripts
- Script requirements
- Environment caching
- Setup scripts vs. SessionStart hooks
- Install dependencies with a SessionStart hook
- Limitations in cloud sessions
- Default allowed domains
- Related resources
Environments > Self-hosted environments
self-hosted-environments
- How self-hosted environments work
- Availability and limitations
- Why self-host
- Environments, runners, and sessions
- Key concepts
- Session lifecycle
- Runner lifecycle
- Network paths
- What stays on your infrastructure
- Get started
self-hosted-environments-quickstart
- Prerequisites
- Organization and roles
- Host and network
- Software on the runner host
- Set up an environment and runner
- Send a follow-up message to a running session
- What’s next
self-hosted-environments-deploy
- Harden your deployment
- Network requirements
- Default-deny egress
- Authenticate to an egress proxy
- Choose where the
Proxy-Authorizationvalue comes from - Configurations the runner refuses to start with
- What the runner changes while a proxy-authorization flag is set
- Choose where the
- Configure git
- Let the runner configure git
- Ship git config in your image
- Use the Anthropic git proxy
- Trust a private certificate authority with Anthropic-managed git
- Rewrite git URLs for private networks
- Build the runner image
- Size CPU and memory for sessions
- Kubernetes
- Docker Compose
- Shutdown timing
- Defer the drain past the first signal
- What happens to the sessions the runner holds after the first signal
- Size the stop timeout
- What reaches a running post-session hook
- Defer the drain past the first signal
- Keep the base directory and capacity identical across runners
- Reuse a pre-warmed checkout
- Pin the version
- Scale the fleet
- Known issues and limitations
- Connector traffic leaves your network
- Some sessions don’t count as idle
- Additional limitations
- Report an issue
- Troubleshooting
- When the runner exits
- Recognize a failed start
- Restart with a wait that grows
- Check why the runner keeps exiting
- When the runner exits
- What’s next
self-hosted-environments-configuration
- Wrapper scripts
- Keep stdin and file descriptor 3 attached
- Provision credentials scoped to the session creator
- Lifecycle hooks
- checkout
- post-session
- Hook timing when the runner releases a session
- command
- On-demand runners
- The spawn-runner hook
- MCP servers
- Turn off built-in session tools
- Prompt sessions to push their work
- Permissions and tool approval
- How each session’s config is assembled
- Repository-committed permission rules
- What’s next
self-hosted-environments-testing
- Install the capture hook on your test runner
- Save the hook files
- Before you start the runner
- Run the test loop
--environmentdispatch behavior
- Example script
- Remote test runners
- Authenticate from CI
- Long-lived CI host
- Ephemeral CI runners
- Create a dedicated test environment
- Mint the admin token
- Create the environment
- Delete the environment
self-hosted-environments-reference
- Runner CLI flags
- Orchestrator CLI flags
- SCM connector flags
- Environment-variable-only settings
- Telemetry
- Health endpoint
- Prometheus metrics
- Pass through session-child metrics
- Session lifecycle counter semantics
- What’s next
self-hosted-environments-identity
- The session token
- What the token proves
- Token format
- Verify the token
- Verify the token from your service
- Verify the token inside the session
- Claims reference
- The
actchain
- The
- Scope derived credentials
- Related environment variables
- What’s next
Model and responses
model-config
- Available models
- Model aliases
- Work with Fable
- Fable and usage credits
- Setting your model
- Set a default model for new sessions
- A new session starts on a different model than you picked
- Restrict model selection
- Surface coverage
- Default model behavior
- Enforce the allowlist for the Default model
- Control the model users run on
- Merge behavior
- Mantle model IDs
- Block specific models or versions
- Organization model restrictions
- Organization default model
- Organization effort limits
- Special model behavior
defaultmodel settingopusplanmodel setting- Fallback model chains
- Automatic model fallback
- Check what triggered fallback
- Ask before switching
- Enable fallback on Bedrock, Agent Platform, and Foundry
- Security research and biology workloads
- Adjust effort level
- Choose an effort level
- Use ultrathink for one-off deep reasoning
- Set the effort level
- Adaptive reasoning and fixed thinking budgets
- Extended thinking
- Extended context
- Sonnet 5.5 and Sonnet 5 context window
- Context window and auto-compaction
- Set the auto-compact window
- Default auto-compact thresholds
- Correct the window for a gateway or custom model ID
- Checking your current model
- Add a custom model option
- Environment variables
- Pin models for third-party deployments
- Customize pinned model display and capabilities
- Override model IDs per version
- Prompt caching configuration
- Version history
fast-mode
- Toggle fast mode
- Switch models while fast mode is on
- Use fast mode in cloud sessions
- Understand the cost tradeoff
- See where fast mode spend appears
- Decide when to use fast mode
- Fast mode vs effort level
- Requirements
- Enable fast mode for your organization
- Use fast mode behind proxies and LLM gateways
- Require per-session opt-in
- Handle rate limits
- Research preview
- See also
advisor
- When to use the advisor
- Enable the advisor
- Use the
/advisorcommand - Set
advisorModelin settings - Use the
--advisorflag
- Use the
- Choose an advisor model
- Fable advisor and usage credits
- Common model pairings
- When Claude consults the advisor
- What you see during a session
- Cost
- Impact on prompt caching
- Requirements
- Turn the advisor off
- Compare with related features
- See also
output-styles
- Built-in output styles
- Default
- Proactive
- Concise
- Explanatory
- Learning
- Change your output style
- Create a custom output style
- Frontmatter reference
- Choose between an output style and other features
- How output styles work
- Related resources
Interface
terminal-config
- Enter multiline prompts
- Enable Option key shortcuts on macOS
- Get a terminal bell or notification
- Play a sound with a Notification hook
- Configure tmux
- Fix Backspace deleting a whole word on Windows
- Match the color theme
- Create a custom theme
- Text and accent colors
- Status colors
- Input box and mode indicators
- Diff rendering
- Fullscreen mode
- Usage meter and speaker labels
- Shimmer variants and subagent colors
- Create a custom theme
- Switch to fullscreen rendering
- Cap response width in wide terminals
- Paste large content
- How Claude treats pasted text
- Delete and restore a collapsed paste
- Recall a prompt that had pasted text
- Edit prompts with Vim keybindings
- Related resources
fullscreen
- Enable fullscreen rendering
- Fullscreen by default
- What changes
- Use the mouse
- Scroll the conversation
- Auto-follow
- Mouse wheel scrolling
- Scroll in the JetBrains IDE terminal
- Search and review the conversation
- Watch your changes in the diff panel
- Clear the conversation
- Use with tmux
- Keep native text selection
- Troubleshooting
- Stale or misplaced text on screen
Claude Code's fullscreen renderer didn't finish starting last timeappears at startup- How Claude Code counts failed starts
- Research preview
accessibility
- Turn on screen reader mode
- Turn off screen reader mode
- Accessibility settings
- What your screen reader hears
- Jump between turns
- Answer menus and prompts
- Hear when Claude Code needs you
- Known limitations
- Report an issue
voice-dictation
- Requirements
- Enable voice dictation
- Hold to record
- Tap to record and send
- Cancel a recording
- Change the dictation language
- Rebind the dictation key
- Troubleshooting
- Terminal not listed in macOS Microphone settings
- See also
statusline
- Set up a status line
- Use the /statusline command
- Manually configure a status line
- Disable the status line
- Build a status line step by step
- How status lines work
- Available data
- Context window fields
- Prompt cache fields
- Last miss cause
- Examples
- Context window usage
- Git status with colors
- Cost and duration tracking
- Display multiple lines
- Clickable links
- Rate limit usage
- Cache expensive operations
- Windows configuration
- Subagent status lines
- Tips
- Troubleshooting
keybindings
- Configuration file
- Contexts
- Available actions
- App actions
- History actions
- Chat actions
- Autocomplete actions
- Confirmation actions
- Permission actions
- Transcript actions
- History search actions
- Task actions
- Theme actions
- Help actions
- Tabs actions
- Attachments actions
- Footer actions
- Message selector actions
- Diff actions
- Diff panel actions
- Model picker actions
- Effort slider actions
- Select actions
- Plugin actions
- Settings actions
- Agents actions
- Voice actions
- Scroll actions
- Keystroke syntax
- Modifiers
- Uppercase letters
- Non-US keyboard layouts
- Chords
- Special keys
- Unbind default shortcuts
- Reserved shortcuts
- Terminal conflicts
- Text fields
- Vim mode interaction
- Validation
Reference
cli-reference
- CLI commands
- CLI flags
- System prompt flags
- System prompt flags in resumed conversations
- System prompt flags
- See also
commands
- Commands across a typical workflow
- All commands
- How the command menu matches what you type
- MCP prompts
- See also
env-vars
- Set environment variables
- In your shell
- In settings files
- Precedence
- Variables
- Features that need feature-flag fetching
- First session after an install or upgrade
- See also
tools-reference
- Configure tools with permission rules and hooks
- Agent tool behavior
- AskUserQuestion tool behavior
- Question auto-continue timeout
- Bash tool behavior
- What persists between commands
- Timeout and output limits
- Output limits
- Background commands
- Memory limit on Linux and WSL
- Edit tool behavior
- EndConversation tool behavior
- Glob tool behavior
- Grep tool behavior
- LSP tool behavior
- Monitor tool
- WebSocket source
- NotebookEdit tool behavior
- PowerShell tool
- Enable the PowerShell tool
- Shell selection in settings, hooks, and skills
- Windows encoding and exit codes
- Preview limitations
- Read tool behavior
- SendFeedback tool behavior
- What you see when Claude drafts
- Review and edit a draft
- Send a draft
- Discard or keep a draft
- Turn Claude-drafted feedback off
- Sessions without Claude-drafted feedback
- Task tool availability
- WebFetch tool behavior
- WebSearch tool behavior
- Session search limit
- Write tool behavior
- Check which tools are available
- See also
interactive-mode
- Keyboard shortcuts
- General controls
- Text editing
- Word boundaries in editing shortcuts
- Theme and display
- Multiline input
- Quick commands
- Transcript viewer
- Voice input
- Commands
- Complete a command mid-prompt
- Vim editor mode
- Mode switching
- Remap INSERT-mode key sequences
- Navigation (NORMAL mode)
- Editing (NORMAL mode)
- Text objects (NORMAL mode)
- Visual mode
- Command history
- Reverse search with Ctrl+R
- Background Bash commands
- How backgrounding works
- Shell mode with
!prefix
- Queue messages while Claude works
- When Claude Code sends what you queued
- Take back what you queued
- Prompt suggestions
- When Claude Code skips suggestions
- Turn prompt suggestions off
- Emoji shortcodes
- Check spelling as you type
- Prerequisites
- Turn spell checking on or off
- What Claude Code underlines
- When Claude Code underlines nothing
- Invisible characters in prompts
- Review changes with /diff
- Diff panel
- Diff viewer
- Side questions with /btw
- Task list
- Session recap
- Wait for a usage limit to reset
- Cancel the wait
- Start a wait yourself
- Turn automatic continue off
- PR review status
- GitLab merge requests
- Issue reference links
- See also
checkpointing
- How checkpoints work
- Automatic tracking
- Rewind and summarize
- Rewind past a cleared conversation
- Guide a summary
- Common use cases
- Limitations
- Bash command changes not tracked
- Subagent edits not restored
- External changes not tracked
- Messages sent mid-turn not checkpointed
- Symlinked and hard-linked paths not restored
- Not a replacement for version control
- See also
hooks
- Hook lifecycle
- How a hook resolves
- Configuration
- Hook locations
- Matcher patterns
- Match MCP tools
- Hook handler fields
- Common fields
- Command hook fields
- Exec form and shell form
- HTTP hook fields
- MCP tool hook fields
- How the tool’s result is read
- When the server is still connecting
- Events that fire before MCP servers are available
- Prompt and agent hook fields
- Reference scripts by path
- Hooks in skills and agents
- The
/hooksmenu - Disable or remove hooks
- Hook input and output
- Common input fields
- Exit code output
- Exit code 0
- Exit code 2
- Other exit codes
- Timeouts
- Exit code 2 behavior per event
- HTTP response handling
- JSON output
- Emit terminal notifications
- Add context for Claude
- Decision control
- Hook events
- SessionStart
- SessionStart input
- SessionStart decision control
- Persist environment variables
- Setup
- Setup input
- Setup decision control
- InstructionsLoaded
- InstructionsLoaded input
- InstructionsLoaded decision control
- UserPromptSubmit
- UserPromptSubmit input
- UserPromptSubmit decision control
- What a blocked prompt leaves behind
- UserPromptExpansion
- UserPromptExpansion input
- UserPromptExpansion decision control
- MessageDisplay
- MessageDisplay input
- MessageDisplay output
- PreToolUse
- PreToolUse input
- Bash
- PowerShell
- Write
- Edit
- Read
- Glob
- Grep
- WebFetch
- WebSearch
- Agent
- AskUserQuestion
- ExitPlanMode
- PreToolUse decision control
- Defer a tool call for later
- PreToolUse input
- PermissionRequest
- PermissionRequest input
- PermissionRequest decision control
- Permission update entries
- PostToolUse
- PostToolUse input
- PostToolUse decision control
- Annotate a result for the auto mode classifier
- PostToolUseFailure
- PostToolUseFailure input
- PostToolUseFailure decision control
- PostToolBatch
- PostToolBatch input
- PostToolBatch decision control
- PermissionDenied
- PermissionDenied input
- PermissionDenied decision control
- Notification
- Notification input
- SubagentStart
- SubagentStart input
- SubagentStop
- SubagentStop input
- TaskCreated
- TaskCreated input
- TaskCreated decision control
- TaskCompleted
- TaskCompleted input
- TaskCompleted decision control
- Stop
- Stop input
- Stop decision control
- StopFailure
- StopFailure input
- TeammateIdle
- TeammateIdle input
- TeammateIdle decision control
- ConfigChange
- ConfigChange input
- ConfigChange decision control
- CwdChanged
- CwdChanged input
- CwdChanged output
- DirectoryAdded
- DirectoryAdded input
- FileChanged
- FileChanged input
- FileChanged output
- WorktreeCreate
- WorktreeCreate input
- WorktreeCreate output
- WorktreeRemove
- WorktreeRemove input
- PreCompact
- PreCompact input
- PostCompact
- PostCompact input
- PreModelSwitch
- PreModelSwitch input
- PreModelSwitch decision control
- PostModelSwitch
- PostModelSwitch input
- PostModelSwitch decision control
- SessionEnd
- SessionEnd input
- Elicitation
- Elicitation input
- Elicitation output
- ElicitationResult
- ElicitationResult input
- ElicitationResult output
- SessionStart
- Prompt-based hooks
- How prompt-based hooks work
- Prompt hook configuration
- Response schema
- Check multiple conditions before stopping
- Agent-based hooks
- How agent hooks work
- Agent hook configuration
- Run hooks in the background
- Configure an async hook
- How async hooks execute
- Run tests after file changes
- Limitations
- Security considerations
- Disclaimer
- Workspace trust
- Security best practices
- Windows PowerShell tool
- Debug hooks
channels-reference
- Overview
- What you need
- Example: build a webhook receiver
- Test during the research preview
- Server options
- Notification format
- Expose a reply tool
- Gate inbound messages
- Relay permission prompts
- How relay works
- Permission request fields
- Add relay to a chat bridge
- Full example
- Package as a plugin
- See also
Glossary
glossary
- A
- AGENTS.md
- Agent teams
- Agentic coding
- Agentic harness
- Agentic loop
- Artifact
- Auto memory
- Auto mode
- B
- Bare mode
- Bundled skills
- C
- Channel
- Checkpoint
.claudedirectory- CLAUDE.md
- Cloud session
- Command
- Compaction
- Connector
- Context window
- D
- Dispatch
- E
- Effort level
- Extended thinking
- F
- Frontmatter
- H
- Hook
- M
- Managed settings
- MCP (Model Context Protocol)
- MCP server
- MCP Tool Search
- N
- Non-interactive mode
- O
- Output style
- P
- Permission mode
- Permission rule
- Plan mode
- Plugin
- Project trust
- Prompt injection
- R
- Remote Control
- Rules
- S
- Sandboxing
- Session
- Settings layers
- Skill
- Subagent
- Surface
- System prompt
- System reminder
- T
- Teleport
- Tool
- Turn
- V
- Verification loop
- W
- Worktree isolation
- Deprecated and renamed terms
Agent SDK
overview
- Compare the Agent SDK to other Claude tools
- Capabilities
- Get started
- Changelog
- Report bugs
- Branding guidelines
- License and terms
- Next steps
quickstart
- Prerequisites
- Setup
- Create a buggy file
- Build an agent that finds and fixes bugs
- Run your agent
- Try other prompts
- Customize your agent
- Key concepts
- Next steps
migration-guide
- Overview
- What’s Changed
- Migration Steps
- For TypeScript/JavaScript Projects
- For Python Projects
- Breaking changes
- Python: ClaudeCodeOptions renamed to ClaudeAgentOptions
- System prompt no longer default
- Settings sources default
- Next Steps
troubleshooting
- CLI startup
- CLINotFoundError: Claude Code not found
- CLIConnectionError: Refusing to execute batch script
- CLIConnectionError: Failed to start Claude Code
- CLIConnectionError: Not connected
- CLI process exit
- ProcessError: Command failed with exit code
- Claude Code process exited with code N
- Claude Code returned an error result
- Structured outputs
- structured_output is None but the result says success
- Report a new issue
Build agents
configuration
- Pass options to a session
- Load settings files
- Choose a model
- Set environment variables
- Set the working directory
- Limit turns and spend
- Change configuration mid-session
- Configure specific features
- Next steps
examples
- Run a minimal agent first
- Explore a demo application
- Work through a Python recipe
Core concepts
agent-loop
- The loop at a glance
- Turns and messages
- Message types
- Handle messages
- Tool execution
- Built-in tools
- Tool permissions
- Parallel tool execution
- Control how the loop runs
- Turns and budget
- Effort level
- Permission mode
- Model
- The context window
- What consumes context
- Automatic compaction
- Keep context efficient
- Sessions and continuity
- Handle the result
- Hooks
- Put it all together
- Next steps
claude-code-features
- Control filesystem settings with settingSources
- What settingSources does not control
- Project instructions (CLAUDE.md and rules)
- CLAUDE.md load locations
- Skills
- Hooks
- When to use which hook type
- Choose the right feature
- Related resources
sessions
- Choose an approach
- Continue, resume, and fork
- Automatic session management
- Python:
ClaudeSDKClient - TypeScript:
continue: true
- Python:
- Use session options with
query()- Capture the session ID
- Resume by ID
- Fork to explore alternatives
- Resume across hosts
- Related resources
session-storage
- The
SessionStoreinterface - Quick start
- Write your own adapter
- Reference implementations
- Validate your adapter
- Behavior notes
- Dual-write architecture
- Resume from the store
- Mirror writes are best-effort
getSessionMessagesreturns the post-compaction chainforkSessionis not a byte copy- Subagent transcripts
- Retention
- Supported on
- Related resources
Input and output
streaming-vs-single-mode
- Overview
- Streaming Input Mode (Recommended)
- Benefits
- Implementation Example
- Single Message Input
- When to Use Single Message Input
- Limitations
- Implementation Example
user-input
- Detect when Claude needs input
- Handle tool approval requests
- Respond to tool requests
- Handle clarifying questions
- Question format
- Option previews (TypeScript)
- Response format
- Support free-text input
- Complete example
- Question format
- Limitations
- Other ways to get user input
- Streaming input
- Custom tools
- Related resources
streaming-output
- Enable streaming output
- StreamEvent reference
- Message flow
- Stream tool calls
- Build a streaming UI
- Known limitations
- Next steps
structured-outputs
- Why structured outputs?
- Quick start
- Type-safe schemas with Zod and Pydantic
- Output format configuration
- Example: TODO tracking agent
- Error handling
- Related resources
Extend with tools
custom-tools
- Quick reference
- Create a custom tool
- Weather tool example
- Call a custom tool
- Add more tools
- Add tool annotations
- Control tool access
- Configure allowed tools
- Handle errors
- Return images and resources
- Images
- Resources
- Return structured data
- Example: unit converter
- Next steps
mcp
- Quickstart
- Add an MCP server
- In code
- From a config file
- Connection timing
- Allow MCP tools
- Tool naming convention
- Auto-approve with allowedTools
- Discover available tools
- Transport types
- stdio servers
- HTTP/SSE servers
- SDK MCP servers
- MCP tool search
- Authentication
- Pass credentials via environment variables
- HTTP headers for remote servers
- OAuth2 authentication
- Examples
- List issues from a repository
- Query a database
- Error handling
- Troubleshooting
- Server shows “failed” status
- Tools not being called
- Connection timeouts
- Tool output exceeds maximum allowed tokens
- Related resources
tool-search
- How tool search works
- Configure tool search
- Optimize tool discovery
- Limits
- Related documentation
subagents
- Overview
- Benefits of using subagents
- Create subagents
- Programmatic definition (recommended)
- AgentDefinition configuration
- Filesystem-based definition (alternative)
- What subagents inherit
- Invoke subagents
- Automatic invocation
- Explicit invocation
- Dynamic agent configuration
- Detect subagent invocation
- Resume subagents
- Tool restrictions
- Common tool combinations
- Cap subagent depth, concurrency, and spend
- Run Opus 5 with subagents
- Scale up with dynamic workflows
- Troubleshooting
- Claude not delegating to subagents
- Filesystem-based agents not loading
- Related documentation
Customize behavior
modifying-system-prompts
- How system prompts work
- Decide on a starting point
- Customize agent behavior
- CLAUDE.md files for project-level instructions
- Load CLAUDE.md with the SDK
- Output styles for persistent configurations
- Create an output style
- Activate an output style
- Append to the
claude_codepreset- Improve prompt caching across users and machines
- Custom system prompts
- Cache the static part of a custom prompt
- Change the prompt of an existing session
- Update Claude’s instructions mid-session
- Turn recording off while you iterate on wording
- CLAUDE.md files for project-level instructions
- Context Claude Code adds outside the system prompt
- Reminders Claude Code adds to the conversation
- Turn off the context your agent replaces
- See what Claude received
- Compare the four approaches
- Combine approaches
- Combine an output style with session-specific additions
- See also
skills
- How skills work with the Agent SDK
- Use skills with the Agent SDK
- Set up skills in a session
- Confirm skills loaded
- Allow only specific skills
- Commands in Agent SDK sessions
- Discover available commands
- Dispatch commands by name
- Compact history with
/compact - Reset context with
/clear
- Create skills
- Choose a discovery level
- Create and dispatch your first skill
- Pre-approve tools for skills
- Troubleshooting
- Skills not found
- Skill not being used
- Invalid skill name error
- Additional troubleshooting
- Next steps
- Related resources
plugins
- Loading plugins
- Path specifications
- Verifying plugin installation
- Use plugin skills
- Complete example
- Plugin structure reference
- Multiple plugin sources
- Troubleshooting
- Plugin not loading
- Skills not appearing
- See also
Control and observability
permissions
- How permissions are evaluated
- Allow and deny rules
- Permission modes
- Available modes
- Set permission mode
- Mode details
- Accept edits mode (
acceptEdits) - Don’t ask mode (
dontAsk) - Bypass permissions mode (
bypassPermissions) - Plan mode (
plan)
- Accept edits mode (
- Related resources
hooks
- How hooks work
- Available hooks
- Configure hooks
- Matchers
- Callback functions
- Inputs
- Outputs
- Asynchronous output
- Examples
- Modify tool input
- Add context and block a tool
- Auto-approve specific tools
- Register multiple hooks
- Filter with multi-tool matchers
- Track subagent activity
- Make HTTP requests from hooks
- Forward notifications to Slack
- Fix common issues
- Hook not firing
- Matcher not filtering as expected
- Hook timeout
- Tool blocked unexpectedly
- Modified input not applied
- Session hooks not available in Python
- Subagent permission prompts multiplying
- Recursive hook loops with subagents
- systemMessage not appearing in output
- Related resources
file-checkpointing
- How checkpointing works
- Implement checkpointing
- Common patterns
- Checkpoint before risky operations
- Multiple restore points
- Try it out
- Limitations
- Troubleshooting
- Checkpointing options not recognized
- User messages don’t have UUIDs
- “No file checkpoint found for this message” error
- “File rewinding is not enabled” error
- “ProcessTransport is not ready for writing” error
- Next steps
cost-tracking
- Understand token usage
- Track costs in streaming input mode
- Get the total cost of a query
- Track per-step and per-model usage
- Track per-step usage
- Break down usage per model
- Accumulate costs across multiple calls
- Handle errors, caching, and output token counts
- Read output tokens from the result message
- Track costs on failed conversations
- Recover totals after a session crash
- Track cache tokens
- Extend the prompt cache TTL to one hour
- Related documentation
observability
- How telemetry flows from the SDK
- Enable telemetry export
- Flush telemetry from short-lived calls
- Read agent traces
- Link traces to your application
- Tag telemetry from your agent
- Attribute actions to your end users
- Control sensitive data in exports
- Related documentation
todo-tracking
- Model availability
- Todo lifecycle
- When Claude creates todos
- Examples
- Monitor todo changes
- Display progress in real time
- Related documentation
Deployment
hosting
- The subprocess model
- State that lives on local disk
- Choose a session pattern
- Ephemeral sessions
- Long-running sessions
- Hybrid sessions
- Multi-agent container
- Provision the container
- Container-based sandboxing
- Runtime dependencies
- Resources
- Network
- Handle production concerns
- Session and state persistence
- Observability
- Auth and secrets
- Scaling and concurrency
- Cost
- Multi-tenant isolation
- Known limitations
- Troubleshoot deployment failures
- Next steps
secure-deployment
- Threat model
- Built-in security features
- Security principles
- Security boundaries
- Least privilege
- Defense in depth
- Isolation technologies
- Sandbox runtime
- Containers
- gVisor
- Virtual machines
- Cloud deployments
- Credential management
- The proxy pattern
- Configuring Claude Code to use a proxy
- Implementing a proxy
- Credentials for other services
- Custom tools
- Traffic forwarding
- Filesystem configuration
- Read-only code mounting
- Writable locations
- Further reading
SDK references
typescript
- Installation
- Compile to a single executable
- Import the
/coreentry when you bundle the Agent SDK
- Functions
query()- Parameters
- Returns
startup()- Parameters
- Returns
- Example
prewarm()- Example
tool()- Parameters
ToolAnnotations
createSdkMcpServer()- Parameters
listSessions()- Parameters
- Return type:
SDKSessionInfo - Example
getSessionMessages()- Parameters
- Return type:
SessionMessage - Example
getSessionInfo()- Parameters
renameSession()- Parameters
tagSession()- Parameters
resolveSettings()- Parameters
- Return type:
ResolvedSettings - Example
- Types
Options- Handle slow or stalled API responses
Queryobject- Methods
applyFlagSettings()updateSettings()
WarmQuery- Methods
SpareProcess- Members
SDKControlInitializeResponseSDKControlInterruptResponseSDKControlGetContextUsageResponseSDKControlReadFileResponse- What
readFile()can read
- What
SDKControlReloadPluginsResponseSDKControlReloadSkillsResponseSDKControlReloadOutputStylesResponseSDKControlMcpReadResourceResponseAgentDefinitionAgentMcpServerSpecSettingSource- Default behavior
- Why use settingSources
- Settings precedence
PermissionModeCanUseToolPermissionResultToolConfigMcpServerConfigMcpStdioServerConfigMcpSSEServerConfigMcpHttpServerConfigMcpSdkServerConfigWithInstanceMcpClaudeAIProxyServerConfig
SdkPluginConfig
- Message Types
SDKMessageSDKAssistantMessageSDKUserMessageSDKUserMessageReplaySDKResultMessageuser_message_uuiduser_message_uuidsresume_reasonqueued_turn_countstartup_failure_reason
SDKSystemMessageSDKPartialAssistantMessageSDKCompactBoundaryMessageSDKInformationalMessageSDKWorkerShuttingDownMessageSDKPluginInstallMessageSDKPermissionDeniedMessageSDKPermissionDenialSDKContextUsageSDKContextUsageCategorySDKMessageOrigin- Task-notification subkinds
- Declare a scheduled run
- Peer origin fields
- Hook Types
HookEventHookCallbackHookCallbackMatcherHookInputBaseHookInputPreToolUseHookInputPostToolUseHookInputPostToolUseFailureHookInputPostToolBatchHookInputPermissionDeniedHookInputNotificationHookInputUserPromptSubmitHookInputUserPromptExpansionHookInputSessionStartHookInputSessionEndHookInputStopHookInputStopFailureHookInputSubagentStartHookInputSubagentStopHookInputPreCompactHookInputPostCompactHookInputPreModelSwitchHookInputPostModelSwitchHookInputPermissionRequestHookInputSetupHookInputTeammateIdleHookInputTaskCreatedHookInputTaskCompletedHookInputElicitationHookInputElicitationResultHookInputConfigChangeHookInputInstructionsLoadedHookInputDirectoryAddedHookInputWorktreeCreateHookInputWorktreeRemoveHookInputCwdChangedHookInputFileChangedHookInputMessageDisplayHookInput
HookJSONOutputAsyncHookJSONOutputSyncHookJSONOutput
- Tool Input Types
ToolInputSchemas- Agent
- AskUserQuestion
- Bash
- Monitor
- TaskOutput
- Edit
- Read
- Write
- Glob
- Grep
- TaskStop
- NotebookEdit
- WebFetch
- WebSearch
- Workflow
- TodoWrite
- TaskCreate
- TaskUpdate
- TaskGet
- TaskList
- ExitPlanMode
- ListMcpResources
- ReadMcpResource
- EnterWorktree
- ExitWorktree
- EnterPlanMode
- CronCreate
- CronDelete
- CronList
- ScheduleWakeup
- RemoteTrigger
- PushNotification
- REPL
- ReportFindings
- Artifact
- Projects
- ReadMcpResourceDir
- RefreshMcpTools
- ShowOnboardingRolePicker
- McpInput
- Tool Output Types
ToolOutputSchemas- Agent
- AskUserQuestion
- Bash
- Monitor
- Edit
- Read
- Write
- Glob
- Grep
- TaskStop
- NotebookEdit
- WebFetch
- WebSearch
- Workflow
- TodoWrite
- TaskCreate
- TaskUpdate
- TaskGet
- TaskList
- ExitPlanMode
- ListMcpResources
- ReadMcpResource
- EnterWorktree
- ExitWorktree
- EnterPlanMode
- CronCreate
- CronDelete
- CronList
- ScheduleWakeup
- RemoteTrigger
- PushNotification
- ReportFindings
- Artifact
- Projects
- ReadMcpResourceDir
- RefreshMcpTools
- ShowOnboardingRolePicker
- McpOutput
- Permission Types
PermissionUpdatePermissionBehaviorPermissionUpdateDestinationPermissionRuleValue
- Other Types
ApiKeySourceSdkBetaSlashCommandModelInfoAgentInfoMcpServerProvenanceMcpServerStatusMcpServerStatusConfigAccountInfoModelUsageConfigScopeNonNullableUsageUsageCallToolResultSDKMcpResourceLinkThinkingConfigSpawnedProcessSpawnOptionsMcpSetServersResultRewindFilesResultSDKStatusMessageSDKTaskNotificationMessageSDKToolUseSummaryMessageSDKHookStartedMessageSDKHookProgressMessageSDKHookResponseMessageSDKToolProgressMessageSDKAuthStatusMessageSDKTaskStartedMessageSDKTaskProgressMessageSDKTaskUpdatedMessageSDKBackgroundTasksChangedMessageSDKThinkingTokensMessageSDKFilesPersistedEventSDKRateLimitEventSDKLocalCommandOutputMessageSDKCommandsChangedMessageSDKPromptSuggestionMessageSDKConversationResetMessageAbortError
- Sandbox Configuration
SandboxSettings- Example usage
SandboxNetworkConfigSandboxFilesystemConfig- Permissions Fallback for Unsandboxed Commands
- See also
typescript-v2-preview
- Installation
- Quick start
- One-shot prompt
- Basic session
- Multi-turn conversation
- Session resume
- Cleanup
- API reference
unstable_v2_createSession()unstable_v2_resumeSession()unstable_v2_prompt()- SDKSession interface
- Feature availability
- See also
python
- Installation
- Choosing between
query()andClaudeSDKClient - Functions
query()- Parameters
- Returns
- Example - With options
tool()- Parameters
- Input schema options
- Returns
- Example
ToolAnnotations
create_sdk_mcp_server()- Parameters
- Returns
- Example
list_sessions()- Parameters
- Return type:
SDKSessionInfo - Example
get_session_messages()- Parameters
- Return type:
SessionMessage - Example
get_session_info()- Parameters
- Example
rename_session()- Parameters
- Example
tag_session()- Parameters
- Example
- Classes
ClaudeSDKClient- Methods
- Context Manager Support
- Example - Continuing a conversation
- Example - Streaming input with ClaudeSDKClient
- Example - Using interrupts
- Example - Advanced permission control
- Types
SdkMcpToolTransportClaudeAgentOptions- Handle slow or stalled API responses
OutputFormatSystemPromptPresetSystemPromptCustomSystemPromptFileSettingSource- Default behavior
- Why use setting_sources
- Settings precedence
AgentDefinitionPermissionModeEffortLevelCanUseToolToolPermissionContextPermissionResultPermissionResultAllowPermissionResultDenyPermissionUpdatePermissionRuleValueToolsPresetThinkingConfigTaskBudgetSdkBetaMcpSdkServerConfigMcpServerConfigMcpStdioServerConfigMcpSSEServerConfigMcpHttpServerConfig
McpServerStatusConfigMcpStatusResponseMcpServerStatusSdkPluginConfig
- Message Types
MessageUserMessageAssistantMessageAssistantMessageErrorSystemMessageResultMessageStreamEventRateLimitEventRateLimitInfoConversationResetMessageTaskStartedMessageTaskUsageTaskProgressMessageTaskNotificationMessage
- Content Block Types
ContentBlockTextBlockThinkingBlockToolUseBlockToolResultBlock
- Error Types
ClaudeSDKErrorCLINotFoundErrorCLIConnectionErrorProcessErrorResultErrorCLIJSONDecodeError
- Hook Types
HookEventHookCallbackHookContextHookMatcherHookInputBaseHookInputPreToolUseHookInputPostToolUseHookInputPostToolUseFailureHookInputUserPromptSubmitHookInputStopHookInputSubagentStopHookInputPreCompactHookInputNotificationHookInputSubagentStartHookInputPermissionRequestHookInputHookJSONOutputSyncHookJSONOutputHookSpecificOutputAsyncHookJSONOutput
- Hook Usage Example
- Tool Input/Output Types
- Agent
- AskUserQuestion
- Bash
- Monitor
- Edit
- Read
- Write
- Glob
- Grep
- NotebookEdit
- WebFetch
- WebSearch
- TodoWrite
- TaskCreate
- TaskUpdate
- TaskGet
- TaskList
- TaskOutput
- TaskStop
- ExitPlanMode
- ListMcpResources
- ReadMcpResource
- Build a continuous conversation interface
- Error handling
- Sandbox Configuration
SandboxSettings- Example usage
SandboxNetworkConfigSandboxIgnoreViolations- Permissions Fallback for Unsandboxed Commands
- See also
What’s New
index
- (No headings found)
2026-w37
- (No headings found)
2026-w36
- (No headings found)
2026-w35
- (No headings found)
2026-w34
- (No headings found)
2026-w33
- (No headings found)
2026-w32
- (No headings found)
2026-w30
- (No headings found)
2026-w29
- (No headings found)
2026-w28
- (No headings found)
2026-w27
- (No headings found)
2026-w26
- (No headings found)
2026-w25
- (No headings found)
2026-w24
- (No headings found)
2026-w23
- (No headings found)
2026-w22
- (No headings found)
2026-w21
- (No headings found)
2026-w20
- (No headings found)
2026-w19
- (No headings found)
2026-w18
- (No headings found)
2026-w17
- (No headings found)
2026-w16
- (No headings found)
2026-w15
- (No headings found)
2026-w14
- (No headings found)
2026-w13
- (No headings found)
Resources
legal-and-compliance
- Legal agreements
- License
- Commercial agreements
- Can customers offer Claude Code in their products?
- Compliance
- Healthcare compliance (BAA)
- Usage policy
- Acceptable use
- Authentication and credential use
- Security and trust
- Trust and safety
- Security vulnerability reporting