19| **Managed** | Server-managed settings, plist / registry, or system-level `managed-settings.json` | All users on the machine | Yes (deployed by IT) |19| **Managed** | Server-managed settings, plist / registry, or system-level `managed-settings.json` | All users on the machine | Yes (deployed by IT) |
20| **User** | `~/.claude/` directory | You, across all projects | No |20| **User** | `~/.claude/` directory | You, across all projects | No |
21| **Project** | `.claude/` in repository | All collaborators on this repository | Yes (committed to git) |21| **Project** | `.claude/` in repository | All collaborators on this repository | Yes (committed to git) |
22| **Local** | `.claude/*.local.*` files | You, in this repository only | No (gitignored) |22| **Local** | `.claude/settings.local.json` | You, in this repository only | No (gitignored) |
23 23
24### When to use each scope24### When to use each scope
25 25
69| **Subagents** | `~/.claude/agents/` | `.claude/agents/` | — |69| **Subagents** | `~/.claude/agents/` | `.claude/agents/` | — |
70| **MCP servers** | `~/.claude.json` | `.mcp.json` | `~/.claude.json` (per-project) |70| **MCP servers** | `~/.claude.json` | `.mcp.json` | `~/.claude.json` (per-project) |
71| **Plugins** | `~/.claude/settings.json` | `.claude/settings.json` | `.claude/settings.local.json` |71| **Plugins** | `~/.claude/settings.json` | `.claude/settings.json` | `.claude/settings.local.json` |
72| **CLAUDE.md** | `~/.claude/CLAUDE.md` | `CLAUDE.md` or `.claude/CLAUDE.md` | `CLAUDE.local.md` |72| **CLAUDE.md** | `~/.claude/CLAUDE.md` | `CLAUDE.md` or `.claude/CLAUDE.md` | — |
73 73
74***74***
75 75
886Claude Code has access to a set of powerful tools that help it understand and modify your codebase:886Claude Code has access to a set of powerful tools that help it understand and modify your codebase:
887 887
888| Tool | Description | Permission Required |888| Tool | Description | Permission Required |
889| :------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ |889| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ |
890| **Agent** | Spawns a [subagent](/en/sub-agents) with its own context window to handle a task | No |
890| **AskUserQuestion** | Asks multiple-choice questions to gather requirements or clarify ambiguity | No |891| **AskUserQuestion** | Asks multiple-choice questions to gather requirements or clarify ambiguity | No |
891| **Bash** | Executes shell commands in your environment (see [Bash tool behavior](#bash-tool-behavior) below) | Yes |892| **Bash** | Executes shell commands in your environment. See [Bash tool behavior](#bash-tool-behavior) | Yes |
892| **TaskOutput** | Retrieves output from a background task (bash shell or subagent) | No |893| **CronCreate** | Schedules a recurring or one-shot prompt within the current session (gone when Claude exits). See [scheduled tasks](/en/scheduled-tasks) | No |
894| **CronDelete** | Cancels a scheduled task by ID | No |
895| **CronList** | Lists all scheduled tasks in the session | No |
893| **Edit** | Makes targeted edits to specific files | Yes |896| **Edit** | Makes targeted edits to specific files | Yes |
894| **ExitPlanMode** | Prompts the user to exit plan mode and start coding | Yes |897| **EnterPlanMode** | Switches to plan mode to design an approach before coding | No |
898| **EnterWorktree** | Creates an isolated [git worktree](/en/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) and switches into it | No |
899| **ExitPlanMode** | Presents a plan for approval and exits plan mode | Yes |
900| **ExitWorktree** | Exits a worktree session and returns to the original directory | No |
895| **Glob** | Finds files based on pattern matching | No |901| **Glob** | Finds files based on pattern matching | No |
896| **Grep** | Searches for patterns in file contents | No |902| **Grep** | Searches for patterns in file contents | No |
897| **KillShell** | Kills a running background bash shell by its ID | No |903| **ListMcpResourcesTool** | Lists resources exposed by connected [MCP servers](/en/mcp) | No |
898| **MCPSearch** | Searches for and loads MCP tools when [tool search](/en/mcp#scale-with-mcp-tool-search) is enabled | No |904| **LSP** | Code intelligence via language servers. Reports type errors and warnings automatically after file edits. Also supports navigation operations: jump to definitions, find references, get type info, list symbols, find implementations, trace call hierarchies. Requires a [code intelligence plugin](/en/discover-plugins#code-intelligence) and its language server binary | No |
899| **NotebookEdit** | Modifies Jupyter notebook cells | Yes |905| **NotebookEdit** | Modifies Jupyter notebook cells | Yes |
900| **Read** | Reads the contents of files | No |906| **Read** | Reads the contents of files | No |
907| **ReadMcpResourceTool** | Reads a specific MCP resource by URI | No |
901| **Skill** | Executes a [skill](/en/skills#control-who-invokes-a-skill) within the main conversation | Yes |908| **Skill** | Executes a [skill](/en/skills#control-who-invokes-a-skill) within the main conversation | Yes |
902| **Agent** | Runs a sub-agent to handle complex, multi-step tasks | No |
903| **TaskCreate** | Creates a new task in the task list | No |909| **TaskCreate** | Creates a new task in the task list | No |
904| **TaskGet** | Retrieves full details for a specific task | No |910| **TaskGet** | Retrieves full details for a specific task | No |
905| **TaskList** | Lists all tasks with their current status | No |911| **TaskList** | Lists all tasks with their current status | No |
912| **TaskOutput** | Retrieves output from a background task | No |
913| **TaskStop** | Kills a running background task by ID | No |
906| **TaskUpdate** | Updates task status, dependencies, details, or deletes tasks | No |914| **TaskUpdate** | Updates task status, dependencies, details, or deletes tasks | No |
915| **TodoWrite** | Manages the session task checklist. Available in non-interactive mode and the [Agent SDK](/en/headless); interactive sessions use TaskCreate, TaskGet, TaskList, and TaskUpdate instead | No |
916| **ToolSearch** | Searches for and loads deferred tools when [tool search](/en/mcp#scale-with-mcp-tool-search) is enabled | No |
907| **WebFetch** | Fetches content from a specified URL | Yes |917| **WebFetch** | Fetches content from a specified URL | Yes |
908| **WebSearch** | Performs web searches with domain filtering | Yes |918| **WebSearch** | Performs web searches | Yes |
909| **Write** | Creates or overwrites files | Yes |919| **Write** | Creates or overwrites files | Yes |
910| **LSP** | Code intelligence via language servers. Reports type errors and warnings automatically after file edits. Also supports navigation operations: jump to definitions, find references, get type info, list symbols, find implementations, trace call hierarchies. Requires a [code intelligence plugin](/en/discover-plugins#code-intelligence) and its language server binary | No |
911 920
912Permission rules can be configured using `/allowed-tools` or in [permission settings](/en/settings#available-settings). Also see [Tool-specific permission rules](/en/permissions#tool-specific-permission-rules).921Permission rules can be configured using `/allowed-tools` or in [permission settings](/en/settings#available-settings). Also see [Tool-specific permission rules](/en/permissions#tool-specific-permission-rules).
913 922