跳轉到主要內容
如需實踐教學和實際使用方法,請參閱外掛程式。如需跨團隊和社群的外掛程式管理,請參閱外掛程式市場
本參考提供 Claude Code 外掛程式系統的完整技術規格,包括元件架構、CLI 命令和開發工具。

外掛程式元件參考

本節記錄外掛程式可提供的五種元件類型。

命令

外掛程式新增自訂斜線命令,與 Claude Code 的命令系統無縫整合。 位置:外掛程式根目錄中的 commands/ 目錄 檔案格式:包含前置資料的 Markdown 檔案 如需外掛程式命令結構、呼叫模式和功能的完整詳細資訊,請參閱外掛程式命令

代理

外掛程式可提供專門的子代理,用於特定任務,Claude 可在適當時自動呼叫。 位置:外掛程式根目錄中的 agents/ 目錄 檔案格式:描述代理功能的 Markdown 檔案 代理結構
---
description: 此代理的專長
capabilities: ["task1", "task2", "task3"]
---

# 代理名稱

詳細說明代理的角色、專業知識以及 Claude 應何時呼叫它。

## 功能
- 代理擅長的特定任務
- 另一項專門功能
- 何時使用此代理與其他代理

## 背景和範例
提供此代理應何時使用的範例以及它解決的問題類型。
整合點
  • 代理出現在 /agents 介面中
  • Claude 可根據任務背景自動呼叫代理
  • 使用者可手動呼叫代理
  • 外掛程式代理與內建 Claude 代理並行運作

技能

外掛程式可提供代理技能來擴展 Claude 的功能。技能由模型呼叫 — Claude 根據任務背景自主決定何時使用它們。 位置:外掛程式根目錄中的 skills/ 目錄 檔案格式:包含具有前置資料的 SKILL.md 檔案的目錄 技能結構
skills/
├── pdf-processor/
│   ├── SKILL.md
│   ├── reference.md (選用)
│   └── scripts/ (選用)
└── code-reviewer/
    └── SKILL.md
整合行為
  • 安裝外掛程式時會自動發現外掛程式技能
  • Claude 根據匹配的任務背景自主呼叫技能
  • 技能可在 SKILL.md 旁邊包含支援檔案
如需 SKILL.md 格式和完整的技能編寫指南,請參閱:

鉤子

外掛程式可提供事件處理程式,自動回應 Claude Code 事件。 位置:外掛程式根目錄中的 hooks/hooks.json,或內嵌在 plugin.json 中 格式:具有事件匹配器和動作的 JSON 設定 鉤子設定
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"
          }
        ]
      }
    ]
  }
}
可用事件
  • PreToolUse:Claude 使用任何工具之前
  • PostToolUse:Claude 使用任何工具之後
  • UserPromptSubmit:使用者提交提示時
  • Notification:Claude Code 傳送通知時
  • Stop:Claude 嘗試停止時
  • SubagentStop:子代理嘗試停止時
  • SessionStart:在工作階段開始時
  • SessionEnd:在工作階段結束時
  • PreCompact:在對話歷史記錄壓縮之前
鉤子類型
  • command:執行 shell 命令或指令碼
  • validation:驗證檔案內容或專案狀態
  • notification:傳送警示或狀態更新

MCP 伺服器

外掛程式可捆綁模型背景協議 (MCP) 伺服器,以將 Claude Code 與外部工具和服務連接。 位置:外掛程式根目錄中的 .mcp.json,或內嵌在 plugin.json 中 格式:標準 MCP 伺服器設定 MCP 伺服器設定
{
  "mcpServers": {
    "plugin-database": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
      "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
      "env": {
        "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
      }
    },
    "plugin-api-client": {
      "command": "npx",
      "args": ["@company/mcp-server", "--plugin-mode"],
      "cwd": "${CLAUDE_PLUGIN_ROOT}"
    }
  }
}
整合行為
  • 啟用外掛程式時,外掛程式 MCP 伺服器會自動啟動
  • 伺服器在 Claude 的工具組中顯示為標準 MCP 工具
  • 伺服器功能與 Claude 的現有工具無縫整合
  • 外掛程式伺服器可獨立於使用者 MCP 伺服器進行設定

外掛程式資訊清單架構

plugin.json 檔案定義外掛程式的中繼資料和設定。本節記錄所有支援的欄位和選項。

完整架構

{
  "name": "plugin-name",
  "version": "1.2.0",
  "description": "Brief plugin description",
  "author": {
    "name": "Author Name",
    "email": "[email protected]",
    "url": "https://github.com/author"
  },
  "homepage": "https://docs.example.com/plugin",
  "repository": "https://github.com/author/plugin",
  "license": "MIT",
  "keywords": ["keyword1", "keyword2"],
  "commands": ["./custom/commands/special.md"],
  "agents": "./custom/agents/",
  "hooks": "./config/hooks.json",
  "mcpServers": "./mcp-config.json"
}

必需欄位

欄位類型說明範例
namestring唯一識別碼 (kebab-case,無空格)"deployment-tools"

中繼資料欄位

欄位類型說明範例
versionstring語義版本"2.1.0"
descriptionstring外掛程式用途的簡要說明"Deployment automation tools"
authorobject作者資訊{"name": "Dev Team", "email": "[email protected]"}
homepagestring文件 URL"https://docs.example.com"
repositorystring原始程式碼 URL"https://github.com/user/plugin"
licensestring授權識別碼"MIT""Apache-2.0"
keywordsarray探索標籤["deployment", "ci-cd"]

元件路徑欄位

欄位類型說明範例
commandsstring|array其他命令檔案/目錄"./custom/cmd.md"["./cmd1.md"]
agentsstring|array其他代理檔案"./custom/agents/"
hooksstring|object鉤子設定路徑或內嵌設定"./hooks.json"
mcpServersstring|objectMCP 設定路徑或內嵌設定"./mcp.json"

路徑行為規則

重要:自訂路徑補充預設目錄 - 它們不會取代預設目錄。
  • 如果 commands/ 存在,除了自訂命令路徑外,還會載入它
  • 所有路徑必須相對於外掛程式根目錄,並以 ./ 開頭
  • 來自自訂路徑的命令使用相同的命名和命名空間規則
  • 可以將多個路徑指定為陣列以提高靈活性
路徑範例
{
  "commands": [
    "./specialized/deploy.md",
    "./utilities/batch-process.md"
  ],
  "agents": [
    "./custom-agents/reviewer.md",
    "./custom-agents/tester.md"
  ]
}

環境變數

${CLAUDE_PLUGIN_ROOT}:包含外掛程式目錄的絕對路徑。在鉤子、MCP 伺服器和指令碼中使用此變數,以確保無論安裝位置如何都能使用正確的路徑。
{
  "hooks": {
    "PostToolUse": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"
          }
        ]
      }
    ]
  }
}

外掛程式目錄結構

標準外掛程式配置

完整的外掛程式遵循此結構:
enterprise-plugin/
├── .claude-plugin/           # 中繼資料目錄
│   └── plugin.json          # 必需:外掛程式資訊清單
├── commands/                 # 預設命令位置
│   ├── status.md
│   └──  logs.md
├── agents/                   # 預設代理位置
│   ├── security-reviewer.md
│   ├── performance-tester.md
│   └── compliance-checker.md
├── skills/                   # 代理技能
│   ├── code-reviewer/
│   │   └── SKILL.md
│   └── pdf-processor/
│       ├── SKILL.md
│       └── scripts/
├── hooks/                    # 鉤子設定
│   ├── hooks.json           # 主要鉤子設定
│   └── security-hooks.json  # 其他鉤子
├── .mcp.json                # MCP 伺服器定義
├── scripts/                 # 鉤子和公用程式指令碼
│   ├── security-scan.sh
│   ├── format-code.py
│   └── deploy.js
├── LICENSE                  # 授權檔案
└── CHANGELOG.md             # 版本歷史記錄
.claude-plugin/ 目錄包含 plugin.json 檔案。所有其他目錄 (commands/、agents/、skills/、hooks/) 必須位於外掛程式根目錄,而不是在 .claude-plugin/ 內。

檔案位置參考

元件預設位置用途
資訊清單.claude-plugin/plugin.json必需的中繼資料檔案
命令commands/斜線命令 Markdown 檔案
代理agents/子代理 Markdown 檔案
技能skills/具有 SKILL.md 檔案的代理技能
鉤子hooks/hooks.json鉤子設定
MCP 伺服器.mcp.jsonMCP 伺服器定義

偵錯和開發工具

偵錯命令

使用 claude --debug 查看外掛程式載入詳細資訊:
claude --debug
這會顯示:
  • 正在載入哪些外掛程式
  • 外掛程式資訊清單中的任何錯誤
  • 命令、代理和鉤子註冊
  • MCP 伺服器初始化

常見問題

問題原因解決方案
外掛程式未載入無效的 plugin.json驗證 JSON 語法
命令未出現目錄結構錯誤確保 commands/ 在根目錄,而不是在 .claude-plugin/
鉤子未觸發指令碼不可執行執行 chmod +x script.sh
MCP 伺服器失敗缺少 ${CLAUDE_PLUGIN_ROOT}對所有外掛程式路徑使用變數
路徑錯誤使用絕對路徑所有路徑必須相對且以 ./ 開頭

發佈和版本控制參考

版本管理

遵循外掛程式發行的語義版本控制:

## 另請參閱

- [外掛程式](/zh-TW/plugins) - 教學和實際使用
- [外掛程式市場](/zh-TW/plugin-marketplaces) - 建立和管理市場
- [斜線命令](/zh-TW/slash-commands) - 命令開發詳細資訊
- [子代理](/zh-TW/sub-agents) - 代理設定和功能
- [代理技能](/zh-TW/skills) - 擴展 Claude 的功能
- [鉤子](/zh-TW/hooks) - 事件處理和自動化
- [MCP](/zh-TW/mcp) - 外部工具整合
- [設定](/zh-TW/settings) - 外掛程式的設定選項