← Lập trình với Claude Code

Bài 11 · Nâng cao · 20 phút· Cập nhật 11/06/2026

Plugins & marketplace

Biên soạn bởi Nguyễn Anh Tuấn

Gói skills/agents/hooks/MCP thành plugin tái dùng; cài từ marketplace, tự tạo & chia sẻ cho cả nhóm.

Bạn vừa học năm cách mở rộng: command, Skills, Subagents, Hooks, MCP. Plugin là cách gói tất cả chúng thành một gói duy nhất - có tên, có phiên bản - để chia sẻ và tái dùng qua nhiều dự án và cả nhóm, chỉ bằng một lệnh cài.

CáchTên lệnhHợp khi
Standalone (.claude/)/helloCá nhân, một dự án, thử nghiệm nhanh.
Plugin/tên-plugin:helloChia sẻ nhóm/cộng đồng, nhiều dự án, có phiên bản.
  • Plugin gói: skills/commands + agents + hooks + MCP server vào một chỗ.
  • Có manifest + phiên bản → cài, cập nhật, gỡ dễ dàng.
  • Lệnh đặt theo không gian tên (/tên-plugin:…) để không trùng giữa các plugin.

Lệnh /plugin là trình quản lý. Thêm một marketplace (thường là một git repo), rồi cài plugin từ đó. Thử đặt tên plugin và chọn thành phần - rồi bấm "Cài từ marketplace" để xem cách invoke từng phần:

Đặt tên plugin, chọn thành phần, rồi bấm "Cài từ marketplace" để xem cách invoke từng phần sau khi cài.

@cong-dong/

Thành phần

  • /plugin - mở trình quản lý (duyệt, cài, gỡ).
  • /plugin marketplace add <owner/repo> - thêm một nguồn plugin.
  • /plugin install <tên>@<marketplace> - cài; /plugin list - xem đã cài gì.
  • Có sẵn claude-plugins-official (mọi bản cài); claude-community thêm bằng marketplace add.

Plugin là một thư mục: manifest .claude-plugin/plugin.json mô tả danh tính, còn các thành phần nằm ở gốc plugin:

cấu trúc thư mục plugin

team-tools/
├── .claude-plugin/
│   └── plugin.json        # CHI manifest nam trong day
├── skills/
│   └── deploy/SKILL.md     # cac Skill
├── agents/
│   └── code-reviewer.md    # cac Subagent
├── hooks/
│   └── hooks.json          # cac Hook
└── .mcp.json               # cac MCP server

.claude-plugin/plugin.json

{
  "name": "team-tools",
  "description": "Skills, agents & hooks dung chung cua team",
  "version": "1.0.0",
  "author": { "name": "Ten ban" }
}

Lỗi hay gặp

Chỉ plugin.json nằm trong .claude-plugin/. Các thư mục skills/ agents/ hooks/.mcp.json phải ở GỐC plugin - đừng nhét chúng vào trong .claude-plugin/.

Khi đang viết, nạp plugin trực tiếp từ thư mục, không cần cài:

nạp & nạp lại khi phát triển

# Nap plugin tu thu muc (cho phat trien/thu nghiem)
claude --plugin-dir ./team-tools

# Hoac dung khung san mot plugin
claude plugin init my-tool
  • claude --plugin-dir ./ten-plugin: nạp thẳng để test.
  • /reload-plugins: nạp lại sau khi sửa, không cần khởi động lại.
  • Thử: /tên-plugin:skill chạy được; agent hiện trong /agents; hook hoạt động.

Plugin chỉ thật sự lợi khi chia sẻ được:

  • Đặt plugin trong một git repo làm “marketplace”; nhóm thêm bằng /plugin marketplace add <repo>.
  • Nội bộ: dùng repo RIÊNG TƯ. Cộng đồng: nộp qua form chính thức để vào claude-community sau khi duyệt.
  • Trước khi nộp: kèm README, đặt version, và chạy claude plugin validate.

Hết phần mở rộng năng lực 🎉

Bạn đã đi trọn bộ công cụ mở rộng Claude Code: CLAUDE.md → command → Skills → Subagents → Hooks → MCP → Plugins. Hai bài cuối khép lại khoá: quy trình nhánh → PR → review để làm việc nhóm an toàn, và kiểm chứng & tự động hoá - rồi tới 5 dự án thực chiến.

Câu hỏi thường gặp

Plugin là một GÓI gom skills/commands, agents, hooks và MCP server lại với nhau, có manifest và phiên bản, để CHIA SẺ và TÁI DÙNG qua nhiều dự án. Để file rời trong .claude/ (standalone) hợp cho việc cá nhân/một dự án, tên lệnh ngắn (/hello). Plugin hợp khi muốn chia sẻ cho nhóm/cộng đồng; lệnh được đặt theo không gian tên (/tên-plugin:hello) để tránh trùng.

Dùng lệnh /plugin (trình quản lý). Thêm một marketplace: /plugin marketplace add <owner/repo>. Rồi cài: /plugin install <tên>@<marketplace>. Có sẵn marketplace chính thức (claude-plugins-official) trong mọi bản cài, và marketplace cộng đồng (claude-community) thêm bằng /plugin marketplace add anthropics/claude-plugins-community.

Một thư mục với manifest .claude-plugin/plugin.json (tên, mô tả, phiên bản) và - ở GỐC plugin, KHÔNG nằm trong .claude-plugin/ - các thư mục: skills/ (Skill), agents/ (subagent), hooks/hooks.json (hook), .mcp.json (server MCP). Lỗi hay gặp: nhét skills/agents/hooks vào trong .claude-plugin/ - chỉ plugin.json mới ở đó.

Chạy claude --plugin-dir ./ten-plugin để nạp trực tiếp từ thư mục. Sửa file thì gõ /reload-plugins để nạp lại không cần khởi động lại. Thử skill bằng /ten-plugin:ten-skill, kiểm agent trong /agents. Hoặc claude plugin init để dựng khung plugin sẵn.

Để TRÁNH TRÙNG. Nhiều plugin có thể cùng có skill tên “review”; đặt theo không gian tên (/security-tools:review vs /team:review) khiến chúng không đụng nhau. Tên không gian lấy từ trường name trong plugin.json.

Đặt plugin trong một git repo làm “marketplace” - nhóm bạn thêm bằng /plugin marketplace add <repo> (repo riêng tư cho nội bộ). Muốn ra cộng đồng: chạy claude plugin validate, rồi nộp qua form chính thức để vào marketplace claude-community sau khi được duyệt. Nhớ kèm README và đặt version.

Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.

Tick những điều em tự tin làm được sau khi học bài này. 0/6

Trả lời vài câu để chắc rằng em đã nắm bài.

Câu 1/3 Điểm: 0

Một plugin gói được những thành phần nào?

  1. 1

    Standalone hay plugin?

    Bằng lời: một skill tiện ích RIÊNG bạn dùng trong một dự án nên để ở đâu? Còn bộ skills+hooks bạn muốn cả nhóm dùng chung mọi dự án?

    Hoàn thành khi: Riêng/một dự án → .claude/ (standalone). Chia sẻ nhóm, nhiều dự án, có phiên bản → đóng gói thành plugin.

  2. 2

    Cài một plugin

    Mở /plugin, thêm marketplace cộng đồng, duyệt và cài thử một plugin. Kiểm nó xuất hiện trong /plugin list.

    Hoàn thành khi: Plugin cài thành công; lệnh/skill của nó hiện dưới không gian tên /tên-plugin:… (xem /help).

  3. 3

    Dựng khung plugin

    Tạo một plugin nhỏ: thư mục + .claude-plugin/plugin.json + một skill trong skills/. Nạp bằng claude --plugin-dir.

    Hoàn thành khi: /ten-plugin:ten-skill chạy được skill bạn vừa tạo trong plugin.

  4. 4

    Đặt đúng chỗ

    Kiểm cấu trúc plugin của bạn: skills/, agents/, hooks/ có nằm ở GỐC plugin không (không phải trong .claude-plugin/)?

    Hoàn thành khi: Chỉ plugin.json nằm trong .claude-plugin/; mọi thư mục thành phần ở gốc plugin - đúng quy ước.

  5. 5

    Gói lại để chia sẻ

    Chọn một skill + một hook bạn đã làm ở các bài trước, gói thành một plugin kèm README và version. (Chưa cần publish.)

    Hoàn thành khi: Có một plugin gọn gàng, tự chứa, có thể đưa lên git để nhóm cài - sản phẩm “mở rộng Claude Code” đầu tay của bạn.