SKILL.md avec un frontmatter
YAML et un corps Markdown. OpenClaw charge les Skills intégrés ainsi que toute
surcharge locale, et les filtre au moment du chargement selon l’environnement, la configuration et la
présence des binaires.
Création de Skills
Construire et tester une skill personnalisée à partir de zéro.
Atelier Skills
Examiner et approuver les propositions de skills rédigées par l’agent.
Configuration des Skills
Schéma complet de configuration
skills.* et listes d’autorisation des agents.ClawHub
Parcourir et installer des skills communautaires.
Ordre de chargement
OpenClaw charge depuis ces sources, par ordre de priorité décroissante. Lorsque le même nom de skill apparaît à plusieurs endroits, la source ayant la priorité la plus élevée l’emporte.| Priorité | Source | Chemin |
|---|---|---|
| 1 — maximale | Skills de l’espace de travail | <workspace>/skills |
| 2 | Skills d’agent de projet | <workspace>/.agents/skills |
| 3 | Skills d’agent personnelles | ~/.agents/skills |
| 4 | Skills gérées / locales | ~/.openclaw/skills |
| 5 | Skills intégrées | livrées avec l’installation |
| 6 — minimale | Répertoires supplémentaires | skills.load.extraDirs + Skills de plugin |
SKILL.md apparaît n’importe où sous une racine configurée :
name (ou du nom du répertoire
lorsque name est absent).
Le répertoire natif
$CODEX_HOME/skills de Codex CLI n’est pas une racine de
skill OpenClaw. Utilisez openclaw migrate plan codex pour inventorier ces Skills, puis
openclaw migrate codex pour les copier dans votre espace de travail OpenClaw.Skills par agent et Skills partagées
Dans les configurations multi-agents, chaque agent possède son propre espace de travail. Utilisez le chemin qui correspond à la visibilité souhaitée :| Portée | Chemin | Visible par |
|---|---|---|
| Par agent | <workspace>/skills | Uniquement cet agent |
| Agent de projet | <workspace>/.agents/skills | Uniquement l’agent de cet espace de travail |
| Agent personnel | ~/.agents/skills | Tous les agents sur cette machine |
| Géré partagé | ~/.openclaw/skills | Tous les agents sur cette machine |
| Répertoires supplémentaires | skills.load.extraDirs | Tous les agents sur cette machine |
Listes d’autorisation des agents
L’emplacement d’une skill (priorité) et sa visibilité (quel agent peut l’utiliser) sont des contrôles distincts. Utilisez les listes d’autorisation pour restreindre les Skills qu’un agent voit, quel que soit l’endroit d’où elles sont chargées.Règles de liste d’autorisation
Règles de liste d’autorisation
- Omettez
agents.defaults.skillspour laisser toutes les Skills sans restriction par défaut. - Omettez
agents.list[].skillspour hériter deagents.defaults.skills. - Définissez
agents.list[].skills: []pour n’exposer aucune skill à cet agent. - Une liste
agents.list[].skillsnon vide constitue l’ensemble final : elle ne fusionne pas avec les valeurs par défaut. - La liste d’autorisation effective s’applique à la construction des prompts, à la découverte des commandes slash, à la synchronisation du sandbox et aux instantanés de skills.
- Ce n’est pas une frontière d’autorisation du shell hôte. Si le même agent peut
utiliser
exec, restreignez ce shell séparément avec du sandboxing, l’isolation des utilisateurs OS, des listes d’interdiction/d’autorisation pour exec et des identifiants par ressource.
Plugins et Skills
Les plugins peuvent livrer leurs propres Skills en listant des répertoiresskills dans
openclaw.plugin.json (chemins relatifs à la racine du plugin). Les Skills de plugin se chargent
lorsque le plugin est activé ; par exemple, le plugin navigateur fournit une skill
browser-automation pour le contrôle du navigateur en plusieurs étapes.
Les répertoires de Skills de plugin fusionnent au même niveau de faible priorité que
skills.load.extraDirs, donc une skill intégrée, gérée, d’agent ou d’espace de travail portant le même nom
les remplace. Restreignez-les via metadata.openclaw.requires.config sur l’entrée de configuration
du plugin.
Consultez Plugins et Outils pour le système de plugins complet.
Atelier Skills
Atelier Skills est une file de propositions entre l’agent et vos fichiers de skills actifs. Lorsque l’agent repère un travail réutilisable, il rédige une proposition au lieu d’écrire directement dansSKILL.md. Vous examinez et approuvez
avant tout changement.
Installation depuis ClawHub
ClawHub est le registre public de Skills. Utilisez les commandesopenclaw skills pour installer et mettre à jour, ou la CLI clawhub pour
publier et synchroniser.
| Action | Commande |
|---|---|
| Installer une skill dans l’espace de travail | openclaw skills install @owner/<slug> |
| Installer depuis un dépôt Git | openclaw skills install git:owner/repo@ref |
| Installer un répertoire de skill local | openclaw skills install ./path/to/skill --as my-tool |
| Installer pour tous les agents locaux | openclaw skills install @owner/<slug> --global |
| Mettre à jour toutes les Skills de l’espace de travail | openclaw skills update --all |
| Mettre à jour une skill gérée partagée | openclaw skills update @owner/<slug> --global |
| Mettre à jour toutes les Skills gérées partagées | openclaw skills update --all --global |
| Vérifier l’enveloppe de confiance d’une skill | openclaw skills verify @owner/<slug> |
| Imprimer la Skill Card générée | openclaw skills verify @owner/<slug> --card |
| Publier / synchroniser via la CLI ClawHub | clawhub sync --all |
Détails d’installation
Détails d’installation
openclaw skills install installe par défaut dans le répertoire skills/
de l’espace de travail actif. Ajoutez --global pour installer dans le répertoire partagé
~/.openclaw/skills, visible par tous les agents locaux sauf restriction par les
listes d’autorisation d’agents.Les installations Git et locales attendent SKILL.md à la racine de la source. Le slug provient
du frontmatter name de SKILL.md lorsqu’il est valide, puis se rabat sur le
nom du répertoire ou du dépôt. Utilisez --as <slug> pour le remplacer.
openclaw skills update suit uniquement les installations ClawHub : réinstallez les sources Git ou
locales pour les actualiser.Vérification et analyse de sécurité
Vérification et analyse de sécurité
openclaw skills verify @owner/<slug> demande à ClawHub l’enveloppe de confiance
clawhub.skill.verify.v1 de la skill. Les Skills ClawHub installées se vérifient
par rapport à la version et au registre enregistrés dans .clawhub/origin.json.
Les slugs nus restent acceptés pour les Skills existantes installées ou non ambiguës, mais
les références qualifiées par propriétaire évitent l’ambiguïté de l’éditeur.Les pages de skills ClawHub exposent le dernier état d’analyse de sécurité avant l’installation,
avec des pages de détail pour VirusTotal, ClawScan et l’analyse statique. La
commande se termine avec un code non nul lorsque ClawHub marque la vérification comme échouée. Les éditeurs
corrigent les faux positifs via le tableau de bord ClawHub ou
clawhub skill rescan @owner/<slug>.Installations d’archives privées
Installations d’archives privées
Les clients Gateway qui ont besoin d’une distribution hors ClawHub peuvent préparer une archive zip de skill
avec
skills.upload.begin, skills.upload.chunk et skills.upload.commit,
puis l’installer avec skills.install({ source: "upload", ... }). Ce chemin est
désactivé par défaut et nécessite skills.install.allowUploadedArchives: true dans
openclaw.json. Les installations ClawHub normales n’ont jamais besoin de ce paramètre.Sécurité
Confinement des chemins
Confinement des chemins
La découverte des Skills d’espace de travail, d’agent de projet et de répertoire supplémentaire n’accepte que les racines de skills
dont le chemin réel résolu reste dans la racine configurée, sauf si
skills.load.allowSymlinkTargets approuve explicitement une racine cible.
Atelier Skills écrit via ces cibles approuvées uniquement lorsque
skills.workshop.allowSymlinkTargetWrites est activé.
Les répertoires gérés ~/.openclaw/skills et personnels ~/.agents/skills peuvent contenir
des dossiers de skills liés symboliquement, mais chaque chemin réel de SKILL.md doit toujours rester
dans son répertoire de skill résolu.Politique d’installation de l’opérateur
Politique d’installation de l’opérateur
Configurez
security.installPolicy pour exécuter une commande de politique locale approuvée
avant la poursuite des installations de skills. La politique reçoit les métadonnées et le chemin
source préparé, s’applique aux chemins ClawHub, téléversé, Git, local, de mise à jour et
d’installation de dépendances, et échoue de manière fermée lorsque la commande ne peut pas retourner
une décision valide.Portée de l’injection de secrets
Portée de l’injection de secrets
skills.entries.*.env et skills.entries.*.apiKey injectent des secrets dans le
processus hôte pour ce tour d’agent uniquement, pas dans le sandbox. Gardez
les secrets hors des prompts et des journaux.Format SKILL.md
Chaque skill nécessite au minimum unname et une description dans le frontmatter :
OpenClaw suit la spécification AgentSkills. L’analyseur de
frontmatter prend en charge les clés sur une seule ligne uniquement :
metadata doit être un
objet JSON sur une seule ligne. Utilisez {baseDir} dans le corps pour référencer le chemin du dossier
de la skill.Clés frontmatter facultatives
URL affichée comme “Site web” dans l’UI macOS Skills. Également prise en charge via
metadata.openclaw.homepage.Lorsque
true, la skill est exposée comme commande slash invocable par l’utilisateur.Lorsque
true, OpenClaw garde les instructions de la skill hors du prompt normal
de l’agent. La skill reste disponible comme commande slash lorsque user-invocable
vaut également true.Lorsqu’elle est définie sur
tool, la commande slash contourne le modèle et est distribuée
directement à un outil enregistré.Nom de l’outil à invoquer lorsque
command-dispatch: tool est défini.Pour la répartition des outils, transmet la chaîne d’arguments brute à l’outil sans
analyse par le noyau. L’outil reçoit
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.Contrôle d’éligibilité
OpenClaw filtre les Skills au moment du chargement avecmetadata.openclaw (JSON
sur une seule ligne dans le frontmatter). Un Skill sans bloc metadata.openclaw est toujours
éligible sauf s’il est explicitement désactivé.
Quand
true, inclut toujours le Skill et ignore tous les autres contrôles.Emoji facultatif affiché dans l’interface Skills de macOS.
URL facultative affichée comme « Site web » dans l’interface Skills de macOS.
Filtre de plateforme. Quand il est défini, le Skill n’est éligible que sur les systèmes d’exploitation listés.
Chaque binaire doit exister sur
PATH.Au moins un binaire doit exister sur
PATH.Chaque variable d’environnement doit exister dans le processus ou être fournie via la configuration.
Chaque chemin
openclaw.json doit être truthy.Nom de variable d’environnement associé à
skills.entries.<name>.apiKey.Spécifications d’installation facultatives utilisées par l’interface Skills de macOS (brew / node / go / uv / download).
Les anciens blocs
metadata.clawdbot sont toujours acceptés quand
metadata.openclaw est absent, afin que les anciens Skills installés conservent leurs
contrôles de dépendances et leurs indications d’installation. Les nouveaux Skills doivent utiliser
metadata.openclaw.Spécifications d’installation
Les spécifications d’installation indiquent à l’interface Skills de macOS comment installer une dépendance :Installer selection rules
Installer selection rules
- Quand plusieurs programmes d’installation sont listés, le Gateway choisit une
option préférée (
brewsi disponible, sinonnode). - Si tous les programmes d’installation sont
download, OpenClaw liste chaque entrée afin que vous puissiez voir tous les artefacts disponibles. - Les spécifications peuvent inclure
os: ["darwin"|"linux"|"win32"]pour filtrer par plateforme. - Les installations Node respectent
skills.install.nodeManagerdansopenclaw.json(valeur par défaut : npm ; options : npm / pnpm / yarn / bun). Cela n’affecte que les installations de Skills ; le runtime Gateway doit toujours être Node. - Préférence d’installation du Gateway : Homebrew → uv → gestionnaire node configuré → go → download.
Per-installer details
Per-installer details
- Homebrew : OpenClaw n’installe pas automatiquement Homebrew et ne traduit pas les
formules brew en commandes de paquet système. Dans les conteneurs Linux sans
brew, les programmes d’installation exclusivement brew sont masqués ; utilisez une image personnalisée ou installez la dépendance manuellement. - Go : OpenClaw nécessite Go 1.21 ou une version plus récente pour les installations automatiques de Skills et
conserve les paramètres
GOBIN,GOPATHetGOTOOLCHAINexistants. Si la chaîne d’outils configurée ne peut pas satisfaire la version Go requise par un module, l’onboarding groupe le Skill avec les prérequis Go manuels après la tentative d’installation. Sigoest absent et que Homebrew est disponible, OpenClaw installe d’abord Go via Homebrew et définitGOBINsur le répertoirebinde Homebrew. Sur Linux, OpenClaw peut plutôt utiliserapt-geten tant que root ou viasudosans mot de passe lorsque le candidatgolang-goactualisé satisfait la version minimale. - Download :
url(obligatoire),archive(tar.gz|tar.bz2|zip),extract(valeur par défaut : automatique lorsqu’une archive est détectée),stripComponents,targetDir(valeur par défaut :~/.openclaw/tools/<skillKey>).
Sandboxing notes
Sandboxing notes
requires.bins est vérifié sur l’hôte au moment du chargement du Skill. Si un agent
s’exécute dans un bac à sable, le binaire doit aussi exister dans le conteneur.
Installez-le via agents.defaults.sandbox.docker.setupCommand ou une image
personnalisée. setupCommand s’exécute une fois après la création du conteneur et nécessite
une sortie réseau, un système de fichiers racine inscriptible et un utilisateur root dans le bac à sable.Remplacements de configuration
Activez/désactivez et configurez les Skills groupés ou gérés sousskills.entries dans
~/.openclaw/openclaw.json :
false désactive le Skill même lorsqu’il est groupé ou installé. Le Skill groupé coding-agent
est opt-in — définissez skills.entries.coding-agent.enabled: true
et assurez-vous que claude, codex, opencode ou une autre CLI prise en charge
est installé et authentifié.Champ de commodité pour les Skills qui déclarent
metadata.openclaw.primaryEnv.
Prend en charge une chaîne en texte clair ou un objet SecretRef.Variables d’environnement injectées pour l’exécution de l’agent. Elles ne sont injectées que lorsque la
variable n’est pas déjà définie dans le processus.
Conteneur facultatif pour les champs de configuration personnalisés par Skill.
Liste d’autorisation facultative pour les Skills groupés uniquement. Quand elle est définie, seuls les Skills groupés
dans la liste sont éligibles. Les Skills gérés et de l’espace de travail ne sont pas affectés.
Les clés de configuration correspondent par défaut au nom du Skill. Si un Skill définit
metadata.openclaw.skillKey, utilisez cette clé sous skills.entries. Mettez
les noms avec trait d’union entre guillemets : JSON5 autorise les clés entre guillemets.Injection d’environnement
Quand une exécution d’agent démarre, OpenClaw :Reads skill metadata
OpenClaw résout la liste effective des Skills pour l’agent, en appliquant les règles
de contrôle, les listes d’autorisation et les remplacements de configuration.
Injects env and API keys
skills.entries.<key>.env et skills.entries.<key>.apiKey sont appliqués à
process.env pendant la durée de l’exécution.Builds the system prompt
Les Skills éligibles sont compilés dans un bloc XML compact et injectés dans le
prompt système.
claude-cli, OpenClaw matérialise également le même
instantané de Skills éligibles sous forme de Plugin Claude Code temporaire et le transmet via
--plugin-dir. Les autres backends CLI utilisent uniquement le catalogue du prompt.
Instantanés et actualisation
OpenClaw prend un instantané des Skills éligibles au démarrage d’une session et réutilise cette liste pour tous les tours suivants de la session. Les modifications des Skills ou de la configuration prennent effet à la prochaine nouvelle session. Les Skills s’actualisent en milieu de session dans deux cas :- Le surveillant des Skills détecte une modification de
SKILL.md. - Un nouveau nœud distant éligible se connecte.
Skills watcher
Skills watcher
Par défaut, OpenClaw surveille les dossiers de Skills et incrémente l’instantané lorsque les fichiers
Utilisez
SKILL.md changent. Configurez sous skills.load :allowSymlinkTargets pour les dispositions de liens symboliques intentionnelles où un lien symbolique
racine de Skill pointe en dehors de la racine configurée, par exemple
<workspace>/skills/manager -> ~/Projects/manager/skills.
Activez skills.workshop.allowSymlinkTargetWrites uniquement lorsque Skill Workshop
doit aussi appliquer les propositions via ces chemins symboliques approuvés.Remote macOS nodes (Linux gateway)
Remote macOS nodes (Linux gateway)
Si le Gateway s’exécute sur Linux mais qu’un nœud macOS est connecté avec
system.run autorisé, OpenClaw peut considérer les Skills réservés à macOS comme éligibles lorsque
les binaires requis sont présents sur ce nœud. L’agent doit exécuter ces
Skills via l’outil exec avec host=node.Les nœuds hors ligne ne rendent pas les Skills disponibles uniquement à distance visibles. Si un nœud cesse de
répondre aux sondes de binaires, OpenClaw efface ses correspondances de binaires mises en cache.Impact sur les tokens
Lorsque des Skills sont éligibles, OpenClaw injecte un bloc XML compact dans le prompt système. Le coût est déterministe :- Surcoût de base (uniquement quand ≥ 1 Skill) : ~195 caractères
- Par Skill : ~97 caractères + les longueurs de vos champs
name,descriptionetlocation - L’échappement XML développe
& < > " 'en entités, ajoutant quelques caractères par occurrence - À ~4 caractères/token, 97 caractères ≈ 24 tokens par Skill avant les longueurs des champs
Connexe
Creating skills
Guide étape par étape pour créer un Skill personnalisé.
Skill Workshop
File de propositions pour les Skills rédigés par l’agent.
Skills config
Schéma complet de configuration
skills.* et listes d’autorisation des agents.Slash commands
Comment les commandes slash des Skills sont enregistrées et routées.
ClawHub
Parcourez et publiez des Skills dans le registre public.
Plugins
Les Plugins peuvent distribuer des Skills avec les outils qu’ils documentent.