Nathan Smith · 12 May 2026
Meta just shipped an Ads CLI, and we are quietly thrilled about it
Meta has released an Ads CLI: a command-line tool that lets developers and AI agents manage campaigns straight from the terminal. It looks like a developer footnote, but it is quietly central to a big project we are building behind the scenes. Nathan Smith explains what it is and why it gets us genuinely excited.
Meta just shipped something that, on the surface, looks like a developer footnote: a command-line tool for managing ad campaigns. No new ad format, no new placement, no flashy creative feature. And yet it is one of the announcements we have been most excited about all year, because of what it unlocks for the way we want to run paid media from here on. Here is what the Ads CLI is, and why it is quietly central to a big project we are building behind the scenes.
What the Ads CLI actually is
The Ads CLI is a command-line wrapper around Meta's Marketing API. In plain terms: instead of clicking through Ads Manager, or writing custom code to talk to the API yourself, you type commands in a terminal (or have a script type them for you) to create, list, update and delete campaigns, ad sets, ads and creatives. It will pull performance insights (spend, impressions, CTR, ROAS) with date ranges and breakdowns, manage product catalogues, and wire up conversion pixels. Commands read like plain English, for example meta ads campaign create or meta ads ad update.
Our take: the genuinely interesting line in Meta's announcement is that this is built for "developers and AI agents." For years, doing anything programmatic with Meta ads meant a developer writing and maintaining boilerplate: authentication, pagination, output formatting, error handling, the unglamorous plumbing that has to be right before you do anything useful. The CLI absorbs all of that. What is left is a clean, scriptable surface that a person, a script, or an AI agent can drive directly. That is the bit that changes how an agency like ours can work.
Why a command line is a bigger deal than it sounds
A graphical dashboard is built for one human doing one thing at a time. A command line is built to be automated, repeated and chained together. The moment ad management becomes a set of clean commands, it becomes something you can put inside a script, a scheduled job, or, and this is the part we care about most, an AI agent that reasons about an account and then acts on it.
Our take: this is the natural next step in the automation work we have been doing across the agency. An AI agent that can read live performance, decide what should change, and then actually make the change through a safe, supported interface is a fundamentally more useful thing than one that can only write a report and leave the doing to a human. The Ads CLI gives that agent hands. It is the difference between an assistant that advises and one that can be trusted to execute the routine, well-defined moves under supervision.
The safety rails that made us comfortable
Handing automation the keys to a live ad account is exactly the kind of thing that should make you nervous, so the design choices here matter. New resources default to PAUSED, so nothing goes live and starts spending by accident. There are explicit flags (--no-input, --force) that make automated runs deliberate rather than accidental. Output comes back as clean JSON or tab-separated values, which means a script or an agent can actually parse and verify what happened. And it uses standard exit codes, so a workflow knows the difference between success and failure and can stop rather than barrel on.
Our take: "PAUSED by default" is a small detail that tells you the tool was built by people who understand the stakes of touching a live account. It means we can build automation that proposes and stages changes, then have a human approve the go-live, rather than letting anything spend money unsupervised. That guardrail is precisely what lets us move quickly without being reckless with client budgets.
The project we are building behind the scenes
We will not pull the curtain all the way back yet, but here is the shape of it. We are building an AI-driven layer that sits across our clients' paid media: it watches performance continuously, spots the moves a smart account manager would make (pausing what is not working, shifting budget to what is, flagging creative fatigue before it bites), and prepares those changes ready for a human to review and ship. The Ads CLI is one of the cleanest, best-supported ways for that system to actually carry out the Meta side of those changes, safely and at scale, instead of us building and babysitting fragile custom API code.
Our take: the reason a tool like this gets us excited is not novelty, it is leverage. It lets our team spend less time on the mechanical clicking and more time on the things software cannot do: strategy, the offer, the creative, the judgement calls. We have always believed AI should take the repetitive work off people so the people can do the valuable work. A scriptable, agent-ready interface to one of the biggest ad platforms on earth is a real, concrete piece of that future, not a slide in a pitch deck.
What this means for clients
Nothing about this changes the principles. More automation is not the goal, better outcomes are. A faster, tireless system for managing the routine mechanics of an account is only worth having if it frees up smart humans to make the calls that move the needle, and if every penny it touches is still held to the same efficiency bar as before. That is exactly how we are building it: automation for the grind, humans for the judgement, and a hard line that the numbers have to hold.
If you want paid media run by a team that is genuinely building for what comes next, rather than bolting "AI" onto the same old process, that is the conversation we love to have. Tell us about your goals and we will show you how we are thinking about it.