Vue d'ensemble du CLI
Prévisualisez la documentation en local, validez la configuration, vérifiez les liens rompus et migrez vos plateformes avec le CLI open source de Jamdesk.
Le CLI Jamdesk vous permet de prévisualiser la documentation en local, de valider la configuration, de vérifier les liens rompus et de migrer depuis d'autres plateformes. Il est open source sous licence Apache License 2.0.
Installation
Installez-le globalement depuis npm pour utiliser jamdesk depuis n'importe où :
npm install -g jamdeskAprès l'installation, vérifiez que tout fonctionne :
jamdesk --version
Prérequis
- Node.js v20.0.0 ou supérieur
- npm v8 ou supérieur (recommandé)
Démarrage rapide
Créez un nouveau projet de documentation :
jamdesk init my-docs
cd my-docsExécutez le serveur de développement local avec rechargement à chaud :
jamdesk devVotre documentation sera disponible à l'adresse http://localhost:3000/docs
Vérifiez les erreurs de configuration, les liens rompus et l'orthographe :
jamdesk validate
jamdesk broken-links
jamdesk fix --dry-run
jamdesk fix
jamdesk spellcheckCommandes
Exécutez jamdesk <command> --help pour obtenir des informations détaillées sur n'importe quelle commande.
Développement
Démarre le serveur de développement local avec rechargement à chaud.
jamdesk dev
jamdesk dev --port 3001Fonctionnalités :
- Validation automatique au démarrage (schéma docs.json, syntaxe MDX et spécifications OpenAPI référencées ; une spécification invalide arrête le serveur afin que vous la détectiez avant de déployer)
- Rechargement à chaud lors des modifications de fichiers MDX
- Reconstruction automatique de la navigation lors des modifications de docs.json
- CSS personnalisé (
style.css) rechargé lors de l'actualisation du navigateur - Fonctionnalité de recherche complète
- Tous les thèmes et composants disponibles
Options :
| Flag | Description |
|---|---|
-p, --port <port> | Port d'exécution (par défaut : 3000) |
-v, --verbose | Active la sortie détaillée |
Crée un nouveau projet de documentation.
jamdesk init # Interactive mode
jamdesk init my-docs # Create in new directoryCela crée un nouveau projet avec :
- Fichier de configuration
docs.json - Exemples de pages MDX
- Structure de dossiers recommandée
Authentification
Connectez-vous à Jamdesk via votre navigateur. Requis avant de déployer.
jamdesk loginOuvre le dashboard Jamdesk dans votre navigateur pour l'authentification. Les identifiants sont stockés localement dans ~/.jamdeskrc.
Efface les identifiants stockés.
jamdesk logoutAffiche l'utilisateur actuellement authentifié et vérifie que votre session est valide.
jamdesk whoamiValidation
Valide la configuration de votre docs.json, la syntaxe MDX et les spécifications OpenAPI.
jamdesk validate
jamdesk validate --skip-mdxVérifie :
- Syntaxe JSON valide dans docs.json
- Champs requis (name, navigation)
- Valeurs de thème valides
- Erreurs de syntaxe MDX (par ex. caractères
<non échappés) - Validation des spécifications OpenAPI (si configuré)
- Conformité au schéma
Options :
| Flag | Description |
|---|---|
--skip-mdx | Ignore la validation de la syntaxe MDX |
-v, --verbose | Affiche une sortie de validation détaillée |
Exécutez cette commande avant de déployer pour détecter les erreurs rapidement.
Analyse votre documentation à la recherche de liens internes rompus.
jamdesk broken-linksExemple de sortie :
docs/getting-started.mdx:15 - /docs/quikstart
Did you mean: /docs/quickstart
Found 1 broken link in 45 files.Détecte les liens vers des pages manquantes et les fautes de frappe. Consultez Liens et navigation pour plus de détails.
Corrige automatiquement les avertissements de liens internes rompus dont la cible est sans ambiguïté. Gère deux catégories :
- Ancres mal orthographiées : un fragment comme
#instalationqui devrait clairement être#installation - Dérive d'ancre entre locales : une page traduite a renommé ses titres, mais les liens de cette locale pointent toujours vers l'ancien fragment anglais
# Preview what would change without touching any files
jamdesk fix --dry-run
# Apply fixes (prompts for confirmation)
jamdesk fixExemple de sortie en mode dry-run :
Planned fixes:
fr/ai/overview.mdx:9
/fr/ai/selectors#ai-strategies → /fr/ai/selectors#stratégies-ia
(dry run — no files written)Une correction n'est écrite que lorsque l'ancre corrigée correspond à un titre réel dans la page cible. Les cas ambigus sont laissés pour une révision manuelle.
Options :
| Flag | Description |
|---|---|
--dry-run | Prévisualise les corrections prévues sans écrire de fichiers |
-y, --yes | Applique les corrections sans invite de confirmation |
--types <list> | Types d'avertissements à corriger, séparés par des virgules (par défaut : tous les types pris en charge) |
Vérifie votre documentation à la recherche de fautes d'orthographe.
jamdesk spellcheckExemple de sortie :
getting-started.mdx:14 - "recieve"
└─ Did you mean: receive
Found 3 misspellings across 24 pages.
Tip: Run "jamdesk spellcheck --fix" to interactively fix or ignore words.Utilise un dictionnaire anglais avec plus de 150 termes techniques intégrés (API, GraphQL, Kubernetes, React, etc.) afin que le jargon courant ne soit pas signalé. Ignore les blocs de code, le code en ligne, le frontmatter, le JSX, les URL et les chemins de fichiers. Actuellement disponible en anglais uniquement ; la prise en charge multilingue du dictionnaire est prévue.
Options :
| Flag | Description |
|---|---|
--fix | Corrige les fautes de manière interactive ou les ajoute à la liste d'exclusion |
--json | Génère une sortie au format JSON (pour les pipelines CI) |
-v, --verbose | Affiche chaque fichier au fur et à mesure de la vérification |
Le mode de correction interactif (--fix) parcourt chaque mot mal orthographié unique :
1/10 "recieve" — found in 3 files
intro.mdx:14, setup.mdx:7, guide.mdx:22
? What do you want to do?
❯ Fix → receive (recommended)
Fix → relieve
Ignore in the future (add to docs.json)
Skip- Fix remplace le mot par une suggestion dans tous les fichiers (sans risque pour le code, il ne modifie ni les blocs de code ni les attributs JSX). Jusqu'à 3 suggestions sont affichées, la meilleure correspondance étant marquée comme recommandée.
- Ignore ajoute le mot à
spellcheck.ignoredans votre docs.json afin qu'il ne soit plus signalé - Skip ne fait rien pour cette exécution
Les modifications sont prévisualisées et confirmées avant d'être appliquées.
Liste d'exclusion personnalisée : ajoutez des termes spécifiques à votre projet dans votre docs.json :
{
"spellcheck": {
"ignore": ["YourProduct", "kubectl", "Terraform"]
}
}Le nom de votre projet issu de docs.json est automatiquement exclu.
Valide un seul fichier de spécification OpenAPI.
jamdesk openapi-check openapi.yaml
jamdesk openapi-check api/spec.jsonValide :
- Syntaxe YAML/JSON valide
- Conformité au schéma OpenAPI 3.x
- Définitions des endpoints
- Les références
$refse résolvent correctement
Vos spécifications OpenAPI sont validées à trois endroits. jamdesk dev s'arrête au démarrage si une spécification référencée est invalide, et jamdesk validate / jamdesk openapi-check vérifient les spécifications à la demande. Lorsque vous déployez, le build cloud valide également vos spécifications référencées, mais il s'agit alors d'un avertissement non bloquant : le reste de votre documentation est tout de même publié, et vous êtes informé précisément du problème (une erreur d'analyse avec la ligne et la colonne, une $ref non résolue, ou un operationId en double) par e-mail et dans la liste des builds du dashboard. Corrigez la spécification et repoussez pour lever l'avertissement.
Gestion des fichiers
Renomme une page et met automatiquement à jour toutes les références.
jamdesk rename docs/old-name.mdx docs/new-name.mdxCela va :
- Renommer le fichier
- Mettre à jour la navigation dans docs.json
- Mettre à jour les liens dans tous les autres fichiers MDX
- Mettre à jour les références de snippet
Utilisez cette commande plutôt qu'un renommage manuel pour garder toutes les références synchronisées.
Migration
Migre la documentation de Mintlify vers Jamdesk.
jamdesk migrateDétecte votre configuration Mintlify et la convertit au format Jamdesk. Dans la même passe, elle renomme les composants dépréciés (par ex. CardGroup → Columns), déplace les fichiers MDX de snippet orphelins vers /snippets/ et réécrit les imports relatifs au parent, extrait les composants inline qui utilisent des hooks React vers /snippets/<name>.tsx avec 'use client', et corrige automatiquement les problèmes de syntaxe MDX mécaniques. Idempotente, vous pouvez donc la relancer en toute sécurité.
Déploiement
Téléverse votre documentation et déclenche un build directement depuis le terminal.
jamdesk deploy
jamdesk deploy --detach
jamdesk deploy --full-rebuildLa progression s'affiche en direct à mesure que chaque phase du build se termine. Également disponible sous la forme jamdesk push.
| Flag | Description |
|---|---|
--detach | Met en file d'attente et quitte immédiatement |
--full-rebuild | Force un build complet (sans cache) |
--project <id> | Déploie vers un projet spécifique |
--allow-empty | Autorise le déploiement avec zéro page de contenu .mdx (refusé par défaut) |
Génère et déploie un Cloudflare Worker qui redirige /docs sur votre propre domaine vers votre site Jamdesk.
jamdesk deploy-proxy cloudflare
jamdesk deploy-proxy cloudflare --slug myproject --domain example.com --yesInteractif par défaut : vérifie Wrangler, valide votre compte Cloudflare, détecte automatiquement votre slug à partir de docs.json, génère les fichiers du Worker et effectue le déploiement si vous le souhaitez. Avec --yes, il génère les fichiers puis s'arrête — déployez avec npx wrangler deploy depuis le répertoire de sortie.
| Flag | Description |
|---|---|
--slug <slug> | Slug du projet Jamdesk |
--domain <domain> | Domaine cible (par ex. example.com) |
--path <path> | Préfixe de chemin (par défaut : /docs) |
--output-dir <dir> | Répertoire de sortie (par défaut : cloudflare-worker/) |
--skip-deploy | Ignore l'invite « déployer maintenant ? » lors d'une exécution interactive |
--force | Écrase le répertoire de sortie s'il existe déjà |
--yes | Répond à chaque invite avec sa valeur par défaut (mode CI). Ne déploie jamais et n'écrase jamais un répertoire existant |
Maintenance
Vérifie votre environnement et diagnostique les problèmes.
jamdesk doctorVérifications :
- Version de Node.js (nécessite v20+)
- Version de npm
- docs.json existe et est valide
- État du cache ~/.jamdesk
- Autorisations d'écriture
Exécutez cette commande si vous rencontrez des problèmes avec le CLI.
Efface le répertoire de cache ~/.jamdesk.
jamdesk cleanCela supprime les dépendances mises en cache et les artefacts de build. Utilisez-le pour :
- Libérer de l'espace disque
- Résoudre les problèmes de cache corrompu
- Forcer une nouvelle installation des dépendances
Les dépendances seront réinstallées lors du prochain jamdesk dev.
Met à jour le CLI vers la dernière version.
jamdesk updateVous pouvez également effectuer la mise à jour manuellement :
npm update -g jamdeskConfiguration
Créez ~/.jamdeskrc pour définir les options par défaut :
{
"defaultPort": 3001,
"verbose": false,
"checkUpdates": true
}
| Option | Type | Par défaut | Description |
|---|---|---|---|
defaultPort | number | 3000 | Port par défaut pour le serveur de développement |
verbose | boolean | false | Active la sortie détaillée par défaut |
checkUpdates | boolean | true | Vérifie les mises à jour du CLI au démarrage |
Dépannage
Les fichiers MDX sont analysés comme du JSX, donc certains caractères ont une signification particulière.
Problème courant : le caractère < est interprété comme le début d'une balise JSX.
✗ Found 1 MDX syntax error(s)
getting-started.mdx:42
Unexpected character `5` (U+0035) before name
Fix: A < character is being parsed as JSX. Use < or rewriteSolutions :
- Utilisez
<pour un inférieur à littéral :Values <50% are low - Réécrivez pour éviter le caractère :
"Below 50%"au lieu de"<50%" - Exécutez
jamdesk validatepour obtenir des messages d'erreur détaillés avec les numéros de ligne
Assurez-vous d'être dans un répertoire contenant un fichier docs.json.
Solutions :
- Exécutez
jamdesk initpour créer un nouveau projet - Vérifiez que vous êtes dans le bon répertoire
- Vérifiez que le fichier s'appelle exactement
docs.json(et nondoc.jsonou similaire)
Le serveur de développement peut échouer au démarrage pour plusieurs raisons.
Essayez ces étapes :
- Exécutez
jamdesk doctorpour vérifier votre environnement - Exécutez
jamdesk cleanpour vider le cache - Utilisez
jamdesk dev --verbosepour obtenir une sortie d'erreur détaillée - Vérifiez que Node.js v20+ est installé :
node --version
La première exécution installe les dépendances dans ~/.jamdesk/node_modules.
Ceci est normal et ne se produit qu'une seule fois. Les exécutions suivantes seront beaucoup plus rapides.
Un autre processus utilise le port par défaut.
Solutions :
# Use a different port
jamdesk dev --port 3001
# Or set a default in ~/.jamdeskrc
{ "defaultPort": 3001 }Il se peut que vous n'ayez pas les autorisations d'écriture sur le répertoire de cache.
Solutions :
- Vérifiez les autorisations sur
~/.jamdesk:ls -la ~/.jamdesk - Corrigez le propriétaire :
sudo chown -R $(whoami) ~/.jamdesk - Exécutez
jamdesk cleanet réessayez
Vous rencontrez toujours des problèmes ? Consultez le guide de dépannage du CLI ou ouvrez un ticket sur GitHub.
