МОДУЛЬ 07/УРОК

Плагины

Плагины Claude Code

В этой папке собраны полноценные примеры плагинов, которые объединяют несколько возможностей Claude Code в единые, готовые к установке пакеты.

Обзор

Плагины Claude Code - это готовые наборы кастомизаций (slash-команд, субагентов, MCP-серверов и hooks), устанавливаемые одной командой. Это механизм расширения самого высокого уровня: он объединяет несколько возможностей в единые пакеты, которыми удобно делиться.

Архитектура плагинов

graph TB A["Plugin"] B["Slash Commands"] C["Subagents"] D["MCP Servers"] E["Hooks"] F["Configuration"] A -->|bundles| B A -->|bundles| C A -->|bundles| D A -->|bundles| E A -->|bundles| F

Процесс загрузки плагинов

sequenceDiagram participant User participant Claude as Claude Code participant Plugin as Plugin Marketplace participant Install as Installation participant SlashCmds as Slash Commands participant Subagents participant MCPServers as MCP Servers participant Hooks participant Tools as Configured Tools User->>Claude: /plugin install pr-review Claude->>Plugin: Download plugin manifest Plugin-->>Claude: Return plugin definition Claude->>Install: Extract components Install->>SlashCmds: Configure Install->>Subagents: Configure Install->>MCPServers: Configure Install->>Hooks: Configure SlashCmds-->>Tools: Ready to use Subagents-->>Tools: Ready to use MCPServers-->>Tools: Ready to use Hooks-->>Tools: Ready to use Tools-->>Claude: Plugin installed ✅

Marketplace не требуется (v2.1.157+): плагины, размещённые в директориях .claude/skills, теперь загружаются автоматически без marketplace. Создайте заготовку нового плагина командой claude plugin init <name> - он будет создан в ~/.claude/skills/<name>/ (глобально для пользователя) и автоматически подгружен в следующей сессии как <name>@skills-dir.

Типы плагинов и способы распространения

TypeScopeSharedAuthorityExamples
OfficialGlobalAll usersAnthropicPR Review, Security Guidance
CommunityPublicAll usersCommunityDevOps, Data Science
OrganizationInternalTeam membersCompanyInternal standards, tools
PersonalIndividualSingle userDeveloperCustom workflows

Структура определения плагина

Манифест плагина использует формат JSON и располагается в файле .claude-plugin/plugin.json:

json
{
  "name": "my-first-plugin",
  "description": "A greeting plugin",
  "version": "1.0.0",
  "author": {
    "name": "Your Name"
  },
  "homepage": "https://example.com",
  "repository": "https://github.com/user/repo",
  "license": "MIT"
}

Помимо этих идентификационных полей, манифест может указывать Claude Code на компоненты, расположенные вне папок по умолчанию, а также содержать метаданные для обнаружения и информацию о зависимостях:

FieldTypeDescription
workflowsstring | arrayCustom workflow script files or directories (replaces the default workflows/)
outputStylesstring | arrayCustom output style files or directories (replaces the default output-styles/)
lspServersstring | array | objectLSP servers for code intelligence - go to definition, find references, diagnostics. Commonly "./.lsp.json". See LSP server configuration
channelsarrayChannel declarations for message injection (Telegram, Slack, Discord style)
dependenciesarrayOther plugins this plugin requires, optionally with semver version constraints
keywordsarrayDiscovery tags used when browsing and searching marketplaces
metadataobjectFree-form object for your own data, such as entitlement or catalog fields
experimental.themesstring | arrayColor theme files or directories (replaces the default themes/)
experimental.monitorsstring | arrayBackground Monitor configurations that start automatically when the plugin is active

Пример структуры плагина

CODE
my-plugin/
├── .claude-plugin/
│   └── plugin.json       # Manifest (name, description, version, author)
├── commands/             # Skills as Markdown files
│   ├── task-1.md
│   ├── task-2.md
│   └── workflows/
├── agents/               # Custom agent definitions
│   ├── specialist-1.md
│   ├── specialist-2.md
│   └── configs/
├── skills/               # Agent Skills with SKILL.md files
│   ├── skill-1.md
│   └── skill-2.md
├── hooks/                # Event handlers in hooks.json
│   └── hooks.json
├── .mcp.json             # MCP server configurations
├── .lsp.json             # LSP server configurations for code intelligence
├── bin/                  # Executables added to Bash tool's PATH while plugin is enabled
├── settings.json         # Default settings applied when plugin is enabled (currently only `agent` key supported)
├── themes/               # Optional: ship custom Claude Code themes (v2.1.118+)
├── templates/
│   └── issue-template.md
├── scripts/
│   ├── helper-1.sh
│   └── helper-2.py
├── docs/
│   ├── README.md
│   └── USAGE.md
└── tests/
    └── plugin.test.js

Примечание: каталог commands/ считается устаревшим. Официальная рекомендация - «для новых плагинов используйте skills/». Существующие каталоги commands/ продолжают работать (один из трёх демонстрационных плагинов в этом модуле как раз их использует), однако новый плагин должен размещать свою функциональность в skills/ в виде каталогов с SKILL.md, а не в виде плоских Markdown-файлов с командами.

Конфигурация LSP-сервера

Плагины могут включать поддержку Language Server Protocol (LSP) для интеллектуального анализа кода в реальном времени. LSP-серверы предоставляют диагностику, навигацию по коду и информацию о символах прямо в процессе работы.

Где задаётся конфигурация:

  • файл .lsp.json в корневом каталоге плагина;
  • ключ lspServers в plugin.json - официальное имя поля манифеста. Он принимает строку, массив или объект: строка или массив указывают на файл(ы) или каталоги с конфигурацией LSP (например, "./.lsp.json"), а объект описывает серверы непосредственно в манифесте.

Справочник полей

FieldRequiredDescription
commandYesLSP server binary (must be in PATH)
extensionToLanguageYesMaps file extensions to language IDs
argsNoCommand-line arguments for the server
transportNoCommunication method: stdio (default) or socket
envNoEnvironment variables for the server process
initializationOptionsNoOptions sent during LSP initialization
settingsNoWorkspace configuration passed to the server
workspaceFolderNoOverride the workspace folder path
startupTimeoutNoMaximum time (ms) to wait for server startup
shutdownTimeoutNoMaximum time (ms) for graceful shutdown
restartOnCrashNoAutomatically restart if the server crashes
maxRestartsNoMaximum restart attempts before giving up

Примеры конфигураций

Go (gopls):

json
{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}

Python (pyright):

json
{
  "python": {
    "command": "pyright-langserver",
    "args": ["--stdio"],
    "extensionToLanguage": {
      ".py": "python",
      ".pyi": "python"
    }
  }
}

TypeScript:

json
{
  "typescript": {
    "command": "typescript-language-server",
    "args": ["--stdio"],
    "extensionToLanguage": {
      ".ts": "typescript",
      ".tsx": "typescriptreact",
      ".js": "javascript",
      ".jsx": "javascriptreact"
    }
  }
}

Доступные LSP-плагины

В официальном маркетплейсе доступны преднастроенные LSP-плагины:

PluginLanguageServer BinaryInstall Command
pyright-lspPythonpyright-langserverpip install pyright
typescript-lspTypeScript/JavaScripttypescript-language-servernpm install -g typescript-language-server typescript
rust-lspRustrust-analyzerInstall via rustup component add rust-analyzer

Возможности LSP

После настройки LSP-серверы предоставляют:

  • Мгновенная диагностика - ошибки и предупреждения появляются сразу после правок
  • Навигация по коду - переход к определению, поиск ссылок и реализаций
  • Информация при наведении - сигнатуры типов и документация во всплывающей подсказке
  • Список символов - просмотр символов в текущем файле или во всём workspace

Каталог bin/ в PATH

Когда plugin включён, его каталог bin/ добавляется в начало PATH сессии. Любой поставляемый в нём исполняемый файл можно вызвать по имени напрямую из инструмента Bash - указывать полный путь не требуется.

bash
# In a plugin layout:
my-plugin/
├── plugin.json
└── bin/
    └── my-tool          # executable file (chmod +x)

# Inside a Claude Code session with the plugin enabled:
$ my-tool --help

Используйте это для вспомогательных CLI-утилит, которые hooks, skills или команды внутри того же плагина будут вызывать через shell. Пометьте файлы исполняемыми в репозитории плагина (chmod +x) - git сохраняет этот бит.

Опции плагина (v2.1.83+)

Плагины могут объявлять пользовательские настройки в манифесте через userConfig. Значения с пометкой sensitive: true хранятся в системном keychain, а не в текстовых файлах настроек:

json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "userConfig": {
    "apiKey": {
      "description": "API key for the service",
      "sensitive": true
    },
    "region": {
      "description": "Deployment region",
      "default": "us-east-1"
    }
  }
}

Постоянные данные плагина (${CLAUDE_PLUGIN_DATA}) (v2.1.78+)

Плагинам доступен каталог для хранения постоянного состояния через переменную окружения ${CLAUDE_PLUGIN_DATA}. Этот каталог уникален для каждого плагина и сохраняется между сессиями, поэтому подходит для кэшей, баз данных и других постоянных данных:

json
{
  "hooks": {
    "PostToolUse": [
      {
        "command": "node ${CLAUDE_PLUGIN_DATA}/track-usage.js"
      }
    ]
  }
}

Директория создаётся автоматически при установке плагина. Файлы, хранящиеся здесь, сохраняются до момента удаления плагина.

Фоновые мониторы (v2.1.105)

Плагины могут регистрировать фоновые мониторы, которые автоматически активируются при старте сессии или при вызове skill плагина. Добавьте в манифест плагина ключ верхнего уровня monitors:

json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "monitors": [
    {
      "command": "tail -f /var/log/app.log",
      "trigger": "session_start"
    }
  ]
}

Поле trigger принимает следующие значения:

  • &quot;session_start&quot; - автоматически активировать монитор при старте сессии
  • &quot;skill_invoke&quot; - активировать монитор при вызове skill плагина

Под капотом мониторы используют тот же инструмент Monitor, передавая строки stdout как события, на которые Claude может реагировать.

Встроенный плагин через настройки (source: &#39;settings&#39;) (v2.1.80+)

Плагины можно описывать прямо в файлах настроек как записи marketplace, используя поле source: &#39;settings&#39;. Это позволяет встроить определение плагина напрямую, без отдельного репозитория или marketplace:

json
{
  "pluginMarketplaces": [
    {
      "name": "inline-tools",
      "source": "settings",
      "plugins": [
        {
          "name": "quick-lint",
          "source": "./local-plugins/quick-lint"
        }
      ]
    }
  ]
}

Настройки плагина

Плагины могут поставляться с файлом settings.json, задающим конфигурацию по умолчанию. На данный момент поддерживается ключ agent, который указывает агента основного потока для плагина:

json
{
  "agent": "agents/specialist-1.md"
}

Когда plugin включает settings.json, его значения по умолчанию применяются при установке. Пользователи могут переопределить эти настройки в конфигурации своего проекта или в пользовательской конфигурации.

Standalone-подход и подход через plugin

ApproachCommand NamesConfigurationBest For
Standalone/helloManual setup in CLAUDE.mdPersonal, project-specific
Plugins/plugin-name:helloAutomated via plugin.jsonSharing, distribution, team use
Используйте отдельные slash commands для быстрых персональных сценариев. Используйте плагины, когда нужно объединить несколько возможностей, поделиться с командой или опубликовать для распространения.

Вызов через пробел (v2.1.136+): Slash commands из плагинов также работают с пробелом - /myplugin review разворачивается в каноническую форму /myplugin:review. Оба варианта допустимы; форма с двоеточием является канонической и рекомендуется в скриптах.

Обнаружение skills/ (v2.1.136+): Наличие поля skills в plugin.json больше не скрывает стандартную директорию skills/ плагина. Skills, объявленные в обоих местах, объединяются - так что можно перечислить несколько ключевых в plugin.json, не теряя остальные.

Плагины с SKILL.md в корне (v2.1.142+): Плагин с SKILL.md на верхнем уровне и без поддиректории skills/ сам представляется как единый skill - плагин и есть skill. Это дополнительный шаблон, а не замена директории skills/ или поля skills в plugin.json; применяйте его для небольших плагинов с одним skill, когда отдельная структура директорий не даёт никаких преимуществ.

Практические примеры

Пример 1: плагин для PR Review

Файл: .claude-plugin/plugin.json

json
{
  "name": "pr-review",
  "version": "1.0.0",
  "description": "Complete PR review workflow with security, testing, and docs",
  "author": {
    "name": "Anthropic"
  },
  "repository": "https://github.com/your-org/pr-review",
  "license": "MIT"
}

Текущая дата: воскресенье, 6 сентября 2026 г.

<query>

Файл: commands/review-pr.md

</query> ```markdown --- name: Review PR description: Start comprehensive PR review with security and testing checks ---

PR Review

This command initiates a complete pull request review including:

  1. Security analysis
  2. Test coverage verification
  3. Documentation updates
  4. Code quality checks
  5. Performance impact assessment
CODE
**Файл:** `agents/security-reviewer.md`
```yaml
---
name: security-reviewer
description: Security-focused code review
tools: Read, Grep, Bash
---

# Security Reviewer

Specializes in finding security vulnerabilities:
- Authentication/authorization issues
- Data exposure
- Injection attacks
- Secure configuration

Установка:

bash
/plugin install pr-review

# Result:
# ✅ 3 slash commands installed
# ✅ 3 subagents configured
# ✅ 2 MCP servers connected
# ✅ 4 hooks registered
# ✅ Ready to use!

Пример 2: DevOps-плагин

Компоненты:

CODE
devops-automation/
├── commands/
│   ├── deploy.md
│   ├── rollback.md
│   ├── status.md
│   └── incident.md
├── agents/
│   ├── deployment-specialist.md
│   ├── incident-commander.md
│   └── alert-analyzer.md
├── mcp/
│   ├── github-config.json
│   ├── kubernetes-config.json
│   └── prometheus-config.json
├── hooks/
│   ├── pre-deploy.js
│   ├── post-deploy.js
│   └── on-error.js
└── scripts/
    ├── deploy.sh
    ├── rollback.sh
    └── health-check.sh

Пример 3: Плагин для документации

Входящие в состав компоненты:

CODE
documentation/
├── commands/
│   ├── generate-api-docs.md
│   ├── generate-readme.md
│   ├── sync-docs.md
│   └── validate-docs.md
├── agents/
│   ├── api-documenter.md
│   ├── code-commentator.md
│   └── example-generator.md
├── mcp/
│   ├── github-docs-config.json
│   └── slack-announce-config.json
└── templates/
    ├── api-endpoint.md
    ├── function-docs.md
    └── adr-template.md

Маркетплейс плагинов

Официальный каталог плагинов, поддерживаемый Anthropic, - anthropics/claude-plugins-official; он автоматически регистрируется при первом интерактивном запуске. Администраторы корпоративных тарифов также могут создавать приватные маркетплейсы плагинов для внутреннего распространения.

Помимо него есть маркетплейс сообщества - anthropics/claude-plugins-community, где размещаются сторонние плагины, прошедшие автоматизированную проверку корректности и безопасности со стороны Anthropic; в каталоге каждый из них закреплён за конкретным commit SHA. В отличие от официального маркетплейса, его нужно добавлять вручную:

bash
/plugin marketplace add anthropics/claude-plugins-community

# Then install from it using the claude-community marketplace name
/plugin install <plugin-name>@claude-community
graph TB A["Plugin Marketplace"] B["Official<br/>anthropics/claude-plugins-official"] C["Community<br/>Marketplace"] D["Enterprise<br/>Private Registry"] A --> B A --> C A --> D B -->|Categories| B1["Development"] B -->|Categories| B2["DevOps"] B -->|Categories| B3["Documentation"] C -->|Search| C1["DevOps Automation"] C -->|Search| C2["Mobile Dev"] C -->|Search| C3["Data Science"] D -->|Internal| D1["Company Standards"] D -->|Internal| D2["Legacy Systems"] D -->|Internal| D3["Compliance"] style A fill:#e1f5fe,stroke:#333,color:#333 style B fill:#e8f5e9,stroke:#333,color:#333 style C fill:#f3e5f5,stroke:#333,color:#333 style D fill:#fff3e0,stroke:#333,color:#333

Настройка маркетплейса

Enterprise- и продвинутые пользователи могут управлять поведением маркетплейса через настройки:

SettingDescription
extraKnownMarketplacesAdd additional marketplace sources beyond the defaults
strictKnownMarketplacesControl which marketplaces users are allowed to add (managed-only)
blockedMarketplacesAdmin-managed blocklist of marketplaces (supports hostPattern / pathPattern regex fields since v2.1.119)
deniedPluginsAdmin-managed blocklist to prevent specific plugins from being installed

Более удобные алиасы (v2.1.232): additionalMarketplaces принимается как алиас для extraKnownMarketplaces, а allowedMarketplaces - для strictKnownMarketplaces. Источник - changelog: они анонсированы в changelog v2.1.232, однако официальная справка по настройкам пока не упоминает ни одно из этих имён. Канонические ключи по-прежнему можно спокойно использовать.

Wildcard'ы владельца (v2.1.223+): запись вида "owner/*" разрешает или блокирует все marketplace-репозитории одного GitHub-владельца. Принимается только в strictKnownMarketplaces и blockedMarketplaces. Во всех остальных местах, где используется источник github - включая extraKnownMarketplaces и /plugin marketplace add, - значение repo должно указывать на один конкретный репозиторий.

Применение правил (v2.1.117+): blockedMarketplaces и strictKnownMarketplaces проверяются на каждом событии жизненного цикла плагина - install, update, refresh и autoupdate, - а не только при первом добавлении. strictKnownMarketplaces доступен только в managed-режиме.

Пример blockedMarketplaces с regex по host/path (v2.1.119):

json
{
  "blockedMarketplaces": [
    {
      "hostPattern": "^evil\\.example\\.com$",
      "pathPattern": "^/marketplaces/.*"
    }
  ]
}

headersHelper маркетплейса (v2.1.238)

Маркетплейс типа url - или отдельная запись каталога - может задать команду headersHelper, которая формирует HTTP-заголовки для загрузки каталога и любых архивов того же origin. Так приватный маркетплейс, стоящий за сервисом выдачи токенов, проходит аутентификацию без статического секрета в конфиге.

Helper записи каталога запускается только при установке или обновлении и только после того, как его команда была показана пользователю: claude plugin install и claude plugin update перед запуском выводят приглашение [y/N]. Для автоматизации передайте -y, чтобы подтвердить без запроса.

Дополнительные возможности маркетплейса

  • Строка поиска по маркетплейсу (v2.1.172): при просмотре плагинов маркетплейса в /plugin строка поиска позволяет фильтровать их по имени или ключевому слову - удобно для крупных маркетплейсов, где пролистывать весь список долго.
  • Таймаут git по умолчанию: увеличен с 30 до 120 секунд для больших репозиториев с плагинами.
  • Кастомные npm-реестры: плагины могут указывать собственные URL npm-реестров для разрешения зависимостей.
  • Закрепление версий: фиксируйте плагины на конкретных версиях для воспроизводимых окружений.
  • Прогноз стоимости контекста в панели просмотра (v2.1.143): обозреватель маркетплейса /plugin показывает для каждого плагина прогнозируемый расход context-token за ход - сумму по всегда загружаемым skills, hooks и дескрипторам MCP-серверов. Используйте эту оценку, чтобы прикинуть влияние плагина ещё до установки. Тот же прогноз доступен после установки через claude plugin details <name>.

Пример строки в списке со столбцом стоимости:

text
NAME              VERSION   AUTHOR     CTX/TURN   DESCRIPTION
code-reviewer     1.2.0     anthropic  +1,420     Multi-agent PR review
devops-toolkit    0.4.1     acme       +3,180     SRE playbooks, on-call helpers
docs-helper       0.9.0     community  +610       Doc-style guide enforcement

Схема описания marketplace

Маркетплейсы плагинов описываются в файле .claude-plugin/marketplace.json:

json
{
  "name": "my-team-plugins",
  "owner": "my-org",
  "plugins": [
    {
      "name": "code-standards",
      "source": "./plugins/code-standards",
      "description": "Enforce team coding standards",
      "version": "1.2.0",
      "author": "platform-team"
    },
    {
      "name": "deploy-helper",
      "source": {
        "source": "github",
        "repo": "my-org/deploy-helper",
        "ref": "v2.0.0"
      },
      "description": "Deployment automation workflows"
    }
  ]
}
FieldRequiredDescription
nameYesMarketplace name in kebab-case
ownerYesOrganization or user who maintains the marketplace
pluginsYesArray of plugin entries
plugins[].nameYesPlugin name (kebab-case)
plugins[].sourceYesPlugin source (path string or source object)
plugins[].descriptionNoBrief plugin description
plugins[].versionNoSemantic version string
plugins[].authorNoPlugin author name
plugins[].renamesNoMaps a former plugin name to its current name (or null if removed) so users migrate automatically (v2.1.193)
plugins[].displayNameNoHuman-readable name shown in the UI; not used for lookup (v2.1.143)
plugins[].defaultEnabledNoIf false, the plugin installs disabled until the user opts in (v2.1.154)

Типы источников плагинов

Плагины можно загружать из различных источников:

SourceSyntaxExample
Relative pathString path"./plugins/my-plugin"
GitHub{ "source": "github", "repo": "owner/repo" }{ "source": "github", "repo": "acme/lint-plugin", "ref": "v1.0" }
Git URL{ "source": "url", "url": "..." }{ "source": "url", "url": "https://git.internal/plugin.git" }
Git subdirectory{ "source": "git-subdir", "url": "...", "path": "..." }{ "source": "git-subdir", "url": "https://github.com/org/monorepo.git", "path": "packages/plugin" }
npm{ "source": "npm", "package": "..." }{ "source": "npm", "package": "@acme/claude-plugin", "version": "^2.0" }
pip{ "source": "pip", "package": "..." }{ "source": "pip", "package": "claude-data-plugin", "version": ">=1.0" }
Archive (v2.1.224+){ "source": "archive", "url": "..." }{ "source": "archive", "url": "https://cdn.example.com/lint-plugin-1.2.0.zip", "sha256": "…" }
Command (v2.1.229+){ "source": "command", "command": "..." }{ "source": "command", "command": "acme-plugin-resolver --print-dir" }
Источники GitHub и git поддерживают необязательные поля ref (branch/tag) и sha (commit hash) для фиксации версии.

Короткие имена источников и metadata.pluginRoot (v2.1.239): поле metadata.pluginRoot маркетплейса теперь действительно учитывается - короткое имя источника плагина в каталоге разрешается в поддиректорию этого корня, и больше не нужно прописывать полный относительный путь в каждой записи.

Skills, синхронизированные из claude.ai (v2.1.239): плагины, подтянутые из claude.ai, отображаются как name@synced. Обращайтесь к ним именно в таком виде: claude plugin enable <name>@synced и claude plugin disable <name>@synced. Синхронизированный плагин никогда не перекрывает установленный плагин с тем же именем - они сосуществуют, различаясь суффиксом @synced.

Источник archive (v2.1.224+)

Установка плагина из zip-архива по HTTPS - без git clone и без npm install.

json
{
  "source": "archive",
  "url": "https://cdn.example.com/lint-plugin-1.2.0.zip",
  "sha256": "3b1f0c2e9a7d4f5b8c6e1a2d3f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b"
}
FieldRequiredNotes
urlYesHTTPS only. http://, loopback, link-local, and cloud-metadata hosts are rejected - and re-checked on every redirect hop, so a redirect cannot smuggle you onto a blocked host
sha256No64 hex characters. On mismatch the install fails with Plugin archive integrity check failed
Размер архивов ограничен 256 MiB. Фиксируйте sha256 для всего, что вы не собирали сами, - иначе тот, кто контролирует URL, контролирует и код, выполняемый в вашей сессии.

Источник command (v2.1.229+)

Позвольте локально установленному инструменту самому определить, где будет размещён плагин. Удобно, когда внутренний пакетный менеджер уже умеет скачивать и раскладывать ваши плагины.

json
{
  "source": "command",
  "command": "acme-plugin-resolver --print-dir",
  "timeout": 60,
  "mode": "copy"
}

Контракт строгий: команда должна вывести в stdout ровно одну строку и завершиться с кодом 0. Эта строка - абсолютный путь к каталогу, содержащему плагин целиком.

FieldRequiredDefaultNotes
commandYes-The command to run
timeoutNo60 (seconds)Maximum 600
modeNo"copy""copy" snapshots the directory; "link" symlinks it, so edits are live
Команда повторно разрешается в каждой сессии, и результат применяется без перезапуска.
Организации могут полностью запретить этот тип источника с помощью disableCommandPluginSources.

Список зарезервированных имён marketplace теперь включает first-party-plugins и healthcare (v2.1.205) - они закреплены за официальным использованием и не могут быть заняты пользовательским marketplace.

Способы распространения

GitHub (рекомендуется):

bash
# Users add your marketplace
/plugin marketplace add owner/repo-name

Другие git-сервисы (требуется полный URL):

bash
/plugin marketplace add https://gitlab.com/org/marketplace-repo.git

URL репозиториев gitlab.com без указания схемы - включая вложенные подгруппы - клонируются так же, как URL github.com (v2.1.232). Схема обязательна: начиная с v2.1.196, gitlab.example.com/team/plugins без схемы отклоняется как некорректное сокращение вида owner/repo, поэтому используйте полную форму https://gitlab.com/company/plugins.git. В v2.1.232 также добавлено маскирование секретов из семейства токенов GitLab, а CLI glab получил ту же изоляцию в sandbox и защиту путей к учётным данным, что уже были у gh.

Приватные репозитории: поддерживаются через git credential helpers или токены в переменных окружения. У пользователя должен быть доступ на чтение к репозиторию.

Публикация в официальном marketplace: отправляйте плагины в курируемый Anthropic marketplace для более широкого распространения через claude.ai/settings/plugins/submit или platform.claude.com/plugins/submit.

Управление marketplace

bash
# Marketplace CLI commands
claude plugin marketplace add <source>       # Add marketplace (GitHub, URL, local)
claude plugin marketplace update [name]      # Refresh catalog index
claude plugin marketplace remove <name>      # Remove marketplace
claude plugin marketplace list               # List configured marketplaces

Важно: команда marketplace update лишь обновляет каталог плагинов (список доступных для установки). Она НЕ обновляет уже установленные плагины. Для обновления конкретных установленных плагинов используйте plugin update <name>.

Строгий режим

Управление тем, как описания из marketplace взаимодействуют с локальными файлами plugin.json:

SettingBehavior
strict: true (default)Local plugin.json is authoritative; marketplace entry supplements it
strict: falseMarketplace entry is the entire plugin definition
Ограничения на уровне организации с strictKnownMarketplaces:
ValueEffect
---------------
Not setNo restrictions - users can add any marketplace
Empty array []Lockdown - no marketplaces allowed
Array of patternsAllowlist - only matching marketplaces can be added
json
{
  "strictKnownMarketplaces": [
    "my-org/*",
    "github.com/trusted-vendor/*"
  ]
}

Внимание: В строгом режиме с strictKnownMarketplaces пользователи могут устанавливать плагины только из маркетплейсов, включённых в белый список. Это удобно для корпоративных сред, где требуется контролируемое распространение плагинов.

Установка плагинов и жизненный цикл

graph LR A["Discover"] -->|Browse| B["Marketplace"] B -->|Select| C["Plugin Page"] C -->|View| D["Components"] D -->|Install| E["/plugin install"] E -->|Extract| F["Configure"] F -->|Activate| G["Use"] G -->|Check| H["Update"] H -->|Available| G G -->|Done| I["Disable"] I -->|Later| J["Enable"] J -->|Back| G

Сравнение возможностей плагинов

FeatureSlash CommandSkillSubagentPlugin
InstallationManual copyManual copyManual configOne command
Setup Time5 minutes10 minutes15 minutes2 minutes
BundlingSingle fileSingle fileSingle fileMultiple
VersioningManualManualManualAutomatic
Team SharingCopy fileCopy fileCopy fileInstall ID
UpdatesManualManualManualAuto-available
DependenciesNoneNoneNoneMay include
MarketplaceNoNoNoYes
DistributionRepositoryRepositoryRepositoryMarketplace

CLI-команды для плагинов

Все операции с плагинами доступны в виде CLI-команд:

bash
claude plugin install <name>@<marketplace>   # Install from a marketplace
claude plugin uninstall <name>               # Remove a plugin
claude plugin update <name>                  # Update installed plugin to latest version
claude plugin list                           # List installed plugins
claude plugin enable <name>                  # Enable a disabled plugin
claude plugin disable <name>                 # Disable a plugin
claude plugin validate <path>                # Validate the plugin structure at <path>
claude plugin tag [path]                     # Create a {name}--v{version} release git tag (v2.1.118+)
claude plugin prune                          # Remove orphaned auto-installed plugin dependencies (v2.1.121+)
claude plugin uninstall <name> --prune       # Uninstall and cascade-clean orphaned dependencies (v2.1.121+)
claude plugin details <name>                 # Show inventory + projected per-turn token cost (v2.1.139+)
claude plugin init <name>                    # Scaffold a new plugin (alias: claude plugin new)

Псевдонимы: claude plugin new - для init, remove / rm - для uninstall, ls - для list, autoremove - для prune.

Полезные флаги:

CommandFlagPurpose
plugin init--with <components...>Scaffold specific component folders: skills, agents, hooks, mcp, lsp, output-style, channel
plugin init-f, --forceOverwrite an existing .claude-plugin/ directory
plugin install--config <key=value>Set a userConfig option at install time
plugin install-y, --yesAccept commands without a confirmation prompt
plugin list--availableAlso list plugins available from marketplaces (requires --json)
plugin tag--pushPush the tag to the remote after creating it
plugin tag--dry-runPrint what would be tagged without creating the tag
plugin validate--strictTreat warnings as errors
plugin validate--jsonEmit a machine-readable validation report (v2.1.259+)
Пример: claude plugin tag ./my-plugin принимает путь к плагину (а не строку с версией). Команда создаёт git-тег вида {name}--v{version} на основе plugin.json, проверяя согласованность plugin.json с содержащей его записью marketplace, и является рекомендуемым способом выпуска релизов плагинов для распространения.

claude plugin prune полезна после установки или удаления marketplace-плагинов, которые притянули собственные зависимости: она удаляет автоматически установленные плагины, чей родительский плагин был впоследствии удалён. plugin uninstall --prune выполняет тот же каскад за один шаг.

Контроль зависимостей (v2.1.143): claude plugin disable <name> отклоняет операцию, если другой включённый плагин по-прежнему зависит от целевого (иначе граф зависимостей был бы нарушен). claude plugin enable <name> принудительно включает транзитивные зависимости после одного общего подтверждения, вместо того чтобы запрашивать включение для каждой по отдельности. Используйте claude plugin prune, чтобы вычистить зависимости, зависимые от которых плагины были впоследствии удалены.

claude plugin details <name> (v2.1.139+)

claude plugin details <name> выводит полный перечень компонентов плагина - skills, hooks, MCP servers, LSP servers, фоновые мониторы, slash-команды - а также прогнозируемую стоимость в токенах на ход (и на вызов). Используйте её, чтобы оценить «вес» плагина перед внедрением, особенно на моделях с ограниченным контекстом.

Пример вывода (сокращённо):

text
plugin: code-reviewer (1.2.0)
skills:        3      hooks: 2      mcp: 1      lsp: 0      monitors: 0
commands:      /review, /security-review
projected ctx: +1,420 tokens per turn  ·  +9,800 tokens per /review invocation

LSP-серверы были добавлены на панель сведений в v2.1.142. См. также прогнозируемую стоимость контекста на панели обзора маркетплейса (v2.1.143), описанную в разделе Plugin Marketplace.

Способы установки

Из Marketplace

bash
/plugin install plugin-name
# or from CLI:
claude plugin install plugin-name@marketplace-name

Вступает ли изменение в силу сразу? Начиная с v2.1.221 - как правило, да. Обратите внимание на последнюю строку в сводке установки:

Install summary saysWhat it means
Plugin is now active.Claude Code activated the plugin as part of the install. Nothing more to do.
Run /reload-plugins to activate.The plugin is installed but not live yet - either activating it would have invalidated the prompt cache, or the activation attempt failed.
До версии v2.1.221 установка плагина не применялась к текущей сессии до тех пор, пока вы не выполняли
/reload-plugins или не перезапускали Claude Code, поэтому в старых руководствах этот шаг описан как обязательный.

Включение и отключение (с автоопределением области действия)

bash
/plugin enable plugin-name
/plugin disable plugin-name

Интерфейс /plugin показывает неиспользуемые плагины, чтобы их можно было удалить (v2.1.187+). Включение и отключение также работают в случаях, когда поле name в plugin.json плагина отличается от имени его записи в маркетплейсе (v2.1.195+).

Просмотр списка установленных плагинов (v2.1.163)

Проверьте, какие плагины активны в текущей сессии:

bash
/plugin list             # all installed plugins
/plugin list --enabled   # only enabled plugins
/plugin list --disabled  # only disabled plugins

Локальный плагин (для разработки)

bash
# CLI flag for local testing (repeatable for multiple plugins)
claude --plugin-dir ./path/to/plugin
claude --plugin-dir ./plugin-a --plugin-dir ./plugin-b

# --plugin-dir also accepts a .zip archive path (v2.1.128+)
claude --plugin-dir ./my-plugin.zip

# Fetch a plugin .zip archive from a URL for the current session (v2.1.129+, repeatable)
claude --plugin-url https://example.com/releases/my-plugin-0.3.0.zip

Из Git-репозитория

bash
/plugin install github:username/repo

Автообновление

Claude Code может автоматически обновлять маркетплейсы и установленные из них плагины при запуске.

Marketplace TypeAuto-Update DefaultHow to Toggle
Official (claude-plugins-official)✅ Enabled/plugin → Marketplaces → Select
Third-party / Local❌ DisabledSame UI path
При запуске автообновления Claude Code:
  1. Обновляет каталог marketplace
  2. Обновляет установленные плагины до последних версий
  3. Сообщает результат по каждому плагину: Plugin is now active. - если Claude Code активировал его в рамках обновления, либо Run /reload-plugins to activate. - если активация не была выполнена

Переменные окружения

VariableEffect
DISABLE_AUTOUPDATER=1Disable all auto-updates (Claude Code + plugins)
DISABLE_AUTOUPDATER=1 + FORCE_AUTOUPDATE_PLUGINS=1Keep plugin updates, disable Claude Code updates
CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1(v2.1.141+) Force claude plugin install to clone GitHub plugin sources over HTTPS instead of SSH, even when an SSH remote is available. Use in CI runners or containers without SSH keys.
bash
# Disable all auto-updates
export DISABLE_AUTOUPDATER=1

# Keep plugin auto-updates only
export DISABLE_AUTOUPDATER=1
export FORCE_AUTOUPDATE_PLUGINS=1

# CI runner without SSH keys - force HTTPS for plugin installs
export CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1
claude plugin install code-reviewer@anthropic

Загрузка плагинов в удалённых сессиях (v2.1.179): в версии v2.1.179 ускорена загрузка плагинов в удалённых сессиях, поэтому при подключении к такой сессии плагины становятся доступны быстрее.

Когда стоит создавать плагин

graph TD A["Should I create a plugin?"] A -->|Need multiple components| B{"Multiple commands<br/>or subagents<br/>or MCPs?"} B -->|Yes| C["✅ Create Plugin"] B -->|No| D["Use Individual Feature"] A -->|Team workflow| E{"Share with<br/>team?"} E -->|Yes| C E -->|No| F["Keep as Local Setup"] A -->|Complex setup| G{"Needs auto<br/>configuration?"} G -->|Yes| C G -->|No| D

Сценарии использования плагинов

Use CaseRecommendationWhy
Team Onboarding✅ Use PluginInstant setup, all configurations
Framework Setup✅ Use PluginBundles framework-specific commands
Enterprise Standards✅ Use PluginCentral distribution, version control
Quick Task Automation❌ Use CommandOverkill complexity
Single Domain Expertise❌ Use SkillToo heavy, use skill instead
Specialized Analysis❌ Use SubagentCreate manually or use skill
Live Data Access❌ Use MCPStandalone, don't bundle

Тестирование плагина

Перед публикацией протестируйте плагин локально с помощью CLI-флага --plugin-dir (его можно указывать несколько раз для подключения нескольких плагинов):

bash
claude --plugin-dir ./my-plugin
claude --plugin-dir ./my-plugin --plugin-dir ./another-plugin

# --plugin-dir accepts .zip archives in addition to directories (v2.1.128+)
claude --plugin-dir ./my-plugin.zip

# --plugin-url fetches a plugin .zip from a URL for this session (v2.1.129+, repeatable)
claude --plugin-url https://example.com/releases/my-plugin-0.3.0.zip

Это запустит Claude Code с загруженным плагином и позволит:

  • убедиться, что все slash-команды доступны;
  • проверить корректность работы subagents и агентов;
  • подтвердить, что MCP-серверы подключаются без ошибок;
  • проверить выполнение hooks;
  • проверить настройки LSP-серверов;
  • выявить возможные ошибки конфигурации.

Hot-Reload

Плагины поддерживают hot-reload в процессе разработки. При изменении файлов плагина Claude Code способен автоматически отслеживать изменения. Также можно принудительно выполнить перезагрузку с помощью:

bash
/reload-plugins

Это повторно считывает все манифесты плагинов, команды, агенты, skills, hooks и конфигурации MCP/LSP без перезапуска сессии.

Управляемые настройки для плагинов

Администраторы могут управлять поведением плагинов в рамках всей организации с помощью managed settings:

SettingDescription
enabledPluginsAllowlist of plugins that are enabled by default
deniedPluginsBlocklist of plugins that cannot be installed
extraKnownMarketplacesAdd additional marketplace sources beyond the defaults
strictKnownMarketplacesRestrict which marketplaces users are allowed to add (managed-only; enforced on every plugin lifecycle event since v2.1.117)
blockedMarketplacesBlocklist of marketplaces; enforced on every plugin lifecycle event since v2.1.117; supports hostPattern / pathPattern regex fields since v2.1.119
allowedChannelPluginsControl which plugins are permitted per release channel
disableCommandPluginSourcesBlock the command plugin source type org-wide (v2.1.229+)

Более удобные псевдонимы (v2.1.232): additionalMarketplaces принимается как алиас для extraKnownMarketplaces, а allowedMarketplaces - для strictKnownMarketplaces. Источник - changelog: об этих алиасах объявлено в changelog v2.1.232, однако в официальном справочнике настроек они пока не упомянуты. Канонические ключи можно спокойно продолжать использовать.

Wildcard'ы для владельца (v2.1.223+): запись вида "owner/*" разрешает или блокирует все marketplace-репозитории одного GitHub-владельца. Принимается только в strictKnownMarketplaces и blockedMarketplaces. Во всех остальных местах, где встречается источник github, - включая extraKnownMarketplaces и /plugin marketplace add - значение repo должно указывать на конкретный репозиторий.

Эти настройки можно применять на уровне организации через управляемые конфигурационные файлы; они имеют приоритет над пользовательскими настройками.

Безопасность плагинов

Subagent'ы плагинов выполняются в изолированном sandbox с ограничениями. Следующие ключи frontmatter запрещены в определениях subagent'ов плагина:

  • hooks - subagent'ы не могут регистрировать обработчики событий
  • mcpServers - subagent'ы не могут настраивать MCP-серверы
  • permissionMode - subagent'ы не могут переопределять модель разрешений

Это гарантирует, что плагины не смогут повысить привилегии или изменить host-окружение за пределами заявленной области действия.

Публикация плагина

Шаги публикации:

  1. Создайте структуру плагина со всеми компонентами
  2. Напишите манифест .claude-plugin/plugin.json
  3. Создайте README.md с документацией
  4. Протестируйте локально командой claude --plugin-dir ./my-plugin
  5. Поставьте tag на релиз с помощью claude plugin tag ./my-plugin (v2.1.118+) - команда принимает путь к плагину и создаёт git-тег вида {name}--v{version} на основе plugin.json
  6. Отправьте плагин в marketplace
  7. Пройдите review и получите одобрение
  8. Плагин публикуется в marketplace
  9. Пользователи смогут установить его одной командой

Пример заявки на публикацию:

markdown
# PR Review Plugin

## Description
Complete PR review workflow with security, testing, and documentation checks.

## What's Included
- 3 slash commands for different review types
- 3 specialized subagents
- GitHub and CodeQL MCP integration
- Automated security scanning hooks

## Installation
```bash
/plugin install pr-review

Features

✅ Security analysis ✅ Test coverage checking ✅ Documentation verification ✅ Code quality assessment ✅ Performance impact analysis

Usage

bash
Текущая дата: воскресенье, 6 сентября 2026 г.

<query>
/review-pr
/check-security
/check-tests
</query>

Requirements

  • Claude Code 2.1+
  • GitHub access
  • CodeQL (optional)
CODE
## Плагин vs ручная настройка

**Ручная настройка (2+ часа):**
- Устанавливать slash-команды по одной
- Создавать subagents по отдельности
- Настраивать MCP отдельно
- Вручную настраивать hooks
- Всё документировать
- Раздать команде (и надеяться, что у всех настроится правильно)

**С плагином (2 минуты):**
```bash
/plugin install pr-review
# ✅ Everything installed and configured
# ✅ Ready to use immediately
# ✅ Team can reproduce exact setup

Рекомендации

Что делать ✅

  • Используйте понятные, описательные имена плагинов
  • Включайте подробный README
  • Корректно версионируйте плагин (semver)
  • Тестируйте все компоненты вместе
  • Чётко документируйте требования
  • Приводите примеры использования
  • Реализуйте обработку ошибок
  • Проставляйте подходящие теги для поиска
  • Поддерживайте обратную совместимость
  • Делайте плагины сфокусированными и целостными
  • Покрывайте функциональность тестами
  • Документируйте все зависимости

Чего не делать ❌

  • Не объединяйте несвязанные возможности в одном плагине
  • Не зашивайте учётные данные в код
  • Не пропускайте тестирование
  • Не забывайте про документацию
  • Не создавайте дублирующие плагины
  • Не игнорируйте версионирование
  • Не усложняйте зависимости между компонентами
  • Не забывайте корректно обрабатывать ошибки

Инструкции по установке

Установка из Marketplace

  1. Просмотр доступных плагинов:

    bash
    /plugin list
    
  2. Просмотр информации о плагине:

    bash
    claude plugin details plugin-name
    
  3. Установка плагина:

    bash
    /plugin install plugin-name
    

Установка из локального пути

bash
/plugin install ./path/to/plugin-directory

Установка из GitHub

bash
/plugin install github:username/repo

Список установленных плагинов

bash
/plugin list             # all installed plugins
/plugin list --enabled   # only enabled plugins
/plugin list --disabled  # only disabled plugins

Обновление плагина

Используйте вариант из CLI - именно он описан в документации по команде plugin update и именно на него ссылается сам Claude Code, когда доступно обновление:

bash
claude plugin update plugin-name

Отключение/включение плагина

bash
# Temporarily disable
/plugin disable plugin-name

# Re-enable
/plugin enable plugin-name

Удаление плагина

bash
/plugin uninstall plugin-name

Связанные концепции

Следующие возможности Claude Code работают совместно с плагинами:

  • Slash-команды - отдельные команды, входящие в состав плагинов
  • Memory - постоянный контекст для плагинов
  • Skills - предметная экспертиза, которую можно упаковать в плагины
  • Субагенты - специализированные агенты, включаемые в качестве компонентов плагина
  • MCP-серверы - интеграции по протоколу Model Context Protocol, поставляемые в составе плагинов
  • Hooks - обработчики событий, запускающие сценарии работы плагинов

Полный пример рабочего процесса

Полный рабочий процесс плагина PR Review

CODE
1. User: /review-pr

2. Plugin executes:
   ├── pre-review.js hook validates git repo
   ├── GitHub MCP fetches PR data
   ├── security-reviewer subagent analyzes security
   ├── test-checker subagent verifies coverage
   └── performance-analyzer subagent checks performance

3. Results synthesized and presented:
   ✅ Security: No critical issues
   ⚠️  Testing: Coverage 65% (recommend 80%+)
   ✅ Performance: No significant impact
   📝 12 recommendations provided

Устранение неполадок

Плагин не устанавливается

  • Проверьте совместимость версии Claude Code: /version
  • Проверьте синтаксис plugin.json с помощью JSON-валидатора
  • Проверьте интернет-соединение (для удалённых плагинов)
  • Проверьте права доступа: ls -la plugin/

Компоненты не загружаются

  • Убедитесь, что пути в plugin.json соответствуют фактической структуре каталогов
  • Проверьте права доступа к файлам: chmod +x scripts/
  • Проверьте синтаксис файла компонента
  • Просмотрите список компонентов: claude plugin details plugin-name

Не удалось подключиться к MCP

  • Убедитесь, что переменные окружения заданы корректно
  • Проверьте установку и работоспособность MCP-сервера
  • Протестируйте подключение к MCP отдельно с помощью /mcp test
  • Проверьте конфигурацию MCP в каталоге mcp/

Команды недоступны после установки

  • Убедитесь, что плагин установлен успешно: /plugin list
  • Проверьте, включён ли плагин: /plugin list --enabled
  • Проверьте, активен ли он уже - см. пояснения к сводке установки в разделе Методы установки: сообщение Plugin is now active. не требует действий, а Run /reload-plugins to activate. означает, что нужно выполнить указанную команду (перезапуск не требуется)
  • Проверьте, нет ли конфликтов имён с существующими командами

Проблемы с выполнением hooks

  • Убедитесь, что у файлов hooks выставлены корректные права доступа
  • Проверьте синтаксис hooks и имена событий
  • Изучите логи hooks - там будут подробности об ошибках
  • По возможности протестируйте hooks вручную

Дополнительные материалы


Последнее обновление: 6 сентября 2026 г. Версия Claude Code: 2.1.263 Источники:

ЛОКАЛЬНАЯ ОТМЕТКА · БЕЗ ПРОВЕРКИ
cc-learnМОДУЛЬ 07
МОДУЛЬ 07/УРОК

Плагины

Плагины Claude Code

В этой папке собраны полноценные примеры плагинов, которые объединяют несколько возможностей Claude Code в единые, готовые к установке пакеты.

Обзор

Плагины Claude Code - это готовые наборы кастомизаций (slash-команд, субагентов, MCP-серверов и hooks), устанавливаемые одной командой. Это механизм расширения самого высокого уровня: он объединяет несколько возможностей в единые пакеты, которыми удобно делиться.

Архитектура плагинов

graph TB A["Plugin"] B["Slash Commands"] C["Subagents"] D["MCP Servers"] E["Hooks"] F["Configuration"] A -->|bundles| B A -->|bundles| C A -->|bundles| D A -->|bundles| E A -->|bundles| F

Процесс загрузки плагинов

sequenceDiagram participant User participant Claude as Claude Code participant Plugin as Plugin Marketplace participant Install as Installation participant SlashCmds as Slash Commands participant Subagents participant MCPServers as MCP Servers participant Hooks participant Tools as Configured Tools User->>Claude: /plugin install pr-review Claude->>Plugin: Download plugin manifest Plugin-->>Claude: Return plugin definition Claude->>Install: Extract components Install->>SlashCmds: Configure Install->>Subagents: Configure Install->>MCPServers: Configure Install->>Hooks: Configure SlashCmds-->>Tools: Ready to use Subagents-->>Tools: Ready to use MCPServers-->>Tools: Ready to use Hooks-->>Tools: Ready to use Tools-->>Claude: Plugin installed ✅

Marketplace не требуется (v2.1.157+): плагины, размещённые в директориях .claude/skills, теперь загружаются автоматически без marketplace. Создайте заготовку нового плагина командой claude plugin init <name> - он будет создан в ~/.claude/skills/<name>/ (глобально для пользователя) и автоматически подгружен в следующей сессии как <name>@skills-dir.

Типы плагинов и способы распространения

TypeScopeSharedAuthorityExamples
OfficialGlobalAll usersAnthropicPR Review, Security Guidance
CommunityPublicAll usersCommunityDevOps, Data Science
OrganizationInternalTeam membersCompanyInternal standards, tools
PersonalIndividualSingle userDeveloperCustom workflows

Структура определения плагина

Манифест плагина использует формат JSON и располагается в файле .claude-plugin/plugin.json:

json
{
  "name": "my-first-plugin",
  "description": "A greeting plugin",
  "version": "1.0.0",
  "author": {
    "name": "Your Name"
  },
  "homepage": "https://example.com",
  "repository": "https://github.com/user/repo",
  "license": "MIT"
}

Помимо этих идентификационных полей, манифест может указывать Claude Code на компоненты, расположенные вне папок по умолчанию, а также содержать метаданные для обнаружения и информацию о зависимостях:

FieldTypeDescription
workflowsstring | arrayCustom workflow script files or directories (replaces the default workflows/)
outputStylesstring | arrayCustom output style files or directories (replaces the default output-styles/)
lspServersstring | array | objectLSP servers for code intelligence - go to definition, find references, diagnostics. Commonly "./.lsp.json". See LSP server configuration
channelsarrayChannel declarations for message injection (Telegram, Slack, Discord style)
dependenciesarrayOther plugins this plugin requires, optionally with semver version constraints
keywordsarrayDiscovery tags used when browsing and searching marketplaces
metadataobjectFree-form object for your own data, such as entitlement or catalog fields
experimental.themesstring | arrayColor theme files or directories (replaces the default themes/)
experimental.monitorsstring | arrayBackground Monitor configurations that start automatically when the plugin is active

Пример структуры плагина

CODE
my-plugin/
├── .claude-plugin/
│   └── plugin.json       # Manifest (name, description, version, author)
├── commands/             # Skills as Markdown files
│   ├── task-1.md
│   ├── task-2.md
│   └── workflows/
├── agents/               # Custom agent definitions
│   ├── specialist-1.md
│   ├── specialist-2.md
│   └── configs/
├── skills/               # Agent Skills with SKILL.md files
│   ├── skill-1.md
│   └── skill-2.md
├── hooks/                # Event handlers in hooks.json
│   └── hooks.json
├── .mcp.json             # MCP server configurations
├── .lsp.json             # LSP server configurations for code intelligence
├── bin/                  # Executables added to Bash tool's PATH while plugin is enabled
├── settings.json         # Default settings applied when plugin is enabled (currently only `agent` key supported)
├── themes/               # Optional: ship custom Claude Code themes (v2.1.118+)
├── templates/
│   └── issue-template.md
├── scripts/
│   ├── helper-1.sh
│   └── helper-2.py
├── docs/
│   ├── README.md
│   └── USAGE.md
└── tests/
    └── plugin.test.js

Примечание: каталог commands/ считается устаревшим. Официальная рекомендация - «для новых плагинов используйте skills/». Существующие каталоги commands/ продолжают работать (один из трёх демонстрационных плагинов в этом модуле как раз их использует), однако новый плагин должен размещать свою функциональность в skills/ в виде каталогов с SKILL.md, а не в виде плоских Markdown-файлов с командами.

Конфигурация LSP-сервера

Плагины могут включать поддержку Language Server Protocol (LSP) для интеллектуального анализа кода в реальном времени. LSP-серверы предоставляют диагностику, навигацию по коду и информацию о символах прямо в процессе работы.

Где задаётся конфигурация:

  • файл .lsp.json в корневом каталоге плагина;
  • ключ lspServers в plugin.json - официальное имя поля манифеста. Он принимает строку, массив или объект: строка или массив указывают на файл(ы) или каталоги с конфигурацией LSP (например, "./.lsp.json"), а объект описывает серверы непосредственно в манифесте.

Справочник полей

FieldRequiredDescription
commandYesLSP server binary (must be in PATH)
extensionToLanguageYesMaps file extensions to language IDs
argsNoCommand-line arguments for the server
transportNoCommunication method: stdio (default) or socket
envNoEnvironment variables for the server process
initializationOptionsNoOptions sent during LSP initialization
settingsNoWorkspace configuration passed to the server
workspaceFolderNoOverride the workspace folder path
startupTimeoutNoMaximum time (ms) to wait for server startup
shutdownTimeoutNoMaximum time (ms) for graceful shutdown
restartOnCrashNoAutomatically restart if the server crashes
maxRestartsNoMaximum restart attempts before giving up

Примеры конфигураций

Go (gopls):

json
{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}

Python (pyright):

json
{
  "python": {
    "command": "pyright-langserver",
    "args": ["--stdio"],
    "extensionToLanguage": {
      ".py": "python",
      ".pyi": "python"
    }
  }
}

TypeScript:

json
{
  "typescript": {
    "command": "typescript-language-server",
    "args": ["--stdio"],
    "extensionToLanguage": {
      ".ts": "typescript",
      ".tsx": "typescriptreact",
      ".js": "javascript",
      ".jsx": "javascriptreact"
    }
  }
}

Доступные LSP-плагины

В официальном маркетплейсе доступны преднастроенные LSP-плагины:

PluginLanguageServer BinaryInstall Command
pyright-lspPythonpyright-langserverpip install pyright
typescript-lspTypeScript/JavaScripttypescript-language-servernpm install -g typescript-language-server typescript
rust-lspRustrust-analyzerInstall via rustup component add rust-analyzer

Возможности LSP

После настройки LSP-серверы предоставляют:

  • Мгновенная диагностика - ошибки и предупреждения появляются сразу после правок
  • Навигация по коду - переход к определению, поиск ссылок и реализаций
  • Информация при наведении - сигнатуры типов и документация во всплывающей подсказке
  • Список символов - просмотр символов в текущем файле или во всём workspace

Каталог bin/ в PATH

Когда plugin включён, его каталог bin/ добавляется в начало PATH сессии. Любой поставляемый в нём исполняемый файл можно вызвать по имени напрямую из инструмента Bash - указывать полный путь не требуется.

bash
# In a plugin layout:
my-plugin/
├── plugin.json
└── bin/
    └── my-tool          # executable file (chmod +x)

# Inside a Claude Code session with the plugin enabled:
$ my-tool --help

Используйте это для вспомогательных CLI-утилит, которые hooks, skills или команды внутри того же плагина будут вызывать через shell. Пометьте файлы исполняемыми в репозитории плагина (chmod +x) - git сохраняет этот бит.

Опции плагина (v2.1.83+)

Плагины могут объявлять пользовательские настройки в манифесте через userConfig. Значения с пометкой sensitive: true хранятся в системном keychain, а не в текстовых файлах настроек:

json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "userConfig": {
    "apiKey": {
      "description": "API key for the service",
      "sensitive": true
    },
    "region": {
      "description": "Deployment region",
      "default": "us-east-1"
    }
  }
}

Постоянные данные плагина (${CLAUDE_PLUGIN_DATA}) (v2.1.78+)

Плагинам доступен каталог для хранения постоянного состояния через переменную окружения ${CLAUDE_PLUGIN_DATA}. Этот каталог уникален для каждого плагина и сохраняется между сессиями, поэтому подходит для кэшей, баз данных и других постоянных данных:

json
{
  "hooks": {
    "PostToolUse": [
      {
        "command": "node ${CLAUDE_PLUGIN_DATA}/track-usage.js"
      }
    ]
  }
}

Директория создаётся автоматически при установке плагина. Файлы, хранящиеся здесь, сохраняются до момента удаления плагина.

Фоновые мониторы (v2.1.105)

Плагины могут регистрировать фоновые мониторы, которые автоматически активируются при старте сессии или при вызове skill плагина. Добавьте в манифест плагина ключ верхнего уровня monitors:

json
{
  "name": "my-plugin",
  "version": "1.0.0",
  "monitors": [
    {
      "command": "tail -f /var/log/app.log",
      "trigger": "session_start"
    }
  ]
}

Поле trigger принимает следующие значения:

  • &quot;session_start&quot; - автоматически активировать монитор при старте сессии
  • &quot;skill_invoke&quot; - активировать монитор при вызове skill плагина

Под капотом мониторы используют тот же инструмент Monitor, передавая строки stdout как события, на которые Claude может реагировать.

Встроенный плагин через настройки (source: &#39;settings&#39;) (v2.1.80+)

Плагины можно описывать прямо в файлах настроек как записи marketplace, используя поле source: &#39;settings&#39;. Это позволяет встроить определение плагина напрямую, без отдельного репозитория или marketplace:

json
{
  "pluginMarketplaces": [
    {
      "name": "inline-tools",
      "source": "settings",
      "plugins": [
        {
          "name": "quick-lint",
          "source": "./local-plugins/quick-lint"
        }
      ]
    }
  ]
}

Настройки плагина

Плагины могут поставляться с файлом settings.json, задающим конфигурацию по умолчанию. На данный момент поддерживается ключ agent, который указывает агента основного потока для плагина:

json
{
  "agent": "agents/specialist-1.md"
}

Когда plugin включает settings.json, его значения по умолчанию применяются при установке. Пользователи могут переопределить эти настройки в конфигурации своего проекта или в пользовательской конфигурации.

Standalone-подход и подход через plugin

ApproachCommand NamesConfigurationBest For
Standalone/helloManual setup in CLAUDE.mdPersonal, project-specific
Plugins/plugin-name:helloAutomated via plugin.jsonSharing, distribution, team use
Используйте отдельные slash commands для быстрых персональных сценариев. Используйте плагины, когда нужно объединить несколько возможностей, поделиться с командой или опубликовать для распространения.

Вызов через пробел (v2.1.136+): Slash commands из плагинов также работают с пробелом - /myplugin review разворачивается в каноническую форму /myplugin:review. Оба варианта допустимы; форма с двоеточием является канонической и рекомендуется в скриптах.

Обнаружение skills/ (v2.1.136+): Наличие поля skills в plugin.json больше не скрывает стандартную директорию skills/ плагина. Skills, объявленные в обоих местах, объединяются - так что можно перечислить несколько ключевых в plugin.json, не теряя остальные.

Плагины с SKILL.md в корне (v2.1.142+): Плагин с SKILL.md на верхнем уровне и без поддиректории skills/ сам представляется как единый skill - плагин и есть skill. Это дополнительный шаблон, а не замена директории skills/ или поля skills в plugin.json; применяйте его для небольших плагинов с одним skill, когда отдельная структура директорий не даёт никаких преимуществ.

Практические примеры

Пример 1: плагин для PR Review

Файл: .claude-plugin/plugin.json

json
{
  "name": "pr-review",
  "version": "1.0.0",
  "description": "Complete PR review workflow with security, testing, and docs",
  "author": {
    "name": "Anthropic"
  },
  "repository": "https://github.com/your-org/pr-review",
  "license": "MIT"
}

Текущая дата: воскресенье, 6 сентября 2026 г.

<query>

Файл: commands/review-pr.md

</query> ```markdown --- name: Review PR description: Start comprehensive PR review with security and testing checks ---

PR Review

This command initiates a complete pull request review including:

  1. Security analysis
  2. Test coverage verification
  3. Documentation updates
  4. Code quality checks
  5. Performance impact assessment
CODE
**Файл:** `agents/security-reviewer.md`
```yaml
---
name: security-reviewer
description: Security-focused code review
tools: Read, Grep, Bash
---

# Security Reviewer

Specializes in finding security vulnerabilities:
- Authentication/authorization issues
- Data exposure
- Injection attacks
- Secure configuration

Установка:

bash
/plugin install pr-review

# Result:
# ✅ 3 slash commands installed
# ✅ 3 subagents configured
# ✅ 2 MCP servers connected
# ✅ 4 hooks registered
# ✅ Ready to use!

Пример 2: DevOps-плагин

Компоненты:

CODE
devops-automation/
├── commands/
│   ├── deploy.md
│   ├── rollback.md
│   ├── status.md
│   └── incident.md
├── agents/
│   ├── deployment-specialist.md
│   ├── incident-commander.md
│   └── alert-analyzer.md
├── mcp/
│   ├── github-config.json
│   ├── kubernetes-config.json
│   └── prometheus-config.json
├── hooks/
│   ├── pre-deploy.js
│   ├── post-deploy.js
│   └── on-error.js
└── scripts/
    ├── deploy.sh
    ├── rollback.sh
    └── health-check.sh

Пример 3: Плагин для документации

Входящие в состав компоненты:

CODE
documentation/
├── commands/
│   ├── generate-api-docs.md
│   ├── generate-readme.md
│   ├── sync-docs.md
│   └── validate-docs.md
├── agents/
│   ├── api-documenter.md
│   ├── code-commentator.md
│   └── example-generator.md
├── mcp/
│   ├── github-docs-config.json
│   └── slack-announce-config.json
└── templates/
    ├── api-endpoint.md
    ├── function-docs.md
    └── adr-template.md

Маркетплейс плагинов

Официальный каталог плагинов, поддерживаемый Anthropic, - anthropics/claude-plugins-official; он автоматически регистрируется при первом интерактивном запуске. Администраторы корпоративных тарифов также могут создавать приватные маркетплейсы плагинов для внутреннего распространения.

Помимо него есть маркетплейс сообщества - anthropics/claude-plugins-community, где размещаются сторонние плагины, прошедшие автоматизированную проверку корректности и безопасности со стороны Anthropic; в каталоге каждый из них закреплён за конкретным commit SHA. В отличие от официального маркетплейса, его нужно добавлять вручную:

bash
/plugin marketplace add anthropics/claude-plugins-community

# Then install from it using the claude-community marketplace name
/plugin install <plugin-name>@claude-community
graph TB A["Plugin Marketplace"] B["Official<br/>anthropics/claude-plugins-official"] C["Community<br/>Marketplace"] D["Enterprise<br/>Private Registry"] A --> B A --> C A --> D B -->|Categories| B1["Development"] B -->|Categories| B2["DevOps"] B -->|Categories| B3["Documentation"] C -->|Search| C1["DevOps Automation"] C -->|Search| C2["Mobile Dev"] C -->|Search| C3["Data Science"] D -->|Internal| D1["Company Standards"] D -->|Internal| D2["Legacy Systems"] D -->|Internal| D3["Compliance"] style A fill:#e1f5fe,stroke:#333,color:#333 style B fill:#e8f5e9,stroke:#333,color:#333 style C fill:#f3e5f5,stroke:#333,color:#333 style D fill:#fff3e0,stroke:#333,color:#333

Настройка маркетплейса

Enterprise- и продвинутые пользователи могут управлять поведением маркетплейса через настройки:

SettingDescription
extraKnownMarketplacesAdd additional marketplace sources beyond the defaults
strictKnownMarketplacesControl which marketplaces users are allowed to add (managed-only)
blockedMarketplacesAdmin-managed blocklist of marketplaces (supports hostPattern / pathPattern regex fields since v2.1.119)
deniedPluginsAdmin-managed blocklist to prevent specific plugins from being installed

Более удобные алиасы (v2.1.232): additionalMarketplaces принимается как алиас для extraKnownMarketplaces, а allowedMarketplaces - для strictKnownMarketplaces. Источник - changelog: они анонсированы в changelog v2.1.232, однако официальная справка по настройкам пока не упоминает ни одно из этих имён. Канонические ключи по-прежнему можно спокойно использовать.

Wildcard'ы владельца (v2.1.223+): запись вида "owner/*" разрешает или блокирует все marketplace-репозитории одного GitHub-владельца. Принимается только в strictKnownMarketplaces и blockedMarketplaces. Во всех остальных местах, где используется источник github - включая extraKnownMarketplaces и /plugin marketplace add, - значение repo должно указывать на один конкретный репозиторий.

Применение правил (v2.1.117+): blockedMarketplaces и strictKnownMarketplaces проверяются на каждом событии жизненного цикла плагина - install, update, refresh и autoupdate, - а не только при первом добавлении. strictKnownMarketplaces доступен только в managed-режиме.

Пример blockedMarketplaces с regex по host/path (v2.1.119):

json
{
  "blockedMarketplaces": [
    {
      "hostPattern": "^evil\\.example\\.com$",
      "pathPattern": "^/marketplaces/.*"
    }
  ]
}

headersHelper маркетплейса (v2.1.238)

Маркетплейс типа url - или отдельная запись каталога - может задать команду headersHelper, которая формирует HTTP-заголовки для загрузки каталога и любых архивов того же origin. Так приватный маркетплейс, стоящий за сервисом выдачи токенов, проходит аутентификацию без статического секрета в конфиге.

Helper записи каталога запускается только при установке или обновлении и только после того, как его команда была показана пользователю: claude plugin install и claude plugin update перед запуском выводят приглашение [y/N]. Для автоматизации передайте -y, чтобы подтвердить без запроса.

Дополнительные возможности маркетплейса

  • Строка поиска по маркетплейсу (v2.1.172): при просмотре плагинов маркетплейса в /plugin строка поиска позволяет фильтровать их по имени или ключевому слову - удобно для крупных маркетплейсов, где пролистывать весь список долго.
  • Таймаут git по умолчанию: увеличен с 30 до 120 секунд для больших репозиториев с плагинами.
  • Кастомные npm-реестры: плагины могут указывать собственные URL npm-реестров для разрешения зависимостей.
  • Закрепление версий: фиксируйте плагины на конкретных версиях для воспроизводимых окружений.
  • Прогноз стоимости контекста в панели просмотра (v2.1.143): обозреватель маркетплейса /plugin показывает для каждого плагина прогнозируемый расход context-token за ход - сумму по всегда загружаемым skills, hooks и дескрипторам MCP-серверов. Используйте эту оценку, чтобы прикинуть влияние плагина ещё до установки. Тот же прогноз доступен после установки через claude plugin details <name>.

Пример строки в списке со столбцом стоимости:

text
NAME              VERSION   AUTHOR     CTX/TURN   DESCRIPTION
code-reviewer     1.2.0     anthropic  +1,420     Multi-agent PR review
devops-toolkit    0.4.1     acme       +3,180     SRE playbooks, on-call helpers
docs-helper       0.9.0     community  +610       Doc-style guide enforcement

Схема описания marketplace

Маркетплейсы плагинов описываются в файле .claude-plugin/marketplace.json:

json
{
  "name": "my-team-plugins",
  "owner": "my-org",
  "plugins": [
    {
      "name": "code-standards",
      "source": "./plugins/code-standards",
      "description": "Enforce team coding standards",
      "version": "1.2.0",
      "author": "platform-team"
    },
    {
      "name": "deploy-helper",
      "source": {
        "source": "github",
        "repo": "my-org/deploy-helper",
        "ref": "v2.0.0"
      },
      "description": "Deployment automation workflows"
    }
  ]
}
FieldRequiredDescription
nameYesMarketplace name in kebab-case
ownerYesOrganization or user who maintains the marketplace
pluginsYesArray of plugin entries
plugins[].nameYesPlugin name (kebab-case)
plugins[].sourceYesPlugin source (path string or source object)
plugins[].descriptionNoBrief plugin description
plugins[].versionNoSemantic version string
plugins[].authorNoPlugin author name
plugins[].renamesNoMaps a former plugin name to its current name (or null if removed) so users migrate automatically (v2.1.193)
plugins[].displayNameNoHuman-readable name shown in the UI; not used for lookup (v2.1.143)
plugins[].defaultEnabledNoIf false, the plugin installs disabled until the user opts in (v2.1.154)

Типы источников плагинов

Плагины можно загружать из различных источников:

SourceSyntaxExample
Relative pathString path"./plugins/my-plugin"
GitHub{ "source": "github", "repo": "owner/repo" }{ "source": "github", "repo": "acme/lint-plugin", "ref": "v1.0" }
Git URL{ "source": "url", "url": "..." }{ "source": "url", "url": "https://git.internal/plugin.git" }
Git subdirectory{ "source": "git-subdir", "url": "...", "path": "..." }{ "source": "git-subdir", "url": "https://github.com/org/monorepo.git", "path": "packages/plugin" }
npm{ "source": "npm", "package": "..." }{ "source": "npm", "package": "@acme/claude-plugin", "version": "^2.0" }
pip{ "source": "pip", "package": "..." }{ "source": "pip", "package": "claude-data-plugin", "version": ">=1.0" }
Archive (v2.1.224+){ "source": "archive", "url": "..." }{ "source": "archive", "url": "https://cdn.example.com/lint-plugin-1.2.0.zip", "sha256": "…" }
Command (v2.1.229+){ "source": "command", "command": "..." }{ "source": "command", "command": "acme-plugin-resolver --print-dir" }
Источники GitHub и git поддерживают необязательные поля ref (branch/tag) и sha (commit hash) для фиксации версии.

Короткие имена источников и metadata.pluginRoot (v2.1.239): поле metadata.pluginRoot маркетплейса теперь действительно учитывается - короткое имя источника плагина в каталоге разрешается в поддиректорию этого корня, и больше не нужно прописывать полный относительный путь в каждой записи.

Skills, синхронизированные из claude.ai (v2.1.239): плагины, подтянутые из claude.ai, отображаются как name@synced. Обращайтесь к ним именно в таком виде: claude plugin enable <name>@synced и claude plugin disable <name>@synced. Синхронизированный плагин никогда не перекрывает установленный плагин с тем же именем - они сосуществуют, различаясь суффиксом @synced.

Источник archive (v2.1.224+)

Установка плагина из zip-архива по HTTPS - без git clone и без npm install.

json
{
  "source": "archive",
  "url": "https://cdn.example.com/lint-plugin-1.2.0.zip",
  "sha256": "3b1f0c2e9a7d4f5b8c6e1a2d3f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b"
}
FieldRequiredNotes
urlYesHTTPS only. http://, loopback, link-local, and cloud-metadata hosts are rejected - and re-checked on every redirect hop, so a redirect cannot smuggle you onto a blocked host
sha256No64 hex characters. On mismatch the install fails with Plugin archive integrity check failed
Размер архивов ограничен 256 MiB. Фиксируйте sha256 для всего, что вы не собирали сами, - иначе тот, кто контролирует URL, контролирует и код, выполняемый в вашей сессии.

Источник command (v2.1.229+)

Позвольте локально установленному инструменту самому определить, где будет размещён плагин. Удобно, когда внутренний пакетный менеджер уже умеет скачивать и раскладывать ваши плагины.

json
{
  "source": "command",
  "command": "acme-plugin-resolver --print-dir",
  "timeout": 60,
  "mode": "copy"
}

Контракт строгий: команда должна вывести в stdout ровно одну строку и завершиться с кодом 0. Эта строка - абсолютный путь к каталогу, содержащему плагин целиком.

FieldRequiredDefaultNotes
commandYes-The command to run
timeoutNo60 (seconds)Maximum 600
modeNo"copy""copy" snapshots the directory; "link" symlinks it, so edits are live
Команда повторно разрешается в каждой сессии, и результат применяется без перезапуска.
Организации могут полностью запретить этот тип источника с помощью disableCommandPluginSources.

Список зарезервированных имён marketplace теперь включает first-party-plugins и healthcare (v2.1.205) - они закреплены за официальным использованием и не могут быть заняты пользовательским marketplace.

Способы распространения

GitHub (рекомендуется):

bash
# Users add your marketplace
/plugin marketplace add owner/repo-name

Другие git-сервисы (требуется полный URL):

bash
/plugin marketplace add https://gitlab.com/org/marketplace-repo.git

URL репозиториев gitlab.com без указания схемы - включая вложенные подгруппы - клонируются так же, как URL github.com (v2.1.232). Схема обязательна: начиная с v2.1.196, gitlab.example.com/team/plugins без схемы отклоняется как некорректное сокращение вида owner/repo, поэтому используйте полную форму https://gitlab.com/company/plugins.git. В v2.1.232 также добавлено маскирование секретов из семейства токенов GitLab, а CLI glab получил ту же изоляцию в sandbox и защиту путей к учётным данным, что уже были у gh.

Приватные репозитории: поддерживаются через git credential helpers или токены в переменных окружения. У пользователя должен быть доступ на чтение к репозиторию.

Публикация в официальном marketplace: отправляйте плагины в курируемый Anthropic marketplace для более широкого распространения через claude.ai/settings/plugins/submit или platform.claude.com/plugins/submit.

Управление marketplace

bash
# Marketplace CLI commands
claude plugin marketplace add <source>       # Add marketplace (GitHub, URL, local)
claude plugin marketplace update [name]      # Refresh catalog index
claude plugin marketplace remove <name>      # Remove marketplace
claude plugin marketplace list               # List configured marketplaces

Важно: команда marketplace update лишь обновляет каталог плагинов (список доступных для установки). Она НЕ обновляет уже установленные плагины. Для обновления конкретных установленных плагинов используйте plugin update <name>.

Строгий режим

Управление тем, как описания из marketplace взаимодействуют с локальными файлами plugin.json:

SettingBehavior
strict: true (default)Local plugin.json is authoritative; marketplace entry supplements it
strict: falseMarketplace entry is the entire plugin definition
Ограничения на уровне организации с strictKnownMarketplaces:
ValueEffect
---------------
Not setNo restrictions - users can add any marketplace
Empty array []Lockdown - no marketplaces allowed
Array of patternsAllowlist - only matching marketplaces can be added
json
{
  "strictKnownMarketplaces": [
    "my-org/*",
    "github.com/trusted-vendor/*"
  ]
}

Внимание: В строгом режиме с strictKnownMarketplaces пользователи могут устанавливать плагины только из маркетплейсов, включённых в белый список. Это удобно для корпоративных сред, где требуется контролируемое распространение плагинов.

Установка плагинов и жизненный цикл

graph LR A["Discover"] -->|Browse| B["Marketplace"] B -->|Select| C["Plugin Page"] C -->|View| D["Components"] D -->|Install| E["/plugin install"] E -->|Extract| F["Configure"] F -->|Activate| G["Use"] G -->|Check| H["Update"] H -->|Available| G G -->|Done| I["Disable"] I -->|Later| J["Enable"] J -->|Back| G

Сравнение возможностей плагинов

FeatureSlash CommandSkillSubagentPlugin
InstallationManual copyManual copyManual configOne command
Setup Time5 minutes10 minutes15 minutes2 minutes
BundlingSingle fileSingle fileSingle fileMultiple
VersioningManualManualManualAutomatic
Team SharingCopy fileCopy fileCopy fileInstall ID
UpdatesManualManualManualAuto-available
DependenciesNoneNoneNoneMay include
MarketplaceNoNoNoYes
DistributionRepositoryRepositoryRepositoryMarketplace

CLI-команды для плагинов

Все операции с плагинами доступны в виде CLI-команд:

bash
claude plugin install <name>@<marketplace>   # Install from a marketplace
claude plugin uninstall <name>               # Remove a plugin
claude plugin update <name>                  # Update installed plugin to latest version
claude plugin list                           # List installed plugins
claude plugin enable <name>                  # Enable a disabled plugin
claude plugin disable <name>                 # Disable a plugin
claude plugin validate <path>                # Validate the plugin structure at <path>
claude plugin tag [path]                     # Create a {name}--v{version} release git tag (v2.1.118+)
claude plugin prune                          # Remove orphaned auto-installed plugin dependencies (v2.1.121+)
claude plugin uninstall <name> --prune       # Uninstall and cascade-clean orphaned dependencies (v2.1.121+)
claude plugin details <name>                 # Show inventory + projected per-turn token cost (v2.1.139+)
claude plugin init <name>                    # Scaffold a new plugin (alias: claude plugin new)

Псевдонимы: claude plugin new - для init, remove / rm - для uninstall, ls - для list, autoremove - для prune.

Полезные флаги:

CommandFlagPurpose
plugin init--with <components...>Scaffold specific component folders: skills, agents, hooks, mcp, lsp, output-style, channel
plugin init-f, --forceOverwrite an existing .claude-plugin/ directory
plugin install--config <key=value>Set a userConfig option at install time
plugin install-y, --yesAccept commands without a confirmation prompt
plugin list--availableAlso list plugins available from marketplaces (requires --json)
plugin tag--pushPush the tag to the remote after creating it
plugin tag--dry-runPrint what would be tagged without creating the tag
plugin validate--strictTreat warnings as errors
plugin validate--jsonEmit a machine-readable validation report (v2.1.259+)
Пример: claude plugin tag ./my-plugin принимает путь к плагину (а не строку с версией). Команда создаёт git-тег вида {name}--v{version} на основе plugin.json, проверяя согласованность plugin.json с содержащей его записью marketplace, и является рекомендуемым способом выпуска релизов плагинов для распространения.

claude plugin prune полезна после установки или удаления marketplace-плагинов, которые притянули собственные зависимости: она удаляет автоматически установленные плагины, чей родительский плагин был впоследствии удалён. plugin uninstall --prune выполняет тот же каскад за один шаг.

Контроль зависимостей (v2.1.143): claude plugin disable <name> отклоняет операцию, если другой включённый плагин по-прежнему зависит от целевого (иначе граф зависимостей был бы нарушен). claude plugin enable <name> принудительно включает транзитивные зависимости после одного общего подтверждения, вместо того чтобы запрашивать включение для каждой по отдельности. Используйте claude plugin prune, чтобы вычистить зависимости, зависимые от которых плагины были впоследствии удалены.

claude plugin details <name> (v2.1.139+)

claude plugin details <name> выводит полный перечень компонентов плагина - skills, hooks, MCP servers, LSP servers, фоновые мониторы, slash-команды - а также прогнозируемую стоимость в токенах на ход (и на вызов). Используйте её, чтобы оценить «вес» плагина перед внедрением, особенно на моделях с ограниченным контекстом.

Пример вывода (сокращённо):

text
plugin: code-reviewer (1.2.0)
skills:        3      hooks: 2      mcp: 1      lsp: 0      monitors: 0
commands:      /review, /security-review
projected ctx: +1,420 tokens per turn  ·  +9,800 tokens per /review invocation

LSP-серверы были добавлены на панель сведений в v2.1.142. См. также прогнозируемую стоимость контекста на панели обзора маркетплейса (v2.1.143), описанную в разделе Plugin Marketplace.

Способы установки

Из Marketplace

bash
/plugin install plugin-name
# or from CLI:
claude plugin install plugin-name@marketplace-name

Вступает ли изменение в силу сразу? Начиная с v2.1.221 - как правило, да. Обратите внимание на последнюю строку в сводке установки:

Install summary saysWhat it means
Plugin is now active.Claude Code activated the plugin as part of the install. Nothing more to do.
Run /reload-plugins to activate.The plugin is installed but not live yet - either activating it would have invalidated the prompt cache, or the activation attempt failed.
До версии v2.1.221 установка плагина не применялась к текущей сессии до тех пор, пока вы не выполняли
/reload-plugins или не перезапускали Claude Code, поэтому в старых руководствах этот шаг описан как обязательный.

Включение и отключение (с автоопределением области действия)

bash
/plugin enable plugin-name
/plugin disable plugin-name

Интерфейс /plugin показывает неиспользуемые плагины, чтобы их можно было удалить (v2.1.187+). Включение и отключение также работают в случаях, когда поле name в plugin.json плагина отличается от имени его записи в маркетплейсе (v2.1.195+).

Просмотр списка установленных плагинов (v2.1.163)

Проверьте, какие плагины активны в текущей сессии:

bash
/plugin list             # all installed plugins
/plugin list --enabled   # only enabled plugins
/plugin list --disabled  # only disabled plugins

Локальный плагин (для разработки)

bash
# CLI flag for local testing (repeatable for multiple plugins)
claude --plugin-dir ./path/to/plugin
claude --plugin-dir ./plugin-a --plugin-dir ./plugin-b

# --plugin-dir also accepts a .zip archive path (v2.1.128+)
claude --plugin-dir ./my-plugin.zip

# Fetch a plugin .zip archive from a URL for the current session (v2.1.129+, repeatable)
claude --plugin-url https://example.com/releases/my-plugin-0.3.0.zip

Из Git-репозитория

bash
/plugin install github:username/repo

Автообновление

Claude Code может автоматически обновлять маркетплейсы и установленные из них плагины при запуске.

Marketplace TypeAuto-Update DefaultHow to Toggle
Official (claude-plugins-official)✅ Enabled/plugin → Marketplaces → Select
Third-party / Local❌ DisabledSame UI path
При запуске автообновления Claude Code:
  1. Обновляет каталог marketplace
  2. Обновляет установленные плагины до последних версий
  3. Сообщает результат по каждому плагину: Plugin is now active. - если Claude Code активировал его в рамках обновления, либо Run /reload-plugins to activate. - если активация не была выполнена

Переменные окружения

VariableEffect
DISABLE_AUTOUPDATER=1Disable all auto-updates (Claude Code + plugins)
DISABLE_AUTOUPDATER=1 + FORCE_AUTOUPDATE_PLUGINS=1Keep plugin updates, disable Claude Code updates
CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1(v2.1.141+) Force claude plugin install to clone GitHub plugin sources over HTTPS instead of SSH, even when an SSH remote is available. Use in CI runners or containers without SSH keys.
bash
# Disable all auto-updates
export DISABLE_AUTOUPDATER=1

# Keep plugin auto-updates only
export DISABLE_AUTOUPDATER=1
export FORCE_AUTOUPDATE_PLUGINS=1

# CI runner without SSH keys - force HTTPS for plugin installs
export CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1
claude plugin install code-reviewer@anthropic

Загрузка плагинов в удалённых сессиях (v2.1.179): в версии v2.1.179 ускорена загрузка плагинов в удалённых сессиях, поэтому при подключении к такой сессии плагины становятся доступны быстрее.

Когда стоит создавать плагин

graph TD A["Should I create a plugin?"] A -->|Need multiple components| B{"Multiple commands<br/>or subagents<br/>or MCPs?"} B -->|Yes| C["✅ Create Plugin"] B -->|No| D["Use Individual Feature"] A -->|Team workflow| E{"Share with<br/>team?"} E -->|Yes| C E -->|No| F["Keep as Local Setup"] A -->|Complex setup| G{"Needs auto<br/>configuration?"} G -->|Yes| C G -->|No| D

Сценарии использования плагинов

Use CaseRecommendationWhy
Team Onboarding✅ Use PluginInstant setup, all configurations
Framework Setup✅ Use PluginBundles framework-specific commands
Enterprise Standards✅ Use PluginCentral distribution, version control
Quick Task Automation❌ Use CommandOverkill complexity
Single Domain Expertise❌ Use SkillToo heavy, use skill instead
Specialized Analysis❌ Use SubagentCreate manually or use skill
Live Data Access❌ Use MCPStandalone, don't bundle

Тестирование плагина

Перед публикацией протестируйте плагин локально с помощью CLI-флага --plugin-dir (его можно указывать несколько раз для подключения нескольких плагинов):

bash
claude --plugin-dir ./my-plugin
claude --plugin-dir ./my-plugin --plugin-dir ./another-plugin

# --plugin-dir accepts .zip archives in addition to directories (v2.1.128+)
claude --plugin-dir ./my-plugin.zip

# --plugin-url fetches a plugin .zip from a URL for this session (v2.1.129+, repeatable)
claude --plugin-url https://example.com/releases/my-plugin-0.3.0.zip

Это запустит Claude Code с загруженным плагином и позволит:

  • убедиться, что все slash-команды доступны;
  • проверить корректность работы subagents и агентов;
  • подтвердить, что MCP-серверы подключаются без ошибок;
  • проверить выполнение hooks;
  • проверить настройки LSP-серверов;
  • выявить возможные ошибки конфигурации.

Hot-Reload

Плагины поддерживают hot-reload в процессе разработки. При изменении файлов плагина Claude Code способен автоматически отслеживать изменения. Также можно принудительно выполнить перезагрузку с помощью:

bash
/reload-plugins

Это повторно считывает все манифесты плагинов, команды, агенты, skills, hooks и конфигурации MCP/LSP без перезапуска сессии.

Управляемые настройки для плагинов

Администраторы могут управлять поведением плагинов в рамках всей организации с помощью managed settings:

SettingDescription
enabledPluginsAllowlist of plugins that are enabled by default
deniedPluginsBlocklist of plugins that cannot be installed
extraKnownMarketplacesAdd additional marketplace sources beyond the defaults
strictKnownMarketplacesRestrict which marketplaces users are allowed to add (managed-only; enforced on every plugin lifecycle event since v2.1.117)
blockedMarketplacesBlocklist of marketplaces; enforced on every plugin lifecycle event since v2.1.117; supports hostPattern / pathPattern regex fields since v2.1.119
allowedChannelPluginsControl which plugins are permitted per release channel
disableCommandPluginSourcesBlock the command plugin source type org-wide (v2.1.229+)

Более удобные псевдонимы (v2.1.232): additionalMarketplaces принимается как алиас для extraKnownMarketplaces, а allowedMarketplaces - для strictKnownMarketplaces. Источник - changelog: об этих алиасах объявлено в changelog v2.1.232, однако в официальном справочнике настроек они пока не упомянуты. Канонические ключи можно спокойно продолжать использовать.

Wildcard'ы для владельца (v2.1.223+): запись вида "owner/*" разрешает или блокирует все marketplace-репозитории одного GitHub-владельца. Принимается только в strictKnownMarketplaces и blockedMarketplaces. Во всех остальных местах, где встречается источник github, - включая extraKnownMarketplaces и /plugin marketplace add - значение repo должно указывать на конкретный репозиторий.

Эти настройки можно применять на уровне организации через управляемые конфигурационные файлы; они имеют приоритет над пользовательскими настройками.

Безопасность плагинов

Subagent'ы плагинов выполняются в изолированном sandbox с ограничениями. Следующие ключи frontmatter запрещены в определениях subagent'ов плагина:

  • hooks - subagent'ы не могут регистрировать обработчики событий
  • mcpServers - subagent'ы не могут настраивать MCP-серверы
  • permissionMode - subagent'ы не могут переопределять модель разрешений

Это гарантирует, что плагины не смогут повысить привилегии или изменить host-окружение за пределами заявленной области действия.

Публикация плагина

Шаги публикации:

  1. Создайте структуру плагина со всеми компонентами
  2. Напишите манифест .claude-plugin/plugin.json
  3. Создайте README.md с документацией
  4. Протестируйте локально командой claude --plugin-dir ./my-plugin
  5. Поставьте tag на релиз с помощью claude plugin tag ./my-plugin (v2.1.118+) - команда принимает путь к плагину и создаёт git-тег вида {name}--v{version} на основе plugin.json
  6. Отправьте плагин в marketplace
  7. Пройдите review и получите одобрение
  8. Плагин публикуется в marketplace
  9. Пользователи смогут установить его одной командой

Пример заявки на публикацию:

markdown
# PR Review Plugin

## Description
Complete PR review workflow with security, testing, and documentation checks.

## What's Included
- 3 slash commands for different review types
- 3 specialized subagents
- GitHub and CodeQL MCP integration
- Automated security scanning hooks

## Installation
```bash
/plugin install pr-review

Features

✅ Security analysis ✅ Test coverage checking ✅ Documentation verification ✅ Code quality assessment ✅ Performance impact analysis

Usage

bash
Текущая дата: воскресенье, 6 сентября 2026 г.

<query>
/review-pr
/check-security
/check-tests
</query>

Requirements

  • Claude Code 2.1+
  • GitHub access
  • CodeQL (optional)
CODE
## Плагин vs ручная настройка

**Ручная настройка (2+ часа):**
- Устанавливать slash-команды по одной
- Создавать subagents по отдельности
- Настраивать MCP отдельно
- Вручную настраивать hooks
- Всё документировать
- Раздать команде (и надеяться, что у всех настроится правильно)

**С плагином (2 минуты):**
```bash
/plugin install pr-review
# ✅ Everything installed and configured
# ✅ Ready to use immediately
# ✅ Team can reproduce exact setup

Рекомендации

Что делать ✅

  • Используйте понятные, описательные имена плагинов
  • Включайте подробный README
  • Корректно версионируйте плагин (semver)
  • Тестируйте все компоненты вместе
  • Чётко документируйте требования
  • Приводите примеры использования
  • Реализуйте обработку ошибок
  • Проставляйте подходящие теги для поиска
  • Поддерживайте обратную совместимость
  • Делайте плагины сфокусированными и целостными
  • Покрывайте функциональность тестами
  • Документируйте все зависимости

Чего не делать ❌

  • Не объединяйте несвязанные возможности в одном плагине
  • Не зашивайте учётные данные в код
  • Не пропускайте тестирование
  • Не забывайте про документацию
  • Не создавайте дублирующие плагины
  • Не игнорируйте версионирование
  • Не усложняйте зависимости между компонентами
  • Не забывайте корректно обрабатывать ошибки

Инструкции по установке

Установка из Marketplace

  1. Просмотр доступных плагинов:

    bash
    /plugin list
    
  2. Просмотр информации о плагине:

    bash
    claude plugin details plugin-name
    
  3. Установка плагина:

    bash
    /plugin install plugin-name
    

Установка из локального пути

bash
/plugin install ./path/to/plugin-directory

Установка из GitHub

bash
/plugin install github:username/repo

Список установленных плагинов

bash
/plugin list             # all installed plugins
/plugin list --enabled   # only enabled plugins
/plugin list --disabled  # only disabled plugins

Обновление плагина

Используйте вариант из CLI - именно он описан в документации по команде plugin update и именно на него ссылается сам Claude Code, когда доступно обновление:

bash
claude plugin update plugin-name

Отключение/включение плагина

bash
# Temporarily disable
/plugin disable plugin-name

# Re-enable
/plugin enable plugin-name

Удаление плагина

bash
/plugin uninstall plugin-name

Связанные концепции

Следующие возможности Claude Code работают совместно с плагинами:

  • Slash-команды - отдельные команды, входящие в состав плагинов
  • Memory - постоянный контекст для плагинов
  • Skills - предметная экспертиза, которую можно упаковать в плагины
  • Субагенты - специализированные агенты, включаемые в качестве компонентов плагина
  • MCP-серверы - интеграции по протоколу Model Context Protocol, поставляемые в составе плагинов
  • Hooks - обработчики событий, запускающие сценарии работы плагинов

Полный пример рабочего процесса

Полный рабочий процесс плагина PR Review

CODE
1. User: /review-pr

2. Plugin executes:
   ├── pre-review.js hook validates git repo
   ├── GitHub MCP fetches PR data
   ├── security-reviewer subagent analyzes security
   ├── test-checker subagent verifies coverage
   └── performance-analyzer subagent checks performance

3. Results synthesized and presented:
   ✅ Security: No critical issues
   ⚠️  Testing: Coverage 65% (recommend 80%+)
   ✅ Performance: No significant impact
   📝 12 recommendations provided

Устранение неполадок

Плагин не устанавливается

  • Проверьте совместимость версии Claude Code: /version
  • Проверьте синтаксис plugin.json с помощью JSON-валидатора
  • Проверьте интернет-соединение (для удалённых плагинов)
  • Проверьте права доступа: ls -la plugin/

Компоненты не загружаются

  • Убедитесь, что пути в plugin.json соответствуют фактической структуре каталогов
  • Проверьте права доступа к файлам: chmod +x scripts/
  • Проверьте синтаксис файла компонента
  • Просмотрите список компонентов: claude plugin details plugin-name

Не удалось подключиться к MCP

  • Убедитесь, что переменные окружения заданы корректно
  • Проверьте установку и работоспособность MCP-сервера
  • Протестируйте подключение к MCP отдельно с помощью /mcp test
  • Проверьте конфигурацию MCP в каталоге mcp/

Команды недоступны после установки

  • Убедитесь, что плагин установлен успешно: /plugin list
  • Проверьте, включён ли плагин: /plugin list --enabled
  • Проверьте, активен ли он уже - см. пояснения к сводке установки в разделе Методы установки: сообщение Plugin is now active. не требует действий, а Run /reload-plugins to activate. означает, что нужно выполнить указанную команду (перезапуск не требуется)
  • Проверьте, нет ли конфликтов имён с существующими командами

Проблемы с выполнением hooks

  • Убедитесь, что у файлов hooks выставлены корректные права доступа
  • Проверьте синтаксис hooks и имена событий
  • Изучите логи hooks - там будут подробности об ошибках
  • По возможности протестируйте hooks вручную

Дополнительные материалы


Последнее обновление: 6 сентября 2026 г. Версия Claude Code: 2.1.263 Источники:

ЛОКАЛЬНАЯ ОТМЕТКА · БЕЗ ПРОВЕРКИ
←ПРЕДЫДУЩИЙHooks
СЛЕДУЮЩИЙCheckpoints and Rewind→