Claude Code 可以存取一組內建工具,幫助它理解和修改您的程式碼庫。工具名稱是您在 權限規則、subagent 工具清單 和 hook 匹配器 中使用的確切字串。若要完全停用工具,請將其名稱新增到您的 權限設定 中的Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
deny 陣列。
若要新增自訂工具,請連接 MCP server。若要使用可重複使用的提示型工作流程擴展 Claude,請撰寫 skill,它透過現有的 Skill 工具執行,而不是新增工具項目。
| 工具 | 描述 | 需要權限 |
|---|---|---|
Agent | 生成一個具有自己 context window 的 subagent,以處理任務。請參閱 Agent 工具行為 | 否 |
AskUserQuestion | 提出多選題以收集需求或澄清歧義 | 否 |
Bash | 在您的環境中執行 shell 命令。請參閱 Bash 工具行為 | 是 |
CronCreate | 在目前工作階段內排程定期或一次性提示。任務的範圍限於工作階段,並在 --resume 或 --continue 時恢復(如果未過期)。請參閱 排程任務 | 否 |
CronDelete | 按 ID 取消排程任務 | 否 |
CronList | 列出工作階段中的所有排程任務 | 否 |
Edit | 對特定檔案進行目標編輯。請參閱 Edit 工具行為 | 是 |
EnterPlanMode | 切換到 Plan Mode 以在編碼前設計方法 | 否 |
EnterWorktree | 建立隔離的 git worktree 並切換到其中。傳遞 path 以切換到目前儲存庫的現有 worktree,而不是建立新的。不適用於 subagents | 否 |
ExitPlanMode | 提出計畫以供批准並退出 Plan Mode | 是 |
ExitWorktree | 退出 worktree 工作階段並返回原始目錄。不適用於 subagents | 否 |
Glob | 根據模式匹配查找檔案。請參閱 Glob 工具行為 | 否 |
Grep | 在檔案內容中搜尋模式。請參閱 Grep 工具行為 | 否 |
ListMcpResourcesTool | 列出連接的 MCP servers 公開的資源 | 否 |
LSP | 透過語言伺服器進行程式碼智慧:跳轉到定義、尋找參考、報告型別錯誤和警告。請參閱 LSP 工具行為 | 否 |
Monitor | 在背景執行命令,並將每個輸出行回饋給 Claude,以便它可以對日誌項目、檔案變更或輪詢狀態做出反應。請參閱 Monitor 工具 | 是 |
NotebookEdit | 修改 Jupyter notebook 儲存格。請參閱 NotebookEdit 工具行為 | 是 |
PowerShell | 原生執行 PowerShell 命令。請參閱 PowerShell 工具 以了解可用性 | 是 |
PushNotification | 傳送桌面通知,以及當 Remote Control 已連接時傳送手機推播,以便長時間執行的任務或 排程任務 可以在您離開時聯繫您。推播傳遞透過 Anthropic 託管的基礎設施執行,無法從 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 存取 | 否 |
Read | 讀取檔案的內容。請參閱 Read 工具行為 | 否 |
ReadMcpResourceTool | 按 URI 讀取特定 MCP 資源 | 否 |
RemoteTrigger | 在 claude.ai 上建立、更新、執行和列出 Routines。支援 /schedule 命令。Routines 位於 claude.ai 上,需要 Pro、Max、Team 或 Enterprise 計畫,因此此工具無法從 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 存取 | 否 |
SendMessage | 傳送訊息給 agent team 隊友,或按 agent ID 恢復 subagent。已停止的 subagents 會在背景中自動恢復。僅在設定 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 時可用 | 否 |
ShareOnboardingGuide | 上傳 ONBOARDING.md 並傳回隊友可以在 Claude Code 中開啟的分享連結。在撰寫指南後從 /team-onboarding 呼叫。適用於 Pro、Max、Team 和 Enterprise 計畫上的 claude.ai 訂閱者 | 是 |
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 擷取內容。請參閱 WebFetch 工具行為 | 是 |
WebSearch | 執行網路搜尋。請參閱 WebSearch 工具行為 | 是 |
Write | 建立或覆寫檔案。請參閱 Write 工具行為 | 是 |
使用權限規則和 hooks 設定工具
在大多數情況下,Claude 會決定何時使用這些工具,您在與 Claude 互動時不需要自己命名它們。當定義權限和其他設定時,您直接參考工具名稱:- 在設定中的
permissions.allow和permissions.deny,以及/permissions介面 - 在 Agent SDK 的
allowedTools和disallowedTools選項中 - 在 subagent 的
tools或disallowedToolsfrontmatter 中 - 在 skill 的
allowed-toolsfrontmatter 中 - 在 hook 的
if條件 中
ToolName(specifier)。specifier 取決於工具,多個工具共享一種格式:
| 規則格式 | 適用於 | 詳細資訊 |
|---|---|---|
Bash(npm run *) | Bash、Monitor | 命令模式匹配 |
PowerShell(Get-ChildItem *) | PowerShell | 命令模式匹配 |
Read(~/secrets/**) | Read、Grep、Glob、LSP | 路徑模式匹配 |
Edit(/src/**) | Edit、Write、NotebookEdit | 路徑模式匹配 |
Skill(deploy *) | Skill | Skill 名稱匹配 |
Agent(Explore) | Agent | Subagent 類型匹配 |
WebFetch(domain:example.com) | WebFetch | 網域匹配 |
WebSearch | WebSearch | 無 specifier;允許或拒絕整個工具 |
ExitPlanMode 或 ShareOnboardingGuide,僅接受不帶 specifier 的裸工具名稱。
Edit(...) 允許規則也授予對相同路徑的讀取存取權,因此您不需要匹配的 Read(...) 規則。
Hook matcher 欄位使用裸工具名稱,而不是括號括起的規則格式。請參閱 matcher 模式 以了解匹配規則。如需每個工具在 hooks 中傳遞給 tool_input 的欄位名稱,請參閱 PreToolUse 輸入參考。
Agent 工具行為
Agent 工具在單獨的 context window 中生成一個 subagent。subagent 自主地完成其任務,然後將單個文字結果傳回父對話。父對話看不到 subagent 的中間工具呼叫或輸出,只看到最終結果。若要限制 subagent 執行的轉數,請在 subagent 定義 中設定maxTurns。
相同的 Agent 工具也會在啟用 fork 模式時啟動 forked subagents。fork 繼承完整的父對話,而不是從頭開始,始終在背景執行,並仍在您的終端中顯示權限提示。本節的其餘部分描述命名的 subagents。
命名的 subagent 可以使用哪些工具取決於 subagent 定義 中的 tools 和 disallowedTools 欄位:
- 兩個欄位都未設定:subagent 繼承父對話可用的每個工具。
- 僅
tools:subagent 僅獲得列出的工具。 - 僅
disallowedTools:subagent 獲得除列出的工具外的每個父工具。 - 兩者都設定:
disallowedTools優先。同時列在兩者中的工具會被移除。
- 前景 subagents 顯示您在主對話中會看到的相同權限提示,在每個工具呼叫發生時。
- 背景 subagents 不顯示提示。它們使用工作階段中已授予的權限執行,並自動拒絕任何否則會提示的工具呼叫。拒絕後,subagent 會在沒有該工具的情況下繼續進行。
tools 欄位、將 Bash 排除在清單之外,或在您的設定中設定拒絕規則,如 控制 subagent 功能 中所述。如需有關選擇前景或背景的更多資訊,請參閱 在前景或背景中執行 subagents。
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_ENV_FILE 設定為 shell 指令碼,或使用 SessionStart hook 動態填充它。
兩個限制限制每個命令:
- 逾時:預設為兩分鐘。Claude 可以使用
timeout參數要求每個命令最多 10 分鐘。使用BASH_DEFAULT_TIMEOUT_MS和BASH_MAX_TIMEOUT_MS覆寫預設值和上限。 - 輸出長度:預設為 30,000 個字元。當命令產生超過該值的輸出時,Claude Code 會將完整輸出儲存到工作階段目錄中的檔案,並給予 Claude 檔案路徑加上開始處的簡短預覽。Claude 在需要其餘部分時讀取或搜尋該檔案。使用
BASH_MAX_OUTPUT_LENGTH提高限制,最高可達 150,000 個字元的硬上限。
run_in_background: true 以將命令作為背景任務啟動,並在其執行時繼續工作。使用 /tasks 列出和停止背景任務。
Edit 工具行為
Edit 工具執行確切的字串替換。它採用old_string 和 new_string 並用第二個替換第一個。它不使用正規表達式或模糊匹配。
三個檢查必須通過才能應用編輯:
- 編輯前讀取:Claude 必須在目前對話中讀取檔案,且檔案自該讀取後不得在磁碟上變更。此檢查首先執行,在任何字串匹配之前。
- 匹配:
old_string必須在檔案中完全按照撰寫方式出現。單個空白字元或縮排差異足以導致不匹配。 - 唯一性:
old_string必須恰好出現一次。當它出現多次時,Claude 要麼提供更長的字串,其周圍有足夠的上下文來確定一個出現,要麼設定replace_all: true以替換所有出現。
cat path/to/file 或 sed -n 'X,Yp' path/to/file 在單個檔案上,沒有管道或重定向時。其他 Bash 命令(例如 head、tail 或管道輸出)不計算,Claude 在這些情況下必須在編輯前使用 Read。
這僅影響編輯資格,不影響權限。Read 和 Edit 拒絕規則 也適用於 Claude Code 在 Bash 中識別的檔案命令,例如 cat、head、tail 和 sed,但不適用於間接讀取或寫入檔案的任意子程序,例如自己開啟檔案的 Python 或 Node 指令碼。如需涵蓋每個程序的作業系統級別強制執行,請 啟用沙箱。
Glob 工具行為
Glob 工具按名稱模式查找檔案。它支援標準 glob 語法,包括** 用於遞迴目錄匹配:
**/*.js匹配任何深度的所有.js檔案src/**/*.ts匹配src/下的所有.ts檔案*.{json,yaml}匹配目前目錄中的.json和.yaml檔案
.gitignore,因此它會找到 gitignored 檔案以及追蹤的檔案。這與 Grep 不同,後者跳過 gitignored 檔案。若要讓 Glob 尊重 .gitignore,請在啟動 Claude Code 之前設定 CLAUDE_CODE_GLOB_NO_IGNORE=false。
Grep 工具行為
Grep 工具在檔案內容中搜尋模式。其中 Glob 按名稱查找檔案,Grep 在其中查找行。 Grep 建立在 ripgrep 上,使用 ripgrep 的正規表達式語法,而不是 POSIX grep。包含正規表達式元字元的模式需要轉義。例如,在 Go 程式碼中查找interface{} 需要模式 interface\{\}。
三個輸出模式控制返回的內容:
files_with_matches:僅檔案路徑,無行內容。這是預設值。content:匹配的行,帶有檔案和行號。count:每個檔案的匹配計數。
glob 參數(例如 **/*.tsx)按檔案限制結果,或使用 type 參數(例如 py 或 rust)按語言限制結果。預設情況下,模式在單行內匹配。Claude 可以設定 multiline: true 以跨行邊界匹配。
Grep 尊重 .gitignore,因此 gitignored 檔案會被跳過。若要搜尋 gitignored 檔案,Claude 直接傳遞其路徑。
LSP 工具行為
LSP 工具從執行中的語言伺服器為 Claude 提供程式碼智慧。在每次檔案編輯後,它會自動報告型別錯誤和警告,以便 Claude 可以在沒有單獨建置步驟的情況下修復問題。Claude 也可以直接呼叫它來導航程式碼:- 跳轉到符號的定義
- 尋找符號的所有參考
- 取得位置的型別資訊
- 列出檔案或工作區中的符號
- 尋找介面的實作
- 追蹤呼叫階層
Monitor 工具
Monitor 工具需要 Claude Code v2.1.98 或更新版本。
- 追蹤日誌檔案並在錯誤出現時標記
- 輪詢 PR 或 CI 工作,並在其狀態變更時報告
- 監視目錄以查看檔案變更
- 追蹤您指向的任何長時間執行指令碼的輸出
allow 和 deny 模式也適用於此處。它在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。當設定 DISABLE_TELEMETRY 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 時,它也不可用。
外掛可以宣告在外掛啟用時自動啟動的監視,而不是要求 Claude 啟動它們。請參閱 外掛監視。
NotebookEdit 工具行為
NotebookEdit 一次修改一個 Jupyter notebook 儲存格,按其cell_id 定位儲存格。它不像 Edit 在純文字檔案上那樣跨 notebook 執行字串替換。
三個編輯模式控制目標儲存格發生的情況:
replace:覆寫儲存格的來源。這是預設值。insert:在目標後新增新儲存格。沒有cell_id時,新儲存格位於 notebook 的開始。需要cell_type設定為code或markdown。delete:移除目標儲存格。
Edit(...) 路徑格式。像 Edit(notebooks/**) 這樣的規則涵蓋該目錄中檔案上的 NotebookEdit 呼叫。
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:
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 工具。
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 環境變數。
預覽限制
PowerShell 工具在預覽期間有以下已知限制:- PowerShell 設定檔未載入
- 在 Windows 上,不支援 sandboxing
Read 工具行為
Read 工具採用檔案路徑並傳回帶有行號的內容。Claude 被指示始終傳遞絕對路徑。 預設情況下,Read 從開始傳回檔案。超過大小閾值的檔案傳回錯誤而不是部分內容,提示 Claude 使用offset 和 limit 重試以讀取特定範圍。
Read 處理純文字以外的多種檔案類型:
- 影像:PNG、JPG 和其他影像格式作為 Claude 可以看到的視覺內容傳回,而不是原始位元組。Claude Code 在傳送前調整大小並重新壓縮大型影像以適應模型的影像大小限制,因此 Claude 可能會看到大型螢幕截圖的縮小版本。如果 Claude 在大型影像中遺漏細微的像素級詳細資訊,請要求它先裁剪感興趣的區域,例如使用 ImageMagick 透過 Bash。
- PDF:Claude 完整讀取短
.pdf檔案。對於超過 10 頁的 PDF,它使用pages參數(例如"1-5")按範圍讀取,一次最多 20 頁。 - Jupyter notebooks:
.ipynb檔案傳回所有儲存格及其輸出,包括程式碼、markdown 和視覺化。
ls 列出目錄內容。
WebFetch 工具行為
WebFetch 採用 URL 和描述要提取內容的提示。它擷取頁面,當伺服器傳回 HTML 時將回應轉換為 Markdown,並使用小型快速模型針對內容執行提示。對於大多數擷取,Claude 會收到該模型的答案,而不是原始頁面。轉換步驟不可設定。 這使 WebFetch 在設計上是有損的。提取提示決定了到達 Claude 的內容,因此說頁面未提及某事的結果可能只是意味著提示未詢問它。要求 Claude 使用更具體的提示再次擷取,或使用透過 Bash 的curl 獲取未處理的頁面。
一些行為塑造了 Claude 接收的回應:
- HTTP URL 會自動升級為 HTTPS。
- 大型頁面在處理前被截斷為固定字元限制。
- 回應會快取 15 分鐘,因此相同 URL 的重複擷取會快速傳回。
- 當 URL 重定向到不同的主機時,WebFetch 傳回文字結果,命名原始 URL 和重定向目標,而不是跟隨它。Claude 然後使用第二個 WebFetch 呼叫擷取新 URL。
acceptEdits 權限模式中,WebFetch 在首次到達新網域時提示。若要提前允許網域而不提示,請新增像 WebFetch(domain:example.com) 這樣的權限規則。auto 和 bypassPermissions 權限模式 完全跳過提示。
WebFetch 設定以 Claude-User 開頭的 User-Agent 標頭,以及偏好 Markdown 而不是 HTML 的 Accept 標頭,以便支援內容協商的伺服器可以直接傳回 Markdown。Sandbox 網路規則是單獨設定的,因此您希望沙箱程序到達的網域仍需要明確的沙箱權限規則。
WebSearch 工具行為
WebSearch 針對 Anthropic 的 web search 後端執行查詢,並傳回結果標題和 URL。它不擷取結果頁面。若要讀取 Claude 在搜尋結果中找到的頁面,它會跟進 WebFetch。 該工具可能在傳回結果之前發出最多八個後端搜尋,在內部精煉搜尋。Claude 可以使用allowed_domains 限制結果以僅包含某些主機,或使用 blocked_domains 排除它們。這兩個清單不能在單個呼叫中組合。
搜尋後端不可設定。若要使用不同的提供者進行搜尋,請新增公開搜尋工具的 MCP server。
WebSearch 權限規則不採用 specifier。allow 或 deny 中的裸 WebSearch 項目是唯一的形式。
WebSearch 在 Claude API 和 Microsoft Foundry 上可用。在 Google Cloud Vertex AI 上,它適用於 Claude 4 模型,包括 Opus、Sonnet 和 Haiku。Amazon Bedrock 不公開伺服器端 web search 工具。
Write 工具行為
Write 工具建立新檔案或使用提供的完整內容覆寫現有檔案。它不附加或合併。 如果目標路徑已存在,Claude 必須在目前對話中至少讀取過該檔案一次才能覆寫它。寫入未讀的現有檔案會失敗並出現錯誤。此限制不適用於新檔案。 使用 Bashcat 或 sed -n 檢視檔案也滿足此要求,如 Edit 工具行為 中所述。
對於現有檔案的部分變更,Claude 使用 Edit 而不是 Write。
檢查哪些工具可用
您的確切工具集取決於您的提供者、平台和設定。若要檢查在執行中的工作階段中載入了什麼,請直接詢問 Claude:/mcp。
另請參閱
- MCP servers:透過連接外部伺服器新增自訂工具
- 權限:權限系統、規則語法和工具特定模式
- Subagents:為 subagents 設定工具存取
- Hooks:在工具執行前後執行自訂命令