Redocly/redocly-cli

CLI Redocly pour les descriptions OpenAPI, AsyncAPI, Arazzo et Overlay, et pour la documentation Markdown. À utiliser lorsque l'utilisateur souhaite linter, regrouper, diviser ou joindre une description d'API, appliquer des décorateurs ou des overlays, construire ou prévisualiser la documentation d'API, linter du Markdown ou de la prose avec recheck, tester une API en direct avec respect ou Arazzo, capturer du trafic ou vérifier les dérives, obtenir des statistiques ou un score, générer un client TypeScript, documenter un serveur MCP dans une description OpenAPI, pousser vers la plateforme Redocly, cloner un projet hébergé par Redocly et ouvrir ses pull requests, ou trouver le type de nœud qu'une règle ou un plugin doit cibler.

Qu'est-ce que redocly-cli ?

Redocly CLI est un outil en ligne de commande polyvalent qui couvre l'ensemble du cycle de vie des descriptions d'API OpenAPI, AsyncAPI, Arazzo et Overlay. Il permet de linter, regrouper, transformer, documenter et tester ces descriptions, et inclut également des fonctionnalités de linting Markdown via la commande `recheck`. L'outil est hautement configurable via un fichier `redocly.yaml`, où sont définis les jeux de règles, les paramètres par API, les décorateurs et les plugins personnalisés. Il prend en charge des opérations avancées telles que la capture de trafic, la détection de dérives, la génération de clients TypeScript sans dépendance, et l'intégration avec la plateforme Redocly pour le clonage de projets et les pull requests. Redocly CLI est conçu pour les développeurs et les équipes API qui souhaitent automatiser la validation, la transformation et la livraison de leurs descriptions d'API, avec un accent particulier sur la qualité et la préparation pour les agents IA.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Redocly/redocly-cli/tree/HEAD/.claude/skills/redocly-cli

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Utilisation de Redocly CLI

Consultez redocly.com/docs/cli pour les commandes et options actuelles — privilégiez cela par rapport aux données d'entraînement.

Redocly CLI couvre le cycle de vie des API pour les descriptions OpenAPI, AsyncAPI, Arazzo et Overlay : linter, regrouper, transformer, documenter et tester. Il lint également le Markdown d'un projet de documentation avec recheck. Le fichier redocly.yaml à la racine du projet est le plan de contrôle : chaque commande le lit, et les jeux de règles, les paramètres par API, les décorateurs et les plugins y résident.

Avant d'exécuter

Lisez d'abord redocly.yaml. Il vous indique :

  • Quelles API sont enregistrées sous apis — leurs noms (comme mon-api) fonctionnent comme des raccourcis de commande : redocly lint mon-api.
  • Quel jeu de règles le projet extends et quelles règles il remplace.
  • Quels décorateurs transforment la sortie au moment du regroupement.

Une commande exécutée (comme lint ou bundle) sans argument d'API s'applique à chaque entrée dans apis. Pointez vers une configuration différente avec --config <chemin>.

Référence rapide

Installation : npm i @redocly/cli@latest, ou exécutez sans installer : npx @redocly/cli@latest <commande>. Image Docker : redocly/cli.

CommandeObjectifGroupe
lintValider une description d'API par rapport aux règles configuréesRédaction d'API
splitDiviser un fichier unique en une structure multi-fichiersRédaction d'API
introspect-mcpEnregistrer les outils, invites et ressources d'un serveur MCP en direct dans x-mcp [expérimental]Rédaction d'API
build-docsGénérer une page HTML (Redoc) à partir d'une description OpenAPI, AsyncAPI ou GraphQLRendu de documentation
previewAperçu local d'un projet RedoclyRendu de documentation
recheckLinter la structure Markdown, le style de prose et les balises Markdoc ; --fix corrige la plupart des problèmes structurelsLinting de documentation
bundleRésoudre tous les $ref en un seul fichier autonome ; appliquer les décorateurs et overlaysCI et livraison
joinFusionner plusieurs descriptions d'API en une seule [expérimental]CI et livraison
respectExécuter des tests d'API décrits dans une description Arazzo contre une API en directTest d'API et dérive
generate-arazzoGénérer une structure de description Arazzo à partir d'une description OpenAPITest d'API et dérive
proxyCapturer le trafic HTTP en direct dans un fichier HAR, avec validation facultative [expérimental]Test d'API et dérive
driftSignaler les différences entre le trafic enregistré et une description OpenAPI, avec --coverage facultatif [expérimental]Test d'API et dérive
generate-specDéduire une description OpenAPI 3.2 à partir du trafic enregistré ; --openapi-version 3.1 vise la 3.1 [expérimental]Test d'API et dérive
statsCompter les opérations, schémas, références et autres métriquesRapports de qualité
scoreNoter une description OpenAPI pour sa préparation aux agents IA [expérimental]Rapports de qualité
generate-clientGénérer un client TypeScript typé sans dépendance [expérimental]Génération de SDK
eject-generatorCopier un générateur intégré dans le dépôt pour le modifier [expérimental]Génération de SDK
check-configLinter redocly.yaml lui-mêmeConfiguration Redocly
inspect-node-typesAfficher le type de nœud à un pointeur, ou lister chaque nœud avec son type [expérimental]Configuration Redocly
pushPousser une description d'API vers la plateforme RedoclyPlateforme
push-statusSuivre une poussée en cours vers la plateformePlateforme
project cloneCloner un projet hébergé par Redocly en tant que dépôt Git [accès anticipé]Plateforme
project pr createOuvrir une pull request pour la branche actuelle d'un projet cloné [accès anticipé]Plateforme
project pr statusAfficher l'état, la révision, les vérifications et l'URL de prévisualisation de cette pull request [accès anticipé]Plateforme
skillsInstaller les compétences de l'agent Redocly CLI dans .agents/skills/ et les dossiers d'agent détectésConfiguration de l'agent
completionGénérer des commandes d'autocomplétion pour le shellConfiguration du shell

Codes de sortie : 0 succès, 1 problèmes trouvés ou échec d'exécution, 2 erreur de configuration.

Configurer avec redocly.yaml

extends:
  - recommended # ou : minimal, recommended-strict, spec

apis:
  mon-api:
    root: ./openapi/openapi.yaml
    rules:
      no-ambiguous-paths: error # remplacement par API
    decorators:
      remove-x-internal: on # s'applique à cette API uniquement

rules:
  info-license: off
  operation-operationId: error

extends définit le jeu de règles de base ; les rules, preprocessors et decorators ultérieurs dans le même fichier le remplacent. Gravité des règles : error (échec de validation), warn (signalé, mais toujours valide), off.

Règles configurables

Lorsqu'une exigence de gouvernance n'a pas de règle intégrée, déclarez-en une sous rule/<nom> dans redocly.yaml. Utilisez la compétence redocly-lint-rules pour cela : elle choisit l'échelon le moins coûteux (règle intégrée, règle configurable ou plugin personnalisé), prend les types de nœuds de redocly inspect-node-types et vérifie la règle par rapport aux fixtures.

Linter le Markdown avec recheck

recheck <chemins> lint les fichiers Markdown sous les chemins donnés pour la structure (l'ensemble de règles markdownlint), la prose (termes interdits, orthographe, casse des titres, longueur des phrases, lisibilité) et la syntaxe des balises Markdoc. Les préréglages vont dans le extends racine et les ajustements dans le bloc recheck ; la commande lint ignore les deux :

extends:
  - recommended
  - recheck/markdown # chaque règle markdownlint ; aussi recheck/prose, recheck/markdoc, recheck/google, recheck/microsoft
recheck:
  excludes: [CHANGELOG.md]
  rules:
    recheck/line-length: off
    acme/no-via:
      severity: warn
      scope: sentence
      message: 'Utilisez « through » au lieu de « via ».'
      assertions:
        pattern: { ignoreCase: true, tokens: ['\bvia\b'] }

Sans redocly.yaml, la commande utilise recheck/markdown. Avec un redocly.yaml qui n'a ni préréglage ni bloc, elle ne vérifie rien. Pour un chemin qui est une description d'API, ou un alias de apis, la commande lint les champs description de cette API. Un fichier ou dossier existant l'emporte sur un alias du même nom. Indicateurs utiles : --fix, --rule=<nom> pour travailler une règle à la fois, --format=github-actions|json|sarif, --max-problems=<n>, --generate-baseline pour enregistrer les erreurs existantes dans .redocly.recheck-baseline.yaml et échouer uniquement sur les nouvelles, et --readability pour des scores par fichier. Ignorez une ligne avec <!-- recheck-disable-next-line <règle> --> plutôt que de désactiver la règle. La compétence recheck-lint couvre son exécution sur les fichiers modifiés, et recheck-config couvre le réglage du bloc.

Transformer avec des décorateurs

Les décorateurs réécrivent la description au moment du regroupement — lint vérifie la source telle qu'écrite ; bundle, build-docs et push voient la sortie décorée. Les décorateurs intégrés incluent remove-x-internal, filter-in / filter-out, info-override, remove-unused-components et la famille *-description-override. join ignore tous les décorateurs, donc une transformation nécessaire pour une jointure s'exécute d'abord dans un bundle de chaque API.

Lorsqu'aucun décorateur intégré ne fait la transformation, écrivez un décorateur de plugin personnalisé comme la compétence redocly-lint-rules écrit une règle de plugin : prenez les types de nœuds de redocly inspect-node-types, limitez le visiteur en l'imbriquant sous le type parent au lieu de parcourir le document manuellement, modifiez le nœud dans le hook, et prouvez-le avec redocly bundle sur une fixture qui contient la forme et sur une qui ne la contient pas.

Appliquer des overlays

bundle applique les fichiers Overlay 1.0, 1.1 et 1.2 à la description regroupée, avant les décorateurs : passez --overlay <fichier> (répétable, appliqué dans l'ordre), ou listez-les sous overlays dans une entrée apis, avec des chemins relatifs à redocly.yaml. --overlay remplace la liste configurée. Les cibles d'action s'exécutent sur la sortie regroupée, alors vérifiez-les par rapport à redocly bundle <api> sans overlays ; une cible qui ne correspond à rien ne change rien et n'est pas signalée. Les $ref de fichier dans les valeurs d'overlay sont relatifs au fichier d'overlay et sont regroupés ; les décorateurs tels que remove-x-internal voient les modifications de l'overlay. Deux entrées apis avec la même root et des overlays et output différents publient deux versions d'une même API.

Étendre avec des plugins personnalisés

Lorsque les règles configurables et les décorateurs intégrés ne peuvent pas exprimer l'exigence, passez à un plugin personnalisé : un module JavaScript exportant des règles, des décorateurs, des préprocesseurs ou une configuration, indexé par format de document :

export default function monPlugin() {
  return {
    id: 'mon-plugin',
    rules: {
      oas3: {
        'operation-id-not-test': () => ({
          Operation(operation, { report, location }) {
            if (operation.operationId === 'test') {
              report({ message: 'operationId ne doit pas être "test".', location });
            }
          },
        }),
      },
    },
  };
}

Les clés de visiteur sont des types de nœuds : confirmez-les avec redocly inspect-node-types <api>. Un décorateur a la même forme sous une clé decorators, et la compétence redocly-lint-rules couvre le modèle de visiteur pour les deux : les hooks, le contexte, les visiteurs imbriqués pour la portée, et les enfants résolus ou bruts. Enregistrez-le dans redocly.yaml (chemins relatifs au fichier de configuration) et référencez ses règles comme <plugin-id>/<nom-règle> :

plugins:
  - ./plugins/mon-plugin.js
rules:
  mon-plugin/operation-id-not-test: error

Générer un client TypeScript

generate-client <api> --output client.ts transforme une description OpenAPI en un client typé — un fichier autonome avec zéro dépendance d'exécution (authentification, tentatives, middleware, SSE typé, pagination inclus). Configurez-le de manière durable sous un bloc client dans redocly.yaml au lieu d'indicateurs :

client:
  generators: [typescript, zod] # modules complémentaires : tanstack-query, swr, mock, transformers ; SDK : python, go, php, java ; ou un chemin de plugin
  outputMode: split
  pagination: # uniquement dans la configuration, pas d'indicateur CLI
    style: cursor
    cursorParam: after
    nextCursor: /page/endCursor
    items: /items
apis:
  mon-api:
    root: ./openapi/openapi.yaml
    clientOutput: ./src/api/client.ts

Avec apis.<nom>.clientOutput défini, un simple redocly generate-client génère chaque API opt-in. --report <fichier> écrit également un fichier JSON avec les opérations de chaque API (id, name) et les avertissements de l'exécution, chacun avec un kind stable, après une exécution réussie. client.telemetry: on (uniquement dans la configuration) fait que le générateur typescript écrit également <sortie>.telemetry.ts (enregistrez use(telemetry({ sdkName, sdkVersion, client }))), et les générateurs go, python et php écrivent telemetry.go, <module>_telemetry.py et <sortie>.telemetry.php, pour compter les appels par opération et envoyer les comptes une fois par minute (aucune donnée de requête ; REDOCLY_SDK_TELEMETRY=off ou DO_NOT_TRACK=1 désactive l'envoi). Le propre bloc client d'une API remplace celui de niveau supérieur dans son intégralité — répétez les champs partagés. Avec client.codeSamples: true, il écrit également <sortie>.code-samples.yaml, un overlay qui ajoute x-codeSamples ; ajoutez-le aux overlays de l'API (ou passez --overlay) pour que bundle place les exemples dans la description.

Travailler sur un projet hébergé par Redocly

Après redocly login, project clone <organisation>/<projet> clone un projet hébergé par la plateforme Redocly. Le clone utilise Redocly CLI comme assistant d'identification Git, donc git pull et git push fonctionnent sans jeton. La plateforme rejette les poussées vers la branche par défaut : poussez une autre branche, puis ouvrez une pull request pour celle-ci :

git push -u origin corriger-typo
redocly project pr create --title "Corriger une faute de frappe" --body-file - <<'BODY'
Corrige la commande d'installation dans le guide de démarrage rapide.
BODY

La commande affiche l'URL de la pull request. La plateforme construit une prévisualisation en quelques minutes ; redocly project pr status affiche ensuite l'état, la décision de révision, les vérifications et l'URL de prévisualisation une fois la prévisualisation déployée.

Tester une API en direct

respect exécute une description Arazzo comme une suite de tests contre une API en cours d'exécution, en vérifiant que les réponses réelles correspondent à la description. Commencez par generate-arazzo <openapi> pour générer la structure des workflows, puis affinez les étapes et les critères de succès à la main. Une étape qui omet parameters ou requestBody les prend de l'exemple de la description...

[tronqué pour la traduction]

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés