SKILL.md avec un
frontmatter YAML et un corps Markdown. OpenClaw charge les Skills intégrés ainsi que les éventuelles
surcharges locales, puis les filtre au chargement selon l’environnement, la configuration et
la présence des binaires.
Création de Skills
Créez et testez un Skill personnalisé de zéro.
Atelier de Skills
Examinez et approuvez les propositions de Skills rédigées par l’agent.
Configuration des Skills
Schéma de configuration
skills.* complet et listes d’autorisation des agents.ClawHub
Parcourez et installez les Skills de la communauté.
Ordre de chargement
OpenClaw effectue le chargement depuis les sources suivantes, par ordre de priorité décroissante. Lorsque le même nom de Skill apparaît à plusieurs endroits, la source de priorité la plus élevée l’emporte.
Les racines de Skills prennent en charge les structures groupées. OpenClaw découvre un Skill dès qu’un fichier
SKILL.md apparaît n’importe où sous une racine configurée, jusqu’à 6 niveaux de profondeur :
name du frontmatter, ou du nom du répertoire lorsque name est
absent. Les listes d’autorisation des agents ci-dessous correspondent également à ce name.
Le répertoire natif
$CODEX_HOME/skills de Codex CLI n’est pas une racine de
Skills OpenClaw. Utilisez openclaw migrate plan codex pour inventorier ces Skills, puis
openclaw migrate codex pour les copier dans votre espace de travail OpenClaw.Skills hébergés par un Node
Un Node sans interface graphique connecté peut publier les Skills installés dans son répertoire actif de Skills OpenClaw (~/.openclaw/skills par défaut ; les remplacements définis par l’environnement du profil
s’appliquent). Ils apparaissent dans la liste normale des Skills de l’agent tant que le Node est connecté
et disparaissent lorsqu’il se déconnecte. En cas de conflit, un Skill local ou du Gateway conserve son nom ;
le Skill du Node reçoit un nom déterministe préfixé par le Node.
La version v1 des Skills hébergés par un Node exige que le nom du répertoire corresponde au champ name
du frontmatter du Skill.
L’entrée du Skill inclut le localisateur du Node. Ses fichiers, références relatives et
binaires résident sur le Node ; chargez-le et exécutez-le donc avec
exec host=node node=<node-id>. Redémarrez l’hôte du Node après avoir modifié les fichiers
du Skill. Consultez Nodes pour l’association et les mécanismes de désactivation.
Skills propres à un agent ou partagés
Dans les configurations multi-agents, chaque agent possède son propre espace de travail. Utilisez le chemin qui correspond à la visibilité souhaitée :Listes d’autorisation des agents
L’emplacement du Skill, qui détermine sa priorité, et sa visibilité, qui détermine quel agent peut l’utiliser, sont des contrôles distincts. Utilisez les listes d’autorisation pour limiter les Skills visibles par un agent, quel que soit leur emplacement de chargement.Règles des listes d’autorisation
Règles des listes d’autorisation
- Omettez
agents.defaults.skillspour ne restreindre aucun Skill par défaut. - Omettez
agents.list[].skillspour hériter deagents.defaults.skills. - Définissez
agents.list[].skills: []pour n’exposer aucun Skill à cet agent. - Une liste
agents.list[].skillsnon vide constitue l’ensemble définitif : elle n’est pas fusionnée avec les valeurs par défaut. - La liste d’autorisation effective s’applique à la construction des prompts, à la découverte des commandes avec barre oblique, à la synchronisation du bac à sable et aux instantanés des Skills.
- Il ne s’agit pas d’une frontière d’autorisation pour le shell de l’hôte. Si le même agent peut
utiliser
exec, limitez ce shell séparément au moyen d’un bac à sable, de l’isolation par utilisateur du système d’exploitation, de listes d’interdiction ou d’autorisation pour l’exécution et d’identifiants propres à chaque ressource.
Plugins et Skills
Les Plugins peuvent fournir leurs propres Skills en répertoriant des répertoiresskills dans
openclaw.plugin.json, avec des chemins relatifs à la racine du Plugin. Les Skills d’un Plugin sont chargés
lorsque le Plugin est activé ; par exemple, le Plugin de navigateur fournit un Skill
browser-automation pour le contrôle du navigateur en plusieurs étapes.
Les répertoires de Skills des Plugins sont fusionnés au même niveau de faible priorité que
skills.load.extraDirs. Un Skill intégré, géré, propre à un agent ou à l’espace de travail portant le même nom
les remplace donc. Contrôlez l’éligibilité propre d’un Skill de Plugin au moyen de
metadata.openclaw.requires dans son frontmatter, comme pour tout autre Skill.
Consultez Plugins et Outils pour découvrir l’ensemble du système de Plugins.
Atelier de Skills
L’Atelier de Skills est une file de propositions située 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 l’examinez et l’approuvez
avant toute modification.
Installation depuis ClawHub
ClawHub est le registre public des Skills. Utilisez les commandesopenclaw skills pour l’installation et la mise à jour, ou la CLI clawhub pour
la publication et la synchronisation.
Détails de l’installation
Détails de l’installation
Par défaut,
openclaw skills install effectue l’installation dans le répertoire skills/
de l’espace de travail actif. Ajoutez --global pour effectuer l’installation dans le répertoire partagé
~/.openclaw/skills, visible par tous les agents locaux sauf si leurs listes
d’autorisation le restreignent.Les installations Git et locales attendent un fichier SKILL.md à la racine de la source. L’identifiant court provient
du champ name du frontmatter de SKILL.md lorsqu’il est valide, puis, à défaut, du
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 le périmètre de confiance
clawhub.skill.verify.v1 du Skill. Les Skills ClawHub installés sont vérifiés
par rapport à la version et au registre enregistrés dans .clawhub/origin.json.
Les identifiants courts sans propriétaire restent acceptés pour les Skills déjà installés ou non ambigus, mais
les références qualifiées par le propriétaire évitent toute ambiguïté concernant l’éditeur.Les pages de Skills ClawHub affichent l’état de la dernière analyse de sécurité avant l’installation,
avec des pages détaillées pour VirusTotal, ClawScan et l’analyse statique. La
commande renvoie un code de sortie non nul lorsque ClawHub indique que la vérification a échoué. Les éditeurs
peuvent corriger les faux positifs depuis le tableau de bord ClawHub ou avec
clawhub skill rescan @owner/<slug>.Installations depuis une archive privée
Installations depuis une archive privée
Les clients du Gateway qui nécessitent une distribution hors de 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", ... }). Cette voie est
désactivée par défaut et nécessite skills.install.allowUploadedArchives: true dans
openclaw.json. Les installations ClawHub normales ne nécessitent jamais ce paramètre.Sécurité
Confinement des chemins
Confinement des chemins
La découverte des Skills de l’espace de travail, de l’agent du projet et des répertoires supplémentaires accepte uniquement les
racines de Skills dont le chemin réel résolu reste à l’intérieur de la racine configurée, sauf si
skills.load.allowSymlinkTargets approuve explicitement une racine cible.
L’Atelier de Skills écrit au travers de 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 le chemin réel de chaque fichier SKILL.md doit toujours rester
dans le répertoire résolu de son Skill.Politique d’installation de l’opérateur
Politique d’installation de l’opérateur
Configurez
security.installPolicy afin d’exécuter une commande de politique locale fiable
avant de poursuivre l’installation des Skills. La politique reçoit les métadonnées et le chemin
de la source préparée, s’applique aux installations ClawHub, aux téléversements, à Git, aux sources locales, aux mises à jour et
aux chemins d’installation des dépendances, et refuse l’opération par défaut lorsque la commande ne peut pas renvoyer
une décision valide.Portée de l’injection des secrets
Portée de l’injection des secrets
skills.entries.*.env et skills.entries.*.apiKey injectent des secrets dans le
processus de l’hôte uniquement pendant ce tour de l’agent, et non dans le bac à sable. N’incluez pas les
secrets dans les prompts ni dans les journaux.Format de SKILL.md
Chaque Skill nécessite au minimum unname et une description dans le frontmatter :
OpenClaw suit la spécification AgentSkills. Le frontmatter
est d’abord analysé comme du YAML ; en cas d’échec, l’analyseur de secours
n’accepte qu’une seule ligne. Les blocs
metadata imbriqués (y compris les
mappages YAML multilignes) sont aplatis en une chaîne JSON, puis réanalysés
comme du JSON5 ; la forme de bloc présentée sous Filtrage
fonctionne donc. Utilisez {baseDir} dans le corps pour référencer le chemin
du dossier de la skill.Clés de frontmatter facultatives
string
URL affichée sous le libellé “Website” dans l’interface Skills de macOS. Également
prise en charge via
metadata.openclaw.homepage.boolean
défaut:"true"
Lorsque cette valeur est
true, la skill est exposée comme une commande slash
invocable par l’utilisateur.boolean
défaut:"false"
Lorsque cette valeur est
true, OpenClaw exclut les instructions de la skill
du prompt normal de l’agent. La skill reste disponible comme commande slash
lorsque user-invocable vaut également true."tool"
Lorsque cette valeur est définie sur
tool, la commande slash contourne le
modèle et est envoyée directement à un outil enregistré.string
Nom de l’outil à invoquer lorsque
command-dispatch: tool est défini."raw"
défaut:"raw"
Pour l’envoi vers un outil, transmet la chaîne d’arguments brute à l’outil
sans analyse par le cœur. L’outil reçoit
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.Filtrage
OpenClaw filtre les skills lors du chargement à l’aide demetadata.openclaw
(objet JSON5 incorporé au frontmatter ; voir la note d’analyse ci-dessus). Une
skill dépourvue de bloc metadata.openclaw est toujours admissible, sauf si elle
est explicitement désactivée.
boolean
Lorsque cette valeur est
true, inclut toujours la skill et ignore tous les
autres critères de filtrage.string
Emoji facultatif affiché dans l’interface Skills de macOS.
string
URL facultative affichée sous le libellé “Website” dans l’interface Skills de macOS.
("darwin" | "linux" | "win32")[]
Filtre de plateforme. Lorsqu’il est défini, la skill n’est admissible que sur
l’un des systèmes d’exploitation répertoriés.
string[]
Chaque exécutable doit exister dans
PATH.string[]
Au moins un exécutable doit exister dans
PATH.string[]
Chaque variable d’environnement doit exister dans le processus ou être fournie
par la configuration.
string[]
Chaque chemin dans
openclaw.json doit avoir une valeur évaluée comme vraie.string
Nom de la variable d’environnement associée à
skills.entries.<name>.apiKey.object[]
Spécifications facultatives des programmes d’installation utilisées par
l’interface Skills de macOS (brew / node / go / uv / download).
Les anciens blocs
metadata.clawdbot restent acceptés lorsque
metadata.openclaw est absent, afin que les anciennes skills installées
conservent leurs critères de dépendances et leurs indications d’installation.
Les nouvelles skills doivent utiliser metadata.openclaw.Spécifications des programmes d’installation
Les spécifications des programmes d’installation indiquent à l’interface Skills de macOS comment installer une dépendance :Règles de sélection du programme d’installation
Règles de sélection du programme d’installation
- Lorsque plusieurs programmes d’installation sont répertoriés, le Gateway choisit l’option privilégiée (brew lorsqu’il est disponible, sinon node).
- Si tous les programmes d’installation sont de type
download, OpenClaw répertorie chaque entrée afin que vous puissiez voir tous les artefacts disponibles. - Les spécifications peuvent inclure
os: ["darwin"|"linux"|"win32"]pour appliquer un filtre par plateforme. - Les installations Node respectent
skills.install.nodeManagerdansopenclaw.json(valeur par défaut : npm ; options : npm / pnpm / yarn / bun). Cela concerne uniquement l’installation des skills ; l’environnement d’exécution du Gateway doit toujours être Node. - Ordre de préférence des programmes d’installation du Gateway : Homebrew → uv → gestionnaire de paquets node configuré → go → download.
Détails propres à chaque programme d’installation
Détails propres à chaque programme d’installation
- Homebrew : OpenClaw n’installe pas automatiquement Homebrew et ne
traduit pas les formules brew en commandes du gestionnaire de paquets
système. Dans les conteneurs Linux dépourvus de
brew, les programmes d’installation exclusivement basés sur brew sont masqués ; utilisez une image personnalisée ou installez la dépendance manuellement. - Go : OpenClaw exige Go 1.21 ou une version plus récente pour
l’installation automatique des skills. Si
goest absent et que Homebrew est disponible, OpenClaw installe d’abord Go via Homebrew ; sous Linux sans Homebrew, il peut à la place utiliserapt-geten tant que superutilisateur ou via unsudosans mot de passe lorsque la version candidate actualisée degolang-gosatisfait à la version minimale. La commandego installproprement dite pour la dépendance cible toujours un répertoire d’exécutables dédié et géré par OpenClaw (le répertoirebinde Homebrew lors d’une nouvelle installation, sinon~/.local/bin), plutôt que votreGOBINconfiguré — vos propres variables d’environnementGOBIN,GOPATHetGOTOOLCHAINsont lues, mais jamais remplacées. - Téléchargement :
url(obligatoire),archive(tar.gz|tar.bz2|zip),extract(par défaut : automatique lorsqu’une archive est détectée),stripComponents,targetDir(par défaut :~/.openclaw/tools/<skillKey>).
Remarques sur l’isolation
Remarques sur l’isolation
requires.bins est vérifié sur l’hôte lors du chargement de la skill. Si
un agent s’exécute dans un environnement isolé, l’exécutable doit également
exister dans le conteneur. Installez-le via
agents.defaults.sandbox.docker.setupCommand ou une image personnalisée.
setupCommand s’exécute une seule fois après la création du conteneur et
nécessite un accès réseau sortant, un système de fichiers racine accessible
en écriture et un utilisateur root dans l’environnement isolé.Remplacements de configuration
Activez, désactivez et configurez les skills intégrées ou gérées sousskills.entries dans ~/.openclaw/openclaw.json :
boolean
false désactive la skill même si elle est intégrée ou installée. La skill
intégrée coding-agent doit être activée explicitement — définissez
skills.entries.coding-agent.enabled: true et vérifiez que claude, codex,
opencode ou une autre CLI prise en charge est installée et authentifiée.string | { source, provider, id }
Champ pratique pour les skills qui déclarent
metadata.openclaw.primaryEnv. Accepte une chaîne en texte brut ou un objet
SecretRef.Record<string, string>
Variables d’environnement injectées pour l’exécution de l’agent. Elles ne sont
injectées que si la variable n’est pas déjà définie dans le processus.
object
Ensemble facultatif de champs de configuration personnalisés propres à la
skill.
string[]
Liste d’autorisation facultative réservée aux skills intégrées. Lorsqu’elle
est définie, seules les skills intégrées figurant dans la liste sont
admissibles. Les skills gérées et celles de l’espace de travail ne sont pas
concernées.
Par défaut, les clés de configuration correspondent au nom de la skill. Si
une skill définit
metadata.openclaw.skillKey, utilisez plutôt cette clé sous
skills.entries. Placez les noms comportant des traits d’union entre
guillemets : JSON5 autorise les clés entre guillemets.Injection de l’environnement
Lorsqu’une exécution d’agent commence, OpenClaw :1
Lit les métadonnées des skills
OpenClaw détermine la liste effective des skills de l’agent en appliquant
les règles de filtrage, les listes d’autorisation et les remplacements de
configuration.
2
Injecte les variables d’environnement et les clés API
skills.entries.<key>.env et skills.entries.<key>.apiKey sont appliqués à
process.env pendant toute la durée de l’exécution.3
Construit le prompt système
Les skills admissibles sont compilées dans un bloc XML compact et injectées
dans le prompt système.
4
Restaure l’environnement
À la fin de l’exécution, l’environnement d’origine est restauré.
claude-cli, OpenClaw matérialise également le même
instantané de skills admissibles sous la forme d’un Plugin Claude Code
temporaire et le transmet via --plugin-dir. Les autres moteurs CLI utilisent
uniquement le catalogue du prompt.
Instantanés et actualisation
OpenClaw crée un instantané des skills admissibles au démarrage d’une session et réutilise cette liste pour tous les tours suivants de la session. Les modifications apportées aux skills ou à la configuration prennent effet lors de la prochaine nouvelle session. Les skills sont actualisées en cours de session dans deux cas :- Le mécanisme de surveillance des skills détecte une modification de
SKILL.md. - Un nouveau node distant admissible se connecte.
Mécanisme de surveillance des Skills
Mécanisme de surveillance des Skills
Par défaut, OpenClaw surveille les dossiers de skills et actualise
l’instantané lorsque des fichiers Utilisez
SKILL.md changent. Configurez ce
comportement sous skills.load :allowSymlinkTargets pour les structures utilisant
intentionnellement des liens symboliques, lorsqu’un lien symbolique à la
racine d’une 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 également appliquer des propositions via ces chemins de liens
symboliques approuvés.Nodes macOS distants (Gateway Linux)
Nodes macOS distants (Gateway Linux)
Si le Gateway s’exécute sous Linux, mais qu’un node macOS est connecté
avec l’autorisation d’utiliser
system.run, OpenClaw peut considérer les
skills réservées à macOS comme admissibles lorsque les exécutables requis
sont présents sur ce node. L’agent doit exécuter ces skills via l’outil
exec avec host=node.Les nodes hors ligne ne rendent pas visibles les skills exclusivement
distantes. Si un node cesse de répondre aux sondes d’exécutables, OpenClaw
efface de son cache les correspondances d’exécutables pour ce node.Incidence sur les tokens
Lorsque des skills sont admissibles, OpenClaw injecte un bloc XML compact dans le prompt système. Le coût est déterministe et augmente linéairement pour chaque skill :- Surcoût de base (uniquement lorsqu’au moins une skill est admissible) : un
bloc fixe de texte introductif accompagné de l’élément conteneur
<available_skills>. - Par skill : environ 97 caractères, auxquels s’ajoutent les longueurs de
vos champs
name,descriptionetlocation. - L’échappement XML transforme
& < > " 'en entités, ajoutant quelques caractères à chaque occurrence. - À raison d’environ 4 caractères par token, 97 caractères représentent environ 24 tokens par skill avant la longueur des champs.
skills.limits.maxSkillsPromptChars), OpenClaw conserve d’abord autant
d’identités de Skills (nom, emplacement et version) que le format compact sans
description peut en contenir. Il utilise ensuite le budget restant pour des
descriptions raccourcies. S’il ne reste aucun budget pour les descriptions,
celles-ci sont omises. L’invite inclut une note renvoyant vers
openclaw skills check chaque fois qu’un formatage compact ou une troncation de
la liste est nécessaire.
Utilisez des descriptions courtes et explicites afin de réduire au minimum la
surcharge de l’invite.
Voir aussi
Créer des Skills
Guide détaillé pour créer une Skill personnalisée.
Atelier Skills
File d’attente des propositions de Skills rédigées par des agents.
Configuration des Skills
Schéma de configuration complet de
skills.* et listes d’autorisation des agents.Commandes slash
Procédure d’enregistrement et de routage des commandes slash des Skills.
ClawHub
Parcourez et publiez des Skills dans le registre public.
Plugins
Les Plugins peuvent inclure des Skills avec les outils qu’ils documentent.