@pickfu/cli) lets you create surveys, check results, and manage polls directly from your terminal. It supports structured JSON output for automation and CI/CD workflows.
Installation
Supported platforms
The curl/PowerShell installers download a standalone binary — no Node.js required. The
npx method requires Node.js 20+ but needs no installation.
Authentication
OAuth (recommended)
Log in through the browser to connect the CLI to your PickFu account:--headless flag to print the authorization URL instead of opening a browser:
API key
For non-interactive environments like CI pipelines or automation scripts, use an API key instead of OAuth:Avoid
echo "sk_..." | pickfu auth set-key — the key appears in shell history. Use the interactive prompt or pipe from clipboard instead.--token flag > PICKFU_API_KEY env var > stored OAuth token > stored API key.
Managing credentials
Timeouts and retries
Every CLI request has a deadline and gives up cleanly if the API takes too long to respond — so a stalled upstream will never hang your terminal or your CI job indefinitely.Request timeout
Each request aborts after 120 seconds by default. Override it with thePICKFU_TIMEOUT_MS environment variable (in milliseconds):
Request timed out after Ns error and a reminder to raise PICKFU_TIMEOUT_MS if needed.
Automatic retries
The CLI automatically retries transient failures (network errors and 5xx responses) up to 3 times, but only for idempotent methods —GET, HEAD, PUT, and DELETE. POST requests are never auto-retried on network or 5xx errors, because a failed request may still have been processed server-side and retrying it could create duplicate surveys, duplicate publish charges, or duplicate tags.
If a command like pickfu survey create, pickfu survey publish, or pickfu tag create fails with a network error or 5xx, the CLI surfaces the error immediately. Check whether the operation actually succeeded (for example with pickfu survey list or pickfu tag list) before retrying by hand.
429 Too Many Requests responses are retried for every method — a 429 means the server rejected the request before processing it, so repeating is safe. The CLI honors the Retry-After header.
Commands
All commands support--json for machine-readable output.
Surveys
Create a survey
--option-image-url instead of --option:
Get survey details
List surveys
Update a draft survey
Publish a survey
Publish a draft survey to start collecting responses:Calling
publish on an already-published survey returns a 400 Already published with a pointer to the /v1/surveys/{id}/respondents endpoint. Use pickfu survey add-respondents to extend the sample size of a running survey instead.Stop a survey
Stop a live survey from collecting responses before it reaches its target sample size:Clone a survey
Duplicate an existing survey as a new draft. Useful for re-running a poll with the same audience targeting and options, or for iterating on a previous test:Extract image URLs
List the image URLs of every option in a survey — useful for downloading source images for further processing:View responses
Get individual responses with explanations and demographics:Watch a survey
Block until a survey completes — useful in scripts and CI:Delete a survey
Delete a draft survey, or archive one that has already been published:For a draft survey this permanently deletes it. For a published survey it archives instead — the survey still appears in
pickfu survey list --status archived.Targeting and reporting
List available targeting traits
permalink value as a --targeting flag in survey create (e.g. --targeting amznpr).
Targeting a non-US country also localizes the poll: PickFu translates the question, context, and options into that market’s language and returns results in both languages. See International surveys and translation.
List available reporting demographics
Tags
Media
Generate an image
Generate an image from a text prompt and get a CDN URL:Upload media
Upload an image or video to the PickFu CDN from a URL or local file:
YouTube, Vimeo, and Wistia URLs are returned as-is since PickFu embeds them natively.
Inspect media
Fetch metadata (content type, size, ETag) for an image or video URL without downloading the full payload:Projects
Playbooks
Browse step-by-step research guides:Schema introspection
View the full input/output schemas for any command — useful for building integrations:Generic API access
Make authenticated API requests directly:OpenClaw
See the OpenClaw page to run the PickFu CLI inside an agentic skill, including the ready-made Claw Hub market research workflow.Supported question types
Every response includes a written explanation by default. When a respondent picks an
option, ranks, rates, or clicks, they’re also required to explain why in their own words
— that’s already part of every question type except
screen_recording (which returns a
transcription instead). Do not create a multi-question survey (--question twice) just
to add a separate “explain why” question — it wastes a question slot (priced per question)
and produces redundant data. Phrase your real question with --question, and PickFu
collects the explanation automatically. The text comes back on each response as the
explanation field. See surveys overview for more.