Skip to main content
Dodo CLI hanterar dina Dodo Payments-resurser, besvarar frågor om ditt konto med en inbyggd AI-assistent, skapar checkout-sessioner och testar webhooks – allt från din terminal. Använd dess interaktiva TUI eller kör direkta underkommandon från skript.

Funktioner

  • Interaktiv TUI: Kör dodo utan argument för att öppna det interaktiva gränssnittet med kommandopalett, historik och aviseringar i realtid.
  • Inbyggd AI-assistent: Ställ frågor eller utför åtgärder på vanlig engelska med /ai. Assistenten kör dodopayments-mcp lokalt och kräver ingen extra konfiguration.
  • Krypterade autentiseringsuppgifter: API-nycklar lagras i ~/.dodopayments/config.json och krypteras med AES-256-GCM samt en nyckel som härleds från din dator. Inga autentiseringsuppgifter i klartext lagras på disken.
  • Automatiska uppdateringar: CLI:t söker efter nya versioner vid start och meddelar dig i TUI:n. För npm- och Bun-installationer kör du /update för att uppgradera på plats.
  • Webhook-verktyg: Vidarebefordra webhooks i testläge till din lokala server eller skicka simulerade webhook-payloads offline.
  • Projektgenerering: Lägg till billing-rutter i Next.js-, Express- och Better Auth-projekt med dodo init.

Installation

På macOS eller Linux installerar du den senaste binärutgåvan med installationsskriptet:
Skriptet verifierar binären mot utgåvans SHA-256-kontrollsummor. Det installerar dodo i den första skrivbara katalogen av /usr/local/bin, ~/.local/bin och ~/bin, eller i ~/.local/bin om ingen av dem är skrivbar. Om du vill installera en specifik utgåva anger du dess tagg i miljövariabeln DODO_VERSION. Om du vill välja katalog anger du DODO_INSTALL_DIR.

Installera med NPM eller Bun

Om du har Node.js eller Bun installerar du paketet dodopayments-cli globalt. Installationer via pakethanterare hämtar den senast publicerade versionen:
Direkta underkommandon som dodo login körs med Node.js 18 eller senare. När du installerar via en pakethanterare behöver den interaktiva TUI:n även Bun. Utgåvans binärer kräver ingen av dessa runtime-miljöer.

Manuell installation (utan Node / Bun)

Om du vill installera utan att köra ett fjärrskript laddar du själv ner binären.
1

Download the Binary

Ladda ner binären för din plattform från den senaste GitHub-utgåvan.
2

Rename the Binary to dodo

3

Move It to a Directory on Your PATH

I Windows kräver det administratörsbehörighet att flytta filen till C:\Windows\System32.
4

(Optional) Verify the Download

Varje utgåva publicerar en fil med SHA256SUMS.txt. Ladda ner den bredvid binären och verifiera sedan binären:

Autentisering

Logga in med en API-nyckel innan du kör kommandon som läser från eller ändrar ditt konto. Om du vill logga in med ett direkt underkommando skickar du nyckeln och dess läge, test eller live:
Eller från den interaktiva TUI:n:
Inloggningsflödet i TUI:n:
  1. Öppnar kontrollpanelens sida Developer → API Keys i din webbläsare.
  2. Ber dig klistra in din API-nyckel.
  3. Ber dig välja Test Mode eller Live Mode.
Båda kommandona verifierar nyckeln genom en begäran till API:t och lagrar den sedan krypterad i ~/.dodopayments/config.json.
Krypteringsnyckeln härleds från din dator, så de lagrade autentiseringsuppgifterna fungerar endast på den datorn. Om du uppgraderar från v3.0.x, som lagrade nycklar i operativsystemets nyckelring, kör du dodo login igen. Nycklar i den äldre filen med klartext, ~/.dodopayments/api-key, migreras automatiskt och filen tas bort.

Byta läge och logga ut

Du kan vara inloggad med en testlägesnyckel och en live-lägesnyckel samtidigt. Om du vill byta aktivt läge i TUI:n kör du /switch. Ta bort lagrade nycklar så här:
I direktläge skickar du test, live eller all. I TUI:n ber /logout dig välja All accounts, Test Mode eller Live Mode och ber dig sedan bekräfta.

Användning

Du kan använda CLI:t i två lägen.

1. Interaktiv TUI (rekommenderas)

Kör dodo utan argument för att öppna det interaktiva gränssnittet:
Skriv / för att öppna kommandopaletten. Text som inte börjar med / skickas till AI-assistenten.

2. Direkta underkommandon

Kör ett kommando utan att öppna TUI:n:
Exempel:
Referenstabellerna nedan listar alla kommandon i direktläge. I TUI:n ersätter du dodo med /, till exempel /payments list 1. Kommandon som är märkta endast TUI är interaktiva guider. I direktläge skriver de ut ett meddelande som ber dig öppna TUI:n.

AI-assistent

Ställ frågor om ditt konto eller utför åtgärder på vanlig engelska. Assistenten kör dodopayments-mcp på din dator och kräver därför ingen extra konfiguration eller OAuth-flow. Den anropar Dodo Payments API från din dator med din lagrade nyckel och skickar dina frågor till språkmodellen. I direktläge kör du dodo ai följt av din fråga. Exempel i TUI:n:
Assistenten använder ditt aktiva läge (testläge eller liveläge) och fungerar endast med data från det läget.

Projektgenerering

dodo init lägger till Dodo Payments billing-rutter i ett befintligt projekt. Det skriver ruttfilerna, installerar det matchande adapterpaketet @dodopayments/* och lägger till saknade DODO_PAYMENTS_*-variabler med platshållarvärden i din .env-fil. Filer och variabler som redan finns hoppas över, och kommandot körs utan inloggning.
För Better-Auth-genereringen kan du skicka en kommaseparerad lista över de pluginer som ska genereras: checkout, portal, usage och webhooks. Utan en lista genereras alla fyra.
Om ditt projekt har en src/-katalog skriver generatorn filerna i den. Den väljer installationskommando från projektets lock-fil (bun, pnpm eller yarn) och använder npm när ingen lock-fil hittas.

Kommandoreferens

Dessa kommandon kräver en inloggad API-nyckel. Listkommandon tar ett valfritt sidnummer, som är 1 som standard, och visar upp till 100 objekt per sida.

Produkter

Hantera din produktkatalog.

Betalningar

Visa betalningstransaktioner.

Kunder

Hantera dina kunder.

Rabatter

Hantera rabattkoder.

Licenser

Visa licensnycklar. Kommandot stavas licences.

Tillägg

Hantera produkttillägg.

Återbetalningar

Visa information om återbetalningar.

Checkout

Skapa hostade checkout-sessioner.

Webhooks

CLI:t har två webhook-verktyg för utveckling: en lyssnare som vidarebefordrar webhooks i testläge till din lokala server och en utlösare som skickar simulerade webhook-payloads till valfri endpoint. I direktläge krävs argumenten. I TUI:n kör du /wh listen eller /wh trigger utan argument för att öppna en interaktiv guide.

Lyssna efter webhooks

Vidarebefordra webhooks från ditt Dodo Payments-konto till din lokala utvecklingsserver i realtid.
dodo wh listen kräver en API-nyckel i Test Mode. Nycklar i Live Mode stöds inte av lyssningsflödet.
1

Enter Your Local Endpoint URL

Skicka den lokala URL som ska ta emot webhooks, till exempel http://localhost:3000/webhook. I TUI-guiden ber CLI:t dig ange den.
2

Automatic Setup

Om ditt konto saknar en webhook-endpoint för CLI:ts reläserver skapar CLI:t en. Endpointen visas i Developer → Webhooks. CLI:t öppnar sedan en WebSocket-anslutning till reläet för att ta emot händelser i realtid.
3

Receive and Forward

När en webhook-händelse utlöses, till exempel av en testbetalning eller en prenumerationsändring, vidarebefordrar CLI:t payloaden och headers till din lokala endpoint som en POST-begäran. Det loggar händelsetypen och svaret från din endpoint och skickar svaret tillbaka till reläet.
Lyssnaren bevarar de ursprungliga webhook-headers (webhook-id, webhook-signature, webhook-timestamp) när den vidarebefordrar till din lokala endpoint, så att du kan testa logiken för signaturverifiering.
Reläet och CLI:n tolkar JSON-bodyt och serialiserar det igen innan det vidarebefordras. Om den vidarebefordrade bodyn skiljer sig byte för byte från originalet, till exempel i talformatet, misslyckas signaturverifieringen även om headers är intakta.

Utlös testwebhooks

Skicka en simulerad webhook-payload till valfri endpoint utan att skapa riktiga transaktioner.
Utlösta händelser är inte signerade: begäran innehåller ingen header med webhook-id, webhook-signature eller webhook-timestamp. Vid testning tolkar du dem med den overifierade metoden (unsafeUnwrap i TypeScript, unsafe_unwrap i Python och UnsafeUnwrap i Go) i stället för unwrap, och byter tillbaka till unwrap innan du går live.
I direktläge använder payloaden platshållar-ID:n och kunduppgifter. /wh trigger-guiden i TUI:n leder dig genom följande:
  1. Ange en destinationens endpoint-URL.
  2. Ange valfritt Business ID, Product ID, Metadata (ett JSON-objekt), Customer email och Customer ID för payloaden. Tomma fält använder platshållarvärden.
  3. Välj en event att skicka från en interaktiv meny. Du kan skicka flera händelser i följd. Välj exit när du är klar.
dodo wh trigger kräver inte inloggning. Det fungerar som en lokal, offline webhook-payload-generator.

Webhook-händelser som stöds

dodo wh trigger kan skicka simulerade payloads för 46 av de 48 händelsetyper som Dodo Payments levererar. Det stöder inte subscription.past_due eller subscription.unpaused. Skicka händelsenamnet exakt som det listas: Tre triggernamn skiljer sig från händelsen type i payloaden de skickar: payment.success skickar payment.succeeded, refund.success skickar refund.succeeded och licence.created skickar license_key.created.
Simulerade payload-strukturer följer motsvarande scheman i API-referensen. Se Webhook-händelser för information om vad varje händelse betyder och när Dodo Payments skickar den i produktion.
payout.created skickas medan utbetalningen fortfarande rapporterar statusen not_initiated, så den simulerade payloaden återspeglar även detta. Se Utbetalningshändelser för hela utbetalningens livscykel.

Miljövariabler

Den här variabeln ändrar hur dodo wh listen ansluter:

Uppdateringar

CLI:t söker efter en nyare version vid start och visar en avisering i statusfältet när en sådan finns. Om du vill uppgradera en npm- eller Bun-installation från TUI:n kör du:
/update kan inte uppgradera en binär utgåva. För binärinstallationer, inklusive installationer med installationsskriptet, länkar det i stället till den senaste GitHub-utgåvan. Om du vill uppgradera från skalet kör du kommandot som du installerade med igen:

Resurser

GitHub Repository

Källkod och utgåvor.

npm Package

dodopayments-cli-paketet i npm-registret.

Support

Senast ändrad 28 september 2026