Installation
Pawpado ships three flavors of tooling. Pick the one that fits how you work:
- CLI —
pawpadoon your terminal. Best for one-off operations and scripting from a laptop. Doesn't require a project. - SDK — libraries in Node.js, Python, and Go. Best for embedding Pawpado control into another app or automation.
- Raw API — if you don't want a dependency, the REST API is documented and authenticated with a plain bearer token.
This page covers installing the CLI and SDKs. If you want raw API access, skip ahead to API overview.
CLI
The CLI is published on npm as @forjio/pawpado-cli. Install it globally:
npm install -g @forjio/pawpado-cli
Verify the install:
pawpado --version
You should see something like pawpado/0.x.y. If you get command not found, your global npm bin directory isn't on your PATH — the npm docs cover how to fix that for your shell.
Authenticate with the device flow (your browser opens, you sign in to Huudis, and the CLI receives an access token):
pawpado auth login
pawpado auth whoami
The token is stored under ~/.pawpado/credentials in a profile (default profile is named default). Use --profile <name> to switch profiles.
Prefer not to install globally? Run it as
npx @forjio/pawpado-cli <command>for one-off uses.
Node.js SDK
The Node SDK is @forjio/pawpado-node:
npm install @forjio/pawpado-node
Or with pnpm / yarn:
pnpm add @forjio/pawpado-node
yarn add @forjio/pawpado-node
It's compatible with Node 18 and later. TypeScript types are included — no @types/* package needed.
Minimal usage:
import { PawpadoClient } from '@forjio/pawpado-node';
const pawpado = new PawpadoClient({
apiKey: process.env.PAWPADO_TOKEN,
});
const status = await pawpado.sessions.poll();
console.log(status);
PAWPADO_TOKEN is a Huudis bearer token. You can mint one via pawpado auth login (the CLI prints it on stdout with --json) or by signing in to the dashboard and copying it from Settings → Tokens.
The full reference is at SDK → overview.
Python SDK
The Python SDK is published on PyPI as pawpado:
pip install pawpado
It supports Python 3.9+. The only runtime dependency is httpx.
Minimal usage:
from pawpado import PawpadoClient
import os
pawpado = PawpadoClient(api_key=os.environ["PAWPADO_TOKEN"])
status = pawpado.sessions.poll()
print(status)
Go SDK
The Go SDK lives in the same repo as Pawpado itself:
go get github.com/hachimi-cat/saas-pawpado/sdk/go
Import it as pawpado:
import pawpado "github.com/hachimi-cat/saas-pawpado/sdk/go"
It uses only the Go standard library — no external dependencies. Requires Go 1.22+.
Minimal usage:
package main
import (
"context"
"fmt"
"os"
pawpado "github.com/hachimi-cat/saas-pawpado/sdk/go"
)
func main() {
client, err := pawpado.NewClient(pawpado.ClientOptions{
APIKey: os.Getenv("PAWPADO_TOKEN"),
})
if err != nil {
panic(err)
}
status, err := client.Sessions.Poll(context.Background())
if err != nil {
panic(err)
}
fmt.Println(status.State)
}
Get your token
All three SDKs and the CLI authenticate with a Huudis bearer token. To get one:
- Sign up at pawpado.com — see Sign up for the flow.
- Run
pawpado auth loginfrom your terminal — it opens a browser, you sign in to Huudis, and the CLI receives an access token. - Optionally, copy the token out of
~/.pawpado/credentialsand export it asPAWPADO_TOKENfor use by the SDKs.
The convention across SDKs is to read credentials from environment variables:
| Variable | Purpose |
|---|---|
PAWPADO_TOKEN |
Bearer access token from Huudis. Pair it with a refresh token if your integration is long-running. |
PAWPADO_BASE_URL |
Optional — only set if you're pointing at staging or a different deployment. Defaults to https://pawpado.com. |
Treat the token like a password. Anyone with
PAWPADO_TOKENcan start sessions and spend your credits. Don't commit it. Don't paste it into shared chat. Tokens are short-lived (1 hour by default), but a stolen short-lived token is still a stolen token.
Next
- Quickstart — if you haven't signed up yet.
- Concepts — the data model the SDKs expose.
- Auth overview — how Huudis tokens work.
- SDK overview — the surface every SDK shares.