跳轉到主要內容

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.

Claude Code 可以存取一組內建工具,幫助它理解和修改您的程式碼庫。工具名稱是您在 權限規則subagent 工具清單hook 匹配器 中使用的確切字串。若要完全停用工具,請將其名稱新增到您的 權限設定 中的 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 互動時不需要自己命名它們。當定義權限和其他設定時,您直接參考工具名稱: 所有這些都接受相同的規則格式 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 *)SkillSkill 名稱匹配
Agent(Explore)AgentSubagent 類型匹配
WebFetch(domain:example.com)WebFetch網域匹配
WebSearchWebSearch無 specifier;允許或拒絕整個工具
此處未列出的工具,例如 ExitPlanModeShareOnboardingGuide,僅接受不帶 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 定義 中的 toolsdisallowedTools 欄位:
  • 兩個欄位都未設定:subagent 繼承父對話可用的每個工具。
  • tools:subagent 僅獲得列出的工具。
  • disallowedTools:subagent 獲得除列出的工具外的每個父工具。
  • 兩者都設定disallowedTools 優先。同時列在兩者中的工具會被移除。
啟動 subagent 本身不會提示權限。subagent 自己的工具呼叫在執行時會根據您的權限規則進行檢查:
  • 前景 subagents 顯示您在主對話中會看到的相同權限提示,在每個工具呼叫發生時。
  • 背景 subagents 不顯示提示。它們使用工作階段中已授予的權限執行,並自動拒絕任何否則會提示的工具呼叫。拒絕後,subagent 會在沒有該工具的情況下繼續進行。
若要首先限制 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 Code 之前啟動您的 virtualenv 或 conda 環境。若要讓環境變數在 Bash 命令之間持久化,請在啟動 Claude Code 之前將 CLAUDE_ENV_FILE 設定為 shell 指令碼,或使用 SessionStart hook 動態填充它。 兩個限制限制每個命令:
  • 逾時:預設為兩分鐘。Claude 可以使用 timeout 參數要求每個命令最多 10 分鐘。使用 BASH_DEFAULT_TIMEOUT_MSBASH_MAX_TIMEOUT_MS 覆寫預設值和上限。
  • 輸出長度:預設為 30,000 個字元。當命令產生超過該值的輸出時,Claude Code 會將完整輸出儲存到工作階段目錄中的檔案,並給予 Claude 檔案路徑加上開始處的簡短預覽。Claude 在需要其餘部分時讀取或搜尋該檔案。使用 BASH_MAX_OUTPUT_LENGTH 提高限制,最高可達 150,000 個字元的硬上限。
對於長時間執行的程序(例如開發伺服器或監視建置),Claude 可以設定 run_in_background: true 以將命令作為背景任務啟動,並在其執行時繼續工作。使用 /tasks 列出和停止背景任務。

Edit 工具行為

Edit 工具執行確切的字串替換。它採用 old_stringnew_string 並用第二個替換第一個。它不使用正規表達式或模糊匹配。 三個檢查必須通過才能應用編輯:
  • 編輯前讀取:Claude 必須在目前對話中讀取檔案,且檔案自該讀取後不得在磁碟上變更。此檢查首先執行,在任何字串匹配之前。
  • 匹配old_string 必須在檔案中完全按照撰寫方式出現。單個空白字元或縮排差異足以導致不匹配。
  • 唯一性old_string 必須恰好出現一次。當它出現多次時,Claude 要麼提供更長的字串,其周圍有足夠的上下文來確定一個出現,要麼設定 replace_all: true 以替換所有出現。
使用 Bash 檢視檔案也滿足編輯前讀取要求,當命令是 cat path/to/filesed -n 'X,Yp' path/to/file 在單個檔案上,沒有管道或重定向時。其他 Bash 命令(例如 headtail 或管道輸出)不計算,Claude 在這些情況下必須在編輯前使用 Read。 這僅影響編輯資格,不影響權限。Read 和 Edit 拒絕規則 也適用於 Claude Code 在 Bash 中識別的檔案命令,例如 catheadtailsed,但不適用於間接讀取或寫入檔案的任意子程序,例如自己開啟檔案的 Python 或 Node 指令碼。如需涵蓋每個程序的作業系統級別強制執行,請 啟用沙箱

Glob 工具行為

Glob 工具按名稱模式查找檔案。它支援標準 glob 語法,包括 ** 用於遞迴目錄匹配:
  • **/*.js 匹配任何深度的所有 .js 檔案
  • src/**/*.ts 匹配 src/ 下的所有 .ts 檔案
  • *.{json,yaml} 匹配目前目錄中的 .json.yaml 檔案
結果按修改時間排序,並限制為 100 個檔案。如果達到上限,Claude 會在結果中看到截斷標誌,並可以縮小模式。 Glob 預設不尊重 .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:每個檔案的匹配計數。
Claude 可以使用 glob 參數(例如 **/*.tsx)按檔案限制結果,或使用 type 參數(例如 pyrust)按語言限制結果。預設情況下,模式在單行內匹配。Claude 可以設定 multiline: true 以跨行邊界匹配。 Grep 尊重 .gitignore,因此 gitignored 檔案會被跳過。若要搜尋 gitignored 檔案,Claude 直接傳遞其路徑。

LSP 工具行為

LSP 工具從執行中的語言伺服器為 Claude 提供程式碼智慧。在每次檔案編輯後,它會自動報告型別錯誤和警告,以便 Claude 可以在沒有單獨建置步驟的情況下修復問題。Claude 也可以直接呼叫它來導航程式碼:
  • 跳轉到符號的定義
  • 尋找符號的所有參考
  • 取得位置的型別資訊
  • 列出檔案或工作區中的符號
  • 尋找介面的實作
  • 追蹤呼叫階層
該工具在您安裝您的語言的 程式碼智慧外掛 之前處於非作用中狀態。該外掛包含語言伺服器設定,您需要單獨安裝伺服器二進位檔。

Monitor 工具

Monitor 工具需要 Claude Code v2.1.98 或更新版本。
Monitor 工具讓 Claude 在背景監視某些內容,並在其變更時做出反應,而無需暫停對話。要求 Claude:
  • 追蹤日誌檔案並在錯誤出現時標記
  • 輪詢 PR 或 CI 工作,並在其狀態變更時報告
  • 監視目錄以查看檔案變更
  • 追蹤您指向的任何長時間執行指令碼的輸出
Claude 為監視編寫一個小指令碼,在背景執行它,並在每行到達時接收它。您可以在同一工作階段中繼續工作,Claude 會在事件發生時插入。透過要求 Claude 取消監視或結束工作階段來停止監視。 Monitor 使用與 Bash 相同的權限規則,因此您為 Bash 設定的 allowdeny 模式也適用於此處。它在 Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 上不可用。當設定 DISABLE_TELEMETRYCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 時,它也不可用。 外掛可以宣告在外掛啟用時自動啟動的監視,而不是要求 Claude 啟動它們。請參閱 外掛監視

NotebookEdit 工具行為

NotebookEdit 一次修改一個 Jupyter notebook 儲存格,按其 cell_id 定位儲存格。它不像 Edit 在純文字檔案上那樣跨 notebook 執行字串替換。 三個編輯模式控制目標儲存格發生的情況:
  • replace:覆寫儲存格的來源。這是預設值。
  • insert:在目標後新增新儲存格。沒有 cell_id 時,新儲存格位於 notebook 的開始。需要 cell_type 設定為 codemarkdown
  • 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
{
  "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

Read 工具行為

Read 工具採用檔案路徑並傳回帶有行號的內容。Claude 被指示始終傳遞絕對路徑。 預設情況下,Read 從開始傳回檔案。超過大小閾值的檔案傳回錯誤而不是部分內容,提示 Claude 使用 offsetlimit 重試以讀取特定範圍。 Read 處理純文字以外的多種檔案類型:
  • 影像:PNG、JPG 和其他影像格式作為 Claude 可以看到的視覺內容傳回,而不是原始位元組。Claude Code 在傳送前調整大小並重新壓縮大型影像以適應模型的影像大小限制,因此 Claude 可能會看到大型螢幕截圖的縮小版本。如果 Claude 在大型影像中遺漏細微的像素級詳細資訊,請要求它先裁剪感興趣的區域,例如使用 ImageMagick 透過 Bash。
  • PDF:Claude 完整讀取短 .pdf 檔案。對於超過 10 頁的 PDF,它使用 pages 參數(例如 "1-5")按範圍讀取,一次最多 20 頁。
  • Jupyter notebooks.ipynb 檔案傳回所有儲存格及其輸出,包括程式碼、markdown 和視覺化。
Read 僅讀取檔案,不讀取目錄。Claude 使用透過 Bash 工具的 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) 這樣的權限規則。autobypassPermissions 權限模式 完全跳過提示。 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。allowdeny 中的裸 WebSearch 項目是唯一的形式。
WebSearch 在 Claude API 和 Microsoft Foundry 上可用。在 Google Cloud Vertex AI 上,它適用於 Claude 4 模型,包括 Opus、Sonnet 和 Haiku。Amazon Bedrock 不公開伺服器端 web search 工具。

Write 工具行為

Write 工具建立新檔案或使用提供的完整內容覆寫現有檔案。它不附加或合併。 如果目標路徑已存在,Claude 必須在目前對話中至少讀取過該檔案一次才能覆寫它。寫入未讀的現有檔案會失敗並出現錯誤。此限制不適用於新檔案。 使用 Bash catsed -n 檢視檔案也滿足此要求,如 Edit 工具行為 中所述。 對於現有檔案的部分變更,Claude 使用 Edit 而不是 Write。

檢查哪些工具可用

您的確切工具集取決於您的提供者、平台和設定。若要檢查在執行中的工作階段中載入了什麼,請直接詢問 Claude:
What tools do you have access to?
Claude 提供對話摘要。如需確切的 MCP 工具名稱,請執行 /mcp

另請參閱

  • MCP servers:透過連接外部伺服器新增自訂工具
  • 權限:權限系統、規則語法和工具特定模式
  • Subagents:為 subagents 設定工具存取
  • Hooks:在工具執行前後執行自訂命令