SpyBara
Go Premium

agent-sdk/plugins.md 2026-05-14 17:02 UTC to 2026-05-15 22:58 UTC

16 added, 10 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

Plugins dans le SDK

Chargez des plugins personnalisés pour étendre Claude Code avec des commandes, des agents, des skills et des hooks via le SDK Agent

Les plugins vous permettent d'étendre Claude Code avec des fonctionnalités personnalisées qui peuvent être partagées entre les projets. Via le SDK Agent, vous pouvez charger programmatiquement des plugins à partir de répertoires locaux pour ajouter des slash commands personnalisées, des agents, des skills, des hooks et des serveurs MCP à vos sessions d'agent.

Que sont les plugins ?

Les plugins sont des packages d'extensions Claude Code qui peuvent inclure :

  • Skills : Capacités invoquées par le modèle que Claude utilise de manière autonome (peuvent également être invoquées avec /skill-name)
  • Agents : Sous-agents spécialisés pour des tâches spécifiques
  • Hooks : Gestionnaires d'événements qui répondent à l'utilisation d'outils et à d'autres événements
  • Serveurs MCP : Intégrations d'outils externes via Model Context Protocol

Pour des informations complètes sur la structure des plugins et comment créer des plugins, consultez Plugins.

Chargement des plugins

Chargez les plugins en fournissant leurs chemins du système de fichiers local dans votre configuration d'options. Le champ type doit être "local", la seule valeur que le SDK accepte. Pour utiliser un plugin distribué via une marketplace ou un référentiel distant, téléchargez-le d'abord et fournissez le chemin du répertoire local. Le SDK supporte le chargement de plusieurs plugins à partir de différents emplacements.

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
prompt: "Hello",
options: {
plugins: [
{ type: "local", path: "./my-plugin" },
{ type: "local", path: "/absolute/path/to/another-plugin" }
]
}
})) {
// Plugin commands, agents, and other features are now available
}

Spécifications des chemins

Les chemins des plugins peuvent être :

  • Chemins relatifs : Résolus par rapport à votre répertoire de travail actuel (par exemple, "./plugins/my-plugin")
  • Chemins absolus : Chemins complets du système de fichiers (par exemple, "/home/user/plugins/my-plugin")

Vérification de l'installation du plugin

Lorsque les plugins se chargent avec succès, ils apparaissent dans le message d'initialisation du système. Vous pouvez vérifier que vos plugins sont disponibles :

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
prompt: "Hello",
options: {
plugins: [{ type: "local", path: "./my-plugin" }]
}
})) {
if (message.type === "system" && message.subtype === "init") {
// Check loaded plugins
console.log("Plugins:", message.plugins);
// Example: [{ name: "my-plugin", path: "./my-plugin" }]

// Check available commands from plugins
console.log("Commands:", message.slash_commands);
// Example: ["/help", "/compact", "my-plugin:custom-command"]
}
}

Utilisation des skills des plugins

Les skills des plugins sont automatiquement espacés de noms avec le nom du plugin pour éviter les conflits. Lorsqu'ils sont invoqués en tant que slash commands, le format est plugin-name:skill-name.

import { query } from "@anthropic-ai/claude-agent-sdk";

// Load a plugin with a custom /greet skill
for await (const message of query({
prompt: "/my-plugin:greet", // Use plugin skill with namespace
options: {
plugins: [{ type: "local", path: "./my-plugin" }]
}
})) {
// Claude executes the custom greeting skill from the plugin
if (message.type === "assistant") {
console.log(message.message.content);
}
}

Exemple complet

Voici un exemple complet démontrant le chargement et l'utilisation des plugins :

import { query } from "@anthropic-ai/claude-agent-sdk";
import * as path from "path";

async function runWithPlugin() {
const pluginPath = path.join(__dirname, "plugins", "my-plugin");

console.log("Loading plugin from:", pluginPath);

for await (const message of query({
prompt: "What custom commands do you have available?",
options: {
plugins: [{ type: "local", path: pluginPath }],
maxTurns: 3
}
})) {
if (message.type === "system" && message.subtype === "init") {
console.log("Loaded plugins:", message.plugins);
console.log("Available commands:", message.slash_commands);
}

if (message.type === "assistant") {
console.log("Assistant:", message.message.content);
}
}
}

runWithPlugin().catch(console.error);

Référence de la structure des plugins

Un répertoire de plugin doit contenir un fichier manifeste .claude-plugin/plugin.json. Il peut optionnellement inclure :

my-plugin/
├── .claude-plugin/
│   └── plugin.json          # Required: plugin manifest
├── skills/                   # Agent Skills (invoked autonomously or via /skill-name)
│   └── my-skill/
│       └── SKILL.md
├── commands/                 # Legacy: use skills/ instead
│   └── custom-cmd.md
├── agents/                   # Custom agents
│   └── specialist.md
├── hooks/                    # Event handlers
│   └── hooks.json
└── .mcp.json                # MCP server definitions

Pour des informations détaillées sur la création de plugins, consultez :

Cas d'usage courants

Développement et test

Chargez les plugins pendant le développement sans les installer globalement :

plugins: [{ type: "local", path: "./dev-plugins/my-plugin" }];

Extensions spécifiques au projet

Incluez les plugins dans votre référentiel de projet pour la cohérence à l'échelle de l'équipe :

plugins: [{ type: "local", path: "./project-plugins/team-workflows" }];

Plusieurs sources de plugins

Combinez les plugins de différents emplacements :

plugins: [
  { type: "local", path: "./local-plugin" },
  { type: "local", path: "~/.claude/custom-plugins/shared-plugin" }
];

Dépannage

Plugin ne se charge pas

Si votre plugin n'apparaît pas dans le message d'initialisation :

  1. Vérifiez le chemin : Assurez-vous que le chemin pointe vers le répertoire racine du plugin (contenant .claude-plugin/)
  2. Validez plugin.json : Assurez-vous que votre fichier manifeste a une syntaxe JSON valide
  3. Vérifiez les permissions de fichier : Assurez-vous que le répertoire du plugin est lisible

Les skills n'apparaissent pas

Si les skills des plugins ne fonctionnent pas :

  1. Utilisez l'espace de noms : Les skills des plugins nécessitent le format plugin-name:skill-name lorsqu'ils sont invoqués en tant que slash commands
  2. Vérifiez le message d'initialisation : Vérifiez que le skill apparaît dans slash_commands avec l'espace de noms correct
  3. Validez les fichiers de skill : Assurez-vous que chaque skill a un fichier SKILL.md dans son propre sous-répertoire sous skills/ (par exemple, skills/my-skill/SKILL.md)

Problèmes de résolution de chemin

Si les chemins relatifs ne fonctionnent pas :

  1. Vérifiez le répertoire de travail : Les chemins relatifs sont résolus à partir de votre répertoire de travail actuel
  2. Utilisez des chemins absolus : Pour la fiabilité, envisagez d'utiliser des chemins absolus
  3. Normalisez les chemins : Utilisez les utilitaires de chemin pour construire les chemins correctement

Voir aussi