Command line
JSON and its schemas
Section titled “JSON and its schemas”Every command takes --json (export takes --format json). Each JSON object names its
schema, "schema": "askround/round@1", and the schemas are published in the repository’s
schema/ directory as JSON Schema.
Exit codes
Section titled “Exit codes”| Code | Means |
|---|---|
| 0 | every answer came back |
| 3 | a partial round: it finished, and the answers that failed are listed |
| 1 | no answer came back |
| 2 | refused before anything was sent (personal data, a leading question, over the cap or the budget, no key) or a usage error |
askround explain lists the refusal codes, and askround explain <code> says what one means
and how to pass it.
The commands
Section titled “The commands”askround ask
send one question to every configured provider
| Argument | What it does |
|---|---|
--provider | only this provider (repeatable) |
--model | pin the model one provider uses (repeatable) |
--max-cost | refuse, before anything is sent, a run estimated above this (or ASKROUND_MAX_COST) |
--approve | the person approves this run past the day or month budget (agents cannot) |
--fresh | ask again even if the same round was asked recently (it counts against the budget) |
--estimate-only | run every check and print the estimate; ask nothing |
question | |
--no-search | ask without web search, to compare with a searched round |
--runs | times each provider is asked, in fresh conversations (default 3) |
--product | report how often this product is named and where (repeatable) |
--locale | ask as someone in this country, e.g. BR:pt-BR; repeat to compare (each locale is a full set of runs) |
--extract | read each answer's recommendations in order with a model (one extra call per answer), so a product's rank counts tables and prose; default extractor: the first of openai, gemini, anthropic with a key |
--check-rivals | look up whether the top N rivals (default 10) exist: GitHub, then one searched call each; needs --extract |
--product-file | a product file (TOML: names, places, facts); with --extract, the answers' claims are compared with its facts (repeatable) |
--brand | the question names the product on purpose; without this it is refused |
--check-links | follow the links each answer gives beside a --product, and flag the ones that land on someone else's page |
--out | where rounds are saved |
--json | print the round as JSON |
askround run
ask every question of a product file (a prompt set)
| Argument | What it does |
|---|---|
--provider | only this provider (repeatable) |
--model | pin the model one provider uses (repeatable) |
--max-cost | refuse, before anything is sent, a run estimated above this (or ASKROUND_MAX_COST) |
--approve | the person approves this run past the day or month budget (agents cannot) |
--fresh | ask again even if the same round was asked recently (it counts against the budget) |
--estimate-only | run every check and print the estimate; ask nothing |
PRODUCT.toml | |
--runs | runs per question, over what the file sets for each |
--no-search | no web search |
--extract | read recommendations and claims, and compare the claims with the file's facts |
--check-links | follow the product's links |
--out | where rounds are saved |
--json | print the set's report as JSON |
askround discover
find which way of asking leads the assistants to a product
| Argument | What it does |
|---|---|
--provider | only this provider (repeatable) |
--model | pin the model one provider uses (repeatable) |
--max-cost | refuse, before anything is sent, a run estimated above this (or ASKROUND_MAX_COST) |
--approve | the person approves this run past the day or month budget (agents cannot) |
--fresh | ask again even if the same round was asked recently (it counts against the budget) |
--estimate-only | run every check and print the estimate; ask nothing |
PRODUCT.toml | |
--seed | the question to vary (default: the file's first one) |
--variants | how many (default 6) |
--runs | runs per question (default 1) |
--extract | also rank by the extraction pass (one more call per answer) |
--out | where rounds are saved |
--json | print the ranking as JSON |
askround lookup
check whether products exist: GitHub, then one searched call each
| Argument | What it does |
|---|---|
NAME | |
--context | what they were recommended for |
--no-web | GitHub only, free |
--json | print the verdicts as JSON |
askround diff
what changed between two rounds or prompt set runs
| Argument | What it does |
|---|---|
old | the earlier round or set (directory) |
new | the later one |
--product | compare for it |
--out | where rounds are saved |
--json | print the changes as JSON |
askround series
a product's share of answers over time, from every round kept
| Argument | What it does |
|---|---|
--product | the product to follow (required) |
--by | default: week (one of: day, week, month) |
--question | only questions containing this text |
--rebuild | write the series again from every round.json |
--out | where rounds are saved |
--json | print the table as JSON |
askround research
ask a research question everywhere and merge the answers' claims and sources
| Argument | What it does |
|---|---|
--provider | only this provider (repeatable) |
--model | pin the model one provider uses (repeatable) |
--max-cost | refuse, before anything is sent, a run estimated above this (or ASKROUND_MAX_COST) |
--approve | the person approves this run past the day or month budget (agents cannot) |
--fresh | ask again even if the same round was asked recently (it counts against the budget) |
--estimate-only | run every check and print the estimate; ask nothing |
question | |
--runs | runs per provider (default 1) |
--extract | who reads and merges (default: auto) |
--out | where rounds are saved |
--json | print the merged claims as JSON |
askround budget
what has been spent against the budget
| Argument | What it does |
|---|---|
--out | where rounds are saved |
--json | print it as JSON |
askround explain
what a refusal code means and how to pass it
| Argument | What it does |
|---|---|
code | e.g. question.leading (default: list them) |
askround mcp
serve askround to an agent as an MCP server (stdio)
| Argument | What it does |
|---|---|
--out | where rounds are saved |
askround install
wire a project to the askround plugin in its .claude/settings.json
| Argument | What it does |
|---|---|
project | the project (default: here) |
--check | write nothing; exit 1 when it is not wired |
--vendor | also commit a copy of askround and its .mcp.json entry, for Claude Code on the web |
askround export
a product's numbers from the series, for a dashboard
| Argument | What it does |
|---|---|
--product | the product to export |
--from | first day |
--to | last day |
--format | (one of: csv, json, daily) |
--key | the product's key in --format daily (default: its name) |
--file | write here instead of printing |
--out | where rounds are saved |
askround report
sum a stored round up: Markdown for a person, JSON for a pipeline
| Argument | What it does |
|---|---|
round | a round's directory or round.json (default: the latest round under --out) |
--product | report on this product (default: the products the round was asked about) |
--out | where rounds are saved |
--json | print the report as JSON |
--brief | the round in a few hundred tokens, each fact with its answers' ids (JSON) |
askround doctor
say which providers can run here
| Argument | What it does |
|---|---|
--provider | only this provider (repeatable) |
--model | pin the model one provider uses (repeatable) |
--no-check | make no network call |
--json | print the report as JSON |