Claude Code 工具参考 - Bash / Edit / Read 等内置工具完整列表
Claude Code 可以使用的所有工具的完整参考,包括 Bash、Edit、LSP、Monitor、PowerShell 等及其权限要求。
工具参考
Claude Code 可以使用的工具的完整参考,包括权限要求。
Claude Code 可以访问一组内置工具,帮助它理解和修改您的代码库。工具名称是您在权限规则、subagent 工具列表和 hook 匹配器中使用的确切字符串。要完全禁用某个工具,请将其名称添加到权限设置中的 deny 数组。
要添加自定义工具,请连接一个 MCP server。要使用可重用的基于提示的工作流扩展 Claude,请编写一个 skill,它通过现有的 Skill 工具运行,而不是添加新的工具条目。
| 工具 | 描述 | 需要权限 |
|---|---|---|
Agent | 生成一个具有自己 context window 的 subagent,用于处理任务 | 否 |
AskUserQuestion | 提出多选问题以收集需求或澄清歧义 | 否 |
Bash | 在您的环境中执行 shell 命令。请参阅 Bash 工具行为 | 是 |
CronCreate | 在当前会话中安排定期或一次性提示。任务是会话范围的,在 --resume 或 --continue 时如果未过期则会恢复。请参阅计划任务 | 否 |
CronDelete | 按 ID 取消计划任务 | 否 |
CronList | 列出会话中的所有计划任务 | 否 |
Edit | 对特定文件进行有针对性的编辑 | 是 |
EnterPlanMode | 切换到 Plan Mode 以在编码前设计方法 | 否 |
EnterWorktree | 创建一个隔离的 git worktree 并切换到它。传递 path 以切换到当前存储库的现有 worktree,而不是创建新的。不适用于 subagents | 否 |
ExitPlanMode | 提出计划以供批准并退出 Plan Mode | 是 |
ExitWorktree | 退出 worktree 会话并返回到原始目录。不适用于 subagents | 否 |
Glob | 基于模式匹配查找文件 | 否 |
Grep | 在文件内容中搜索模式 | 否 |
ListMcpResourcesTool | 列出连接的 MCP servers 公开的资源 | 否 |
LSP | 通过语言服务器进行代码智能:跳转到定义、查找引用、报告类型错误和警告。请参阅 LSP 工具行为 | 否 |
Monitor | 在后台运行命令并将每个输出行反馈给 Claude,以便它可以对日志条目、文件更改或轮询状态做出反应。请参阅 Monitor 工具 | 是 |
NotebookEdit | 修改 Jupyter notebook 单元格 | 是 |
PowerShell | 本地执行 PowerShell 命令。请参阅 PowerShell 工具了解可用性 | 是 |
Read | 读取文件内容 | 否 |
ReadMcpResourceTool | 按 URI 读取特定 MCP 资源 | 否 |
SendMessage | 向 agent team 队友发送消息,或按 agent ID 恢复 subagent。已停止的 subagents 在后台自动恢复。仅当设置了 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 时可用 | 否 |
Skill | 在主对话中执行 skill | 是 |
TaskCreate | 在任务列表中创建新任务 | 否 |
TaskGet | 检索特定任务的完整详细信息 | 否 |
TaskList | 列出所有任务及其当前状态 | 否 |
TaskOutput | (已弃用)检索后台任务的输出。优先使用 Read 读取任务的输出文件路径 | 否 |
TaskStop | 按 ID 终止运行中的后台任务 | 否 |
TaskUpdate | 更新任务状态、依赖项、详细信息或删除任务 | 否 |
TeamCreate | 创建一个具有多个队友的 agent team。仅当设置了 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 时可用 | 否 |
TeamDelete | 解散 agent team 并清理队友进程。仅当设置了 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 时可用 | 否 |
TodoWrite | 管理会话任务清单。在非交互模式和 Agent SDK 中可用;交互式会话改用 TaskCreate、TaskGet、TaskList 和 TaskUpdate | 否 |
ToolSearch | 当启用 tool search 时搜索并加载延迟工具 | 否 |
WebFetch | 从指定 URL 获取内容 | 是 |
WebSearch | 执行网络搜索 | 是 |
Write | 创建或覆盖文件 | 是 |
权限规则可以使用 /permissions 或在权限设置中配置。另请参阅工具特定权限规则。
Bash 工具行为
Bash 工具在单独的进程中运行每个命令,具有以下持久性行为:
- 当 Claude 在主会话中运行
cd时,只要它保持在项目目录内或您使用--add-dir、/add-dir或设置中的additionalDirectories添加的额外工作目录内,新的工作目录就会延续到后续的 Bash 命令。Subagent 会话永远不会延续工作目录更改。- 如果
cd落在这些目录之外,Claude Code 会重置为项目目录,并将Shell cwd was reset to <dir>附加到工具结果。 - 要禁用此延续,使每个 Bash 命令都在项目目录中启动,请设置
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1。
- 如果
- 环境变量不持久。一个命令中的
export在下一个命令中将不可用。
在启动 Claude Code 之前激活您的 virtualenv 或 conda 环境。要使环境变量在 Bash 命令之间保持不变,请在启动 Claude Code 之前将 CLAUDE_ENV_FILE 设置为 shell 脚本,或使用 SessionStart hook 动态填充它。
LSP 工具行为
LSP 工具为 Claude 提供来自运行中的语言服务器的代码智能。在每次文件编辑后,它会自动报告类型错误和警告,以便 Claude 可以在没有单独构建步骤的情况下修复问题。Claude 还可以直接调用它来导航代码:
- 跳转到符号的定义
- 查找对符号的所有引用
- 获取位置处的类型信息
- 列出文件或工作区中的符号
- 查找接口的实现
- 追踪调用层次结构
该工具在您为您的语言安装 code intelligence plugin 之前处于非活动状态。该插件捆绑了语言服务器配置,您需要单独安装服务器二进制文件。
Monitor 工具
ℹ️ Monitor 工具需要 Claude Code v2.1.98 或更高版本。
Monitor 工具让 Claude 在后台监视某些内容,并在其更改时做出反应,而无需暂停对话。要求 Claude:
- 跟踪日志文件并在错误出现时标记它们
- 轮询 PR 或 CI 作业并在其状态更改时报告
- 监视目录以查找文件更改
- 跟踪您指向的任何长时间运行脚本的输出
Claude 为监视编写一个小脚本,在后台运行它,并在每行到达时接收它。您可以在同一会话中继续工作,Claude 在事件到达时插入。通过要求 Claude 取消它或结束会话来停止监视。
Monitor 使用与 Bash 相同的权限规则,因此您为 Bash 设置的 allow 和 deny 模式也适用于此处。它在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。当设置了 DISABLE_TELEMETRY 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 时,它也不可用。
插件可以声明在插件处于活动状态时自动启动的监视,而不是要求 Claude 启动它们。请参阅 plugin monitors。
PowerShell 工具
PowerShell 工具让 Claude 本地运行 PowerShell 命令。在 Windows 上,这意味着命令在 PowerShell 中运行,而不是通过 Git Bash 路由。在没有 Git Bash 的 Windows 上,该工具会自动启用。在安装了 Git Bash 的 Windows 上,该工具正在逐步推出。在 Linux、macOS 和 WSL 上,该工具是选择加入的。
启用 PowerShell 工具
在您的环境或 settings.json 中设置 CLAUDE_CODE_USE_POWERSHELL_TOOL=1:
{
"env": {
"CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
}
}
在 Windows 上,将变量设置为 0 以选择退出推出。在 Linux、macOS 和 WSL 上,该工具需要 PowerShell 7 或更高版本:安装 pwsh 并确保它在您的 PATH 中。
在 Windows 上,Claude Code 自动检测 pwsh.exe(PowerShell 7+),回退到 powershell.exe(PowerShell 5.1)。启用该工具后,Claude 将 PowerShell 视为主 shell。当安装了 Git Bash 时,Bash 工具仍可用于 POSIX 脚本。
设置、hooks 和 skills 中的 shell 选择
三个额外的设置控制 PowerShell 的使用位置:
settings.json中的"defaultShell": "powershell":通过 PowerShell 路由交互式!命令。需要启用 PowerShell 工具。- 单个 command hooks 上的
"shell": "powershell":在 PowerShell 中运行该 hook。Hooks 直接生成 PowerShell,因此无论CLAUDE_CODE_USE_POWERSHELL_TOOL如何,这都有效。 - skill frontmatter 中的
shell: powershell:在 PowerShell 中运行!`command`块。需要启用 PowerShell 工具。
同样的主会话工作目录重置行为(如 Bash 工具部分所述)适用于 PowerShell 命令,包括 CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 环境变量。
预览限制
PowerShell 工具在预览期间有以下已知限制:
- PowerShell 配置文件未加载
- 在 Windows 上,不支持 sandboxing
检查哪些工具可用
您的确切工具集取决于您的提供商、平台和设置。要检查在运行中的会话中加载了什么,请直接询问 Claude:
What tools do you have access to?
Claude 提供对话摘要。对于确切的 MCP 工具名称,请运行 /mcp。
另请参阅
- MCP servers:通过连接外部服务器添加自定义工具
- 权限:权限系统、规则语法和工具特定模式
- Subagents:为 subagents 配置工具访问
- Hooks:在工具执行前后运行自定义命令
本文翻译自 Anthropic Claude Code 官方文档,最近一次同步:2025-05-01。