Fonctionnalités
- TUI interactif : exécutez
dodosans argument pour ouvrir l’interface interactive, avec une palette de commandes, un historique et des notifications en temps réel. - Assistant IA intégré : posez des questions ou effectuez des actions en anglais courant avec
/ai. L’assistant s’exécute localement viadodopayments-mcpet ne nécessite aucune configuration supplémentaire. - Identifiants chiffrés : les clés API sont stockées dans
~/.dodopayments/config.json, chiffrées avec AES-256-GCM et une clé dérivée de votre machine. Aucun identifiant en clair n’est stocké sur le disque. - Mise à jour automatique : le CLI recherche les nouvelles versions au démarrage et vous en informe dans le TUI. Pour les installations npm et Bun, exécutez
/updatepour effectuer la mise à niveau sur place. - Outils pour les webhooks : transférez les webhooks du mode test vers votre serveur local ou envoyez des payloads de webhook simulés hors ligne.
- Génération de structure : ajoutez des routes de facturation aux projets Next.js, Express et Better Auth avec
dodo init.
Installation
Sur macOS ou Linux, installez le dernier binaire avec le script d’installation :dodo dans le premier répertoire accessible en écriture parmi /usr/local/bin, ~/.local/bin et ~/bin, ou dans ~/.local/bin si aucun ne peut être modifié. Pour installer une version spécifique, définissez la variable d’environnement DODO_VERSION sur son tag. Pour choisir le répertoire, définissez DODO_INSTALL_DIR.
Installer avec NPM ou Bun
Si vous disposez de Node.js ou de Bun, installez globalement le packagedodopayments-cli. Les installations via un gestionnaire de packages utilisent la dernière version publiée :
Les sous-commandes directes telles que
dodo login s’exécutent avec Node.js 18 ou une version ultérieure. Lorsque vous installez le CLI via un gestionnaire de packages, le TUI interactif nécessite également Bun. Les binaires de version ne nécessitent aucun de ces environnements d’exécution.Installation manuelle (sans Node ni Bun)
Pour installer le CLI sans exécuter de script distant, téléchargez vous-même le binaire.1
Download the Binary
Téléchargez le binaire correspondant à votre plateforme depuis la dernière version GitHub.
2
Rename the Binary to dodo
3
Move It to a Directory on Your PATH
Sous Windows, le déplacement du fichier vers
C:\Windows\System32 nécessite les privilèges administrateur.4
(Optional) Verify the Download
Chaque version publie un fichier
SHA256SUMS.txt. Téléchargez-le à côté du binaire, puis vérifiez le binaire :Authentification
Connectez-vous avec une clé API avant d’exécuter des commandes qui lisent ou modifient votre compte. Pour vous connecter avec une sous-commande directe, transmettez la clé et son mode,test ou live :
- Ouvre dans votre navigateur la page Developer → API Keys du dashboard.
- Vous invite à coller votre clé API.
- Vous demande de choisir Test Mode ou Live Mode.
~/.dodopayments/config.json.
La clé de chiffrement est dérivée de votre machine : les identifiants enregistrés ne fonctionnent donc que sur cette machine. Si vous effectuez une mise à niveau depuis v3.0.x, qui stockait les clés dans le trousseau du système d’exploitation, exécutez à nouveau
dodo login. Les clés présentes dans l’ancien fichier en clair ~/.dodopayments/api-key sont migrées automatiquement, puis ce fichier est supprimé.Changer de mode et se déconnecter
Vous pouvez rester connecté simultanément avec une clé en mode test et une clé en mode live. Pour changer de mode actif dans le TUI, exécutez/switch. Pour supprimer les clés enregistrées :
test, live ou all. Dans le TUI, /logout vous demande de choisir All accounts, Test Mode ou Live Mode, puis de confirmer.
Utilisation
Vous pouvez utiliser le CLI selon deux modes.1. TUI interactif (recommandé)
Exécutezdodo sans argument pour ouvrir l’interface interactive :
/ pour ouvrir la palette de commandes. Le texte qui ne commence pas par / est envoyé à l’assistant IA.
2. Sous-commandes directes
Exécutez une commande sans ouvrir le TUI :dodo par /, par exemple /payments list 1. Les commandes marquées TUI only sont des assistants interactifs. En mode direct, elles affichent un message vous invitant à ouvrir le TUI.
Assistant IA
Posez des questions sur votre compte ou effectuez des actions en anglais courant. L’assistant s’exécute viadodopayments-mcp sur votre machine et ne nécessite donc aucune configuration supplémentaire ni flux OAuth. Il appelle l’API Dodo Payments depuis votre machine avec votre clé enregistrée et envoie vos requêtes au modèle de langage.
En mode direct, exécutez
dodo ai suivi de votre question. Exemples dans le TUI :
Génération de structure du projet
dodo init ajoute des routes de facturation Dodo Payments à un projet existant. Il écrit les fichiers de route, installe le package d’adaptation @dodopayments/* correspondant et ajoute les variables DODO_PAYMENTS_* manquantes à votre fichier .env avec des valeurs factices. Les fichiers et variables existants sont conservés, et la commande s’exécute sans connexion.
Pour la structure Better-Auth, vous pouvez transmettre une liste séparée par des virgules de plugins à générer :
checkout, portal, usage et webhooks. Sans liste, les quatre plugins sont générés.
Si votre projet contient un répertoire
src/, le générateur y écrit les fichiers. Il choisit la commande d’installation à partir du fichier de verrouillage de votre projet (bun, pnpm ou yarn) et utilise npm s’il n’en trouve aucun.Référence des commandes
Ces commandes nécessitent une clé API connectée. Les commandes de liste acceptent un numéro de page facultatif, égal à 1 par défaut, et affichent jusqu’à 100 éléments par page.Produits
Gérez votre catalogue de produits.Paiements
Afficher les transactions de paiement.Clients
Gérez vos clients.Remises
Gérez les codes de remise.Licences
Afficher les clés de licence. La commande s’écritlicences.
Modules complémentaires
Gérez les modules complémentaires des produits.Remboursements
Afficher les informations de remboursement.Checkout
Créer des sessions de checkout hébergées.Webhooks
Le CLI propose deux outils de webhook pour le développement : un listener qui transfère les webhooks du mode test vers votre serveur local, et un trigger qui envoie des payloads de webhook simulés à n’importe quel endpoint.
En mode direct, les arguments sont obligatoires. Dans le TUI, exécutez
/wh listen ou /wh trigger sans argument pour ouvrir un assistant interactif.
Écouter les webhooks
Transférez en temps réel les webhooks de votre compte Dodo Payments vers votre serveur de développement local.1
Enter Your Local Endpoint URL
Transmettez l’URL locale qui doit recevoir les webhooks, par exemple
http://localhost:3000/webhook. Dans l’assistant du TUI, le CLI vous la demande.2
Automatic Setup
Si votre compte ne possède aucun endpoint de webhook pour le serveur relais du CLI, le CLI en crée un. L’endpoint apparaît dans Developer → Webhooks. Le CLI ouvre ensuite une connexion WebSocket avec le relais pour recevoir les événements en temps réel.
3
Receive and Forward
Lorsqu’un événement webhook se produit, par exemple à la suite d’un paiement test ou d’une modification d’abonnement, le CLI transfère le payload et les en-têtes vers votre endpoint local dans une requête
POST. Il consigne le type d’événement et la réponse de votre endpoint, puis renvoie la réponse au relais.Le relais et la CLI analysent le corps JSON, puis le sérialisent à nouveau avant de le transmettre. Si le corps transmis diffère, octet par octet, de l’original, par exemple au niveau du formatage des nombres, la vérification de la signature échoue même si les en-têtes sont intacts.
Déclencher des webhooks de test
Envoyez un payload de webhook simulé à n’importe quel endpoint, sans créer de transactions réelles./wh trigger du TUI vous guide pour :
- Définir une URL d’endpoint de destination.
- Saisir éventuellement un Business ID, un Product ID, des Metadata (un objet JSON), l’e-mail du client et le Customer ID du payload. Les champs vides utilisent des valeurs factices.
- Sélectionner un événement à envoyer depuis un menu interactif. Vous pouvez envoyer plusieurs événements à la suite. Choisissez exit pour terminer.
dodo wh trigger ne nécessite aucune connexion. Il fonctionne comme un générateur local et hors ligne de payloads de webhook.Événements webhook pris en charge
dodo wh trigger peut envoyer des payloads simulés pour 46 des 48 types d’événement fournis par Dodo Payments. Il ne prend pas en charge subscription.past_due ni subscription.unpaused. Transmettez le nom de l’événement exactement comme indiqué :
Trois noms de trigger diffèrent de l’événement
type dans le payload qu’ils envoient : payment.success envoie payment.succeeded, refund.success envoie refund.succeeded et licence.created envoie license_key.created.
La structure des payloads simulés suit les schémas correspondants de la référence API. Consultez Événements webhook pour savoir ce que signifie chaque événement et quand Dodo Payments l’émet en production.
Variables d’environnement
Cette variable modifie la manière dontdodo wh listen se connecte :
Mises à jour
Le CLI recherche une nouvelle version au démarrage et affiche une notification dans la barre d’état lorsqu’elle est disponible. Pour mettre à niveau une installation npm ou Bun depuis le TUI, exécutez :/update ne peut pas mettre à niveau un binaire de version. Pour les installations binaires, y compris celles effectuées avec le script d’installation, il renvoie plutôt vers la dernière version GitHub. Pour effectuer la mise à niveau depuis votre shell, réexécutez la commande utilisée lors de l’installation :
Ressources
GitHub Repository
Code source et versions.
npm Package
Le package
dodopayments-cli dans le registre npm.Assistance
- Discord : rejoignez le serveur communautaire.
- GitHub : ouvrez un ticket dans le dépôt.
- E-mail : contactez support@dodopayments.com.