store featuredadds country filtering, sorting, and rank trends.store featured --count=0returns summary stats only.
store featuredaccepts a storefront product ID in addition to a unified app ID.explorer querysorts descending by default.explorer400 responses include the API's error message instead of swallowing it.
- Catalog commands are now Explorer commands across the CLI help, README, eval fixtures, and runtime guidance.
af auth loginhelp now matches the current browser-based flow.- Agent-facing help tips use consistent wording.
af auth loginworks in agent harnesses.- Improved
store app-ranks,store top-charts, andstore app-listing.
- Command parsing now uses Commander — help, options, suggestions, and parse errors are more consistent across built-in and API-backed commands.
- Catalog query guidance is stricter and clearer — malformed queries, nested filters, omitted fields, and invalid sort fields now produce more actionable recovery hints.
- Metrics query defaults are more agent-friendly — boolean flags now default predictably when omitted.
- Store rank output is cleaner — app rank and top chart rows now use normalized category labels and pagination metadata.
- Text transport values round-trip safely — encoded CLI argument values no longer lose structure when passed through command-line text.
- Update notifications recommend the stable install command and avoid CI-related test/environment drift.
- Agent app date output is normalized for more reliable downstream parsing.
auth logoutno longer hangs if the server revoke is slow.
- README: npm badge and “Built for agents” section.
- Pagination —
--count/--pageonapps mine,store featured,store app-ranks,keywords results. metrics query --all-time.
- Reference commands renamed under
catalogandmetrics. - List responses now include pagination info on
apps mine,store featured,store app-ranks,keywords results. metrics queryoutput is tidier — top results first, incomplete recent dates are called out, and dates no longer shift with your timezone.catalog findreturns more relevant results when you querycustom_meta.*fields.
metrics querywith only--endno longer inverts the date range.
- OAuth 2 browser login —
af auth loginopens your browser; PAT still supported. storegroup —store app-ranks,store top-charts,store categories,store featured, andstore app-listing.apps get— fetch full details for any app, with--all-storesto span every store it appears on.- Env var overrides —
APPFIGURES_API_KEY(skip the keychain),APPFIGURES_API_BASE_URL,APPFIGURES_OAUTH_CLIENT_ID,APPFIGURES_OAUTH_CLIENT_SECRET, andAF_VERBOSE=1. auth login --code— pass the OAuth code directly instead of pasting it into the prompt.auth statusshows where your active credential came from and warns when env and keychain conflict.- Examples on
af --help— common starting points right on the root help screen.
- Renamed
apps info→apps get. - Renamed
catalog rollup→catalog aggregate. --deviceis now--device-typeacrossmetrics,keywords,apple-ads, andstore.metrics query: dataset is positional, defaults to all your apps over the last 30 days, and accepts--app-storefrontsto scope by store.apple-ads keywords,keywords rankings,reviews list,reviews breakdownall default to every tracked app whenappIdsis omitted.auth logoutrevokes the token server-side and confirms whose account it's clearing.auth loginrefuses to run when you're already authenticated, including viaAPPFIGURES_API_KEY.-v/--verboselogs each request as it fires and redacts theAuthorizationheader.- Unknown flags now error instead of silently being ignored.
- JSON output is compact in non-TTY mode and pretty-printed in your terminal.
metrics schemano longer suggests contradictory granularity options.- API errors with non-standard response bodies now forward the server's message instead of swallowing it.
- 401 / invalid-token errors automatically suggest
af auth login. - Ctrl-C exits cleanly (POSIX 130); SIGTERM exits 143.
APPFIGURES_API_KEYis referred to as an environment variable consistently across help and errors.
apps searchnow uses the unified-apps endpoint and emits pagination hints when more results exist.- Polished help output — mutating commands hidden by default, exit codes tightened.
- Clearer auth errors — HTTP errors now show the server's response body (not just status), and
auth login --helpexplains how to get a token.
- Update notifications now fire reliably — no longer lost to the process-exit race, and show under
--help/--versiontoo.
-
catalog find --sort: The leading-prefix for descending order is gone. Use--order descinstead.Before:
af catalog find --sort -all_ratingAfter:af catalog find --sort all_rating --order descThe old convention hit a citty/util.parseArgs bug: at intermediate subcommand levels, values starting with
-that contain_were split into single-char boolean flags (including-_), which setvalues._ = trueand destroyed the positionals array — throwing "boolean true is not iterable".
Initial alpha release.