Installation

Pawpado ships three flavors of tooling. Pick the one that fits how you work:

  • CLIpawpado on 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 PATHthe 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:

  1. Sign up at pawpado.com — see Sign up for the flow.
  2. Run pawpado auth login from your terminal — it opens a browser, you sign in to Huudis, and the CLI receives an access token.
  3. Optionally, copy the token out of ~/.pawpado/credentials and export it as PAWPADO_TOKEN for 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_TOKEN can 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