Your app is live
on six ad networks.
Nobody has six tabs.
adduck pulls spend, taps, and installs across Apple Search Ads, Reddit, Meta, AppLovin, Unity, and ironSource into one command. Pause, resume, change budgets, set schedules. Your AI assistant can do it too.
~$ adduck spend --days 7 NETWORK CAMPAIGN SPEND INST CPI ────────────────────────────────────────────────────── APPLE iOS App: Exact Match $142 47 $3.02 REDDIT App Awareness Q3 $89 22 $4.05 Lookalike 1% $203 71 $2.86 APPLOVIN Rewarded Video $67 18 $3.72 UNITY Banner + Interstitial $41 12 $3.41 IRONSRC Rewarded 30s $55 16 $3.44 ────────────────────────────────────────────────────── total $597 186 $3.21 [OK] all 6 platforms live
# one command. every network.
Spend across all six platforms sorted by CPI. Flag what's working, pause what's not. No context switching.
~$ adduck audit RULE STATUS VALUE ──────────────────────────────────────── max daily budget [PASS] $500 / $500 budget change limit [PASS] 0% / 25% protected campaigns [PASS] none locked mutations enabled [PASS] true ──────────────────────────────────────── last run: 2 minutes ago % _
~$ adduck schedule list ID ACTION PLATFORM AT ON ────────────────────────────────────── sc-1 pause apple 00:00 yes sc-2 resume apple 07:00 yes sc-3 budget reddit 09:00 yes sc-4 rotate meta Mon no ────────────────────────────────────── 4 schedules · 3 active
~$ adduck tui ╔══ adduck v0.9.1 ═════════════════════╗ ║ ▶ Apple Search Ads $142 47 inst ║ ║ Reddit Ads $89 22 inst ║ ║ Meta Ads $203 71 inst ║ ║ AppLovin $67 18 inst ║ ║ ║ ║ j/k · Enter · p pause · q quit ║ ╚════════════════════════════════════╝
~$ adduck agents install [OK] Claude Desktop detected [OK] Wrote claude_desktop_config.json [OK] MCP server registered ───────────────────────────────── Tools exposed to Claude: get_spend · list_campaigns pause_campaign · set_budget list_schedules · get_guardrails
# three ways in.
Pick what fits your workflow. They all speak to the same credentials file.
Scripts, CI, and people who live in their terminal
Every command outputs clean, structured text. Pipe it, filter it, schedule it with cron. Pass --json for machine-readable output.
# pause all apple campaigns at midnight ~$ adduck schedule add \ --platform apple \ --action pause \ --at "00:00" [OK] Schedule sc-5 created # pipe to jq for scripting ~$ adduck spend --json \ | jq '.[] | select(.cpiMicros > 4000000)'
╔══ adduck: 7-day spend ════════════════╗ ║ ║ ║ ▶ Apple Search Ads ║ ║ iOS App: Exact Match ║ ║ $142.00 · 47 inst · $3.02 CPI ║ ║ ║ ║ Spend last 7d ║ ║ █████████▓▓▒░░ $20/day avg ║ ║ ║ ║ p pause · r resume · b budget · q ║ ╚══════════════════════════════════════╝
Browse without typing commands
Move through campaigns with j/k. Expand into spend charts. Pause or adjust budgets with a keypress. Runs in your terminal, no browser required.
~/docs/cli#tui →Let Claude manage your campaigns
adduck mcp starts an MCP server. adduck agents install wires it into Claude Desktop or any MCP-compatible client.
Your assistant can read spend, pause campaigns, and adjust budgets -- with guardrails you set. The AI can't exceed them.
~/docs/mcp →Human: Pause anything over $4 CPI. Claude: Running adduck get_spend... Found 2 campaigns above $4.00 CPI: ▸ Reddit "App Awareness Q3": $4.05 ▸ AppLovin "Rewarded Video": $3.72 (under threshold, leaving it) Pausing Reddit campaign... [OK] Paused "App Awareness Q3" 1 paused. AppLovin left running.
It won't let you accidentally spend 4x your budget.
Guardrails are per-project limits that block mutations before they happen. The defaults are conservative. You can tighten them further, but you can't exceed your billing limits.
Protected campaigns can't be paused or budget-changed. For the always-on brand campaign that somebody set up 3 years ago and nobody fully understands anymore.
~/docs/guardrails →~$ adduck guardrails Project: my-app · account: main ──────────────────────────────────────── allowMutations true maxBudgetChangePct 25% (max increase) maxDailyBudgetMicros $500 (absolute cap) protectedCampaigns [] ──────────────────────────────────────── ~ Edit: adduck.json > guardrails ~ Violations are blocked, not warned.
Free to self-host.
adduck is MIT-licensed. Run it on your machine, in CI, on a server. Your credentials stay local -- adduck doesn't proxy API calls through any backend.
Each platform API key goes in your project's adduck.json or in environment variables. No account, no cloud, no telemetry.
Connects in 5 minutes.
Apple Search Ads is the most involved: client ID, key ID, team ID, PEM key. The others are a token and an account ID.
Get your ads in a row.
Installs in under a minute. No account required. MIT.