@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
npx:
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:--token flag > PICKFU_API_KEY env var > stored OAuth token.
Managing credentials
Commands
All commands support--json for machine-readable output.
Surveys
Create a survey
| Flag | Description |
|---|---|
--from-file | Path to a JSON file with survey definition |
--name | Survey name |
--question | The question text |
--type | Question type (see supported types) |
--option | Option text (repeatable — use once per option) |
--sample-size | Number of respondents |
--country | Country code (default: US) |
--targeting | Targeting trait in key=value format (repeatable) |
Get survey details
List surveys
| Flag | Description | Default |
|---|---|---|
--status | Filter by status (completed, in-progress, unpublished, archived) | All |
--limit | Results per page | 20 |
--page | Page number | 1 |
--sort-by | Sort field (createdAt, name, creator, status) | createdAt |
--dir | Sort direction (asc, desc) | desc |
Update a draft survey
| Flag | Description |
|---|---|
--from-file | Path to JSON file with updates |
--name | Updated survey name |
--sample-size | Updated respondent count |
--country | Updated country code |
Publish a survey
Publish a draft survey to start collecting responses:View responses
Get individual responses with explanations and demographics:| Flag | Description | Default |
|---|---|---|
--page | Page number | 1 |
--limit | Responses per page | 20 |
--question-id | Filter responses by question | All questions |
Watch a survey
Block until a survey completes — useful in scripts and CI:| Flag | Description | Default |
|---|---|---|
--interval | Polling interval in seconds | 30 |
--exit-status | Exit with code 2 if cancelled or archived | false |
Targeting and reporting
List available targeting traits
permalink values as targeting keys in survey create --targeting.
List available reporting demographics
Tags
Schema introspection
View the full input/output schemas for any command — useful for building integrations:Generic API access
Make authenticated API requests directly:Supported question types
| Type | Description |
|---|---|
head_to_head | A/B comparison where respondents pick a favorite (2 options) |
ranked | Respondents rank options in preference order (3-8 options) |
open_ended | Single-concept poll with written feedback |
click_test | Heatmap generation from image clicks |
emoji_rating | Emoji sentiment selection with explanation |
star_rating | 1-5 star rating with feedback |
five_second_test | Brief timed exposure for first impressions |
screen_recording | Record user interaction with content |
single_select | Choose one from multiple options (3-8 options) |
multi_select | Select multiple answers from options (3-8 options) |
