Cours
Chaque lundi, quelqu’un ouvre Claude, colle les mêmes 40 lignes de contexte sur l’entrepôt et demande les mêmes chiffres hebdomadaires. Le mardi, ce contexte a disparu et l’analyste suivant en colle une variante légèrement différente. Un plugin permet de garder ce type de tâches cohérentes et vérifiables.
Au terme de ce tutoriel, vous aurez installé un plugin dans Claude Cowork, l’aurez adapté à vos propres tables et aurez construit un plugin fonctionnel depuis une page blanche.
Vous avez besoin de 2 éléments : un abonnement payant Claude (Pro, Max, Team ou Enterprise) et l’application de bureau Claude pour macOS ou Windows, qui est celle présentée dans les captures. Aucun terminal ni Python requis. Je mentionnerai la voie en ligne de commande pour les adeptes, mais elle est optionnelle.
Une précision avant de commencer : le 16 septembre 2026, Anthropic a commencé à fusionner Chat et Cowork en un seul Claude pour les comptes Pro et Max, il est donc possible que votre zone de saisie ne propose plus d’option Cowork distincte. La page Customize, où vivent les plugins, est identique dans les deux cas, et je donnerai les libellés exacts des menus au fil du guide.
Si vous préférez vous entraîner pas à pas, le cours Building Claude Cowork Plugins de DataCamp vous guide dans l’installation, l’adaptation et la création de votre propre plugin, sans écrire de code.
En bref
- Un plugin Cowork est un dossier de fichiers Markdown et JSON qui apprend un métier à Claude.
- Vous l’installez depuis la page Customize en quelques clics.
- Les plugins se personnalisent facilement via l’option Edit with Claude.
- Vous pouvez aussi construire un plugin Cowork en écrivant 2 courts fichiers de skill, un manifest à 6 champs et un fichier de connecteur, puis en zippant le dossier pour le téléverser.
- Pour partager des plugins avec votre équipe, poussez-les sur un dépôt GitHub avec un fichier marketplace.json et ajoutez le marketplace, ou utilisez Publish to org pour les comptes Team/Enterprise.
Présentation des modèles Claude
Qu’est-ce qu’un plugin Claude Cowork ?
Un plugin Claude Cowork est un package installable qui regroupe tout ce dont Claude a besoin pour agir en spécialiste. Il inclut notamment des compétences (skills) de flux de travail, des commandes slash, des connecteurs adéquats, ainsi que les sous-agents et hooks nécessaires. L’annonce d’Anthropic le résume en une phrase :
"Plugins let you bundle any skills, connectors, slash commands, and sub-agents together to turn Claude into a specialist for your role, team, and company."
Les plugins sont arrivés dans Cowork le 30 janvier 2026, en préversion de recherche pour les utilisateurs payants, avec 11 plugins open source créés par les équipes d’Anthropic. Une deuxième vague le 24 février 2026 a ajouté des plugins pour les RH, le design, l’ingénierie, les opérations, l’analyse financière, 4 plugins pour les services financiers, des plugins partenaires de Slack, S&P Global et LSEG, ainsi que des formulaires structurés pour les commandes slash. Cowork a quitté la préversion et est devenu généralement disponible le 9 avril 2026.
L’endroit où les plugins s’exécutent déconcerte souvent. Voici donc la réponse actuelle issue de l’article du centre d’aide sur les plugins d’Anthropic. Un plugin que vous ajoutez est enregistré dans votre compte Claude, pas sur votre ordinateur : il vous suit donc dans le chat web, l’appli de bureau, Cowork et Claude Code (la version 2.1.273 ou ultérieure synchronise automatiquement). Les skills et commandes fonctionnent partout, tandis que les hooks et sous-agents ne tournent que dans Cowork et Claude Code et apparaissent grisés dans le chat.
Si vous n’avez pas encore utilisé Cowork lui-même, notre tutoriel Claude Cowork présente l’application, et la comparaison Claude Cowork vs Claude Code explique pourquoi un même plugin peut faire davantage dans l’un que dans l’autre. Je ne reviens pas ici sur Cowork.
Ce que regroupe un plugin
Le tableau ci-dessous liste les 5 composants qu’un plugin peut contenir, leur rôle et le moment où ils se déclenchent.
|
Composant |
Rôle |
Quand il se déclenche |
|
Skill |
Un fichier |
Automatiquement, quand Claude juge que la tâche correspond à la description du skill. Vous pouvez aussi l’exécuter par nom après |
|
Commande slash |
Une action nommée avec ses propres instructions, par exemple |
Manuellement, quand vous la tapez. Dans Cowork, Claude peut poser une question structurée avant de démarrer. |
|
Connecteur (MCP) |
Un lien vers un service externe via le Model Context Protocol (MCP) : Snowflake, BigQuery, Slack, etc. |
Quand Claude appelle l’un des outils du service, après que vous avez connecté le service une fois. |
|
Sous-agent |
Un spécialiste auquel Claude peut déléguer une partie d’une tâche, avec son propre prompt et sa liste d’outils |
Quand Claude décide de déléguer. Cowork et Claude Code uniquement. |
|
Hook |
Un script ou un prompt qui s’exécute à un événement de session, par exemple juste avant un appel d’outil |
À chaque occurrence de l’événement. Cowork et Claude Code uniquement. |
Les skills se déclenchent quand Claude les juge pertinents, et les commandes quand vous tapez /. Cette distinction décide quoi vérifier quand un plugin semble inactif ; j’y reviens dans la section vérification. Si les sous-agents sont nouveaux pour vous, notre cours Introduction to AI Agents présente le schéma de délégation sans code.
Plugin vs skill
Un skill enseigne à Claude une tâche dans un seul fichier SKILL.md. Un plugin est l’ensemble packagé des skills, commandes et connecteurs pour une fonction métier complète : le plugin Data contient par exemple 10 skills. Le plugin est l’unité que vous installez, tandis que le skill est l’unité que vous modifiez. Notre guide sur les Claude Skills détaille le format si vous souhaitez approfondir.
Où trouver des plugins Cowork
Les plugins Cowork proviennent de 3 sources, et vous utiliserez la première pour la majeure partie de cet article :
- Les marketplaces intégrées à Cowork. Le marketplace Knowledge Work est ajouté par défaut à chaque compte. Les marketplaces Life Sciences, Financial Services et Legal d’Anthropic se trouvent via Add, Add marketplace, puis Browse Anthropic sources.
- L’annuaire sur claude.com/plugins. Il répertorie plus de 300 plugins, avec un filtre indiquant s’ils fonctionnent avec Claude, Claude Code ou les deux.
- Le dépôt anthropics/knowledge-work-plugins sur GitHub. C’est la source Apache-2.0 de tous les plugins de rôle créés par Anthropic, et là que j’ai lu les fichiers cités ci-dessous.
Deux autres voies d’installation existent : ajouter n’importe quel dépôt Git comme marketplace via son URL ou le raccourci owner/repo (GitHub, GitHub Enterprise, et dépôts publics GitLab et Bitbucket), ou téléverser directement un plugin sous forme d’archive .zip ou .plugin jusqu’à 200 Mo.
L’offre par rôles couvre de nombreux domaines : productivité, ventes, support client, product management, marketing, juridique, finance, data, recherche en entreprise, RH, design, ingénierie, opérations, recherche biologique et petites entreprises, ainsi que des plugins partenaires. Cet article n’est pas un panorama : choisissez celui qui correspond à votre métier et poursuivez la lecture.
Que contient un plugin Cowork ?
Un plugin Cowork est un dossier avec un manifest dans un sous-dossier caché et le reste à la racine. Voici l’arborescence complète, avec les composants ; seules certaines surfaces sont chargées comme indiqué :
my-plugin/
├── .claude-plugin/
│ └── plugin.json # manifest (required)
├── skills/
│ └── <name>/SKILL.md # skills: auto-triggered knowledge & named actions
├── commands/
│ └── <name>.md # legacy single-file slash commands (still work)
├── agents/
│ └── <name>.md # sub-agents (Cowork and Claude Code only)
├── hooks/
│ └── hooks.json # hooks (Cowork and Claude Code only)
├── .mcp.json # connectors
└── README.md
Gardez cet arbre en tête, car l’Étape 4 construit sa moitié supérieure fichier par fichier. La figure ci-dessous associe l’arborescence aux environnements d’exécution de chaque composant, d’après la table de support plateforme d’Anthropic.

Figure 1. Le dossier d’un plugin à gauche et, pour chaque composant, son déclenchement et les environnements (chat, Cowork, Claude Code) qui le chargent. Image de l’auteur.
Le manifest
Le manifest est .claude-plugin/plugin.json, et name est le seul champ obligatoire. Voici le manifest réel du plugin Data d’Anthropic, copié depuis le dépôt :
{
"name": "data",
"version": "1.1.0",
"description": "Write SQL, explore datasets, and generate insights faster. Build visualizations and dashboards, and turn raw data into clear stories for stakeholders.",
"author": {
"name": "Anthropic"
}
}
Trois points à retenir :
-
Le
nameest l’identité permanente du plugin et préfixe chaque composant : le skillwrite-querydevient/data:write-query. -
La chaîne
versionest le numéro de version visible du plugin, et le guide de build d’Anthropic indique de l’incrémenter à chaque publication. -
Les champs optionnels incluent
displayName,license,homepageetkeywords.
Skills et commandes
Un skill se trouve dans skills/<name>/SKILL.md : un court bloc de paramètres entre lignes --- (frontmatter YAML), puis les instructions pour Claude. Voici le début du skill write-query du plugin Data, celui que j’exécute à l’Étape 2 :
---
name: write-query
description: Write optimized SQL for your dialect with best practices. Use when translating a natural-language data need into SQL, building a multi-CTE query with joins and aggregations, optimizing a query against a large partitioned table, or getting dialect-specific syntax for Snowflake, BigQuery, Postgres, etc.
argument-hint: "<description of what data you need>"
---
# /write-query - Write Optimized SQL
La description est ce que lit Claude pour décider de charger le skill, et argument-hint indique ce que le skill attend que vous saisissiez. Deux indicateurs dans le frontmatter modifient le déclenchement :
-
user-invocable: falsele masque du menu/pour que seul Claude puisse le charger (le skillsql-queriesdu plugin est configuré ainsi) -
disable-model-invocation: truefait l’inverse, n’exécutant le skill que lorsque vous tapez son nom.
Les commandes sont l’ancien format : un fichier Markdown dans commands/<name>.md avec une description dans son frontmatter. Le skill d’auteur d’Anthropic indique désormais à Claude de "scaffolder de nouveaux plugins avec skills/*/SKILL.md" et qualifie le dossier commands/ d’hérité, car l’interface de Cowork présente les deux dans une seule liste de Skills. Les commandes restent prises en charge partout, vous les verrez donc encore dans des plugins plus anciens, mais l’Étape 4 utilise des skills.
Connecteurs
Le fichier .mcp.json à la racine du plugin liste les services externes accessibles, chacun comme une URL de serveur MCP. Voici les 3 premières entrées du plugin Data :
{
"mcpServers": {
"snowflake": {
"type": "http",
"url": ""
},
"databricks": {
"type": "http",
"url": ""
},
"bigquery": {
"type": "http",
"url": "https://bigquery.googleapis.com/mcp"
},
Les URLs vides sont des espaces réservés : Anthropic fournit l’endpoint BigQuery mais vous laisse renseigner Snowflake et Databricks avec l’adresse de votre serveur. Si MCP est nouveau pour vous, notre guide Model Context Protocol construit un serveur pas à pas.
Une contrainte peu visible : le centre d’aide d’Anthropic précise que "dans Cowork, les connecteurs accèdent aux services externes via le cloud d’Anthropic, et non via votre réseau local". Un connecteur personnalisé doit donc pointer vers un serveur "accessible sur Internet public depuis les plages d’IP d’Anthropic". Un entrepôt derrière un pare-feu ou un VPN ne se connectera pas tant que votre équipe réseau n’aura pas ajouté les adresses d’Anthropic à la liste d’autorisation.
Les serveurs MCP locaux, ceux qui lancent un programme sur votre machine, font exception : ils tournent dans Claude Code et dans des sessions Cowork exécutées sur votre ordinateur, et sont ignorés par le chat.
Depuis le 6 octobre 2026, les nouvelles tâches Pro et Max s’exécutent uniquement dans le cloud d’Anthropic, si bien que les sessions locales concernent surtout les offres Team et Enterprise.
Étape 1 : installer votre premier plugin
L’installation d’un plugin Cowork prend 6 étapes rapides sur la page Customize, identiques pour tout plugin du catalogue : les lecteurs côté vente ou juridique peuvent substituer le leur. J’utilise le plugin Data pour préparer l’exemple SQL de l’Étape 2.
1. Ouvrez Customize dans la barre latérale gauche de l’appli de bureau Claude. Si votre appli affiche encore un onglet Cowork, ouvrez-le d’abord.

2. Ouvrez l’onglet Plugins.

3. Vérifions que vous avez le marketplace Knowledge Work. Cliquez sur + Add, puis Add marketplace, puis Browse Anthropic sources.

4. Sélectionnez et ajoutez les plugins Knowledge Work.

5. Ouvrez l’onglet Discover. Le marketplace Knowledge Work doit y figurer. Cliquez sur le filtre Code.

6. Sélectionnez Data, puis cliquez sur Add. Certaines versions affichent Install.
La page du plugin récapitule ensuite le contenu : son onglet Skills affiche 10 skills, dont 7 exécutables par nom (analyze, explore-data, write-query, create-viz, build-dashboard, validate-data et data-context-extractor), et 3 qui se chargent en arrière-plan (sql-queries, data-visualization et statistical-analysis). Son fichier de connecteurs dans le dépôt liste Snowflake, Databricks, BigQuery, Definite, Hex, Amplitude (avec une entrée UE séparée) et Atlassian, et aucun n’est connecté tant que vous ne vous authentifiez pas. La page annuaire du plugin Data affichait 7 655 installations au 28 septembre 2026.
Si vous êtes à l’aise en terminal, le même plugin s’installe dans Claude Code avec 2 commandes issues du README du dépôt :
claude plugin marketplace add anthropics/knowledge-work-plugins
claude plugin install data@knowledge-work-plugins
Une différence compte : un plugin ajouté depuis Customize se synchronise vers Claude Code, alors qu’un plugin installé en ligne de commande reste sur cette machine et n’atteint jamais votre compte. Notre guide pour créer des plugins Claude Code couvre en détail le flux terminal ; je reste ici sur l’appli de bureau.
Sur les offres Team et Enterprise, un owner définit pour chaque plugin l’un des 4 états : non disponible, disponible à l’installation, installé par défaut ou obligatoire. Les admins Enterprise peuvent surcharger par groupe, d’où l’avertissement du centre d’aide : "les plugins visibles dans le catalogue peuvent différer de ceux que voient des collègues d’autres groupes". Si Data manque dans votre onglet Discover, demandez à un owner avant de conclure que le marketplace est en panne.
Étape 2 : connecter une source de données et exécuter une commande slash
Un plugin sans entrepôt connecté ne peut qu’écrire du SQL à copier-coller ailleurs ; la première vraie étape est donc de connecter une source. Ensuite, la commande slash prend le relais.
Autoriser un connecteur
Ajouter un plugin ne vous connecte à rien. Ouvrez l’onglet Connectors du plugin, où chaque entrée affiche 1 des 3 états : Connected, Not connected (le connecteur est sur votre compte, mais vous n’êtes pas connecté), ou Not added. Cliquez sur Add si besoin, puis Connect, et terminez la connexion au service dans votre navigateur.

Sur Team et Enterprise, un owner ajoute d’abord le connecteur pour l’organisation, puis vous vous connectez avec votre propre compte.
Utilisez des identifiants en lecture seule pour l’entrepôt, car un connecteur en écriture permet à Claude d’exécuter toute instruction exposée par ses outils, et en mode auto de Cowork, Claude décide lui-même de les appeler. Concrètement :
-
Pour Snowflake, un rôle avec
SELECTuniquement -
Pour BigQuery, un compte de service avec le rôle Data Viewer
-
Pour Databricks, un token limité à un SQL warehouse en lecture seule
Si vous débutez sur ces plateformes, notre guide débutant Snowflake et notre tutoriel BigQuery vous mènent à une première requête dans l’après-midi.
La connexion vit dans votre compte sous Customize puis Connectors : vous autorisez chaque service une fois, et tout autre plugin qui liste la même URL de serveur, comme l’entrée BigQuery du plugin Finance, la réutilisera.
Lancer votre première commande
La commande write-query transforme une question en langage naturel en SQL pour votre dialecte ; c’est l’artefact-clé que je souhaite que vous examiniez, car la section vérification y reviendra.
J’ai construit une petite base SQLite, shop.db, avec 4 tables typiques d’un entrepôt e-commerce et 1 600 commandes du 5 janvier au 27 septembre 2026. Le tableau ci-dessous définit le schéma ; toutes les requêtes de cet article s’appuient dessus.
|
Table |
Colonnes |
Une ligne = |
|
|
|
Un client (240 lignes) |
|
|
|
Un produit du catalogue dans 1 des 5 catégories (40 lignes) |
|
|
|
Une commande avec statut completed, refunded ou canceled (1 600 lignes) |
|
|
|
Une ligne produit d’une commande, prix avant remise de 0 à 25 % (2 647 lignes) |
Pour l’exécuter la commande, tapez / dans la zone de message et choisissez write-query depuis le plugin Data, ou tapez /data:write-query.
Depuis la mise à jour du 24 février 2026, taper une commande insère son texte d’aide dans la zone de message, et Claude peut poser une question structurée avec des choix numérotés avant de commencer, comme le montre la capture d’Anthropic ci-dessous avec la commande /dashboard.

Le formulaire structuré qui lance une commande slash dans Cowork, montré par Anthropic avec la commande /dashboard : l’indice de la commande s’affiche dans la zone de saisie et Claude pose une question à choix numérotés avant de démarrer. Source : Anthropic, 24 février 2026.
Ma demande : le chiffre d’affaires net par catégorie de produit pour chacune des 8 dernières semaines complètes, en ne comptant que les commandes complétées et en déduisant les remises ligne par ligne, en SQLite, avec le schéma collé en dessous.
Voici le SQL renvoyé, tel quel :
-- Net revenue by product category, last 8 complete weeks (Mon–Sun), completed orders only
-- Dialect: SQLite
WITH RECURSIVE
params AS (
SELECT
-- Monday of the current week; 'weekday 0' jumps forward to Sunday, -6 days lands on Monday
date('2026-09-28', 'weekday 0', '-6 days') AS current_week_start, -- 2026-09-28
date('2026-09-28', 'weekday 0', '-6 days', '-56 days') AS range_start -- 2026-08-03
),
-- One row per week, so weeks with no sales still show up
weeks AS (
SELECT range_start AS week_start
FROM params
UNION ALL
SELECT date(w.week_start, '+7 days')
FROM weeks AS w
CROSS JOIN params AS pr
WHERE date(w.week_start, '+7 days') < pr.current_week_start
),
categories AS (
SELECT DISTINCT category
FROM products
),
-- Filter and aggregate at the line-item level before building the grid
weekly_category_revenue AS (
SELECT
date(o.order_date, 'weekday 0', '-6 days') AS week_start,
p.category,
-- discount_pct is stored as 0–25 (a percent), not as a 0–0.25 fraction
SUM(oi.quantity * oi.unit_price * (1 - oi.discount_pct / 100.0)) AS net_revenue
FROM orders AS o
CROSS JOIN params AS pr
INNER JOIN order_items AS oi ON oi.order_id = o.order_id
INNER JOIN products AS p ON p.product_id = oi.product_id
WHERE o.status = 'completed'
-- Plain string comparison, so an index on order_date can be used; works for ISO-8601 dates
AND o.order_date >= pr.range_start
AND o.order_date < pr.current_week_start
GROUP BY 1, 2
)
SELECT
w.week_start,
date(w.week_start, '+6 days') AS week_end,
c.category,
ROUND(COALESCE(r.net_revenue, 0), 2) AS net_revenue
FROM weeks AS w
CROSS JOIN categories AS c
LEFT JOIN weekly_category_revenue AS r
ON r.week_start = w.week_start
AND r.category = c.category
ORDER BY w.week_start, net_revenue DESC, c.category;
C’est plus long que ce que j’aurais tapé à la main, et cette longueur supplémentaire fait la valeur. Chaque bloc de la requête, une CTE (common table expression), a un rôle :
-
paramsancre tout à une date, ce qui facilite le reparamétrage. -
weeksest récursif et garantit une ligne pour une semaine sans ventes. -
weekly_category_revenuene garde questatus = 'completed'et applique la remise comme1 - discount_pct / 100.0, car le schéma indique que la colonne contient des pourcentages entiers de 0 à 25. -
Le
SELECTfinal comble les trous avec 0, pour un résultat prêt à tracer.
Le skill énumère aussi ses hypothèses sous la requête, notamment que order_date doit être un texte ISO 8601 (YYYY-MM-DD) pour que le filtre de plage fonctionne, et que les commandes remboursées sont totalement exclues.
J’ai exécuté la requête sur shop.db et obtenu 40 lignes, une par semaine et par catégorie. Voici ces résultats pivotés pour mettre chaque catégorie en colonne :
|
Semaine du |
Audio |
Fitness |
Home Office |
Kitchen |
Outdoor |
|
2026-08-03 |
12 714,80 |
9 187,23 |
13 542,08 |
7 925,04 |
7 621,21 |
|
2026-08-10 |
12 017,26 |
6 467,39 |
5 380,54 |
12 444,47 |
6 386,67 |
|
2026-08-17 |
8 808,47 |
4 669,72 |
6 675,32 |
7 513,97 |
4 485,65 |
|
2026-08-24 |
15 634,67 |
8 055,81 |
8 716,85 |
7 730,55 |
7 047,96 |
|
2026-08-31 |
11 402,99 |
11 517,37 |
14 252,59 |
9 954,80 |
7 226,14 |
|
2026-09-07 |
14 853,85 |
5 509,74 |
5 639,71 |
4 926,32 |
4 162,98 |
|
2026-09-14 |
8 780,41 |
4 893,28 |
7 864,22 |
7 344,70 |
6 204,45 |
|
2026-09-21 |
12 937,24 |
4 149,27 |
12 715,72 |
9 618,61 |
7 353,57 |
Audio est la plus grande catégorie sur 5 des 8 semaines et ne descend jamais sous 8 780. Home Office a le plus varié : de 5 380 la semaine du 10 août à 14 252 la semaine du 31 août. Fitness termine la période à son plus bas, 4 149 : le type d’évolution qu’un rapport hebdomadaire doit signaler — et que le plugin construit à l’Étape 4 met justement en avant.
Le graphique ci-dessous reprend les mêmes 40 valeurs, un panneau par catégorie.

Figure 2. Chiffre d’affaires net hebdomadaire pour les commandes complétées par catégorie produit sur les 8 semaines complètes se terminant le 27 septembre 2026, d'après la requête write-query. Image de l’auteur.
Étape 3 : personnaliser un plugin installé
L’installation prend 2 minutes. La personnalisation est ce qui donne sa vraie valeur au plugin, car les plugins d’Anthropic sont écrits pour une entreprise générique, pas la vôtre. Deux approches existent.
Utiliser Edit with Claude
Cliquer sur Edit with Claude ouvre une tâche Cowork où Claude édite le plugin avec vous.

Le centre d’aide nomme encore ce bouton Customize. Dans l’appli actuelle, ouvrez le menu du plugin en haut à droite et choisissez Edit with Claude, qui "ouvre une nouvelle tâche Cowork avec un prompt demandant à Claude de personnaliser le plugin choisi", puis cliquez sur Let's go. En coulisse, cela exécute le skill cowork-plugin-customizer du plugin Plugin Management.
Le skill commence par rechercher dans les fichiers du plugin les espaces réservés ~~, comme ~~data warehouse, puis cherche dans tout Slack ou outil documentaire connecté les vrais noms, et vous demande enfin ce qu’il n’a pas trouvé.
Une modification concrète ici : vos règles de nommage des tables : indiquez que les tables canoniques sont dans le schéma analytics, que fct_orders est l’unique table de commandes à interroger, et que tout préfixé stg_ est hors limites. Claude intègre ces règles dans le skill SQL et vous montre le plugin personnalisé dans la conversation, que vous acceptez via le bouton sur ce résultat.
Modifier les fichiers directement
La seconde méthode consiste à ouvrir les fichiers du plugin et les éditer vous-même : idéal pour des changements que vous savez déjà rédiger. Trois édits sont les plus rentables :
-
Ajouter le contexte métier à un skill. Ajoutez à la fin de
skills/sql-queries/SKILL.mdvos définitions de métriques, vos tables canoniques et les tables à ne jamais interroger. Le bloc que j’utilise est celui qui devient son propre skill à l’Étape 4, et 4 de ses lignes ressemblent à ceci :
- orders: one row per order. status is completed, refunded, or canceled. order_date is ISO 8601 (YYYY-MM-DD).
- order_items: one row per product line. unit_price is the price charged before discount. discount_pct is a whole-number percentage from 0 to 25.
- products: one row per product, with its category.
- Never compute revenue from products.list_price. It is the catalog price, not what the customer paid.
-
Adapter les connecteurs dans
.mcp.json. Supprimez les entrées des services que vous n’utilisez pas et renseignez l’URL vide de Snowflake ou Databricks avec l’adresse de votre serveur, ou ajoutez votre entrepôt comme connecteur personnalisé via Customize puis Connectors. -
Incrémenter la version. Modifiez la version dans plugin.json à chaque édition, pour distinguer votre copie de l’originale.
Point d’attention : le guide des plugins Cowork d’Anthropic indique que Cowork vérifie les mises à jour du marketplace et "si vous avez modifié localement les fichiers d’un plugin, Cowork détecte le changement et vous avertit avant qu’une mise à jour ne l’écrase". Les plugins gérés par l’organisation et ceux qu’un collègue vous a partagés ne peuvent pas être modifiés : copiez-les d’abord dans votre propre plugin.
Autre avertissement pour les utilisateurs Windows : un ticket ouvert le 11 septembre 2026 décrit un plugin téléversé bloqué à sa première version installée, de nouveaux uploads, désinstallations et réinstallations revenant en arrière après un redémarrage. Le ticket était encore ouvert sans contournement au 6 octobre 2026. Si vos modifications cessent de persister sur Windows, consultez ce fil plutôt que de réuploader en boucle.
Étape 4 : construire un plugin personnalisé de Zéro
Un plugin sur mesure s’impose quand aucun plugin du marketplace ne connaît votre flux de travail. Parcourons une création d’exemple : un rapport hebdomadaire de métriques avec 1 skill de connaissances, 1 commande et 1 connecteur.
Tous les fichiers apparaissent intégralement, car le dossier est le produit. La figure montre la boucle à suivre.

Figure 3. Construire un plugin personnalisé : écrire et valider les fichiers sur votre ordinateur, zipper et téléverser, puis exécuter la commande dans une nouvelle tâche, et revenir aux fichiers pour itérer. Image de l’auteur.
Générer l’ossature avec Plugin Create
Plugin Create est le nom chez Anthropic de la voie guidée, et en septembre 2026, elle se trouve dans le menu Add. Allez dans Customize, Plugins, Add, puis Create with Claude, ce qui ouvre une tâche Cowork avec la demande préremplie.

Décrivez le travail avec les mots que vous utiliseriez avec un collègue, répondez aux questions de Claude sur les connecteurs à inclure, puis cliquez sur Save plugin sur la carte de fichier produite. Le même menu propose aussi Create a plugin, un formulaire et un éditeur pour celles et ceux qui savent déjà quoi doivent ressembler les fichiers.
Pour le plugin de cet article, voici le brief que je taperais. Il nomme l’unique commande, l’unique skill d’arrière-plan, l’unique connecteur et les règles : autant d’informations que les questions de découverte du skill vous demanderaient sinon une à une.
Build me a plugin called Weekly Metrics Report for our online store's data team.
What it does: every Monday, compare the most recent complete week (Monday to Sunday) with the week before it and write a short Markdown report. Keep it to one command, /weekly-report, that runs the whole thing, and one background skill that holds our metric definitions so Claude never guesses them.
The definitions: net revenue is quantity times unit price after the line discount, for completed orders only. Completed orders are counted by distinct order ID. Average order value is net revenue divided by completed orders. Refund rate is refunded orders divided by completed plus refunded orders, as a percentage with one decimal. Cancelled orders never count toward anything.
The data: the canonical tables are orders, order_items, and products in our BigQuery warehouse. Never use products.list_price for revenue; it is the catalog price, not what the customer paid. Bundle the BigQuery connector and nothing else.
The report: a three-sentence summary that names the biggest mover and says whether it went up or down, a table of net revenue by product category (this week, last week, percentage change with one decimal and a sign), a second table with the overall metrics for both weeks, and the SQL at the end so a reader can check it. If either week has fewer than 20 completed orders, say the comparison is noisy.
Do not add agents, hooks, or any other skills.
La voie guidée exécute le skill create-cowork-plugin du plugin Plugin Management dans le marketplace Knowledge Work. Vous pouvez installer ce plugin et lancer le skill par nom. Il pose des questions sur la mission, les composants et les connecteurs, puis empaquette le résultat dans un fichier .plugin.
Voici le dossier obtenu :
weekly-metrics-report/
├── .claude-plugin/
│ └── plugin.json
├── .mcp.json
├── README.md
└── skills/
├── metric-definitions/
│ └── SKILL.md
└── weekly-report/
└── SKILL.md
Le manifest nomme le plugin et fixe la version :
{
"name": "weekly-metrics-report",
"displayName": "Weekly Metrics Report",
"version": "0.1.0",
"description": "Builds the store's weekly metrics report from the warehouse, using the team's own metric definitions.",
"author": { "name": "Tim Lu" },
"license": "MIT"
}
Le fichier de connecteur liste un seul serveur, le même endpoint BigQuery que celui du plugin Data, de sorte qu’un lecteur qui a connecté BigQuery à l’Étape 2 n’a rien à réautoriser :
{
"mcpServers": {
"bigquery": {
"type": "http",
"url": "https://bigquery.googleapis.com/mcp"
}
}
}
Le README est optionnel pour un plugin privé et requis si vous le soumettez un jour à l’annuaire ; je l’ai donc rédigé tout de suite :
# Weekly Metrics Report
A small Cowork plugin that turns "how did last week go?" into a consistent report. It holds the store's metric definitions in one skill and the report workflow in another, and it bundles the BigQuery connector so Claude can query the warehouse directly.
## Use it
Run /weekly-metrics-report:weekly-report, or ask for the weekly numbers in plain words. Claude compares the most recent complete week with the week before, writes a Markdown report with per-category and overall tables, and includes the SQL it ran.
## Data
The plugin reads the orders, order_items, and products tables through the connector you sign in to. It stores nothing itself.
Rédiger le skill
Le skill de connaissances conserve le contexte qui était collé chaque lundi. Voici skills/metric-definitions/SKILL.md en entier :
---
name: metric-definitions
description: The store's definitions of net revenue, completed orders, average order value, and refund rate, plus which warehouse tables are canonical. Use whenever a request involves revenue, sales, orders, refunds, discounts, or which table to query, even if it does not name a metric.
user-invocable: false
---
# Metric definitions for the store warehouse
Follow these definitions whenever you compute or report a store metric. If a request conflicts with them, follow the definitions and say so.
## Canonical tables
- orders: one row per order. status is completed, refunded, or cancelled. order_date is ISO 8601 (YYYY-MM-DD).
- order_items: one row per product line. unit_price is the price charged before discount. discount_pct is a whole-number percentage from 0 to 25.
- products: one row per product, with its category.
- Never compute revenue from products.list_price. It is the catalog price, not what the customer paid.
## Metrics
- Net revenue: SUM(quantity * unit_price * (1 - discount_pct / 100.0)) over order_items, for orders with status = 'completed'.
- Completed orders: COUNT(DISTINCT order_id) where status = 'completed'.
- Average order value: net revenue divided by completed orders.
- Refund rate: refunded orders divided by completed plus refunded orders, as a percentage with one decimal.
- Cancelled orders never count toward revenue, order counts, or the refund rate.
## Weeks
- A week runs Monday to Sunday. Label a week by its Monday.
- "Last week" means the most recent complete week, not the last 7 days.
La description est ce qui fait déclencher ce skill de manière fiable, et une description vague est la cause classique d’un skill qui ne se déclenche jamais. Claude ne lit que le frontmatter avant de décider de charger un skill, et la référence des skills Claude Code conseille d’indiquer d’abord le cas d’usage clé.
Rédigez la description comme les situations réelles du lecteur ("une demande concerne le chiffre d’affaires, les ventes, les commandes, les remboursements, les remises") plutôt que comme un résumé du fichier, et incluez les mots que les gens emploient, car Claude met en correspondance votre description avec leur message.
Deux autres choix sont délibérés : user-invocable: false garde ce skill hors du menu /, car personne ne devrait "lancer" un jeu de définitions. Le corps est rédigé à l’impératif comme instructions à Claude ("Ne calculez jamais le revenu à partir de products.list_price"), conforme au style préconisé par le skill d’authoring d’Anthropic. La section tables est celle à remplacer par les noms de votre entrepôt.
Rédiger la commande
La commande est aussi un fichier de skill, car les plugins récents définissent ainsi les actions nommées. Voici skills/weekly-report/SKILL.md en entier :
---
name: weekly-report
description: Build the store's weekly metrics report. Use when the user asks for the weekly report, the weekly numbers, week-over-week metrics, or how last week went.
argument-hint: "[a date inside the week to report on]"
---
# Weekly metrics report
Produce a short report comparing the most recent complete week with the week before it, using the definitions in the metric-definitions skill.
## Steps
1. Work out the reporting week. If the user gave a date, use the Monday-to-Sunday week that contains it. Otherwise use the most recent complete week before today.
2. Get the data. If a warehouse connector is connected, query it directly. If not, ask the user for a database file or an export and query that instead. Never estimate a number.
3. For the reporting week and the week before it, compute net revenue, completed orders, average order value, and refund rate, overall and per product category.
4. Write the report to a Markdown file named weekly_report_<week start>.md containing:
- A three-sentence summary that names the biggest mover and says whether it went up or down.
- A table with one row per category: net revenue this week, last week, and the percentage change.
- A second table with the overall metrics for both weeks.
- The SQL you ran, in a code block at the end, so the reader can check it.
5. Show the summary in the conversation and say where the file is.
## Rules
- Follow the metric-definitions skill for every metric. Do not invent new ones.
- Report percentage changes with one decimal place and a sign.
- If either week has fewer than 20 completed orders, say the comparison is noisy.
Ce skill est invocable par l’utilisateur par défaut : il apparaît dans le menu / comme /weekly-metrics-report:weekly-report, et argument-hint documente son unique argument.
Le corps cite le skill metric-definitions deux fois, en ouverture et dans les règles : c’est ainsi que la commande appelle le skill : Claude charge les définitions car elles sont nommées et parce que leur description correspond à une demande sur le chiffre d’affaires.
Si vous préférez le format hérité, le même contenu fonctionne dans commands/weekly-report.md avec seulement la ligne description dans son frontmatter.
Installer et tester
Avant l’upload, validez le dossier par rapport à son répertoire parent avec claude plugin validate ./weekly-metrics-report, ce qui requiert Claude Code. Sur ma machine, la commande affiche ✔ Validation passed, et indique le champ à corriger en cas d’échec.
Ensuite, zippez le dossier du plugin. Les deux organisations fonctionnent : le dossier en entrée de niveau supérieur, ou son contenu directement, tant que l’archive contient un .claude-plugin/plugin.json (le mien faisait 3 67 octets). Puis allez dans Customize, Plugins, Add, Upload plugin, et sélectionnez l’archive.
Un plugin nouvellement ajouté se charge dans votre prochaine tâche Cowork, pas celle ouverte : lancez donc une nouvelle tâche avant de le chercher. S’il n’apparaît toujours pas, quittez et rouvrez l’appli de bureau avant de déboguer les fichiers.
J’ai testé le plugin via Claude Code avec claude --plugin-dir ./weekly-metrics-report, en pointant sur shop.db, puis j’ai saisi /weekly-metrics-report:weekly-report. Claude a déduit que le 28 septembre 2026 était un lundi, a rapporté la semaine du 21 septembre et généré weekly_report_2026-09-21.md. Voici son résumé, mot pour mot :
Net revenue rose to $46,774.42, up +33.3% from $35,087.07 the week before. Completed orders went from 61 to 78, and average order value rose slightly to $599.67 (+4.3%).
The biggest mover was Home Office: its net revenue went up +61.7% ($7,864.22 → $12,715.72), the largest gain in both dollars and percent.
Fitness was the only category that fell (-15.2%).
The refund rate rose from 10.3% to 12.4%, and Home Office's refund rate reached 27.6% (8 refunded orders), which is worth a closer look.
Et voici le tableau par catégorie du même fichier :
|
Catégorie |
Cette semaine (2026-09-21) |
Semaine préc. (2026-09-14) |
Évolution |
|
Audio |
$12,937.24 |
$8,780.41 |
+47.3% |
|
Fitness |
$4,149.27 |
$4,893.28 |
-15.2% |
|
Home Office |
$12,715.72 |
$7,864.22 |
+61.7% |
|
Kitchen |
$9,618.61 |
$7,344.70 |
+31.0% |
|
Outdoor |
$7,353.57 |
$6,204.45 |
+18.5% |
|
Total |
$46,774.42 |
$35,087.07 |
+33.3% |
Comparez la dernière ligne du tableau croisé dynamique de l’Étape 2 avec la colonne "Cette semaine" : ce sont les mêmes 5 nombres, issus de 2 plugins différents, car tous deux ont suivi la même définition du chiffre d’affaires net.
Claude a aussi fait 2 choses non demandées. Il a signalé que 4 catégories sur 5 comptaient moins de 20 commandes complétées pour au moins une des semaines, appliquant ma règle de comparaison bruyante par catégorie. Il a également relevé que ma règle "exprimer les évolutions en pourcentage" est ambiguë pour le taux de remboursement, déjà un pourcentage : il a donc rapporté cette évolution en points de pourcentage.
Ce sont deux édits que j’apporterais ensuite au skill, selon la boucle de la Figure 3 : modifier une ligne, incrémenter la version, réémettre.
Une fois le rapport au point, tapez /schedule dans n’importe quelle tâche Cowork pour le lancer chaque lundi matin sans vous, puisque les tâches planifiées tournent dans le cloud d’Anthropic. Depuis le 1er octobre 2026, les tâches planifiées créées par Claude sont, par défaut, en "Automatically approve" quand votre organisation l’autorise : une raison de plus de garder le connecteur en lecture seule. Notre tutoriel Cowork Dispatch présente l’autre option : déclencher une tâche depuis votre téléphone.
Partager un plugin Cowork avec votre équipe
Le dossier du plugin est l’unité de distribution : partager revient à choisir où vous le mettez. Poussez-le dans un dépôt GitHub avec un marketplace.json qui l’énumère, et toute personne à qui vous donnez l’URL peut ajouter le dépôt via Add puis Add marketplace.
Sur Team et Enterprise, un owner peut plutôt synchroniser un dépôt privé ou téléverser des zips dans un marketplace d’organisation et définir chaque plugin comme disponible, installé par défaut ou obligatoire, pour tout le monde ou pour certains groupes. Les membres peuvent partager un plugin qu’ils ont créé depuis son menu à trois points ou le soumettre avec Publish to org, et le guide plugins d’organisation du centre d’aide en détaille le reste.
Comment vérifier la sortie d’un plugin ?
Vérifiez la sortie d’un plugin en lisant la requête avant de faire confiance au graphique, en limitant ce que le plugin peut toucher et en sachant quoi regarder quand un skill ne se déclenche pas. Rien de tout cela n’exige une équipe sécurité : il faut 5 minutes de réflexe.
Lire le code avant le graphique
Une requête plausible peut répondre à une question légèrement différente de la vôtre. En voici une que j’ai écrite à la main pour la même demande que l’Étape 2, et elle s’exécute sans erreur :
SELECT p.category,
ROUND(SUM(oi.quantity * p.list_price), 2) AS revenue
FROM orders AS o
JOIN order_items AS oi ON oi.order_id = o.order_id
JOIN products AS p ON p.product_id = oi.product_id
WHERE o.order_date >= '2026-08-03' AND o.order_date < '2026-09-28'
GROUP BY p.category
ORDER BY p.category;
Elle valorise chaque ligne au list_price (prix catalogue) au lieu du prix facturé, ignore les remises et compte les commandes remboursées et annulées car elle ne filtre jamais sur status. En exécutant les deux requêtes sur shop.db, on obtient les totaux ci-dessous, avec la dernière colonne indiquant de combien le raccourci surestime le net.
|
Catégorie |
Requête plugin (net, completed) |
Raccourci (list price, toutes) |
Surestimation |
|
Audio |
97 149,69 |
128 770,97 |
+32,5 % |
|
Fitness |
54 449,81 |
71 237,81 |
+30,8 % |
|
Home Office |
74 787,03 |
99 157,55 |
+32,6 % |
|
Kitchen |
67 458,46 |
83 908,32 |
+24,4 % |
|
Outdoor |
50 488,63 |
64 366,84 |
+27,5 % |
|
Total |
344 333,62 |
447 441,49 |
+29,9 % |
Chaque catégorie est surestimée de 24 % à 33 %, et un histogramme de l’un ou l’autre résultat paraîtrait tout aussi raisonnable. La requête du plugin est correcte car le skill lui disait de filtrer tôt et de lire le schéma.
Si lire une requête de 50 lignes reste pénible, notre parcours Associate Data Analyst in SQL est la voie la plus rapide vers l’aisance. Le guide d’optimisation de requêtes SQL explique les bonnes pratiques que suit le skill write-query, comme filtrer avant de joindre et éviter SELECT *.
Conserver des connexions en lecture seule
Un connecteur entrepôt en écriture expose vos tables à deux risques : Claude peut mal interpréter une demande ("nettoyer les commandes de test") comme une instruction de suppression, et l’injection de prompt, où un texte dans un document ou une page web lu par Claude contient ses propres instructions. Sur Team et Enterprise, le paramètre autorisant les membres à sauter l’approbation par tâche pour les outils en écriture est désactivé par défaut.
Pour une rambarde solide, les hooks s’exécutent avant chaque appel d’outil dans Cowork et Claude Code : un hook qui lit le SQL d’un connecteur et rejette tout sauf SELECT est le patron à cibler. Notre guide sur les hooks Claude Code montre comment en écrire un. Je ne l’ai pas implémenté pour cet article : testez-le avec votre connecteur avant de vous y fier.
Quand un skill se déclenche mal ou jamais, commencez par la description
Claude décide à partir du frontmatter : ouvrez le skill et demandez-vous si sa description nomme bien la situation et les mots que vous avez employés. Sinon, ajoutez-les.
Ensuite, déclenchez le skill manuellement avec / pour vérifier que le corps fonctionne, contrôlez que le bouton du plugin est sur On et que son connecteur affiche « Connected », et souvenez-vous qu’un plugin se charge dans la prochaine tâche, pas l’actuelle. Le coupable le plus courant est une description qui résume le fichier au lieu de décrire la demande.
Connaître l’état du produit
Cowork est généralement disponible depuis le 9 avril 2026. Les plugins ont été lancés en préversion de recherche le 30 janvier 2026 et sont désormais disponibles sur toutes les offres payantes. Le 11 août 2026, Anthropic a étendu la Compliance API aux sessions Cowork sur bureau, web et mobile.
Deux lacunes subsistent dans le centre d’aide actuel : les transcriptions des sessions locales de bureau n’ont pas encore d’endpoint de suppression, et le monitoring OpenTelemetry "ne remplace pas l’audit logging à des fins de conformité".
Si votre organisation traite des données de santé US sur une offre Enterprise prête pour HIPAA, Cowork n’est couvert par votre BAA qu’après application de la configuration HIPAA par un admin et, une fois activée, Cowork ne peut plus tourner dans le cloud. Si vos données sont réglementées, obtenez l’accord de votre équipe conformité avant qu’un plugin ne touche des tables de production.
Conclusion
Vous avez maintenant 3 plugins : le plugin Data installé, la copie personnalisée avec vos noms de tables et le rapport hebdomadaire que vous avez construit en 5 fichiers. C’est ce troisième que je garderais, car il contient les 40 lignes de contexte qui étaient collées chaque lundi, une seule fois et au bon endroit.
La règle pour décider ce qui mérite un plugin est simple : cela vaut le coup d’en construire un lorsque le flux de travail se répète et que le contexte reste stable — description d’un rapport hebdomadaire, d’une checklist de revue contractuelle ou d’une préparation d’appel commercial. Une analyse ponctuelle n’en a pas besoin : collez le contexte et avancez.
Et si vous vous demandez quels flux répétitifs de votre entreprise doivent bénéficier en priorité de ce traitement, notre cours Generative AI for Business est conçu autour de cette question. Pour aller plus loin sur le modèle derrière tout cela, le cours Introduction to Claude Models couvre l’art du prompting et du travail multi-tours avec l’API Claude.
FAQ sur les plugins Claude Cowork
Qu’est-ce qu’un plugin Claude Cowork ?
Les plugins Claude Cowork sont des packages installables qui regroupent des skills, des commandes slash, des connecteurs et, dans Cowork et Claude Code, des sous-agents et des hooks, afin que Claude travaille en spécialiste pour un rôle donné. Anthropic les a ajoutés à Cowork le 30 janvier 2026, avec 11 plugins open source, et ils sont disponibles sur toutes les offres payantes de Claude.
Quelle est la différence entre un plugin Claude Cowork et un skill ?
Un skill est un fichier SKILL.md qui enseigne à Claude une tâche unique et se déclenche quand Claude le juge pertinent. Un plugin est l’ensemble packagé de skills, commandes et connecteurs pour une fonction métier complète : c’est l’unité que vous installez, partagez et versionnez.
Comment installer un plugin Claude Cowork ?
Ouvrez Customize dans la barre latérale gauche de l’appli de bureau Claude, allez dans l’onglet Plugins, puis Discover, sélectionnez le plugin et cliquez sur Add. Le plugin est enregistré dans votre compte : il apparaît aussi dans le chat et se synchronise dans Claude Code quand vous vous connectez avec le même compte.
Les plugins Cowork fonctionnent-ils dans Claude Code et dans le chat ?
Oui pour les skills, commandes et connecteurs, qui se chargent dans le chat, Cowork et Claude Code. Les sous-agents et hooks s’exécutent uniquement dans Cowork et Claude Code, et les serveurs MCP locaux tournent seulement dans Claude Code et dans les sessions Cowork lancées sur votre ordinateur.
Puis-je créer un plugin Claude Cowork sans coder ?
Oui. Un plugin est un dossier de fichiers Markdown et JSON, et l’option Create with Claude dans Customize > Plugins > Add vous accompagne en conversation et enregistre le résultat dans votre compte. Écrire les fichiers à la main nécessite un éditeur de texte et un outil de zip ; le plugin weekly-report de cet article ne compte que 5 petits fichiers.
Je suis un data scientist avec de l'expérience dans l'analyse spatiale, l'apprentissage automatique et les pipelines de données. J'ai travaillé avec GCP, Hadoop, Hive, Snowflake, Airflow et d'autres processus d'ingénierie et de science des données.
