La interfaz de línea de comandos oficial para Dodo Payments: gestiona recursos, ejecuta consultas potenciadas por IA, crea sesiones de pago y prueba webhooks desde tu terminal.
Administra tus recursos de Dodo Payments, ejecuta consultas potenciadas por IA en tu cuenta, crea sesiones de pago y prueba webhooks, todo desde la terminal. El CLI viene con un TUI interactivo, un asistente de IA incorporado impulsado por MCP y pruebas de webhooks sin conexión.
TUI interactivo: lanza dodo sin argumentos para abrir la interfaz interactiva completa con paleta de comandos, historial y notificaciones en vivo.
Asistente de IA incorporado: haz preguntas o realiza acciones en inglés simple con /ai. Sin configuración adicional, se ejecuta dodopayments-mcp localmente.
Seguro por defecto: las claves API se almacenan en el almacén secreto de tu sistema operativo (macOS Keychain, Windows Credential Vault, Linux libsecret). Sin configuración en texto plano en el disco.
Actualización automática: el CLI verifica la existencia de nuevas versiones al inicio y te notifica en la aplicación. Ejecuta /update para actualizar en el lugar.
Herramientas para webhooks: escucha webhooks en vivo o dispara cargas útiles sin conexión para desarrollo local.
Antes de utilizar comandos autenticados, inicia sesión con tu clave API:
dodo login
O, desde el TUI interactivo:
/login
El flujo de inicio de sesión:
Abre tu navegador en la página de Claves API de Dodo Payments.
Te pide que pegues tu Clave API.
Te solicita elegir un entorno, Modo de prueba o Modo en vivo.
Almacena las credenciales en el almacén de secretos de tu sistema operativo (Keychain en macOS, Credential Vault en Windows, libsecret en Linux).
Dado que las credenciales se almacenan en el almacén de secretos del sistema operativo, es posible que se te solicite tu contraseña del dispositivo la primera vez que el CLI lee o escribe credenciales. Si estás actualizando desde una versión anterior, cualquier clave API en texto plano existente será migrada al almacén secreto y el archivo heredado eliminado automáticamente.
Haz preguntas o toma acciones en lenguaje natural. El asistente usa dodopayments-mcp ejecutándose localmente: no se requiere configuración adicional ni flujo de OAuth, y tu tráfico de IA no sale de tu máquina excepto para comunicarte con el proveedor del modelo.
Comando
Descripción
/ai <query>
Haz una pregunta o da una instrucción al asistente de IA
(cualquier texto sin barra)
Se envía al asistente de IA por defecto mientras estás en el TUI
Ejemplos:
how much revenue did I make this week?/ai create a new customer named Acme Inc./ai find my last failed payment
El asistente respeta tu entorno activo (Prueba / En vivo), por lo que solo opera sobre los datos del entorno en el que estás actualmente autenticado.
dodo init estructura las rutas de facturación de Dodo Payments directamente en un proyecto existente. Genera los archivos de ruta de plantilla, instala el paquete de adaptador correspondiente @dodopayments/*, y escribe de manera segura las variables de entorno DODO_PAYMENTS_* en tu .env (solo agrega variables que no estén ya presentes). El comando se ejecuta sin iniciar sesión.
dodo init <framework>
Estructura
Descripción
dodo init nextjs
Estructurar rutas de facturación del App Router de Next.js (checkout, portal del cliente, y manejadores de webhook) usando @dodopayments/nextjs
dodo init express
Estructurar rutas de facturación del servidor Express usando @dodopayments/express
dodo init better-auth
Estructurar una configuración del plugin Better-Auth usando @dodopayments/better-auth
Para la estructura de Better-Auth puedes pasar una lista de plugins separada por comas para generar (por defecto todos): checkout, portal, usage, webhooks.
# Scaffold every Better-Auth plugin (default)dodo init better-auth# Scaffold only specific pluginsdodo init better-auth checkout,portal
El estructurador detecta automáticamente un directorio src/ y ajusta las rutas de salida en consecuencia, y detecta automáticamente tu gestor de paquetes (bun, pnpm, yarn, o npm) para ejecutar el comando de instalación correcto.
El CLI incluye dos herramientas poderosas para probar webhooks durante el desarrollo: un escuchador que reenvía webhooks de prueba en vivo a tu servidor local, y un desencadenador que envía cargas útiles de prueba de webhook a cualquier endpoint.
Comando
Descripción
dodo wh listen
Escuchar webhooks en tiempo real y reenviarlos a tu servidor de desarrollo local
dodo wh trigger
Desencadenar un evento de prueba de webhook interactivamente — incluso sin iniciar sesión
Reenviar webhooks de Dodo Payments directamente a tu servidor de desarrollo local en tiempo real.
dodo wh listen
1
Enter your local endpoint URL
Proporciona la URL local donde deseas recibir webhooks (p. ej., http://localhost:3000/webhook).
2
Automatic setup
El CLI crea automáticamente un endpoint de webhook en tu cuenta de Dodo Payments si aún no existe, luego abre una conexión WebSocket para recibir eventos en tiempo real.
3
Receive and forward
Cuando se activa un evento de webhook (por un pago de prueba, un cambio de suscripción, etc.), el CLI lo recibe, registra el tipo de evento, y reenvía la solicitud completa con encabezados y cuerpo a tu endpoint local. La respuesta de tu endpoint se registra y se envía de vuelta.
dodo wh listen requiere una clave API de Modo de Prueba. Las claves de Modo en Vivo no son compatibles con el flujo de escucha.
El escuchador preserva los encabezados originales del webhook (webhook-id, webhook-signature, webhook-timestamp) al reenviar a tu endpoint local, para que puedas probar tu lógica de verificación de firmas.
Enviar cargas útiles de prueba de webhook a cualquier endpoint para pruebas rápidas sin necesidad de crear transacciones reales.
dodo wh trigger
El flujo /wh trigger te guía a través de:
Establecer una URL de endpoint de destino
Seleccionar un evento específico para desencadenar desde un menú interactivo
dodo wh triggerno requiere iniciar sesión. Funciona como un generador local/fuera de línea de cargas útiles de webhook.
Los eventos desencadenados no están firmados. Mientras pruebas, desactiva la verificación de firma del webhook en tu endpoint — por ejemplo, usa unsafe_unwrap() en lugar de unwrap() en tu manejador de webhook solo durante pruebas.