Install
The CLI command surface is generated from the documented API route metadata. Regenerate the local manifest and endpoint snippets whenever an API reference route changes:puffle executable. The package build writes dist/cli/puffle.js and exposes it as the puffle bin:
Authenticate
Set your API key inPUFFLE_API_KEY.
Usage
GET /api/lists becomes puffle list, and action routes such as POST /api/campaigns/{id}/launch become puffle campaign launch --id <id>. Path parameters, query parameters, and request body fields become flags unless a route explicitly opts into positional arguments.
Use --help on any generated command to see the route summary, required flags, optional flags, and examples from the manifest.
Examples:
Global Flags
| Flag | Description |
|---|---|
--format json | Print the response data as formatted JSON. This is the default. |
--format pretty | Alias for formatted JSON output. |
--format raw | Print the raw JSON response body. |
PUFFLE_API_BASE_URL to point the CLI at a preview or local server.
Flag Values
String and number flags are passed as shell values. Boolean flags are presence-only, so--include-stats sends true.
Array and object request fields are JSON flags. Quote JSON values so the shell passes them as one argument:
API Reference
CLI commands are generated from route metadata and emitted into OpenAPI as CLI metadata. Every endpoint page in the API reference gets a generatedCLI: snippet from the same manifest that powers the executable.
Session-only, admin-only, UI-only, and private routes do not get public CLI commands.
For AI Agents
The CLI is a terminal client for the API contract. Agents should prefer the API reference for request and response schemas, then use the CLI when a shell workflow is more convenient. If an endpoint is removed from the API reference, its generated CLI command should disappear with it. For machine-readable workflows, keep the default--format json output and parse stdout. Request failures are written to stderr and return a non-zero exit code.