@autoady/cli
v1.0.0
Published
AutoAdy CLI — Meta Ads benchmarks, health, fatigue and creative tools from your terminal. Zero dependencies.
Maintainers
Readme
@autoady/cli
AutoAdy's Meta Ads tools from your terminal — benchmarks, account health, creative fatigue, ad copy and hooks, plus a direct escape hatch to every tool in the AutoAdy API.
Zero runtime dependencies. Node 18+.
npx -y @autoady/cli healthOr install it once, which puts a short autoady command on your PATH:
npm install -g @autoady/cli
autoady --helpAuthentication
Create an API key at https://www.autoady.io/settings (it looks like adk_...), then pick one:
# 1. environment variable
export AUTOADY_API_KEY=adk_...
# 2. per-call flag
autoady health --key adk_...
# 3. config file
mkdir -p ~/.config/autoady
echo '{"apiKey":"adk_..."}' > ~/.config/autoady/config.jsonPrecedence: --key > AUTOADY_API_KEY > ~/.config/autoady/config.json. The key is never printed back to you, in output or in error messages.
Set AUTOADY_API_URL to point the CLI at a non-production AutoAdy deployment.
Global flags
| Flag | Meaning |
| --- | --- |
| --key <adk_...> | API key for this call |
| --account <act_123> | Default Meta ad account for account-scoped commands |
| --json | Print the raw { "source": ..., "data": ... } envelope instead of a table |
| --help, -h | Show help |
| --version, -v | Print the version |
Global flags work before or after the command name.
Commands
autoady accounts
The Meta ad accounts this API key can act on. Start here — the ids it prints are what --account takes.
autoady accountsautoady results
Live spend and results. Defaults to your active account.
autoady results --account act_123 --level adset --date-preset last_7d--level is ad, adset or campaign; --date-preset is any Meta preset (today, last_7d, last_30d, …).
autoady health
Account health score.
autoady health --account act_123
autoady health --json | jq '.data.score'autoady benchmarks
Industry CPM / CTR / CPA benchmarks. Omit --niche to list every niche.
autoady benchmarks --niche ecommerceautoady compare
Score your own numbers against a niche benchmark. At least one metric is required.
autoady compare --niche ecommerce --cpm 12.4 --ctr 1.1 --cpl 8.5autoady fatigue
Creative fatigue verdict from numbers you already have — no account connection needed.
autoady fatigue --frequency 3.4 --ctr-trend 1.8,1.5,1.1 --days-running 21--ctr-trend is a comma-separated list of at least two CTR values, oldest first.
autoady fatigue-alerts
Scan a connected account for ads that are fatiguing right now. --quick runs the shallow pass.
autoady fatigue-alerts --account act_123 --quickautoady ad-copy (Pro)
Generate ad copy variations from a landing page or a description.
autoady ad-copy --url https://example.com --objective leads --tone bold
autoady ad-copy --description "cold plunge tub for home gyms"autoady hooks (Pro)
Generate scroll-stopping hooks.
autoady hooks --url https://example.com --platform instagram
autoady hooks --description "cold plunge tub" --platform tiktokautoady call <tool> — escape hatch
Every AutoAdy API tool is reachable here, including the ones without a bespoke command. The body is passed through verbatim, so this never falls behind the API.
autoady call winner-insights --json-body '{"account_id":"act_123"}'
autoady call list-skills
echo '{"slug":"scaling"}' | autoady call get-skill -Pass - (or --json-body -) to read the JSON body from stdin. Unknown tool names are rejected before any network call.
Available tools:
list-accounts, results, health, benchmarks, compare, fatigue, ad-copy, hooks,
creative-dna, analyze-winning-ad, winner-insights, url-to-ads, multiply-winner,
competitor-creatives, creative-matrix, creative-loop, emergency-recovery,
fatigue-alerts, push-creative, save-creative, list-skills, get-skillExit codes
| Code | Meaning |
| --- | --- |
| 0 | Success |
| 1 | The API answered, but the tool, your plan, or the rate limit rejected the call |
| 2 | Usage error (bad command or flags) or an auth problem (missing/invalid key) |
Results go to stdout; every diagnostic goes to stderr, so autoady results --json \| jq stays clean when a call fails.
Scripting
# fail a CI job when account health drops
score=$(autoady health --json | jq '.data.score')
[ "$score" -ge 70 ] || { echo "health $score below 70"; exit 1; }Docs
License
MIT
