anyapi loginnow starts the RFC 8628 OAuth device flow when no manual key is supplied. It prints the verification URL and user code, opens the complete URL best-effort, follows the server polling interval andslow_down, and stores the same access token, refresh token, expiry, and scope fields asanyapi connect. Account sessions refresh automatically before the one-hour access token expires.
anyapi login --api-key aa_live_...remains the manual-key compatibility path and clears any unrelated OAuth or trial state before selecting that key.loginis the immediate cross-device account sign-in path;connectremains the Authorization Code + PKCE loopback path for upgrading a free trial.
- Discovery now accepts only the customer-safe contract: AnyAPI branding,
nested USD pricing,
relevance, andranking.
- Removed the temporary 0.3.2 compatibility reader for credit-based catalog responses and the former search field aliases.
anyapi searchnow uses the dedicated ranked catalog search endpoint.- Discovery responses are normalized to AnyAPI-branded, nested USD pricing. This bridge release reads both the current credit-based contract and its replacement so it remains compatible across the gateway cutover.
anyapi connectnow works from a cold start with no trial key. It resolves the OAuth client id in priority order: the per-trialclientId(trial upgrade), else a CLI client previously registered via OAuth 2.1 Dynamic Client Registration (cliClientId), else a fresh DCR whose client id is persisted and reused (the registration endpoint is IP-rate-limited). It no longer dead-ends with "runanyapi initoranyapi signupfirst"; it only errors if DCR itself fails.
Reframed agent onboarding: self-signup is a free trial, and anyapi connect
upgrades past it via a one-URL OAuth approval.
anyapi connect- upgrade past the free trial with OAuth 2.1 Authorization Code- PKCE (S256) over an ephemeral
127.0.0.1/callbackloopback. Discovers the authorization server via RFC 8414 metadata (falls back to the hardcoded gateway endpoints), prints a single consent URL for a human, and on approval stores theaa_at_...access token, refresh token, expiry, and scope in config - the access token becomes the active key with nothing to swap by hand.
- PKCE (S256) over an ephemeral
anyapi initnow mints the free trial key when none is resolvable, alongside installing skills and MCP setup.
anyapi signupdrops the--email/sponsor option and speaks the trial framing (about $0.15 of requests, no account, self-expires in 7 days). It persists the trial's OAuthclientIdforanyapi connect, and relays the servernotice.- HTTP 402 handling now recognizes
trial_cap_reached(waskey_cap_exceeded) and points atanyapi connect.
- The
anyapi claimcommand and all sponsor/claim vocabulary. The continue path is the OAuth upgrade, not a sponsor email or claim token.
jq-first local shaping. Run once, then re-slice the saved result forever at zero cost.
anyapi view [path] [--last [sku]] [--jq <expr>] [--fields a,b] [--max-items N] [--summary] [--json]- re-shape a saved run envelope locally. Zero network, zero cost.--last [sku]resolves the newest.anyapi/<sku>-*.jsonby mtime (newest overall when the sku is omitted); a bareanyapi viewdoes the same.anyapi run --jq <expr>- a gh-CLI-style jq flag. jq runs locally over the result output envelope{found, data}(paths start at.data/.found), identical onrunandview.- Bundled WebAssembly jq engine (real jq 1.8.2, no system install required), with a
system
jqbinary fallback when the wasm engine cannot load.
- Breaking behavior:
--fields,--max-items, and--summaryare now LOCAL and shape only the stdout view. They are no longer sent to the server and no longer trim the saved file.runalways fetches and saves the full result, so digging deeper no longer costs a re-run. - With shape flags and without
--json,runprints the 3-line summary plus the locally shaped JSON. - Large unshaped results print a one-line hint pointing at
anyapi view --last <sku>for free re-slicing (instead of the server's shaping hint, which is dropped). - A failed jq expression prints the error to stderr and exits non-zero; the saved result is untouched.
- Initial published CLI:
signup,login,search,list,describe,run,balance,claim,init,setup skills.