Corso
Ogni lunedì qualcuno apre Claude, incolla le stesse 40 righe di contesto sul warehouse e chiede gli stessi numeri settimanali. Entro martedì quel contesto è sparito, e l’analista successivo ne incolla una versione leggermente diversa. Un plugin aiuta a mantenere questo tipo di attività coerenti e verificabili.
Alla fine di questo tutorial avrai installato un plugin in Claude Cowork, lo avrai personalizzato per le tue tabelle e ne avrai creato uno funzionante da zero.
Ti servono 2 cose: un piano a pagamento di Claude (Pro, Max, Team o Enterprise) e l’app desktop di Claude per macOS o Windows, che è quella mostrata negli screenshot. Non servono terminale né Python. Citerò anche il percorso da riga di comando per chi lo preferisce, ma è facoltativo.
Un avviso prima di iniziare. Il 16 settembre 2026, Anthropic ha iniziato a unire Chat e Cowork in un unico Claude per gli account Pro e Max, quindi la tua casella di messaggio potrebbe non mostrare più un’opzione Cowork separata. La pagina Personalizza, dove vivono i plugin, è la stessa in entrambi i casi, e cito le etichette di menu esatte man mano che procedo.
Se preferisci esercitarti con attività guidate, il corso di DataCamp Building Claude Cowork Plugins ti accompagna nell’installazione, nell’adattamento e nella creazione di un tuo plugin, senza scrivere codice.
In breve
- Un plugin Cowork è una cartella di Markdown e JSON che insegna a Claude un lavoro.
- Lo installi dalla pagina Personalizza in pochi clic.
- I plugin sono facilmente personalizzabili scegliendo l’opzione Modifica con Claude.
- Puoi anche creare un plugin Cowork scrivendo 2 brevi file di skill, un manifest con 6 campi e un file di connector, poi comprimendo la cartella e caricandola.
- Per condividere i plugin con il tuo team, pubblicali in un repository GitHub con un file marketplace.json e aggiungi il marketplace, oppure usa Pubblica nell’organizzazione per account Team/Enterprise.
Cosa sono i plugin di Claude Cowork?
Un plugin di Claude Cowork è un pacchetto installabile che racchiude tutto ciò di cui Claude ha bisogno per lavorare come uno specialista. Include elementi come workflow skill, slash command, i connettori corretti e i sub-agent e gli hook necessari. Il post di lancio di Anthropic lo riassume in una frase:
"I plugin ti permettono di raggruppare qualsiasi skill, connettore, slash command e sub-agent per trasformare Claude in uno specialista per il tuo ruolo, team e azienda."
I plugin sono arrivati in Cowork il 30 gennaio 2026, come anteprima di ricerca per gli utenti a pagamento, insieme a 11 plugin open-source realizzati dai team di Anthropic. Una seconda ondata il 24 febbraio 2026 ha aggiunto plugin per HR, design, engineering, operations e analisi finanziaria, 4 plugin per i servizi finanziari, plugin dei partner da Slack, S&P Global e LSEG, e moduli strutturati per gli slash command. Cowork stesso ha lasciato l’anteprima ed è diventato generalmente disponibile il 9 aprile 2026.
Dove girano i plugin crea confusione, quindi ecco la risposta attuale dall’articolo del centro assistenza sui plugin di Anthropic. Un plugin che aggiungi viene salvato sul tuo account Claude, non sul tuo computer, quindi ti segue nella chat sul web, nell’app desktop, in Cowork e in Claude Code (la versione 2.1.273 o successiva lo sincronizza automaticamente). Le skill e i command funzionano in tutti questi luoghi, mentre gli hook e i sub-agent girano solo in Cowork e Claude Code e appaiono disabilitati in chat.
Se non hai ancora usato Cowork, il nostro tutorial su Claude Cowork illustra l’app, e il confronto tra Claude Cowork e Claude Code spiega perché lo stesso plugin può fare di più in uno che nell’altro. Qui non rientro nei dettagli di Cowork.
Cosa include un plugin
La tabella seguente elenca i 5 componenti che un plugin può contenere, cosa fa ciascuno e quando si attiva.
|
Componente |
Cosa fa |
Quando si attiva |
|
Skill |
Un file |
Automaticamente, quando Claude giudica che l’attività corrisponde alla descrizione della skill. Puoi anche eseguirla per nome dopo |
|
Slash command |
Un’azione con nome e istruzioni proprie, ad esempio |
Manuale, quando lo digiti. In Cowork, Claude può fare una domanda strutturata prima di iniziare. |
|
Connettore (MCP) |
Un collegamento a un servizio esterno tramite Model Context Protocol (MCP): Snowflake, BigQuery, Slack e centinaia di altri |
Quando Claude chiama uno degli strumenti del servizio, dopo che hai collegato il servizio almeno una volta. |
|
Sub-agent |
Uno specialista a cui Claude può delegare parte di un’attività, con il suo prompt e la sua lista di tool |
Quando Claude decide di delegare. Solo in Cowork e Claude Code. |
|
Hook |
Uno script o un prompt che gira in corrispondenza di un evento della sessione, ad esempio subito prima di una chiamata a uno strumento |
A ogni occorrenza di quell’evento. Solo in Cowork e Claude Code. |
Le skill si attivano quando Claude le ritiene pertinenti, e i command quando digiti /. Questa distinzione decide cosa controllare quando un plugin sembra non fare nulla, a cui torno nella sezione di verifica. Se i sub-agent sono nuovi per te, il nostro corso Introduzione agli AI Agent illustra lo schema di delega senza codice.
Plugin vs. skill
Una skill insegna a Claude un’attività in un singolo file SKILL.md. Un plugin è l’insieme confezionato di skill, command e connettori per un’intera funzione lavorativa, quindi il plugin Data contiene 10 skill, e il plugin è l’unità che installi, mentre la skill è l’unità che modifichi. La nostra guida alle Claude Skill approfondisce il formato delle skill, se ti interessa.
Dove trovare i plugin di Cowork
I plugin di Cowork arrivano da 3 luoghi, e userai il primo per la maggior parte di questo articolo:
- I marketplace integrati in Cowork. Il marketplace Knowledge Work viene aggiunto a ogni account per impostazione predefinita. I marketplace Life Sciences, Financial Services e Legal di Anthropic si trovano in Aggiungi, Aggiungi marketplace, quindi Sfoglia le fonti di Anthropic.
- La directory su claude.com/plugins. Elenca oltre 300 plugin, con un filtro per sapere se funzionano con Claude, Claude Code o entrambi.
- Il repository anthropics/knowledge-work-plugins su GitHub. Questo è il sorgente Apache-2.0 per ogni plugin di ruolo costruito da Anthropic, ed è dove ho letto i file citati qui sotto.
Esistono altre due modalità di installazione: aggiungere qualsiasi repository Git come marketplace tramite il suo URL o la scorciatoia owner/repo (funzionano GitHub, GitHub Enterprise e i repository pubblici GitLab e Bitbucket), oppure caricare direttamente un file plugin come archivio .zip o .plugin fino a 200 MB.
La gamma di ruoli copre un po’ di tutto in molti campi: produttività, vendite, supporto clienti, product management, marketing, legale, finanza, data, enterprise search, HR, design, engineering, operations, ricerca biologica e piccole imprese, oltre ai plugin realizzati dai partner. Questo articolo non è una rassegna: scegli quello adatto al tuo lavoro e continua a leggere.
Cosa c’è dentro un plugin Cowork?
Un plugin Cowork è una cartella con un manifest in una sottocartella nascosta e tutto il resto a livello radice. Ecco la struttura completa, con i componenti, e solo alcune superfici contrassegnate come tali:
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
Tieni a mente quest’albero, perché lo Step 4 ne costruisce la metà superiore file per file. La figura seguente affianca l’albero a dove gira ogni componente, tratta dalla tabella di supporto piattaforme di Anthropic.

Figura 1. La cartella di un plugin a sinistra e, per ciascun componente, quando si attiva e se viene caricato in chat, Cowork o Claude Code. Immagine dell’autore.
Il manifest
Il manifest è .claude-plugin/plugin.json, e name è l’unico campo obbligatorio. Questo è il vero manifest del plugin Data di Anthropic, copiato dal repository:
{
"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"
}
}
Tre cose da sapere:
-
nameè l’identità permanente del plugin e fa da prefisso a ogni componente, quindi la skillwrite-querydiventa/data:write-query. -
La stringa
versionè il numero di rilascio che le persone vedono per il plugin, e la guida alla creazione di Anthropic dice di aumentarlo a ogni release. -
I campi opzionali includono
displayName,license,homepageekeywords.
Skill e command
Una skill vive in skills/<name>/SKILL.md: un breve blocco di impostazioni tra le linee --- in alto (lo YAML frontmatter), istruzioni per Claude sotto. Ecco l’inizio della skill write-query del plugin Data, quella che eseguo nello Step 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 è ciò che Claude legge per decidere se caricare la skill, e l’argument-hint ti dice cosa la skill si aspetta che tu digiti. Due flag nel frontmatter cambiano come si attiva una skill:
-
user-invocable: falsela nasconde dal menu/così che solo Claude possa caricarla (la skillsql-queriesdel plugin è impostata così) -
disable-model-invocation: truefa l’opposto, e la skill gira solo quando ne digiti il nome.
I command sono il formato più vecchio: un unico file Markdown in commands/<name>.md con una description nel frontmatter. La skill di authoring di Anthropic ora dice a Claude di "scaffoldare nuovi plugin con skills/*/SKILL.md" e chiama la cartella commands/ legacy, perché l’interfaccia di Cowork mostra entrambi come un unico elenco Skills. I command funzionano ancora ovunque, quindi li incontrerai nei plugin più datati, ma lo Step 4 usa le skill.
Connettori
Il file .mcp.json alla radice del plugin elenca i servizi esterni a cui il plugin può accedere, ciascuno come URL di un server MCP. Ecco le prime 3 voci del file del plugin Data:
{
"mcpServers": {
"snowflake": {
"type": "http",
"url": ""
},
"databricks": {
"type": "http",
"url": ""
},
"bigquery": {
"type": "http",
"url": "https://bigquery.googleapis.com/mcp"
},
Gli URL vuoti sono segnaposto: Anthropic fornisce l’endpoint BigQuery ma lascia Snowflake e Databricks da compilare con il tuo indirizzo server. Se MCP è nuovo per te, la nostra guida al Model Context Protocol costruisce un server da zero.
C’è un vincolo non ovvio: il centro assistenza di Anthropic afferma che "in Cowork, i connettori raggiungono i servizi esterni tramite il cloud di Anthropic, non tramite la tua rete locale." Un connettore personalizzato deve quindi puntare a un server "raggiungibile su internet pubblica dagli IP di Anthropic." Un warehouse dietro firewall o VPN non si collegherà finché il tuo team di rete non metterà in allowlist gli indirizzi di Anthropic.
I server MCP locali, quelli che avviano un programma sulla tua macchina, sono l’eccezione: girano in Claude Code e nelle sessioni Cowork che girano sul tuo computer, e la chat li ignora.
Dal 6 ottobre 2026, le nuove attività Pro e Max girano solo nel cloud di Anthropic, quindi le sessioni locali sono principalmente una funzione per Team ed Enterprise.
Step 1: installare il tuo primo plugin
Installare un plugin Cowork richiede 6 brevi passaggi nella pagina Personalizza, identici per ogni plugin in catalogo, quindi chi lavora in vendite o legale può sostituire il proprio. Io uso il plugin Data perché prepara l’esempio SQL dello Step 2.
1. Apri Personalizza nella barra laterale sinistra dell’app desktop di Claude. Se la tua app mostra ancora una scheda Cowork, apri prima quella.

2. Apri la scheda Plugin.

3. Assicuriamoci che tu abbia il marketplace Knowledge Work. Clicca + Aggiungi, poi Aggiungi marketplace, quindi Sfoglia le fonti di Anthropic.

4. Seleziona e aggiungi i plugin Knowledge Work.

5. Apri la scheda Scopri. Il marketplace Knowledge Work dovrebbe essere già lì. Clicca il filtro Code.

6. Seleziona Data, poi clicca Aggiungi. In alcune build il pulsante si chiama Installa.
La pagina del plugin elenca quindi cosa hai ottenuto: la scheda Skills mostra 10 skill, 7 delle quali puoi eseguire per nome (analyze, explore-data, write-query, create-viz, build-dashboard, validate-data e data-context-extractor) e 3 che si caricano in background (sql-queries, data-visualization e statistical-analysis). Il suo file dei connettori nel repository elenca Snowflake, Databricks, BigQuery, Definite, Hex, Amplitude (con una voce EU separata) e Atlassian, e nessuno è connesso finché non esegui l’accesso. La pagina di directory del plugin Data mostrava 7.655 installazioni il 28 settembre 2026.
Se ti trovi a tuo agio nel terminale, lo stesso plugin si installa in Claude Code con 2 comandi dal README del repository:
claude plugin marketplace add anthropics/knowledge-work-plugins
claude plugin install data@knowledge-work-plugins
Una differenza conta: un plugin aggiunto da Personalizza si sincronizza in Claude Code, ma un plugin installato dalla riga di comando resta su quella macchina e non raggiunge mai il tuo account. La nostra guida alla creazione di plugin per Claude Code copre a fondo il flusso da terminale, quindi qui resto sul percorso desktop.
Nei piani Team ed Enterprise, un owner imposta ogni plugin su uno di 4 stati: non disponibile, disponibile all’installazione, installato per impostazione predefinita o obbligatorio. Gli admin Enterprise possono sovrascrivere per gruppo, quindi il centro assistenza avverte che "i plugin che vedi nel catalogo possono differire da quelli che vedono i colleghi in altri gruppi." Se Data manca dalla tua scheda Scopri, chiedi a un owner prima di supporre che il marketplace sia guasto.
Step 2: collegare una fonte dati ed eseguire uno slash command
Un plugin con un warehouse non connesso può solo scrivere SQL da incollare altrove, quindi il primo passo reale è collegare una fonte dati. Poi lo slash command fa il resto.
Autorizzare un connettore
Aggiungere un plugin non implica accedere a nulla. Apri la scheda Connettori del plugin, dove ogni voce mostra uno di 3 stati: Connesso, Non connesso (il connettore è nel tuo account, ma non hai eseguito l’accesso) o Non aggiunto. Clicca Aggiungi dove serve, poi Connetti, e completa l’accesso al servizio nel browser.

Nei piani Team ed Enterprise, un owner aggiunge prima il connettore per l’organizzazione, poi tu ti connetti con il tuo account.
Usa credenziali in sola lettura per il warehouse, perché un connettore in scrittura permette a Claude di eseguire qualsiasi istruzione esposta dai suoi strumenti e, nella modalità automatica di Cowork, Claude decide autonomamente se chiamarli. Questo significa:
-
Per Snowflake, un ruolo con solo
SELECT -
Per BigQuery, un service account con ruolo Data Viewer
-
Per Databricks, un token limitato a un SQL warehouse in sola lettura
Se sei alle prime armi con una delle due piattaforme, la nostra guida per principianti a Snowflake e il tutorial su BigQuery ti portano alla prima query in un pomeriggio.
La connessione vive sul tuo account sotto Personalizza e poi Connettori, quindi autorizzi ogni servizio una sola volta, e qualsiasi altro plugin che elenca lo stesso URL del server, come la voce BigQuery del plugin Finance, lo riutilizza.
Eseguire il tuo primo command
Il command write-query trasforma una domanda in linguaggio naturale in SQL per il tuo dialetto, ed è l’artefatto che più vorrei farti guardare, perché la sezione di verifica ci tornerà sopra.
Ho costruito un piccolo database SQLite, shop.db, con le 4 tabelle tipiche di un warehouse e-commerce e 1.600 ordini dal 5 gennaio al 27 settembre 2026. La tabella seguente definisce lo schema; ogni query in questo articolo gira su di esso.
|
Tabella |
Colonne |
Una riga è |
|
|
|
Un cliente (240 righe) |
|
|
|
Un prodotto di catalogo in 1 di 5 categorie (40 righe) |
|
|
|
Un ordine con stato completed, refunded o canceled (1.600 righe) |
|
|
|
Una riga prodotto in un ordine, prezzata prima di uno sconto dal 0 al 25% (2.647 righe) |
Per eseguire il command, digita / nella casella di messaggio e scegli write-query dal plugin Data, oppure digita /data:write-query.
Dall’aggiornamento del 24 febbraio 2026, digitare un command inserisce il suo hint nella casella di messaggio, e Claude può porre una domanda strutturata con scelte numerate prima di iniziare, come mostra lo screenshot di Anthropic qui sotto con il command /dashboard.

Il modulo strutturato che avvia uno slash command in Cowork, mostrato da Anthropic con il command /dashboard: l’hint del command è nella casella di messaggio e Claude pone una domanda con scelte numerate prima di iniziare. Fonte immagine: Anthropic, 24 febbraio 2026.
La mia richiesta era: ricavi netti per categoria di prodotto per ciascuna delle ultime 8 settimane, contando solo gli ordini completati e al netto degli sconti per riga, in SQLite, con lo schema incollato sotto.
Ecco l’SQL restituito, senza modifiche:
-- 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;
È più lungo di quello che avrei scritto a mano, e la lunghezza extra è dove sta il valore. Ogni blocco della query, detto common table expression (CTE), fa un lavoro:
-
paramsancora tutto a una data, così la query è facile da reindirizzare. -
weeksè ricorsivo e garantisce una riga per una settimana senza vendite. -
weekly_category_revenuemantiene solostatus = 'completed'e applica lo sconto come1 - discount_pct / 100.0, perché lo schema dice che la colonna contiene percentuali intere da 0 a 25. -
Il
SELECTfinale colma i vuoti con 0, così l’output è pronto per il grafico.
La skill elenca anche le sue assunzioni sotto la query, incluso che order_date dev’essere testo ISO 8601 (YYYY-MM-DD) perché il filtro di intervallo funzioni, e che gli ordini rimborsati sono esclusi del tutto.
Ho eseguito la query su shop.db e ho ottenuto 40 righe, una per settimana e categoria. Eccola pivotata in modo che ogni categoria sia una colonna:
|
Settimana dal |
Audio |
Fitness |
Home Office |
Cucina |
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 è la categoria più grande in 5 delle 8 settimane e non scende mai sotto 8.780. Home Office ha oscillato di più, da 5.380 nella settimana del 10 agosto a 14.252 nella settimana del 31 agosto. Fitness chiude il periodo sul minimo di 4.149, il tipo di andamento che un report settimanale dovrebbe segnalare, e che il plugin che ho creato nello Step 4 effettivamente segnala.
Il grafico sotto mostra gli stessi 40 numeri, un pannello per categoria.

Figura 2. Ricavi netti settimanali per ordini completati per categoria di prodotto nelle 8 settimane complete fino al 27 settembre 2026, dal risultato di write-query. Immagine dell’autore.
Step 3: personalizzare un plugin installato
Installare richiede 2 minuti. La personalizzazione è dove un plugin inizia a meritare il suo posto, perché i plugin di Anthropic sono scritti per un’azienda generica, e la tua non lo è. Ci sono 2 modi per farlo.
Usare Modifica con Claude
Cliccare Modifica con Claude apre un’attività Cowork in cui Claude modifica il plugin insieme a te.

Il centro assistenza chiama ancora il pulsante Personalizza. Nell’app attuale, apri il menu del plugin in alto a destra e scegli Modifica con Claude, che "apre una nuova attività Cowork con un prompt che chiede a Claude di personalizzare il plugin scelto", quindi clicca Andiamo. Sotto il cofano, questo esegue la skill cowork-plugin-customizer dal Plugin Management plugin di Anthropic.
La skill cerca prima nei file del plugin i segnaposto ~~, come ~~data warehouse, poi cerca nei tool Slack o documentali collegati i nomi reali e infine ti chiede ciò che non ha trovato.
Una modifica concreta da fare qui è la denominazione delle tue tabelle: dì che le tabelle canoniche vivono nello schema analytics, che fct_orders è l’unica tabella ordini da interrogare e che qualsiasi cosa con prefisso stg_ è vietata. Claude scrive queste regole nella skill SQL e ti mostra il plugin personalizzato nella conversazione, e lo accetti con il pulsante su quel risultato.
Modificare i file direttamente
Il secondo modo è aprire i file del plugin e modificarli tu stesso, adatto a cambiamenti che sai già come scrivere. Tre modifiche rendono di più:
-
Aggiungi contesto aziendale a una skill. Aggiungi in fondo a
skills/sql-queries/SKILL.mdle tue definizioni di metriche, le tabelle canoniche e le tabelle da non interrogare mai. Il blocco che uso è quello che diventa una skill a sé nello Step 4, e 4 delle sue righe sono così:
- 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.
-
Sostituisci i connettori in
.mcp.json. Elimina le voci dei servizi che non usi e compila l’URL vuoto di Snowflake o Databricks con l’indirizzo del tuo server, oppure aggiungi il tuo warehouse come connettore personalizzato sotto Personalizza e poi Connettori. -
Aumenta la versione. Cambia la versione in plugin.json ogni volta che modifichi, così distingui la tua copia dall’originale.
Una cosa da notare: la guida ai plugin Cowork di Anthropic afferma che Cowork controlla gli aggiornamenti dal marketplace e "se hai modificato i file di un plugin localmente, Cowork rileva il cambiamento e ti avvisa prima che un aggiornamento li sovrascriva." I plugin gestiti dall’organizzazione e quelli condivisi da un collega non possono essere modificati, quindi copiali prima in un tuo plugin.
Un altro avviso per chi usa Windows: una segnalazione di bug dell’11 settembre 2026 descrive un plugin caricato manualmente bloccato alla prima versione installata, con nuovi caricamenti, disinstallazioni e reinstallazioni che tornano indietro dopo un riavvio. Era ancora aperto senza workaround al 6 ottobre 2026, quindi se le tue modifiche smettono di restare su Windows, controlla quel thread invece di ricaricare in loop.
Step 4: creare un plugin personalizzato da zero
Un plugin personalizzato è la risposta quando nessun plugin del marketplace conosce il tuo flusso di lavoro. Vediamo una build di esempio: un report settimanale di metriche con 1 skill di conoscenza, 1 command e 1 connettore.
Ogni file appare per intero, perché il prodotto è la cartella. La figura mostra il ciclo che seguirai.

Figura 3. Creazione di un plugin personalizzato: scrivi e valida i file sul tuo computer, comprimili e caricali, poi esegui il command in una nuova attività, e torna ai file per le modifiche. Immagine dell’autore.
Scaffold con Plugin Create
Plugin Create è il nome di Anthropic per il percorso guidato e, a settembre 2026, si trova nel menu Aggiungi. Vai su Personalizza, Plugin, Aggiungi, poi Crea con Claude, che apre un’attività Cowork con la richiesta già compilata.

Descrivi il lavoro con le parole che useresti con un collega, rispondi alle domande di Claude su quali connettori includere e clicca Salva plugin sulla scheda file che produce. Lo stesso menu offre anche Crea un plugin, un form e un editor per chi sa già cosa deve dire ogni file.
Per il plugin in questo articolo, il brief che scriverei è qui sotto. Nomina l’unico command, l’unica skill in background, l’unico connettore e le regole, cioè le informazioni che altrimenti le domande esplorative della skill ti estrarrebbero una alla volta.
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.
Il percorso guidato esegue la skill create-cowork-plugin dal Plugin Management plugin nel marketplace Knowledge Work. Puoi installare quel plugin ed eseguire la skill per nome. Ti chiede del lavoro, dei componenti e dei connettori, quindi impacchetta il risultato in un file .plugin.
Ecco la cartella finale:
weekly-metrics-report/
├── .claude-plugin/
│ └── plugin.json
├── .mcp.json
├── README.md
└── skills/
├── metric-definitions/
│ └── SKILL.md
└── weekly-report/
└── SKILL.md
Il manifest assegna il nome al plugin e fissa la versione:
{
"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"
}
Il file del connettore elenca un solo server, lo stesso endpoint BigQuery usato dal plugin Data, così chi ha collegato BigQuery nello Step 2 non ha nulla di nuovo da autorizzare:
{
"mcpServers": {
"bigquery": {
"type": "http",
"url": "https://bigquery.googleapis.com/mcp"
}
}
}
Il README è facoltativo per un plugin privato e obbligatorio se mai lo invierai alla directory, quindi l’ho scritto ora:
# 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.
Scrivere la skill
La skill di conoscenza contiene il contesto che veniva incollato ogni lunedì. Ecco skills/metric-definitions/SKILL.md per intero:
---
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 è ciò che fa scattare la skill con affidabilità, e una descrizione vaga è il motivo tipico per cui una skill non si attiva mai. Claude legge solo il frontmatter finché non decide di caricare una skill, e la reference delle skill di Claude Code dice di mettere per primo il caso d’uso chiave.
Scrivi la descrizione come le situazioni in cui si troverà il lettore ("una richiesta riguarda revenue, vendite, ordini, rimborsi, sconti") piuttosto che come un riassunto del file, e includi le parole che le persone usano, perché Claude confronta la tua description con il loro messaggio.
Due scelte in più sono intenzionali: user-invocable: false tiene questa skill fuori dal menu /, dato che nessuno dovrebbe "eseguire" un set di definizioni. Il corpo è scritto come istruzioni imperative a Claude ("Mai calcolare i ricavi da products.list_price"), che è lo stile richiesto dalla stessa skill di authoring di Anthropic. La sezione delle tabelle è la parte che sostituiresti con i nomi del tuo warehouse.
Scrivere il command
Il command è anch’esso un file di skill, perché è così che i nuovi plugin definiscono azioni con nome. Ecco skills/weekly-report/SKILL.md per intero:
---
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.
Questa skill è richiamabile dall’utente per impostazione predefinita, quindi appare nel menu / come /weekly-metrics-report:weekly-report, e l’argument-hint documenta l’unico argomento che accetta.
Il corpo nomina la skill metric-definitions due volte, una nella riga di apertura e una nelle regole, che è come il command richiama la skill: Claude carica le definizioni perché sono nominate e perché la loro description corrisponde a una richiesta sui ricavi.
Se preferisci il formato legacy, lo stesso corpo funziona come commands/weekly-report.md con solo la riga description nel frontmatter.
Installazione e test
Prima del caricamento, valida la cartella rispetto alla sua directory padre con claude plugin validate ./weekly-metrics-report, che richiede l’installazione di Claude Code. Sulla mia macchina ha stampato ✔ Validation passed, e indica il campo da correggere quando fallisce.
Poi comprimi la cartella del plugin. Funziona sia la struttura con la cartella come unica voce di primo livello, sia con i suoi contenuti direttamente, purché l’archivio contenga un .claude-plugin/plugin.json (il mio era di 3.067 byte). Quindi vai su Personalizza, Plugin, Aggiungi, Carica plugin, e seleziona lo zip.
Un plugin appena aggiunto si carica nella tua prossima attività Cowork, non in quella aperta, quindi avvia una nuova attività prima di cercarlo. Se ancora non appare nella nuova attività, chiudi e riapri l’app desktop prima di fare debug dei file.
Ho testato il plugin tramite Claude Code con claude --plugin-dir ./weekly-metrics-report, puntato a shop.db, e digitato /weekly-metrics-report:weekly-report. Claude ha calcolato che il 28 settembre 2026 è un lunedì, ha riportato la settimana del 21 settembre e ha scritto weekly_report_2026-09-21.md. Questo è il suo sommario, parola per parola:
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.
E questa è la tabella delle categorie dallo stesso file:
|
Categoria |
Questa settimana (2026-09-21) |
Settimana scorsa (2026-09-14) |
Variazione |
|
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% |
|
Totale |
$46,774.42 |
$35,087.07 |
+33.3% |
Confronta l’ultima riga della tabella pivot dello Step 2 con la colonna "Questa settimana" qui: sono gli stessi 5 numeri, da 2 plugin diversi, perché entrambi hanno seguito la stessa definizione di ricavo netto.
Claude ha fatto anche 2 cose che non avevo chiesto. Ha segnalato che 4 categorie su 5 avevano meno di 20 ordini completati in almeno 1 settimana, applicando la regola di confronto rumoroso per categoria. Ha anche fatto notare che la mia regola "riporta le variazioni in percentuale" è ambigua per il tasso di rimborso, che è già una percentuale, quindi ha riportato quella variazione in punti percentuali.
Sono entrambe modifiche che apporterei alla skill come passo successivo, che è il ciclo della Figura 3: cambia una riga, aumenta la versione, carica di nuovo.
Una volta che il report funziona, digita /schedule in qualsiasi attività Cowork per farlo eseguire ogni lunedì mattina senza di te, dato che le attività pianificate girano nel cloud di Anthropic. Dal 1° ottobre 2026, le attività pianificate create da Claude predefiniscono "Approva automaticamente" quando la tua organizzazione lo consente, che è un altro motivo per mantenere quel connettore in sola lettura. Il nostro tutorial su Cowork Dispatch mostra l’altra opzione, avviare un’attività dal telefono.
Condividere un plugin Cowork con il tuo team
La cartella del plugin è l’unità di distribuzione, quindi condividere significa decidere dove metterla. Pubblicala in un repository GitHub con un marketplace.json che la elenchi, e chiunque abbia l’URL può aggiungere il repository sotto Aggiungi e poi Aggiungi marketplace.
Nei piani Team ed Enterprise, un owner può invece sincronizzare un repository privato o caricare zip in un marketplace dell’organizzazione e impostare ogni plugin come disponibile, installato per impostazione predefinita o obbligatorio, per tutti o per gruppi specifici. I membri possono condividere un plugin che hanno creato dal menu a tre puntini o inviarlo con Pubblica nell’organizzazione, e la guida del centro assistenza ai plugin per le organizzazioni copre il resto.
Come verifichi l’output di un plugin?
Verifichi l’output di un plugin leggendo la query prima di fidarti del grafico, limitando ciò che il plugin può toccare e sapendo dove guardare quando una skill non si attiva. Non serve un team di sicurezza. Servono 5 minuti di abitudine.
Leggi il codice prima del grafico
Una query dall’aspetto plausibile può rispondere a una domanda leggermente diversa da quella che hai posto. Eccone una che ho scritto a mano per la stessa domanda dello Step 2, e gira senza errori:
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;
Prezzo ogni riga al list_price di catalogo invece che al prezzo addebitato, ignora gli sconti e conta ordini rimborsati e cancellati perché non filtra mai su status. Eseguire entrambe le query su shop.db produce i totali sotto, con l’ultima colonna che mostra quanto la scorciatoia sovrastima i ricavi netti.
|
Categoria |
Query del plugin (netto, completati) |
Query scorciatoia (list price, tutti gli ordini) |
Sovrastima |
|
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% |
|
Cucina |
67.458,46 |
83.908,32 |
+24,4% |
|
Outdoor |
50.488,63 |
64.366,84 |
+27,5% |
|
Totale |
344.333,62 |
447.441,49 |
+29,9% |
Ogni categoria è sovrastimata dal 24% al 33%, e un grafico a barre di entrambi i risultati sembra ugualmente ragionevole. La query del plugin ha centrato il punto perché la skill le ha detto di filtrare presto e leggere lo schema.
Se leggere una query di 50 righe è ancora lento, il nostro percorso Associate Data Analyst in SQL è il modo più rapido per diventare fluente. La guida all’ottimizzazione delle query SQL spiega le pratiche seguite dalla skill write-query, come filtrare prima di unire e evitare SELECT *.
Mantieni le connessioni in sola lettura
Un connettore di warehouse in scrittura mette a rischio le tue tabelle da 2 direzioni: Claude che interpreta male una richiesta ("ripulisci gli ordini di test") come un’istruzione di eliminazione, e il prompt injection, in cui il testo dentro un documento o una pagina web letta da Claude contiene istruzioni proprie. Nei piani Team ed Enterprise, l’impostazione che consente ai membri di saltare l’approvazione per attività per gli strumenti di connettore in scrittura è disattivata per impostazione predefinita.
Per un guardrail rigido, gli hook girano prima di ogni chiamata a tool in Cowork e Claude Code, quindi un hook che legge la SQL di un connettore e rifiuta qualsiasi cosa diversa da SELECT è il pattern a cui puntare. La nostra guida agli hook di Claude Code mostra come scriverne uno. Non ho costruito quell’hook per questo articolo, quindi testalo con il tuo connettore prima di farci affidamento.
Quando una skill sbaglia o non parte, controlla prima la description
Claude decide dal frontmatter, quindi apri la skill e chiediti se la sua description nomina la situazione in cui eri e le parole che hai usato. Se non lo fa, aggiungile.
Poi attiva la skill manualmente con / per confermare che il corpo funziona, controlla che l’interruttore del plugin sia su on e che il suo connettore mostri "Connesso", e ricorda che un plugin si carica nella prossima attività, non in quella corrente. Il colpevole più comune è una description che riassume il file invece di descrivere la richiesta.
Conosci lo stato del prodotto
Cowork è generalmente disponibile dal 9 aprile 2026. I plugin sono stati lanciati come anteprima di ricerca il 30 gennaio 2026 e ora sono indicati come disponibili su tutti i piani a pagamento. L’11 agosto 2026, Anthropic ha esteso la copertura della Compliance API alle sessioni Cowork su desktop, web e mobile.
Nel centro assistenza attuale restano due lacune: i transcript delle sessioni desktop locali non hanno ancora un endpoint di eliminazione, e il monitoraggio OpenTelemetry "non sostituisce l’audit logging per scopi di conformità".
Se la tua organizzazione gestisce dati sanitari USA su un piano Enterprise abilitato HIPAA, Cowork è coperto dal tuo Business Associate Agreement solo dopo che un admin applica la configurazione HIPAA e, una volta attivata, Cowork non può girare nel cloud. Se i tuoi dati sono regolamentati, ottieni l’approvazione del team compliance prima che un plugin tocchi tabelle di produzione.
Considerazioni finali
Ora hai 3 plugin: il plugin Data che hai installato, la copia che hai personalizzato con i nomi delle tue tabelle e il report settimanale che hai creato da 5 file. Il terzo è quello che terrei, perché contiene le 40 righe di contesto che prima venivano incollate ogni lunedì, e le contiene una volta sola.
Il principio per decidere cosa merita un plugin è breve: vale la pena costruire un plugin quando il flusso si ripete e il contesto resta stabile, il che descrive un report settimanale, una checklist di revisione contrattuale o la preparazione di una call di vendita. Un’analisi una tantum non ne ha bisogno; incolla il contesto e vai avanti.
E se stai valutando quali flussi ripetuti nella tua azienda dovrebbero ricevere per primi questo trattamento, il nostro corso Generative AI for Business è costruito proprio attorno a questa domanda. Per approfondire il modello dietro a tutto questo, il corso Introduction to Claude Models copre il prompting e il lavoro multi-turn con l’API di Claude.
Plugin di Claude Cowork: FAQ
Cosa sono i plugin di Claude Cowork?
I plugin di Claude Cowork sono pacchetti installabili che raggruppano skill, slash command, connettori e, in Cowork e Claude Code, sub-agent e hook, così Claude lavora come uno specialista per un ruolo. Anthropic li ha aggiunti a Cowork il 30 gennaio 2026, con 11 plugin open-source, e sono disponibili su tutti i piani a pagamento di Claude.
Qual è la differenza tra un plugin di Claude Cowork e una skill?
Una skill è un singolo file SKILL.md che insegna a Claude un’attività e si attiva quando Claude la giudica pertinente. Un plugin è l’insieme confezionato di skill, command e connettori per un’intera funzione lavorativa, ed è l’unità che installi, condividi e versioni.
Come installo un plugin di Claude Cowork?
Apri Personalizza nella barra laterale sinistra dell’app desktop di Claude, apri la scheda Plugin, apri Scopri, seleziona il plugin e clicca Aggiungi. Il plugin è salvato sul tuo account, quindi appare anche in chat e si sincronizza con Claude Code quando accedi con lo stesso account.
I plugin di Cowork funzionano in Claude Code e in chat?
Sì per skill, command e connettori, che si caricano in chat, Cowork e Claude Code. I sub-agent e gli hook girano solo in Cowork e Claude Code, e i server MCP locali girano solo in Claude Code e nelle sessioni Cowork che girano sul tuo computer.
Posso creare un plugin di Claude Cowork senza programmare?
Sì. Un plugin è una cartella di Markdown e JSON, e l’opzione Crea con Claude sotto Personalizza > Plugin > Aggiungi ti guida in conversazione e salva il risultato sul tuo account. Scrivere i file a mano richiede un editor di testo e uno strumento per zip, e l’intero plugin weekly-report in questo articolo sono 5 file brevi.
Sono una data scientist con esperienza in analisi spaziale, machine learning e pipeline dei dati. Ho lavorato con GCP, Hadoop, Hive, Snowflake, Airflow e altri processi di data science/engineering.


