Skip to content
Code Guide

10. Reference

What’s inside: Complete command reference, troubleshooting guides, and daily checklists.

I need to…Go to
Look up a command10.1 Commands Table
Find keyboard shortcut10.2 Keyboard Shortcuts
Configure settings10.3 Configuration Reference
Fix an error10.4 Troubleshooting
Quick daily reference10.5 Cheatsheet
Set up workflow10.6 Daily Workflow
Copy ready-to-use templatesexamples/ directory — Commands, hooks, agents

Usage tip: Bookmark this section — you’ll reference it often.


Purpose: Quick lookup for all Claude Code information

CommandActionCategory
/helpShow all available commandsNavigation
/clearClear conversation historySession
/compactSummarize and compress contextContext
/statusShow session info (context, cost)Info
/usageCheck rate limits and token allocationInfo
/statsView usage statistics with activity graphsInfo
/output-styleDeprecated (Oct 2025) — use /config → “Preferred output style” instead (Default / Explanatory / Learning)Display
/feedbackReport bugs or send feedback to AnthropicSupport
/chromeCheck Chrome connection, manage permissionsMode
/configView and modify global settingsConfig
/copyCopy last response to clipboard — interactive picker to select specific code blocks, or “Always copy full response” option (v2.1.59+)Session
/debugSystematic troubleshooting and error investigationDebug
/doctorRun diagnostics and troubleshooting checksDebug
/executeExit Plan ModeMode
/exitExit Claude CodeSession
/fastToggle fast mode (Opus 4.6, 2.5x faster, 6x price)Mode
/hooksInteractive hook configurationConfig
/initGenerate starter CLAUDE.md based on project structure — ⚠️ output is LLM-generated; review and prune before committing (ETH Zürich research shows auto-generated context files reduce agent task success by ~3% and add 20%+ inference cost)Config
/loginLog in to Claude accountAuth
/logoutLog out and re-authenticateAuth
/loop [interval] [prompt]Run a prompt or slash command on a recurring interval (e.g. /loop 5m check the deploy) — v2.1.71+Automation
/mcpManage Model Context Protocol serversConfig
/memoryView and edit auto-memory (context Claude automatically saved across sessions via MEMORY.md) — v2.1.59+Config
/mobileShow App Store and Google Play download linksInfo
/modelChange model (with left/right arrows for effort slider)Mode
/permissionsConfigure permission allowlistsConfig
/planEnter Plan ModeMode
/pluginBrowse and install Claude Code pluginsConfig
/remote-control (/rc)Start remote control session (Pro/Max only)Mode
/renameGive current session a descriptive nameSession
/resumeResume a previous session (from within a session)Session
/rewindOpen rewind menu to undo recent changesEdit
/sandboxEnable OS-level isolationConfig
Ctrl+DExit Claude CodeSession
ActionShortcut
Run shell command!command
Reference file@filename
Cancel operationCtrl+C
Search historyCtrl+R
Dismiss suggestionEsc
ShortcutAction
EnterSend message
Shift+EnterNew line in message
Ctrl+CCancel current operation
Ctrl+DExit Claude Code
Ctrl+RSearch command history
Ctrl+LClear screen (keeps context)
Ctrl+BRun command in background
EscStop Claude mid-action (context preserved)
Esc×2 (double-tap)Open rewind menu (same as /rewind)
ShortcutAction
Ctrl+AJump to beginning of line
Ctrl+EJump to end of line
Ctrl+WDelete previous word
Ctrl+GOpen plan in external text editor for editing
TabAutocomplete file paths
/ Navigate command history
ShortcutAction
Alt+T (Option+T on macOS)Toggle thinking mode on/off
Ctrl+OView thinking blocks
ShortcutAction
Space (hold)Push-to-talk — hold to speak, release to send (default binding)

Rebinding: The voice:pushToTalk binding is configurable in ~/.claude/keybindings.json (v2.1.71+). Add a custom binding if Space conflicts with your workflow:

{
"voice:pushToTalk": "ctrl+space"
}

Toggle voice on/off with /voice. The push-to-talk binding only activates when voice mode is active.

ShortcutAction
Shift+DownCycle through active teammates (in-process mode)
Ctrl+TToggle task list visibility
EnterView selected teammate’s session
EscapeInterrupt current turn, return to prompt
FlagsPurposeExample
-c -p "msg"Resume session + single promptclaude -c -p "run tests"
-r <id> -pResume specific session + promptclaude -r abc123 -p "check status"
-p -pNon-interactive automationclaude -p -p "lint fix" < errors.txt

Note: Combine resume flags with -p for scripting and CI/CD workflows.

LocationScopeCommitted
~/.claude/CLAUDE.mdAll projects (global)N/A
/project/CLAUDE.mdThis project (shared)✅ Yes
/project/CLAUDE.local.mdThis project (local overrides)❌ No (.gitignored)
/project/.claude/CLAUDE.mdPersonal project config❌ No
Parent/child directoriesAuto-loaded in monoreposDepends on location
FilePurposeCommitted
settings.jsonHook configuration✅ Yes
settings.local.jsonPermission overrides❌ No
PatternMatches
Bash(git *)Any git command
Bash(npm test)Exactly npm test
EditAll file edits
WriteAll file writes
WebSearchWeb search
mcp__serena__*All Serena tools
Read(file_path:*.env*)Block reading any .env* file path
Edit(file_path:*.pem)Block editing .pem certificates
Bash(command:*rm -rf*)Block destructive bash commands

Complete reference for all Claude Code command-line flags, subcommands, and startup environment variables.

FlagShortDescription
--continue-cContinue the most recent conversation in the current directory
--resume <ID>-rResume a specific session by UUID or name, or show interactive picker
--from-pr <NUMBER|URL>Resume sessions linked to a specific GitHub PR
--fork-sessionCreate a new session ID when resuming (use with --resume or --continue)
--session-id <UUID>Use a specific session UUID
--no-session-persistenceDisable session persistence (print mode only)
--remoteCreate a new web session on claude.ai
--teleportResume a web session in your local terminal
FlagShortDescription
--model <NAME>Set model with alias (sonnet, opus, haiku) or full model ID
--fallback-model <NAME>Auto-fallback model when default is overloaded (print mode only)
--betas <LIST>Beta headers to include in API requests (API key users only)
FlagShortDescription
--print-pPrint response and exit without interactive mode (headless/SDK mode)
--output-format <FORMAT>Output format: text, json, stream-json
--input-format <FORMAT>Input format: text, stream-json
--json-schema <SCHEMA>Get validated JSON matching schema (print mode only)
--include-partial-messagesInclude partial streaming events (requires --print and stream-json)
--verboseEnable verbose logging with full turn-by-turn output
FlagShortDescription
--dangerously-skip-permissionsSkip ALL permission prompts — use with extreme caution
--allow-dangerously-skip-permissionsEnable permission bypassing as an option without activating it
--permission-mode <MODE>Begin in specified mode: default, plan, acceptEdits, bypassPermissions
--allowedTools <TOOLS>Tools that execute without prompting (permission rule syntax)
--disallowedTools <TOOLS>Tools removed from model context entirely
--tools <TOOLS>Restrict which built-in tools Claude can use (use "" to disable all)
--permission-prompt-tool <TOOL>MCP tool to handle permission prompts in non-interactive mode
FlagShortDescription
--system-prompt <TEXT>Replace entire system prompt with custom text
--system-prompt-file <PATH>Load system prompt from file, replacing default (print mode only)
--append-system-prompt <TEXT>Append custom text to default system prompt
--append-system-prompt-file <PATH>Append file contents to default prompt (print mode only)
FlagShortDescription
--agent <NAME>Specify an agent for the current session
--agents <JSON>Define custom subagents dynamically via JSON
--teammate-mode <MODE>Set agent team display: auto, in-process, tmux
FlagShortDescription
--mcp-config <PATH|JSON>Load MCP servers from JSON file or inline JSON string
--strict-mcp-configOnly use MCP servers from --mcp-config, ignore all others
--plugin-dir <PATH>Load plugins from directory for this session only (repeatable)
FlagShortDescription
--add-dir <PATH>Add additional working directories for Claude to access
--worktree-wStart Claude in an isolated git worktree (branched from HEAD)
FlagShortDescription
--max-budget-usd <AMOUNT>Maximum dollar amount for API calls before stopping (print mode only)
--max-turns <NUMBER>Limit number of agentic turns (print mode only)
FlagShortDescription
--chromeEnable Chrome browser integration for web automation
--no-chromeDisable Chrome browser integration for this session
--ideAutomatically connect to IDE on startup if exactly one valid IDE is available
FlagShortDescription
--initRun initialization hooks and start interactive mode
--init-onlyRun initialization hooks and exit without starting a session
--maintenanceRun maintenance hooks and exit
FlagShortDescription
--debug <CATEGORIES>Enable debug mode with optional category filtering (e.g., "api,hooks")
FlagShortDescription
--settings <PATH|JSON>Path to settings JSON file or inline JSON string to load
--setting-sources <LIST>Comma-separated sources to load: user, project, local
--disable-slash-commandsDisable all skills and slash commands for this session
FlagShortDescription
--version-vOutput the current version number
--help-hShow help information

Top-level commands run as claude <subcommand>:

SubcommandDescription
claude "query"Start REPL with an initial prompt
claude agentsList configured agents
claude auth login / logout / statusManage Claude Code authentication
claude doctorRun diagnostics from the command line
claude installInstall or switch Claude Code native builds
claude mcp add / remove / list / get / enableConfigure MCP servers
claude pluginManage Claude Code plugins
claude remote-controlManage remote control sessions
claude setup-tokenCreate a long-lived token for subscription usage
claude update / claude upgradeUpdate to the latest version

Set these in your shell before launching Claude Code (these cannot be configured via settings.json):

VariableDescription
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1Enable experimental agent teams
CLAUDE_CODE_TMPDIROverride temp directory for internal files
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1Enable additional directory CLAUDE.md loading
DISABLE_AUTOUPDATER=1Disable automatic updates
CLAUDE_CODE_EFFORT_LEVELControl thinking depth for extended thinking models
USE_BUILTIN_RIPGREP=0Use system ripgrep instead of built-in (useful on Alpine Linux)
CLAUDE_CODE_SIMPLEEnable simple mode (Bash + Edit tools only, no agents/hooks/MCP)
CLAUDE_BASH_NO_LOGIN=1Skip login shell invocation for BashTool

For variables configurable via the "env" key in settings.json (including MAX_THINKING_TOKENS, CLAUDE_CODE_SHELL, CLAUDE_CODE_ENABLE_TASKS, ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL, and more), see section 10.3 Configuration Reference.

Common Combinations:

Terminal window
# CI/CD mode - non-interactive with auto-accept
claude -p "fix linting errors" --dangerously-skip-permissions
# JSON output for scripting
claude -p "analyze code quality" --output-format json
# Economic analysis with Haiku
claude -p "review this file" --model haiku
# Allow access to a directory outside CWD
claude --add-dir ./src/components
# Plan mode for safety
claude --permission-mode plan
# Multi-directory project
claude --add-dir ../shared-lib ../utils ../config
# Limit agentic turns in automation
claude -p "refactor this module" --max-turns 10
# Resume specific session non-interactively
claude -r abc123 -p "summarize progress"

Safety Guidelines:

FlagRisk LevelUse When
--dangerously-skip-permissionsHighOnly in CI/CD, never on production
--allowedToolsSafeRestricting tool access
--disallowedToolsSafeBlocking specific tools
--permission-mode planSafeRead-only exploration
--debugMediumTroubleshooting (verbose logs)

Interactive Troubleshooting: Use the /diagnose command for guided, interactive problem-solving. It auto-scans your environment and provides targeted solutions. See examples/commands/diagnose.md.

Use this symptom-based guide for rapid issue identification and resolution:

SymptomLikely CauseQuick FixPrevention
”Context too long” errorSession accumulated too much context/compact first, then /clear if neededCompact regularly at 70%
Slow/delayed responsesHigh context usage (>75%)Check /status, run /compactMonitor context with /status
”Rate limit exceeded”API throttling from frequent requestsWait 2 minutes, use --model haiku for simple tasks, or use cc-copilot-bridge for flat-rate accessBatch operations, use /compact, consider Copilot Pro
Claude forgets instructionsContext overflow, CLAUDE.md lostCreate checkpoint, /clear, reload CLAUDE.mdKeep CLAUDE.md concise (<500 lines)
MCP server not connectingServer crashed or config errorclaude mcp list, check paths, restart serverTest servers after config changes
Permission prompts every timeTool not in allowedToolsAdd pattern to settings.json allowedToolsUse wildcards: Bash(git *)
Changes not taking effectCached configurationRestart Claude Code sessionUse /exit before config changes
Session won’t resumeCorrupted session fileStart fresh with /clearExit cleanly with /exit or Ctrl+D

Quick Diagnosis Flow:

  1. Check context: /status → If >70%, run /compact
  2. Check connectivity: Try simple command → If fails, check network
  3. Check configuration: claude mcp list → Verify MCP servers
  4. Check permissions: Review error message → Add to allowedTools if needed
  5. Still failing: /doctor → Run diagnostics and verify system health
SymptomCauseSolution
”Context too long”Used 100% context/clear or /compact
Slow responsesHigh context usage/compact
”Permission denied”Security settingsCheck settings.local.json
Hook not runningRegistration errorCheck settings.json matcher
MCP tool not foundServer not runningCheck mcp.json config
Agent not foundFile namingCheck .claude/agents/
Command not foundPath errorCheck .claude/commands/
Context LevelRecommended Action
0-50%Continue normally
50-75%Be more specific in queries
75-90%Use /compact
90%+Use /clear

“Tool execution failed”

  • Check tool permissions in settings.local.json
  • Verify command syntax
  • Check for missing dependencies

“Agent not available”

  • Verify agent file exists in .claude/agents/
  • Check YAML frontmatter syntax
  • Restart Claude Code session

“Hook blocked operation”

  • Check hook exit code (2 = blocked)
  • Review hook error message
  • Adjust hook rules if needed

Common MCP Errors and Solutions

API Error 400: "tools.11.custom.name: String should match pattern '^[a-zA-Z0-9_-]{1,64}'"

Cause: MCP server name contains invalid characters.

Solution:

  • Server names must only contain: letters, numbers, underscores, hyphens
  • Maximum 64 characters
  • No special characters or spaces

Example:

Terminal window
# ❌ Wrong
claude mcp add my-server@v1 -- npx server
# ✅ Correct
claude mcp add my-server-v1 -- npx server
MCP server 'my-server' not found

Cause: Server not properly registered or wrong scope.

Solution:

  1. Check scope settings (local/user/project)
    Terminal window
    claude mcp list # Verify server is listed
  2. Ensure you’re in the correct directory for local scope
  3. Restart Claude Code session
  4. Re-add server if needed:
    Terminal window
    claude mcp add my-server -s user -- npx @my/server
Error: Cannot find module 'C:UsersusernameDocuments'

Cause: Backslashes in Windows paths not properly escaped.

Solution:

Terminal window
# ❌ Wrong
claude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem C:\Users\username\Documents
# ✅ Correct - Use forward slashes
claude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem C:/Users/username/Documents
# ✅ Correct - Escape backslashes
claude mcp add fs -- npx -y @modelcontextprotocol/server-filesystem "C:\\Users\\username\\Documents"

Enable Debug Mode:

Terminal window
# Debug all MCP connections
claude --mcp-debug
# View MCP status inside Claude Code
/mcp

View Log Files:

Terminal window
# macOS
tail -f ~/Library/Logs/Claude/mcp*.log
# Linux
tail -f ~/.local/share/claude/logs/mcp*.log
# Windows (PowerShell)
Get-Content "$env:APPDATA\Claude\logs\mcp*.log" -Wait -Tail 50

Manual Server Test:

Terminal window
# Test if server works standalone
npx -y @modelcontextprotocol/server-filesystem ~/Documents
# Expected: Server should start and output JSON-RPC messages
# If it crashes immediately, check server logs

Quick Diagnostic Commands:

Terminal window
# List all configured servers
claude mcp list
# Test specific server
claude --mcp-debug -p "List available tools"
# Remove and re-add server
claude mcp remove my-server
claude mcp add my-server -s user -- npx @my/server

Connection Failed: Common Causes

ErrorCauseSolution
ECONNREFUSEDServer not runningCheck mcp.json command is correct
Timeout after 30sSlow initializationIncrease timeout or check server logs
Module not foundMissing dependenciesRun npm install in server directory
Permission deniedFile accessCheck file permissions on server executable
ENOENTServer binary not foundVerify npx/npm is in PATH
Invalid JSONServer output malformedCheck server version compatibility

Serena MCP specific issues:

Terminal window
# Index not found
serena list-memories
# If empty, re-index:
# In your project, ask Claude: "Index this project with Serena"
# Session not persisting
# Check mcp.json has correct data directory:
{
"mcpServers": {
"serena": {
"command": "npx",
"args": ["-y", "@serenaai/serena-mcp"],
"env": {
"SERENA_DATA_DIR": "/absolute/path/to/.serena"
}
}
}
}

Context7 MCP issues:

Terminal window
# Documentation not found
# Ensure you're searching for official libraries:
# ✅ "React useState documentation"
# ❌ "my-custom-lib documentation" (not in Context7)
# Slow lookups
# Context7 fetches from official docs - network dependent
# Check your internet connection

Sequential Thinking MCP issues:

Terminal window
# "Sequential not responding"
# Sequential uses significant compute - expect 10-30s responses
# Not an error, just be patient
# Quality seems off
# Sequential works best with specific, well-defined problems
# ✅ "Debug why user authentication fails on mobile"
# ❌ "Make the app better"

Pattern matching problems:

// ❌ Wrong - too specific
{
"allowedTools": ["Bash(npm test)"]
}
// This ONLY allows exactly "npm test"
// ✅ Right - use wildcards
{
"allowedTools": ["Bash(npm *)"]
}
// This allows any npm command

Common permission patterns:

{
"allowedTools": [
"Bash(git *)", // All git commands
"Bash(npm *)", // All npm commands
"Bash(pytest *)", // All pytest commands
"Edit", // All file edits
"Write", // All file writes
"Read", // All file reads
"mcp__serena__*", // All Serena tools
"mcp__context7__*", // All Context7 tools
"Task" // Allow agent delegation
]
}

Claude stops responding mid-task:

Possible causes:

  1. Network interruption - Check your internet connection
  2. API rate limit - Wait 1-2 minutes and retry
  3. Context exhausted - Use /compact or /clear
  4. Long-running operation - Some MCP operations take 30s+

Workaround for long operations:

Terminal window
# Instead of:
"Analyze all 500 files in the codebase"
# Break into chunks:
"Analyze files in /src/components/ first"
"Now analyze /src/utils/"
"Finally analyze /src/services/"

Windows-specific problems:

Terminal window
# npm global install fails
# Run PowerShell as Administrator
npm install -g @anthropic-ai/claude-code
# PATH not updated
# Manually add to PATH:
$env:Path += ";$env:APPDATA\npm"
# Permission errors
# Check antivirus isn't blocking Node.js

macOS-specific problems:

Terminal window
# "Command not found" after install
# Check shell config loaded:
source ~/.zshrc # or ~/.bashrc
# Permission denied on /usr/local
# Don't use sudo with npm
# Fix permissions:
sudo chown -R $(whoami) /usr/local
# curl install blocked
# Check firewall/VPN settings

Linux-specific problems:

Terminal window
# npm not found
# Install Node.js first:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
# Global install permission issues
# Configure npm to use home directory:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Diagnostic scripts for instant troubleshooting. Get them from:

⚠️ Nuclear option for corrupted installations. Use when all else fails.

Get the scripts from:

When to use clean reinstall:

  • Mysterious errors that persist after normal troubleshooting
  • Corrupted configuration files
  • Breaking changes after Claude Code updates
  • Migration to new machine (export/import workflow)

What gets deleted:

  • ✓ Claude Code binary and npm packages
  • ✓ Downloaded models and cache
  • ✓ Local session data
  • ⚠️ Config file (optional - backed up by default)

What survives:

  • ✓ Project-level .claude/ folders
  • ✓ Project CLAUDE.md files
  • ✓ Custom agents, skills, commands, hooks (in projects)
  • ✓ MCP server configurations (in mcp.json)
╔══════════════════════════════════════════════════════════╗
║ CLAUDE CODE CHEATSHEET ║
╠══════════════════════════════════════════════════════════╣
║ ║
║ ESSENTIAL COMMANDS ║
║ ───────────────── ║
║ /help Show commands /clear Fresh start ║
║ /status Session info /compact Save context ║
║ /plan Safe mode /rewind Undo changes ║
║ /exit Quit Ctrl+C Cancel ║
║ ║
║ QUICK ACTIONS ║
║ ───────────── ║
║ !command Run shell @file Reference file ║
║ Ctrl+R Search ↑/↓ History ║
║ ║
║ CONTEXT MANAGEMENT ║
║ ────────────────── ║
║ 🟢 0-50% Work freely ║
║ 🟡 50-75% Be selective ║
║ 🔴 75-90% /compact now ║
║ ⚫ 90%+ /clear required ║
║ ║
║ PERMISSION MODES ║
║ ──────────────── ║
║ Default Ask before changes ║
║ Auto-accept Execute without asking ║
║ Plan Mode Read-only exploration ║
║ ║
║ CONFIGURATION ║
║ ───────────── ║
║ ~/.claude/CLAUDE.md Global settings ║
║ /project/CLAUDE.md Project settings ║
║ .claude/settings.json Hooks config ║
║ .claude/settings.local.json Permission overrides ║
║ ║
║ .claude/ FOLDER ║
║ ─────────────── ║
║ agents/ Custom agents commands/ Slash commands ║
║ hooks/ Event scripts rules/ Auto-load rules ║
║ skills/ Knowledge modules ║
║ ║
║ THINKING MODE (Opus 4.5/4.6: adaptive depth in 4.6) ║
║ ───────────────────────────────────────── ║
║ Alt+T Toggle on/off Current session ║
║ /config Global setting Persists across sessions ║
║ Note: "ultrathink" keywords are now cosmetic only ║
║ ║
║ MCP SERVERS ║
║ ─────────── ║
║ Serena Semantic code analysis ║
║ Context7 Library documentation ║
║ Sequential Structured reasoning ║
║ Postgres Database queries ║
║ Playwright Browser automation ║
║ ║
║ HOOKS (events) ║
║ ────────────── ║
║ PreToolUse Before tool (security) ║
║ PostToolUse After tool (format, log) ║
║ UserPromptSubmit On message (enrich context) ║
║ ║
║ WORKFLOW ║
║ ──────── ║
║ Describe → Analyze → Review → Accept/Reject → Verify ║
║ ║
║ BEST PRACTICE: Always read the diff before accepting! ║
║ ║
╚══════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────┐
│ DAILY WORKFLOW │
├─────────────────────────────────────────────────────────────┤
│ │
│ MORNING (Setup) │
│ ─────────────── │
│ □ Git pull latest changes │
│ □ Review context with /status │
│ □ Load project memory (/sc:load if using Serena) │
│ □ Review yesterday's progress │
│ │
│ WORK SESSION │
│ ──────────── │
│ □ Define task clearly before starting │
│ □ Use TodoWrite for multi-step work │
│ □ Commit after each completed task │
│ □ /compact when context >70% │
│ □ Take breaks every 90 minutes │
│ │
│ END OF DAY │
│ ────────── │
│ □ Commit all work in progress │
│ □ Save session (/sc:save) │
│ □ Note blockers or next steps │
│ □ Push to remote │
│ │
└─────────────────────────────────────────────────────────────┘

Use this before sending complex requests:

□ WHAT: Clear deliverable described?
□ WHERE: File paths/locations specified?
□ HOW: Constraints/approach mentioned?
□ WHY: Context for decision-making?
□ VERIFY: Success criteria defined?

Example applying checklist:

❌ Vague: "Add user authentication"
✅ Complete:
"Add JWT authentication to the /api/login endpoint.
- WHERE: src/api/auth/login.ts
- HOW: Use jsonwebtoken library (already in deps),
bcrypt for password comparison
- CONSTRAINTS: Token expires in 24h, include userId and role
- VERIFY: Test with wrong password, expired token, invalid token"

💡 Production-Ready Examples: For complete, battle-tested templates including advanced commands (/pr, /release-notes, /sonarqube) and security hooks, see the examples/ directory. The templates below are minimal starting points.

---
name: your-agent-name
description: Use this agent when [specific trigger]
model: sonnet
tools: Read, Write, Edit, Bash, Grep, Glob
skills: []
---
# Agent Name
## Role Definition
You are an expert in [domain].
## Activation Triggers
Use this agent when:
- [Trigger 1]
- [Trigger 2]
## Methodology
1. [Step 1]
2. [Step 2]
3. [Step 3]
## Output Format
[Expected deliverables]
## Examples
[Concrete usage examples]
---
name: skill-name
description: Expert guidance for [domain]
allowed-tools: Read Grep Bash
argument-hint: "[--option] <required_arg>" # if the skill accepts $ARGUMENTS
---
# Skill Name
## Expertise Areas
- [Area 1]
- [Area 2]
## Methodology
1. [Step 1]
2. [Step 2]
## Checklists
- [ ] [Check 1]
- [ ] [Check 2]
## Examples
[Good and bad patterns]
---
description: Brief description of what this command does
argument-hint: "<first_arg> [second_arg] [--flag]"
---
# Command Name
## Purpose
[What this command does]
## Process
1. **Step 1**: [Instructions]
2. **Step 2**: [Instructions]
## Arguments
- $ARGUMENTS[0] (or $0): First argument - [How to handle]
- $ARGUMENTS[1] (or $1): Second argument - [How to handle]
## Output Format
[Expected output]
#!/bin/bash
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // ""')
# Block dangerous patterns
[[ "$COMMAND" =~ "dangerous-pattern" ]] && { echo "BLOCKED" >&2; exit 2; }
exit 0
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // ""')
# Auto-format
[[ "$FILE_PATH" =~ \.(ts|tsx)$ ]] && npx prettier --write "$FILE_PATH" 2>/dev/null
exit 0
#!/bin/bash
CONTEXT="[Custom context here]"
cat << EOF
{"hookSpecificOutput":{"additionalContext":"$CONTEXT"}}
EOF
exit 0
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{"type": "command", "command": ".claude/hooks/security.sh", "timeout": 5000}]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [{"type": "command", "command": ".claude/hooks/format.sh"}]
}
],
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [{"type": "command", "command": ".claude/hooks/context.sh"}]
}
]
}
}
{
"permissions": {
"allow": [
"Bash(git *)",
"Bash(npm test)",
"Bash(pnpm *)",
"Edit",
"Write"
],
"deny": [
"Bash(rm -rf *)",
"Bash(sudo *)"
],
"ask": [
"Bash(npm publish)",
"Bash(git push --force)"
]
}
}
# Project Name
## Tech Stack
- [Technology 1]
- [Technology 2]
## Code Conventions
- [Convention 1]
- [Convention 2]
## Architecture
- [Pattern 1]
- [Pattern 2]
## Commands
- `npm run dev` - Start development
- `npm test` - Run tests

Quick jump: Why Complementarity · Tool Matrix · Practical Workflows · Integration Patterns


Reading time: 10 minutes

Skill level: Intermediate

Goal: Chain Claude Code with the right AI tools for optimal workflows

TL;DR: Claude Code excels at contextual reasoning and multi-file implementation. Combine it with Perplexity (research), Gemini (images), Kimi (slides), and NotebookLM (synthesis) for a complete AI-powered development workflow.