Panoramica CLI
Visualizza in anteprima la documentazione in locale, valida la configurazione, verifica i link interrotti ed esegui la migrazione da altre piattaforme con la CLI open source di Jamdesk.
La CLI di Jamdesk ti permette di visualizzare in anteprima la documentazione in locale, validare la configurazione, verificare i link interrotti ed eseguire la migrazione da altre piattaforme. È open source con licenza Apache License 2.0.
Installazione
Installa globalmente da npm per usare jamdesk da qualsiasi posizione:
npm install -g jamdeskVerifica l'installazione:
jamdesk --version
Requisiti
- Node.js 22.18+ oppure 24.11+ (Node.js 23 non è supportato)
- npm v8 o superiore (consigliato)
Avvio rapido
Crea un nuovo progetto di documentazione:
jamdesk init my-docs
cd my-docsEsegui il server di sviluppo locale con hot reload:
jamdesk devLa tua documentazione è disponibile su http://localhost:3000/docs
Verifica errori di configurazione, link interrotti e ortografia:
jamdesk validate
jamdesk broken-links
jamdesk fix --dry-run
jamdesk fix
jamdesk spellcheckComandi
Esegui jamdesk <command> --help per i dettagli di qualsiasi comando.
Sviluppo
Avvia il server di sviluppo locale con hot reload.
jamdesk dev
jamdesk dev --port 3001Funzionalità:
- Validazione automatica all'avvio (schema docs.json, sintassi MDX e specifiche OpenAPI referenziate. Una specifica non valida interrompe il server.)
- Hot reload alla modifica dei file MDX
- Ricostruzione automatica della navigazione alla modifica di docs.json
- Ricaricamento di CSS personalizzato (
style.css) al refresh del browser - Ricerca
- Tutti i temi e i componenti
Opzioni:
| Flag | Descrizione |
|---|---|
-p, --port <port> | Porta su cui eseguire (predefinita: 3000) |
-v, --verbose | Attiva l'output dettagliato |
Crea un nuovo progetto di documentazione.
jamdesk init # Interactive mode
jamdesk init my-docs # Create in new directoryQuesto crea un nuovo progetto con:
- File di configurazione
docs.json - Pagine MDX di esempio
- Struttura di cartelle consigliata
Autenticazione
Accedi a Jamdesk tramite il browser. Necessario prima del deploy.
jamdesk loginApre la dashboard di Jamdesk nel browser. La CLI salva le credenziali in ~/.jamdeskrc.
Elimina le credenziali salvate.
jamdesk logoutMostra l'utente connesso e verifica la sessione.
jamdesk whoamiValidazione
Valida la configurazione docs.json, la sintassi MDX e le specifiche OpenAPI.
jamdesk validate
jamdesk validate --skip-mdxControlli:
- Sintassi JSON valida in docs.json
- Campi obbligatori (name, navigation)
- Valori di tema validi
- Errori di sintassi MDX (ad esempio caratteri
<non escapati) - Validazione della specifica OpenAPI (se configurata)
- Conformità allo schema
Opzioni:
| Flag | Descrizione |
|---|---|
--skip-mdx | Salta la validazione della sintassi MDX |
-v, --verbose | Mostra l'output dettagliato della validazione |
Esegui questo comando prima del deploy per individuare subito gli errori.
Analizza la documentazione alla ricerca di link interni interrotti.
jamdesk broken-linksEsempio di output:
docs/getting-started.mdx:15 - /docs/quikstart
Did you mean: /docs/quickstart
Found 1 broken link in 45 files.Rileva link verso pagine mancanti ed errori di battitura. Consulta Link e navigazione per i dettagli.
Correggi automaticamente gli avvisi sui link interni interrotti che hanno un obiettivo univoco. Corregge due tipi di problemi:
- Ancore con errori di battitura: un frammento come
#instalationche chiaramente dovrebbe essere#installation - Deriva delle ancore tra lingue: una pagina tradotta ha rinominato i suoi titoli, ma i link in quella lingua puntano ancora al vecchio frammento inglese
# Preview what would change without touching any files
jamdesk fix --dry-run
# Apply fixes (prompts for confirmation)
jamdesk fixEsempio di output dell'anteprima:
Planned fixes:
fr/ai/overview.mdx:9
/fr/ai/selectors#ai-strategies → /fr/ai/selectors#stratégies-ia
(dry run — no files written)jamdesk fix scrive una correzione solo quando l'ancora corretta corrisponde a un titolo reale nella pagina di destinazione. Lascia i casi ambigui per la revisione manuale.
Opzioni:
| Flag | Descrizione |
|---|---|
--dry-run | Mostra in anteprima le correzioni senza scrivere alcun file |
-y, --yes | Applica le correzioni senza richiedere conferma |
--types <list> | Tipi di avviso da correggere, separati da virgola (predefinito: tutti quelli supportati) |
--no-ai | Salta le correzioni con AI e usa solo quelle che Jamdesk può determinare senza AI |
--project <id> | ID del progetto per le correzioni con AI (predefinito: projectId in docs.json) |
--json | Stampa il piano di correzione e i problemi non correggibili in formato JSON, per un agente AI. Non scrive file e non chiede nulla. Richiede CLI 1.1.229 o successiva |
Mostra o modifica l'impostazione AI Fixes del progetto, la stessa presente nelle Impostazioni della dashboard.
# Show the current setting
jamdesk ai-fix
# Commit fixes to your build branch after each build
jamdesk ai-fix auto
# Suggest fixes for you to review in the dashboard
jamdesk ai-fix review
# Turn off dashboard scans
jamdesk ai-fix offEsempio di output:
✓ AI Fixes set to Auto-fix
Jamdesk commits fixes to main after the next build. Pull before you push. Undo runs from the dashboard.Esegui prima jamdesk login. Il comando usa il projectId in docs.json, oppure il progetto indicato con --project. Richiede CLI 1.1.229 o successiva.
| Flag | Descrizione |
|---|---|
--project <id> | ID del progetto (predefinito: projectId in docs.json) |
Verifica la presenza di errori ortografici nella documentazione.
jamdesk spellcheckEsempio di output:
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.Usa un dizionario inglese con oltre 150 termini tecnici integrati (API, GraphQL, Kubernetes, React, ecc.). Salta blocchi di codice, codice inline, frontmatter, JSX, URL e percorsi dei file. Per ora solo inglese. I dizionari multilingua sono previsti.
Opzioni:
| Flag | Descrizione |
|---|---|
--fix | Correggi in modo interattivo gli errori o aggiungi alla lista di ignorati |
--json | Output in formato JSON (per pipeline CI) |
-v, --verbose | Mostra ogni file mentre viene controllato |
Modalità di correzione interattiva (--fix) scorre ogni parola unica con errore:
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- Correggi sostituisce la parola con un suggerimento in ogni file. Non modifica mai blocchi di codice o attributi JSX. Il prompt mostra fino a 3 suggerimenti e contrassegna come consigliata la corrispondenza migliore.
- Ignora aggiunge la parola a
spellcheck.ignorenel tuo docs.json. La parola non verrà più segnalata. - Salta non fa nulla per questa esecuzione
Puoi visualizzare in anteprima e confermare le modifiche prima che vengano applicate.
Lista di parole da ignorare: aggiungi termini specifici del progetto al tuo docs.json:
{
"spellcheck": {
"ignore": ["YourProduct", "kubectl", "Terraform"]
}
}Spellcheck ignora il nome del progetto presente in docs.json.
Valida un singolo file di specifica OpenAPI.
jamdesk openapi-check openapi.yaml
jamdesk openapi-check api/spec.jsonValida:
- Sintassi YAML/JSON valida
- Conformità allo schema OpenAPI 3.x
- Definizioni degli endpoint
- Corretta risoluzione dei riferimenti
$ref
Jamdesk valida le specifiche OpenAPI in tre punti. jamdesk dev si ferma all'avvio se una specifica referenziata non è valida. jamdesk validate e jamdesk openapi-check controllano le specifiche su richiesta. La build nel cloud verifica le specifiche referenziate al deploy, dove una specifica non valida è un avviso non bloccante. Il resto della documentazione viene comunque pubblicato. L'email e l'elenco delle build nella dashboard indicano il problema: un errore di parsing con riga e colonna, un $ref non risolto o un operationId duplicato. Correggi la specifica e fai di nuovo push per risolvere.
Gestione dei file
Rinomina una pagina e aggiorna tutti i riferimenti ad essa.
jamdesk rename docs/old-name.mdx docs/new-name.mdxQuesto comando:
- Rinomina il file
- Aggiorna la navigazione in docs.json
- Aggiorna i link in tutti gli altri file MDX
- Aggiorna i riferimenti agli snippet
Usa questo comando invece di rinominare manualmente. I riferimenti restano sincronizzati.
Migrazione
Esegui la migrazione della documentazione da Mintlify a Jamdesk.
jamdesk migrateRileva la configurazione di Mintlify e la converte nel formato Jamdesk. La stessa operazione:
- Rinomina i componenti obsoleti (ad esempio
CardGroup→Columns) - Sposta i file snippet MDX orfani in
/snippets/e riscrive gli import relativi al genitore - Estrae i componenti inline che usano React hooks in
/snippets/<name>.tsxcon'use client' - Corregge i problemi meccanici di sintassi MDX
Il comando è idempotente. Rieseguirlo è sicuro.
Deploy
Scarica un progetto la cui documentazione è ospitata da Jamdesk (senza GitHub) come repository git, oppure unisci le nuove modifiche di Jamdesk in una copia già scaricata.
jamdesk pull
jamdesk pull --project your-project
jamdesk pull --dir ./docs-copyModifica i file, quindi esegui jamdesk deploy in quella cartella per pubblicarli. Richiede CLI 1.1.227 o successiva e git.
| Flag | Descrizione |
|---|---|
--project <id-or-slug> | Scarica un progetto specifico (salta la selezione interattiva) |
--dir <path> | Cartella di destinazione (predefinita: ./<slug>) |
--force | Trasforma una cartella che contiene già file, come una vecchia copia in sola lettura, in una copia git. I file restano come modifiche non committate |
Carica la documentazione e avvia una build dal terminale.
jamdesk deploy
jamdesk deploy --detach
jamdesk deploy --full-rebuildLa CLI mostra ogni fase della build man mano che viene completata. Disponibile anche come jamdesk push.
| Flag | Descrizione |
|---|---|
--detach | Accoda la build ed esce immediatamente |
--full-rebuild | Forza una ricostruzione completa (senza cache) |
--project <id> | Esegue il deploy su un progetto specifico |
--allow-empty | Consente il deploy con zero pagine di contenuto .mdx (rifiutato per impostazione predefinita) |
-m, --message <text> | Messaggio di commit in una cartella creata da jamdesk pull |
--allow-secret-files | Pubblica file dall'aspetto sensibile da una cartella creata da jamdesk pull |
Genera e distribuisce un Cloudflare Worker che fa da proxy per /docs sul tuo dominio verso il tuo sito Jamdesk.
jamdesk deploy-proxy cloudflare
jamdesk deploy-proxy cloudflare --slug myproject --domain example.com --yesIl comando è interattivo per impostazione predefinita. Verifica Wrangler, controlla il tuo account Cloudflare, rileva lo slug da docs.json, genera i file del Worker e propone il deploy. --yes genera i file e si ferma. Distribuiscili con npx wrangler deploy dalla directory di output.
| Flag | Descrizione |
|---|---|
--slug <slug> | Slug del progetto Jamdesk |
--domain <domain> | Dominio di destinazione (ad esempio example.com) |
--path <path> | Prefisso del percorso (predefinito: /docs) |
--output-dir <dir> | Directory di output (predefinita: cloudflare-worker/) |
--skip-deploy | Salta la richiesta "distribuire ora?" in un'esecuzione interattiva |
--force | Sovrascrive la directory di output se esiste già |
--yes | Risponde a ogni domanda con il valore predefinito (modalità CI). Non esegue mai il deploy e non sovrascrive mai una directory esistente |
Manutenzione
Verifica l'ambiente e diagnostica i problemi.
jamdesk doctorControlli:
- Versione di Node.js (richiede 22.18+ oppure 24.11+)
- Node.js che compare per primo nel PATH, quello usato da
jamdesk dev - Versione di npm
- Esistenza e validità di docs.json
- Stato della cache di ~/.jamdesk
- Permessi di scrittura
Esegui questo comando quando la CLI non si comporta correttamente.
Svuota la directory di cache ~/.jamdesk.
jamdesk cleanRimuove dipendenze in cache e artefatti di build. Usalo per:
- Liberare spazio su disco
- Risolvere una cache danneggiata
- Forzare una nuova installazione delle dipendenze
Il prossimo jamdesk dev reinstalla le dipendenze.
Aggiorna la CLI all'ultima versione.
jamdesk updatePuoi anche aggiornare manualmente:
npm update -g jamdeskConfigurazione
Crea ~/.jamdeskrc per impostare le opzioni predefinite:
{
"defaultPort": 3001,
"verbose": false,
"checkUpdates": true
}
| Opzione | Tipo | Predefinito | Descrizione |
|---|---|---|---|
defaultPort | number | 3000 | Porta predefinita per il server di sviluppo |
verbose | boolean | false | Attiva l'output dettagliato per impostazione predefinita |
checkUpdates | boolean | true | Verifica la presenza di aggiornamenti della CLI all'avvio |
Risoluzione dei problemi
MDX viene analizzato come JSX. Alcuni caratteri hanno un significato speciale.
Problema comune: il carattere < viene interpretato come l'inizio di un tag 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 rewriteSoluzioni:
- Usa
<per il minore letterale:Valori <50% sono bassi - Riscrivi per evitare il carattere:
"Sotto il 50%"invece di"<50%" - Esegui
jamdesk validateper messaggi di errore dettagliati con i numeri di riga
Esegui il comando da una directory che contiene un file docs.json.
Soluzioni:
- Esegui
jamdesk initper creare un nuovo progetto - Verifica di essere nella directory corretta
- Controlla che il file si chiami esattamente
docs.json(nondoc.jsono simili)
Prova questi passaggi:
- Esegui
jamdesk doctorper verificare l'ambiente - Esegui
jamdesk cleanper svuotare la cache - Usa
jamdesk dev --verboseper un output dettagliato degli errori - Verifica che Node.js 22.18+ oppure 24.11+ sia installato:
node --version
Al primo avvio le dipendenze vengono installate in ~/.jamdesk/node_modules.
Accade una sola volta. Gli avvii successivi sono più veloci.
Un altro processo sta usando la porta predefinita.
Soluzioni:
# Use a different port
jamdesk dev --port 3001
# Or set a default in ~/.jamdeskrc
{ "defaultPort": 3001 }Potresti non avere i permessi di scrittura sulla directory di cache.
Soluzioni:
- Controlla i permessi di
~/.jamdesk:ls -la ~/.jamdesk - Correggi la proprietà:
sudo chown -R $(whoami) ~/.jamdesk - Esegui
jamdesk cleane riprova
Hai ancora problemi? Consulta la guida alla risoluzione dei problemi della CLI oppure apri una segnalazione su GitHub.
