8 8
9Plugins 讓您使用可在專案和團隊中共享的自訂功能來擴展 Claude Code。本指南涵蓋使用 skills、agents、hooks 和 MCP servers 建立您自己的 plugins。9Plugins 讓您使用可在專案和團隊中共享的自訂功能來擴展 Claude Code。本指南涵蓋使用 skills、agents、hooks 和 MCP servers 建立您自己的 plugins。
10 10
11想要安裝現有的 plugins?請參閱[探索和安裝 plugins](/zh-TW/discover-plugins)。如需完整的技術規格,請參閱 [Plugins 參考](/zh-TW/plugins-reference)。11想要安裝現有的 plugins?請參閱[探索和安裝 plugins](/docs/zh-TW/discover-plugins)。如需完整的技術規格,請參閱 [Plugins 參考](/docs/zh-TW/plugins-reference)。
12 12
13<h2 id="when-to-use-plugins-vs-standalone-configuration">13<h2 id="when-to-use-plugins-vs-standalone-configuration">
14 何時使用 plugins 與獨立配置14 何時使用 plugins 與獨立配置
21| **獨立**(`.claude/` 目錄) | `/hello` | 個人工作流程、專案特定的自訂、快速實驗 |21| **獨立**(`.claude/` 目錄) | `/hello` | 個人工作流程、專案特定的自訂、快速實驗 |
22| **Plugins**(包含 skills、agents、hooks 或 `.claude-plugin/plugin.json` 資訊清單的自包含目錄) | `/plugin-name:hello` | 與隊友共享、分發到社群、版本化發佈、跨專案重複使用 |22| **Plugins**(包含 skills、agents、hooks 或 `.claude-plugin/plugin.json` 資訊清單的自包含目錄) | `/plugin-name:hello` | 與隊友共享、分發到社群、版本化發佈、跨專案重複使用 |
23 23
24**在以下情況下使用獨立配置**:
25
26* 您正在為單一專案自訂 Claude Code
27* 配置是個人的,不需要共享
28* 您在將 skills 或 hooks 打包之前進行實驗
29* 您想要簡短的 skill 名稱,例如 `/hello` 或 `/deploy`
30
31**在以下情況下使用 plugins**:
32
33* 您想與您的團隊或社群共享功能
34* 您需要在多個專案中使用相同的 skills/agents
35* 您想要版本控制和輕鬆更新您的擴展
36* 您正在透過市場進行分發
37* 您可以接受命名空間化的 skills,例如 `/my-plugin:hello`(命名空間可防止 plugins 之間的衝突)
38
39<Tip>24<Tip>
40 在 `.claude/` 中從獨立配置開始進行快速迭代,然後在準備好共享時[轉換為 plugin](#convert-existing-configurations-to-plugins)。25 在 `.claude/` 中從獨立配置開始進行快速迭代,然後在準備好共享時[轉換為 plugin](#convert-existing-configurations-to-plugins)。
41</Tip>26</Tip>
50 先決條件35 先決條件
51</h3>36</h3>
52 37
53* Claude Code [已安裝並驗證](/zh-TW/quickstart#step-1-install-claude-code)38* Claude Code [已安裝並驗證](/docs/zh-TW/quickstart#step-1-install-claude-code)
54
55<Note>
56 如果您沒有看到 `/plugin` 命令,請將 Claude Code 更新到最新版本。如需升級說明,請參閱 [Troubleshooting](/zh-TW/troubleshooting)。
57</Note>
58 39
59<h3 id="create-your-first-plugin">40<h3 id="create-your-first-plugin">
60 建立您的第一個 plugin41 建立您的第一個 plugin
94 ```75 ```
95 76
96 | 欄位 | 用途 |77 | 欄位 | 用途 |
97 | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------- |78 | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
98 | `name` | 唯一識別碼和 skill 命名空間。Skills 以此為前綴(例如 `/my-first-plugin:hello`)。 |79 | `name` | 唯一識別碼和 skill 命名空間。Skills 以此為前綴(例如 `/my-first-plugin:hello`)。 |
99 | `description` | 在瀏覽或安裝 plugins 時在 plugin 管理器中顯示。 |80 | `description` | 在瀏覽或安裝 plugins 時在 plugin 管理器中顯示。 |
100 | `version` | 選用。如果設定,使用者只會在您更新此欄位時收到更新。如果省略且您的 plugin 透過 git 分發,則使用 commit SHA,每個 commit 都算作新版本。請參閱[版本管理](/zh-TW/plugins-reference#version-management)。 |81 | `version` | 選用。如果設定,使用者只會在您更新此欄位時收到更新,除了 [`command` 來源](/docs/zh-TW/plugin-marketplaces#command-sources)外;請參閱[版本管理](/docs/zh-TW/plugins-reference#version-management)。如果省略,版本來自[版本管理](/docs/zh-TW/plugins-reference#version-management)中的下一個來源。 |
101 | `author` | 選用。有助於歸屬。 |82 | `author` | 選用。有助於歸屬。 |
102 83
103 如需 `homepage`、`repository` 和 `license` 等其他欄位,請參閱[完整清單架構](/zh-TW/plugins-reference#plugin-manifest-schema)。84 如需 `homepage`、`repository` 和 `license` 等其他欄位,請參閱[完整清單架構](/docs/zh-TW/plugins-reference#plugin-manifest-schema)。
104 </Step>85 </Step>
105 86
106 <Step title="新增 skill">87 <Step title="新增 skill">
137 /my-first-plugin:hello118 /my-first-plugin:hello
138 ```119 ```
139 120
140 您將看到 Claude 以問候語回應。執行 `/help` 以查看您的 skill 列在 plugin 命名空間下。121 您將看到 Claude 以問候語回應。執行 `/help` 並開啟**自訂命令**標籤,以查看您的 skill 列在 plugin 命名空間下。
141 122
142 <Note>123 <Note>
143 **為什麼要命名空間?** Plugin skills 始終被命名空間化(例如 `/my-first-plugin:hello`),以防止多個 plugins 具有相同名稱的 skills 時發生衝突。124 **為什麼要命名空間?** Plugin skills 始終被命名空間化(例如 `/my-first-plugin:hello`),以防止多個 plugins 具有相同名稱的 skills 時發生衝突。
161 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.142 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
162 ```143 ```
163 144
164 執行 `/reload-plugins` 以取得變更,然後嘗試使用您的名稱執行 skill:145 執行 `/reload-plugins` 以取得變更。然後嘗試使用您的名稱執行 skill:
165 146
166 ```shell theme={null}147 ```shell theme={null}
167 /my-first-plugin:hello Alex148 /my-first-plugin:hello Alex
168 ```149 ```
169 150
170 Claude 將按名稱向您問候。如需有關將引數傳遞給 skills 的更多資訊,請參閱 [Skills](/zh-TW/skills#pass-arguments-to-skills)。151 Claude 將按名稱向您問候。如需有關將引數傳遞給 skills 的更多資訊,請參閱 [Skills](/docs/zh-TW/skills#pass-arguments-to-skills)。
171 </Step>152 </Step>
172</Steps>153</Steps>
173 154
174您已成功建立並測試了具有這些關鍵元件的 plugin:
175
176* **Plugin 清單** (`.claude-plugin/plugin.json`):描述您的 plugin 的中繼資料
177* **Skills 目錄** (`skills/`):包含您的自訂 skills
178* **Skill 引數** (`$ARGUMENTS`):擷取使用者輸入以實現動態行為
179
180<Tip>155<Tip>
181 `--plugin-dir` 旗標對於開發和測試很有用。當您準備好與他人共享您的 plugin 時,請參閱[建立和分發 plugin 市場](/zh-TW/plugin-marketplaces)。156 `--plugin-dir` 旗標對於開發和測試很有用。當您準備好與他人共享您的 plugin 時,請參閱[建立和分發 plugin 市場](/docs/zh-TW/plugin-marketplaces)。
182</Tip>157</Tip>
183 158
184<h2 id="develop-a-plugin-in-your-skills-directory">159<h2 id="develop-a-plugin-in-your-skills-directory">
193 168
194這會建立 `~/.claude/skills/my-tool/`,其中包含 `.claude-plugin/plugin.json` 清單和一個入門 `SKILL.md`。在下一個工作階段中,它會以 `my-tool@skills-dir` 的形式載入,無需市場或安裝步驟。169這會建立 `~/.claude/skills/my-tool/`,其中包含 `.claude-plugin/plugin.json` 清單和一個入門 `SKILL.md`。在下一個工作階段中,它會以 `my-tool@skills-dir` 的形式載入,無需市場或安裝步驟。
195 170
196如需自動載入規則、個人與專案範圍、工作區信任要求,以及如何更新或移除一個,請參閱 [Skills-directory plugins](/zh-TW/plugins-reference#skills-directory-plugins)。171如需自動載入規則、個人與專案範圍、工作區信任要求,以及如何更新或移除一個,請參閱 [Skills-directory plugins](/docs/zh-TW/plugins-reference#skills-directory-plugins)。
197 172
198<h2 id="plugin-structure-overview">173<h2 id="plugin-structure-overview">
199 Plugin 結構概述174 Plugin 結構概述
204<Warning>179<Warning>
205 **常見錯誤**:不要將 `commands/`、`agents/`、`skills/` 或 `hooks/` 放在 `.claude-plugin/` 目錄內。只有 `plugin.json` 應該在 `.claude-plugin/` 內。所有其他目錄必須位於 plugin 根目錄級別。180 **常見錯誤**:不要將 `commands/`、`agents/`、`skills/` 或 `hooks/` 放在 `.claude-plugin/` 目錄內。只有 `plugin.json` 應該在 `.claude-plugin/` 內。所有其他目錄必須位於 plugin 根目錄級別。
206 181
207 plugin 根目錄是個別 plugin 自己的目錄:包含 `.claude-plugin/plugin.json` 的目錄。它永遠不是 `~/.claude/`。例如,Claude Code 不會讀取放在 `~/.claude/.mcp.json` 的 `.mcp.json`。182 plugin 根目錄是個別 plugin 自己的目錄,例如來自[快速入門](#quickstart)的 `my-first-plugin/`。它永遠不是 `~/.claude/`。例如,Claude Code 不會讀取放在 `~/.claude/.mcp.json` 的 `.mcp.json`。
208</Warning>183</Warning>
209 184
210| 目錄 | 位置 | 用途 |185| 目錄 | 位置 | 用途 |
211| :---------------- | :--------- | :----------------------------------------------- |186| :---------------- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |
212| `.claude-plugin/` | Plugin 根目錄 | 包含 `plugin.json` 清單(如果元件使用預設位置,則為選用) |187| `.claude-plugin/` | Plugin 根目錄 | 包含 `plugin.json` 清單(如果元件使用預設位置,則為選用) |
213| `skills/` | Plugin 根目錄 | 作為 `<name>/SKILL.md` 目錄的 Skills |188| `skills/` | Plugin 根目錄 | 作為 `<name>/SKILL.md` 目錄的 Skills |
214| `commands/` | Plugin 根目錄 | 作為平面 Markdown 檔案的 Skills。新 plugins 請使用 `skills/` |189| `commands/` | Plugin 根目錄 | 作為平面 Markdown 檔案的 Skills。新 plugins 請使用 `skills/` |
217| `.mcp.json` | Plugin 根目錄 | MCP server 配置 |192| `.mcp.json` | Plugin 根目錄 | MCP server 配置 |
218| `.lsp.json` | Plugin 根目錄 | 用於程式碼智慧的 LSP server 配置 |193| `.lsp.json` | Plugin 根目錄 | 用於程式碼智慧的 LSP server 配置 |
219| `monitors/` | Plugin 根目錄 | `monitors.json` 中的背景監視器配置 |194| `monitors/` | Plugin 根目錄 | `monitors.json` 中的背景監視器配置 |
220| `bin/` | Plugin 根目錄 | 在啟用 plugin 時新增到 Bash tool 的 `PATH` 的可執行檔 |195| `bin/` | Plugin 根目錄 | 在啟用 plugin 時新增到 Bash tool 的 `PATH` 的可執行檔。您無法在[透過 claude.ai 組織設定分發的 plugin](/docs/zh-TW/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory)中包含此目錄 |
221| `settings.json` | Plugin 根目錄 | 啟用 plugin 時應用的預設[設定](/zh-TW/settings) |196| `settings.json` | Plugin 根目錄 | 啟用 plugin 時應用的預設[設定](/docs/zh-TW/settings) |
222 197
223只要 plugin 恰好包含一個 skill,就可以直接在 plugin 根目錄放置 `SKILL.md`,而不需要建立 `skills/` 目錄。Claude Code 會將其載入為單一 skill,並使用 frontmatter 的 `name` 欄位作為叫用名稱。對於可能成長為多個 skill 的 plugins,請使用 `skills/` 配置。198只要 plugin 恰好包含一個 skill,就可以直接在 plugin 根目錄放置 `SKILL.md`,而不需要建立 `skills/` 目錄。Claude Code 會將其載入為單一 skill,並使用 frontmatter 的 `name` 欄位作為叫用名稱。對於可能成長為多個 skill 的 plugins,請使用 `skills/` 配置。
224 199
225<Note>
226 **後續步驟**:準備好新增更多功能?跳至[開發更複雜的 plugins](#develop-more-complex-plugins) 以新增 agents、hooks、MCP servers 和 LSP servers。如需所有 plugin 元件的完整技術規格,請參閱 [Plugins 參考](/zh-TW/plugins-reference)。
227</Note>
228
229<h2 id="develop-more-complex-plugins">200<h2 id="develop-more-complex-plugins">
230 開發更複雜的 plugins201 開發更複雜的外掛程式
231</h2>202</h2>
232 203
233一旦您熟悉了基本 plugins,您就可以建立更複雜的擴展。204一旦您熟悉了基本外掛程式,您可以建立更複雜的擴充功能。
234 205
235<h3 id="add-skills-to-your-plugin">206<h3 id="add-skills-to-your-plugin">
236 將 Skills 新增到您的 plugin207 將 Skills 新增至您的外掛程式
237</h3>208</h3>
238 209
239Plugins 可以包含 [Agent Skills](/zh-TW/skills) 以擴展 Claude 的功能。Skills 是模型調用的:Claude 根據任務上下文自動使用它們。210外掛程式可以包含 [Agent Skills](/docs/zh-TW/skills) 來擴展 Claude 的功能。Skills 是由模型呼叫的:Claude 會根據任務背景自動使用它們。
240 211
241在您的 plugin 根目錄中新增 `skills/` 目錄,其中包含包含 `SKILL.md` 檔案的 Skill 資料夾:212在您的外掛程式根目錄新增一個 `skills/` 目錄,其中包含包含 `SKILL.md` 檔案的 Skill 資料夾:
242 213
243```text theme={null}214```text theme={null}
244my-plugin/215my-plugin/
249 └── SKILL.md220 └── SKILL.md
250```221```
251 222
252每個 `SKILL.md` 包含 YAML frontmatter 和說明。包含 `description` 以便 Claude 知道何時使用該 skill:223每個 `SKILL.md` 包含 YAML frontmatter 和說明。包含一個 `description`,以便 Claude 知道何時使用該 skill:
253 224
254```yaml theme={null}225```yaml theme={null}
255---226---
2634. Test coverage2344. Test coverage
264```235```
265 236
266安裝 plugin 後,執行 `/reload-plugins` 以載入 Skills。如需完整的 Skill 編寫指南,包括漸進式揭露和工具限制,請參閱 [Agent Skills](/zh-TW/skills)。237安裝外掛程式後,檢查安裝摘要:如果它報告 `Run /reload-plugins to activate.`,請執行該命令以載入 Skills。如需完整的 Skill 編寫指南(包括漸進式揭露和工具限制),請參閱 [Agent Skills](/docs/zh-TW/skills)。
267 238
268<h3 id="add-lsp-servers-to-your-plugin">239<h3 id="add-lsp-servers-to-your-plugin">
269 將 LSP servers 新增到您的 plugin240 將 LSP 伺服器新增至您的外掛程式
270</h3>241</h3>
271 242
272<Tip>243<Tip>
273 對於 TypeScript、Python 和 Rust 等常見語言,請從官方市場安裝預先建立的 LSP plugins。只有在您需要支援尚未涵蓋的語言時,才建立自訂 LSP plugins。244 對於 TypeScript、Python 和 Rust 等常見語言,請從官方市集安裝預先建立的 LSP 外掛程式。只有在您需要支援尚未涵蓋的語言時,才建立自訂 LSP 外掛程式。
274</Tip>245</Tip>
275 246
276LSP(語言伺服器協議)plugins 為 Claude 提供即時程式碼智慧。如果您需要支援沒有官方 LSP plugin 的語言,您可以透過將 `.lsp.json` 檔案新增到您的 plugin 來建立自己的:247LSP(Language Server Protocol)外掛程式為 Claude 提供即時程式碼智慧。如果您需要支援沒有官方 LSP 外掛程式的語言,您可以透過將 `.lsp.json` 檔案新增至您的外掛程式來建立自己的:
277 248
278```json .lsp.json theme={null}249```json .lsp.json theme={null}
279{250{
287}258}
288```259```
289 260
290安裝您的 plugin 的使用者必須在其機器上安裝語言伺服器二進位檔。261安裝您外掛程式的使用者必須在其機器上安裝語言伺服器二進位檔。
262
263若要確認伺服器啟動,請啟動啟用外掛程式的 Claude Code 並檢查 `/plugin` 錯誤標籤:無法啟動的語言伺服器會出現在那裡,例如當二進位檔未安裝時出現 `Executable not found in $PATH`。具有無效設定的項目會被跳過;執行 `claude --debug` 以查看原因。
291 264
292如需完整的 LSP 配置選項,請參閱 [LSP servers](/zh-TW/plugins-reference#lsp-servers)。265如需完整的 LSP 設定選項,請參閱 [LSP servers](/docs/zh-TW/plugins-reference#lsp-servers)。
293 266
294<h3 id="add-background-monitors-to-your-plugin">267<h3 id="add-background-monitors-to-your-plugin">
295 將背景監視器新增到您的 plugin268 將背景監視器新增至您的外掛程式
296</h3>269</h3>
297 270
298背景監視器讓您的 plugin 在背景中監視日誌、檔案或外部狀態,並在事件到達時通知 Claude。Claude Code 在 plugin 啟用時自動啟動每個監視器,因此您不需要指示 Claude 啟動監視。271背景監視器讓您的外掛程式在背景中監視日誌、檔案或外部狀態,並在事件到達時通知 Claude。Claude Code 在外掛程式啟用時自動啟動每個監視器,因此您不需要指示 Claude 啟動監視。
299 272
300在 plugin 根目錄中新增 `monitors/monitors.json` 檔案,其中包含監視器項目的陣列:273在外掛程式根目錄新增一個 `monitors/monitors.json` 檔案,其中包含監視器項目的陣列:
301 274
302```json monitors/monitors.json theme={null}275```json monitors/monitors.json theme={null}
303[276[
309]282]
310```283```
311 284
312來自 `command` 的每個 stdout 行都會在工作階段期間作為通知傳遞給 Claude。如需完整的架構,包括 `when` 觸發器和變數替換,請參閱 [Monitors](/zh-TW/plugins-reference#monitors)。285來自 `command` 的每個 stdout 行都會在工作階段期間作為通知傳遞給 Claude。如需完整的結構描述(包括 `when` 觸發器和變數替換),請參閱 [Monitors](/docs/zh-TW/plugins-reference#monitors)。
313 286
314<h3 id="ship-default-settings-with-your-plugin">287<h3 id="ship-default-settings-with-your-plugin">
315 使用您的 plugin 提供預設設定288 使用您的外掛程式提供預設設定
316</h3>289</h3>
317 290
318Plugins 可以在 plugin 根目錄中包含 `settings.json` 檔案,以在啟用 plugin 時應用預設配置。目前,只支援 `agent` 和 `subagentStatusLine` 金鑰。291外掛程式可以在外掛程式根目錄包含一個 `settings.json` 檔案,以在啟用外掛程式時套用預設設定。目前僅支援 `agent` 和 `subagentStatusLine` 鍵。
319 292
320設定 `agent` 會啟動 plugin 的其中一個[自訂 agents](/zh-TW/sub-agents) 作為主執行緒,應用其系統提示、工具限制和模型。這讓 plugin 可以在啟用時透過預設方式變更 Claude Code 的行為。293設定 `agent` 會啟用外掛程式的其中一個 [custom agents](/docs/zh-TW/sub-agents) 作為主執行緒,套用其系統提示、工具限制和模型。這讓外掛程式在啟用時預設改變 Claude Code 的行為方式。
321 294
322```json settings.json theme={null}295```json settings.json theme={null}
323{296{
325}298}
326```299```
327 300
328此範例啟動在 plugin 的 `agents/` 目錄中定義的 `security-reviewer` agent。來自 `settings.json` 的設定優先於在 `plugin.json` 中宣告的 `settings`。未知的金鑰會被無聲地忽略。301此範例啟用在外掛程式的 `agents/` 目錄中定義的 `security-reviewer` 代理。來自 `settings.json` 的設定優先於在 `plugin.json` 中宣告的 `settings`。未知的鍵會被無聲地忽略。
329 302
330<h3 id="organize-complex-plugins">303<h3 id="organize-complex-plugins">
331 組織複雜的 plugins304 組織複雜的外掛程式
332</h3>305</h3>
333 306
334對於具有許多元件的 plugins,請按功能組織您的目錄結構。如需完整的目錄配置和組織模式,請參閱 [Plugin 目錄結構](/zh-TW/plugins-reference#plugin-directory-structure)。307對於具有許多元件的外掛程式,請按功能組織您的目錄結構。如需完整的目錄配置和組織模式,請參閱 [Plugin directory structure](/docs/zh-TW/plugins-reference#plugin-directory-structure)。
335 308
336<h3 id="test-your-plugins-locally">309<h3 id="test-your-plugins-locally">
337 在本地測試您的 plugins310 在本機測試您的外掛程式
338</h3>311</h3>
339 312
340使用 `--plugin-dir` 旗標在開發期間測試 plugins。這會直接載入您的 plugin,無需安裝。313使用 `--plugin-dir` 旗標在開發期間測試外掛程式。這會直接載入您的外掛程式,無需安裝。
341 314
342```bash theme={null}315```bash theme={null}
343claude --plugin-dir ./my-plugin316claude --plugin-dir ./my-plugin
344```317```
345 318
346該旗標也接受 plugin 目錄的 `.zip` 檔案,這需要 Claude Code v2.1.128 或更新版本。319該旗標也接受外掛程式目錄的 `.zip` 封存。
347 320
348```bash theme={null}321```bash theme={null}
349claude --plugin-dir ./my-plugin.zip322claude --plugin-dir ./my-plugin.zip
350```323```
351 324
352當 `--plugin-dir` plugin 與已安裝的市場 plugin 具有相同名稱時,本地副本在該工作階段中優先。這讓您可以測試已安裝的 plugin 的變更,而無需先卸載它。由受管設定強制啟用或強制停用的 plugins 是唯一的例外:`--plugin-dir` 無法覆蓋這些。325當 `--plugin-dir` 外掛程式的名稱與已安裝的市集外掛程式相同時,本機副本在該工作階段中優先。這讓您可以測試已安裝的外掛程式的變更,而無需先卸載它。例外是受管設定強制啟用或強制停用的外掛程式:`--plugin-dir` 無法覆蓋這些。
353 326
354當您對 plugin 進行變更時,執行 `/reload-plugins` 以取得更新,無需重新啟動。這會重新載入 plugins、skills、agents、hooks、plugin MCP servers 和 plugin LSP servers。測試您的 plugin 元件:327當您對外掛程式進行變更時,執行 `/reload-plugins` 以在不重新啟動的情況下取得更新。這會重新載入外掛程式、skills、代理、hooks、外掛程式 MCP 伺服器和外掛程式 LSP 伺服器;在沒有互動式終端的工作階段中,外掛程式 MCP 伺服器變更 [等待您的下一個工作階段](/docs/zh-TW/discover-plugins#apply-plugin-changes-without-restarting)。測試您的外掛程式元件:
355 328
356* 使用 `/plugin-name:skill-name` 嘗試您的 skills329* 使用 `/plugin-name:skill-name` 嘗試您的 skills
357* 檢查 agents 是否出現在 `/context` 中的自訂 Agents 下,或透過其範圍名稱 @-提及其中一個330* 檢查代理是否出現在 `/context` 下的 Custom Agents 中,或透過其範圍名稱 @-提及一個
358* 驗證 hooks 是否按預期工作331* 觸發每個 hook 匹配的事件,例如要求 Claude 編輯檔案以進行 `PostToolUse` hook,並確認其效果。Claude Code 會記錄哪些 hooks 匹配、其結束代碼和其輸出在 [debug log](/docs/zh-TW/hooks#debug-hooks) 中
359 332
360<Tip>333<Tip>
361 您可以透過多次指定旗標來一次載入多個 plugins:334 您可以透過多次指定旗標來一次載入多個外掛程式:
362 335
363 ```bash theme={null}336 ```bash theme={null}
364 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two337 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two
365 ```338 ```
339
340 若要測試外掛程式及其依賴的外掛程式,請參閱 [Test a plugin and its dependency locally](/docs/zh-TW/plugin-dependencies#test-a-plugin-and-its-dependency-locally)。
366</Tip>341</Tip>
367 342
368若要測試已打包為 `.zip` 檔案並託管在 URL 上的 plugin(例如 CI 建置成品),請改用 `--plugin-url`。Claude Code 在啟動時擷取檔案並僅為該工作階段載入它。如果擷取失敗或檔案無效,Claude Code 會報告 plugin 載入錯誤並在沒有它的情況下啟動。與任何 plugin 來源相同的[信任考量](/zh-TW/discover-plugins#security)適用:只將此旗標指向您控制或信任的檔案。343若要從一個位置載入多個外掛程式,請傳遞包含它們的資料夾,例如 `--plugin-dir ./plugins`。載入外掛程式資料夾需要 Claude Code v2.1.265 或更新版本。Claude Code 讀取資料夾的頂層以決定哪些外掛程式載入,在互動式工作階段中,它也會監視資料夾以進行後續變更:
344
345* **載入的內容**:如果資料夾的頂層沒有資訊清單或外掛程式元件,Claude Code 會將其視為外掛程式資料夾。每個具有 `.claude-plugin/plugin.json` 資訊清單的直接子資料夾都會作為單獨的外掛程式載入。Claude Code 會跳過資料夾中的所有其他內容,而不報告錯誤,包括沒有資訊清單的外掛程式。
346* **互動式工作階段期間的變更**:您新增的子資料夾在其資訊清單就位後會作為新外掛程式載入,當您移除子資料夾時,其外掛程式會卸載。Claude Code 會為每個變更在工作階段中列印一行。如果在對話中途套用變更會 [使提示快取失效](/docs/zh-TW/prompt-caching#enabling-or-disabling-a-plugin),Claude Code 會保留它,該行會說執行 `/reload-plugins` 以套用它。
369 347
370若要載入多個 plugins,請為每個 URL 重複該旗標:348若要測試已封裝為 `.zip` 封存並託管在 URL 上的外掛程式(例如 CI 建置成品),請改用 `--plugin-url`。Claude Code 在啟動時擷取封存並僅為該工作階段載入它。如果 Claude Code 無法擷取封存或封存無效,它會在沒有外掛程式的情況下啟動,並記錄您可以在 `/plugin` 管理員的 **Errors** 標籤中檢閱的外掛程式載入錯誤。與任何外掛程式來源相同的 [trust considerations](/docs/zh-TW/discover-plugins#security) 適用:只將此旗標指向您控制或信任的封存。
349
350若要載入多個外掛程式,請為每個 URL 重複該旗標:
371 351
372```bash theme={null}352```bash theme={null}
373claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip353claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip
374```354```
375 355
376或將以空格分隔的 URL 作為一個引用的引數傳遞:356或將空格分隔的 URL 作為一個引用的引數傳遞:
377 357
378```bash theme={null}358```bash theme={null}
379claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"359claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"
380```360```
381 361
382<h3 id="debug-plugin-issues">362<h3 id="debug-plugin-issues">
383 偵錯 plugin 問題363 偵錯外掛程式問題
384</h3>364</h3>
385 365
386如果您的 plugin 未按預期工作:366如果您的外掛程式未如預期運作:
387 367
3881. **檢查結構**:確保您的目錄位於 plugin 根目錄,而不是在 `.claude-plugin/` 內3681. **檢查結構**:確保您的目錄位於外掛程式根目錄,而不是在 `.claude-plugin/` 內
3892. **個別測試元件**:分別檢查每個 skill、agent 和 hook3692. **個別測試元件**:分別檢查每個 skill、代理和 hook
3903. **使用驗證和偵錯工具**:如需 CLI 命令和故障排除技術,請參閱 [Debugging and development tools](/zh-TW/plugins-reference#debugging-and-development-tools)3703. **使用驗證和偵錯工具**:請參閱 [Debugging and development tools](/docs/zh-TW/plugins-reference#debugging-and-development-tools) 以取得 CLI 命令和疑難排解技術
391 371
392<h3 id="share-your-plugins">372<h3 id="share-your-plugins">
393 共享您的 plugins373 分享您的外掛程式
394</h3>374</h3>
395 375
396當您的 plugin 準備好共享時:376當您的外掛程式準備好分享時:
397 377
3981. **新增文件**:包含 `README.md`,其中包含安裝和使用說明3781. **新增文件**:包含一個 `README.md`,其中包含安裝和使用說明
3992. **選擇版本控制策略**:決定是否設定明確的 `version` 或依賴 git commit SHA。請參閱 [version management](/zh-TW/plugins-reference#version-management)3792. **選擇版本控制策略**:決定是否設定明確的 `version` 或依賴 [version management](/docs/zh-TW/plugins-reference#version-management) 中描述的後備。
4003. **建立或使用市場**:透過 [plugin marketplaces](/zh-TW/plugin-marketplaces) 進行分發以進行安裝3803. **建立或使用市集**:透過 [plugin marketplaces](/docs/zh-TW/plugin-marketplaces) 進行分發以進行安裝
4014. **與他人測試**:在更廣泛的分發之前讓團隊成員測試 plugin3814. **與他人測試**:在更廣泛的分發之前,讓團隊成員測試外掛程式
402 382
403一旦您的 plugin 在市場中,其他人可以使用 [Discover and install plugins](/zh-TW/discover-plugins) 中的說明進行安裝。若要將 plugin 保持在您的團隊內部,請在 [private repository](/zh-TW/plugin-marketplaces#private-repositories) 中託管市場。383一旦您的外掛程式在市集中,其他人可以使用 [Discover and install plugins](/docs/zh-TW/discover-plugins) 中的說明安裝它。若要將外掛程式保持在您的團隊內部,請在 [private repository](/docs/zh-TW/plugin-marketplaces#private-repositories) 中託管市集。
404 384
405<h3 id="submit-your-plugin-to-the-community-marketplace">385<h3 id="submit-your-plugin-to-the-community-marketplace">
406 將您的 plugin 提交到官方市場386 將您的外掛程式提交至社群市集
407</h3>387</h3>
408 388
409Anthropic 為 Claude Code plugins 維護兩個公開市場:389Anthropic 為 Claude Code 外掛程式維護兩個公開市集:
410 390
411* **`claude-plugins-official`**:由 Anthropic 維護的精選 plugins 集合。在您第一次以互動方式啟動 Claude Code 時自動註冊。在該首次啟動之前執行的非互動式指令碼必須使用 `claude plugin marketplace add anthropics/claude-plugins-official` 明確新增它。391* **`claude-plugins-official`**:由 Anthropic 維護的精選外掛程式集。Claude Code 在您第一次以互動方式啟動 Claude Code 時自動註冊它。如果您在該首次互動啟動之前以非互動方式執行 Claude Code,或 [marketplace policy](/docs/zh-TW/plugin-marketplaces#managed-marketplace-restrictions) 阻止了較早的嘗試,請使用 `claude plugin marketplace add anthropics/claude-plugins-official` 自行註冊。
412* **`claude-community`**:公開社群市場,第三方提交在審查後會進入此市場。使用者使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增它,並將其作為 `@claude-community` 進行安裝。392* **`claude-community`**:公開社群市集,第三方提交在審查後會進入該市集。使用者使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增它,並將其安裝為 `@claude-community`。
413 393
414若要提交您的 plugin 以進行官方市場審查,請使用其中一個應用內提交表單:394若要提交您的外掛程式以進行社群市集審查,請使用其中一個應用程式內表單:
415 395
416* **claude.ai**:[claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)396* **claude.ai**:[claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)
417* **Console**:[platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)397* **Console**:[platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)
418 398
419claude.ai 表單需要 Team 或 Enterprise 組織和目錄管理存取權;組織擁有者預設具有此存取權。不屬於 Team 或 Enterprise 組織的個別作者可以改用 Console 表單。399claude.ai 表單需要 Team 或 Enterprise 組織和目錄管理存取權;組織擁有者預設具有此存取權。不屬於 Team 或 Enterprise 組織的個別作者可以改用 Console 表單。
420 400
421在提交前在本地執行 `claude plugin validate`。審查管道在每個提交上執行相同的檢查,以及自動安全篩選。401在提交之前,在本機執行 `claude plugin validate ./your-plugin`,將 `./your-plugin` 替換為您的外掛程式目錄的路徑。審查管道對每個提交執行相同的檢查,以及自動安全篩選。驗證通過時,Claude Code 會列印 `✔ Validation passed`,或如果有警告,則列印 `✔ Validation passed with warnings`。警告不會導致驗證失敗;新增 `--strict` 以將它們視為錯誤。
422 402
423已批准的 plugins 會固定到 [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) 目錄中的特定 commit SHA,當您將新 commits 推送到您的儲存庫時,CI 會自動更新該固定。公開目錄每晚從審查管道同步,因此批准和您的 plugin 出現在 `marketplace.json` 之間可能會有延遲。若要檢查您的 plugin 是否已可安裝,請在[官方目錄](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)中搜尋其名稱。403已核准的外掛程式會固定到 [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) 目錄中的特定提交 SHA,CI 會在您推送新提交至您的儲存庫時自動提升該固定。公開目錄每晚從審查管道同步,因此核准和您的外掛程式出現在 `marketplace.json` 之間可能會有延遲。若要檢查您的外掛程式是否已可安裝,請在 [community catalog](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json) 中搜尋其名稱。
424 404
425官方市場 `claude-plugins-official` 是單獨策劃的。Anthropic 根據其自行決定決定要包含哪些 plugins。沒有應用程序流程,提交表單不會將 plugins 新增到官方市場。405官方市集 `claude-plugins-official` 是單獨精選的。Anthropic 自行決定要包含哪些外掛程式。沒有申請流程,提交表單不會將外掛程式新增至官方市集。
426 406
427如果 Anthropic 在官方市場中列出您的 plugin,您的 CLI 可以提示 Claude Code 使用者進行安裝。請參閱 [Recommend your plugin from your CLI](/zh-TW/plugin-hints)。407如果 Anthropic 在官方市集中列出您的外掛程式,您的 CLI 可以提示 Claude Code 使用者安裝它。請參閱 [Recommend your plugin from your CLI](/docs/zh-TW/plugin-hints)。
428
429<Note>
430 如需完整的技術規格、偵錯技術和分發策略,請參閱 [Plugins reference](/zh-TW/plugins-reference)。
431</Note>
432 408
433<h2 id="convert-existing-configurations-to-plugins">409<h2 id="convert-existing-configurations-to-plugins">
434 將現有配置轉換為 plugins410 將現有配置轉換為 plugins
460 </Step>436 </Step>
461 437
462 <Step title="複製您現有的檔案">438 <Step title="複製您現有的檔案">
463 將您現有的配置複製到 plugin 目錄:439 將您現有的每個配置目錄複製到 plugin 根目錄。您可能沒有全部三個:如果目錄不存在,`cp` 會列印 `No such file or directory` 並且不複製任何內容,因此請跳過該命令或忽略錯誤。
464 440
465 ```bash theme={null}441 ```bash theme={null}
466 # Copy commands
467 cp -r .claude/commands my-plugin/442 cp -r .claude/commands my-plugin/
468 443
469 # Copy agents (if any)
470 cp -r .claude/agents my-plugin/444 cp -r .claude/agents my-plugin/
471 445
472 # Copy skills (if any)
473 cp -r .claude/skills my-plugin/446 cp -r .claude/skills my-plugin/
474 ```447 ```
448
449 您的 plugin 現在包含您在 `.claude/` 下擁有的目錄副本。執行 `ls my-plugin` 以確認:您應該看到您複製的每個目錄。
475 </Step>450 </Step>
476 451
477 <Step title="遷移 hooks">452 <Step title="遷移 hooks">
504 claude --plugin-dir ./my-plugin479 claude --plugin-dir ./my-plugin
505 ```480 ```
506 481
507 測試每個元件:執行您的命令、檢查 agents 是否出現在 `/context` 中,並驗證 hooks 是否正確觸發。482 測試每個元件:執行您的命令、檢查 agents 是否出現在 `/context` 中,並觸發每個 hook 符合的事件以確認其效果。Claude Code 會在[除錯日誌](/docs/zh-TW/hooks#debug-hooks)中記錄哪些 hooks 符合以及它們如何退出。
508 </Step>483 </Step>
509</Steps>484</Steps>
510 485
533 對於 plugin 使用者508 對於 plugin 使用者
534</h3>509</h3>
535 510
536* [探索和安裝 plugins](/zh-TW/discover-plugins):瀏覽市場並安裝 plugins511* [探索和安裝 plugins](/docs/zh-TW/discover-plugins):瀏覽市場並安裝 plugins
537* [配置團隊市場](/zh-TW/discover-plugins#configure-team-marketplaces):為您的團隊設定儲存庫級別的 plugins512* [配置團隊市場](/docs/zh-TW/discover-plugins#configure-team-marketplaces):為您的團隊設定儲存庫級別的 plugins
538 513
539<h3 id="for-plugin-developers">514<h3 id="for-plugin-developers">
540 對於 plugin 開發人員515 對於 plugin 開發人員
541</h3>516</h3>
542 517
543* [建立和分發市場](/zh-TW/plugin-marketplaces):打包和共享您的 plugins518* [建立和分發市場](/docs/zh-TW/plugin-marketplaces):打包和共享您的 plugins
544* [Plugins 參考](/zh-TW/plugins-reference):完整的技術規格519* [Plugins 參考](/docs/zh-TW/plugins-reference):完整的技術規格
545* 深入探討特定的 plugin 元件:520* 深入探討特定的 plugin 元件:
546 * [Skills](/zh-TW/skills):skill 開發詳情521 * [Skills](/docs/zh-TW/skills):skill 開發詳情
547 * [Subagents](/zh-TW/sub-agents):agent 配置和功能522 * [Subagents](/docs/zh-TW/sub-agents):agent 配置和功能
548 * [Hooks](/zh-TW/hooks):事件處理和自動化523 * [Hooks](/docs/zh-TW/hooks):事件處理和自動化
549 * [MCP](/zh-TW/mcp):外部工具整合524 * [MCP](/docs/zh-TW/mcp):外部工具整合