Appearance
Tools 工具参考
Claude Code 内置工具完整参考。工具名称是在权限规则、子代理工具列表和 hooks matcher 中使用的精确字符串。本页覆盖全部工具一览表(含最新增加的 Monitor、PowerShell、SendMessage、TeamCreate/TeamDelete)、Bash 和 LSP 工具行为说明、Monitor 后台监控用法、PowerShell Windows 原生工具的启用与限制,以及如何查询当前会话可用工具。
Claude Code 内置了一系列工具,用于理解和修改你的代码库。工具名称是在权限规则、子代理工具列表和 hooks matcher 中使用的精确字符串。要完全禁用某个工具,在权限设置的 deny 数组中加入工具名。要添加自定义工具,连接 MCP 服务器。要以可复用的 prompt 工作流扩展 Claude,编写 skill——skill 通过现有的 Skill 工具运行,而不是新增工具条目。
工具一览
| 工具 | 说明 | 需要权限 |
|---|---|---|
Agent | 生成子代理,在独立上下文窗口中执行任务 | 否 |
AskUserQuestion | 向用户提多选题,收集需求或澄清歧义 | 否 |
Bash | 在你的环境中执行 shell 命令。参见 Bash 工具行为 | 是 |
CronCreate | 在当前会话内创建定时/一次性提示词(Claude 退出后消失)。参见定时任务 | 否 |
CronDelete | 通过 ID 取消定时任务 | 否 |
CronList | 列出当前会话的所有定时任务 | 否 |
Edit | 对指定文件做目标性编辑 | 是 |
EnterPlanMode | 切换到计划模式,先设计方案再写代码 | 否 |
EnterWorktree | 创建独立的 git worktree 并切换进去。也可传入 path 切换到当前仓库已有的 worktree | 否 |
ExitPlanMode | 展示计划供审批,然后退出计划模式 | 是 |
ExitWorktree | 退出 worktree 会话,返回原始目录 | 否 |
Glob | 按 glob 模式匹配查找文件 | 否 |
Grep | 在文件内容中搜索模式 | 否 |
ListMcpResourcesTool | 列出已连接 MCP 服务器暴露的资源 | 否 |
LSP | 代码智能(via 语言服务器):跳转定义、查找引用、报告类型错误和警告。参见 LSP 工具行为。需要代码智能插件 | 否 |
Monitor | 在后台运行命令,将每行输出反馈给 Claude,让它能在对话过程中响应日志条目、文件变化或轮询状态。参见 Monitor 工具 | 是 |
NotebookEdit | 修改 Jupyter notebook 单元格 | 是 |
PowerShell | 在 Windows 上执行 PowerShell 命令(需选择性启用预览功能)。参见 PowerShell 工具 | 是 |
Read | 读取文件内容 | 否 |
ReadMcpResourceTool | 通过 URI 读取特定 MCP 资源 | 否 |
SendMessage | 向代理团队成员发送消息,或通过 agent ID 恢复子代理。已停止的子代理会在后台自动恢复。仅当设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 时可用 | 否 |
Skill | 在主对话中执行 skill | 是 |
TaskCreate | 在任务列表中创建新任务 | 否 |
TaskGet | 获取特定任务的完整详情 | 否 |
TaskList | 列出所有任务及当前状态 | 否 |
TaskOutput | (已废弃)获取后台任务输出。建议改用 Read 工具直接读任务输出文件路径 | 否 |
TaskStop | 通过 ID 终止正在运行的后台任务 | 否 |
TaskUpdate | 更新任务状态、依赖、详情,或删除任务 | 否 |
TeamCreate | 创建含多个成员的代理团队。仅当设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 时可用 | 否 |
TeamDelete | 解散代理团队并清理成员进程。仅当设置 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 时可用 | 否 |
TodoWrite | 管理会话任务清单。用于非交互模式和 Agent SDK;交互式会话使用 TaskCreate/TaskGet/TaskList/TaskUpdate | 否 |
ToolSearch | 搜索并加载延迟工具(启用了 MCP 工具搜索时) | 否 |
WebFetch | 从指定 URL 获取内容 | 是 |
WebSearch | 执行网络搜索 | 是 |
Write | 创建或覆盖文件 | 是 |
Bash 工具行为
Bash 工具在独立进程中执行每个命令,有以下持久化特性:
- 工作目录:Claude 在主会话中执行
cd后,新目录会延续到后续 Bash 命令——前提是目标目录在项目目录或通过--add-dir、/add-dir、additionalDirectories设置添加的额外目录之内。子代理会话的工作目录变更不会延续。- 如果
cd落在这些目录之外,Claude Code 会重置到项目目录,并在工具结果中追加Shell cwd was reset to <dir>。 - 设置
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1可禁用这种延续,使每条 Bash 命令都从项目目录开始。
- 如果
- 环境变量不持久化:在一个命令里
export的变量,在下一个命令中不可用。
在启动 Claude Code 之前激活 virtualenv 或 conda 环境。要让环境变量跨 Bash 命令持久化,在启动前将 CLAUDE_ENV_FILE 指向一个 shell 脚本,或者用 SessionStart hook 动态填充。
LSP 工具行为
LSP 工具通过运行中的语言服务器为 Claude 提供代码智能。每次文件编辑后,它会自动报告类型错误和警告,让 Claude 无需单独执行构建步骤即可修复问题。Claude 也可以直接调用 LSP:
- 跳转到符号定义
- 查找符号的所有引用
- 获取某位置的类型信息
- 列出文件或工作区中的符号
- 查找接口的实现
- 追踪调用层级
安装适用于你的语言的代码智能插件后,工具才会激活。插件包含语言服务器配置,服务器二进制文件需单独安装。
Monitor 工具
Monitor 工具让 Claude 在后台监控某个事物,发生变化时作出响应,无需暂停对话。可以要求 Claude:
- 追踪日志文件,发现错误时立即提示
- 轮询 PR 或 CI 任务,状态变化时上报
- 监控目录的文件变化
- 追踪你指定的任意长时间运行脚本的输出
Claude 会为监控编写一个小脚本,在后台运行,并在每行输出到达时接收。你在同一会话中继续工作,Claude 会在事件发生时插入提示。要停止监控,可让 Claude 取消,或结束会话。
Monitor 使用与 Bash 相同的权限规则,你为 Bash 设置的 allow 和 deny 规则同样适用。
Monitor 在 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry 上不可用。设置了
DISABLE_TELEMETRY或CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC时也不可用。
PowerShell 工具
在 Windows 上,Claude Code 可以原生运行 PowerShell 命令,而不必通过 Git Bash 路由。这是一个需要选择性启用的预览功能。
启用 PowerShell 工具
在环境变量或 settings.json 中设置 CLAUDE_CODE_USE_POWERSHELL_TOOL=1:
json
{
"env": {
"CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
}
}Claude Code 会自动检测 pwsh.exe(PowerShell 7+),回退到 powershell.exe(PowerShell 5.1)。Bash 工具仍与 PowerShell 工具并行注册,所以可能需要明确告诉 Claude 使用 PowerShell。
在 settings、hooks 和 skills 中选择 shell
三个额外设置控制 PowerShell 的使用范围:
settings.json中"defaultShell": "powershell":将交互式!命令路由到 PowerShell。需要先启用 PowerShell 工具。- 单个命令 hook 中的
"shell": "powershell":该 hook 在 PowerShell 中运行。hooks 直接启动 PowerShell,不依赖CLAUDE_CODE_USE_POWERSHELL_TOOL。 - skill frontmatter 中的
shell: powershell:在该 skill 中运行!`command`块时使用 PowerShell。需要先启用 PowerShell 工具。
Bash 工具部分描述的主会话工作目录重置行为同样适用于 PowerShell 命令,包括 CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 环境变量。
预览版限制
PowerShell 工具在预览阶段有以下已知限制:
- Auto 模式尚不支持 PowerShell 工具
- PowerShell profile 不会加载
- 不支持沙箱
- 仅支持原生 Windows,不支持 WSL
- 启动 Claude Code 仍需要 Git Bash
查询可用工具
你的工具集取决于提供商、平台和设置。要查看当前会话加载了哪些工具,直接问 Claude:
What tools do you have access to?Claude 会给出一段对话式说明。要查看精确的 MCP 工具名,运行 /mcp。
相关文档
- 权限配置 — 权限系统、规则语法、工具特定模式
- 子代理 — 为子代理配置工具访问权限
- Hooks 使用指南 — 在工具执行前后运行自定义命令
- MCP 服务器 — 通过连接外部服务器添加自定义工具
常见问题
Q: Claude Code 有哪些新增工具?
近期新增了 Monitor(后台监控日志/文件变化)、PowerShell(Windows 原生命令执行)、SendMessage/TeamCreate/TeamDelete(实验性代理团队功能)。TaskOutput 已标记为废弃,建议改用 Read 工具读取输出文件路径。
Q: Monitor 工具和 Bash 工具有什么区别?
Bash 工具执行命令并等待结果;Monitor 工具在后台持续运行脚本,实时将每行输出反馈给 Claude,适合监控日志文件、CI 状态、目录变化等需要持续观察的场景。Monitor 在 Bedrock/Vertex/Foundry 上不可用。
Q: 如何在 Windows 上启用 PowerShell 工具?
在 settings.json 的 env 中设置 CLAUDE_CODE_USE_POWERSHELL_TOOL: "1",Claude Code 会自动检测 pwsh.exe 或 powershell.exe。注意这是预览功能,目前不支持 Auto 模式和沙箱,启动 Claude Code 仍需要 Git Bash。