Skip to content

Commit ea1394c

Browse files
committed
docs: rewrite README with complete command reference
Replace the old README with a comprehensive reference covering all 117 commands (50 Google Ads, 67 Meta Ads) organized by theme. Remove the manual refresh step, add "Why use the CLI" section, architecture diagram, MCP cross-links, and community section.
1 parent 238712b commit ea1394c

1 file changed

Lines changed: 274 additions & 31 deletions

File tree

‎README.md‎

Lines changed: 274 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
# pipeboard-cli
22

3-
Command-line tool for managing Meta Ads, Google Ads, and TikTok Ads from your terminal. Built for AI agents and automation — authenticate once, connect your ad platforms via OAuth, and let your agents manage campaigns, pull reports, and optimize ads across platforms.
3+
Manage Meta Ads and Google Ads from your terminal. Single binary, zero dependencies, 50ms startup.
44

5-
Works as an alternative to [Pipeboard](https://pipeboard.co)'s MCP servers for agents that prefer CLI tools. Pipeboard gives you control over which ad accounts the CLI can access, and you can create API tokens scoped to specific accounts and commands.
5+
Built for AI coding agents (Claude Code, Cline, OpenClaw) and automation scripts that prefer `pipeboard meta-ads get-insights ...` over JSON-RPC. Every CLI invocation goes through [Pipeboard](https://pipeboard.co)'s cloud — your ad platform tokens never touch the local machine.
6+
7+
Commands are generated dynamically from Pipeboard's MCP tool definitions. When new tools ship server-side, they're available in the CLI automatically — no release required.
8+
9+
## Why use the CLI
10+
11+
- **All platforms, one binary** — Meta Ads and Google Ads without configuring separate MCP servers
12+
- **More tools than local MCP** — 117 commands covering campaigns, creatives, audiences, reporting, and more
13+
- **Fast for agents** — sub-50ms cold start. Agents shell out to `pipeboard` instead of implementing MCP JSON-RPC
14+
- **Scriptable** — pipe JSON output into `jq`, chain commands in bash, run from CI
615

716
## Installation
817

@@ -20,7 +29,7 @@ go install github.com/pipeboard-co/pipeboard-cli@latest
2029

2130
### Binary download
2231

23-
Download the latest release from [GitHub Releases](https://github.com/pipeboard-co/pipeboard-cli/releases).
32+
Download from [GitHub Releases](https://github.com/pipeboard-co/pipeboard-cli/releases). Builds for macOS (arm64/amd64), Linux (arm64/amd64), and Windows (amd64).
2433

2534
## Authentication
2635

@@ -36,7 +45,7 @@ Or store it in the config file:
3645
pipeboard config set token <your-token>
3746
```
3847

39-
Get your API token at [pipeboard.co/settings](https://pipeboard.co/settings).
48+
Get your API token at [pipeboard.co/api-tokens](https://pipeboard.co/api-tokens).
4049

4150
### Browser OAuth (interactive)
4251

@@ -46,52 +55,286 @@ pipeboard login
4655

4756
## Quick Start
4857

49-
After authenticating, fetch the available tools:
50-
51-
```bash
52-
pipeboard refresh
53-
```
54-
55-
This downloads tool definitions from Pipeboard's MCP servers and caches them locally at `~/.pipeboard/tools-cache.json`. Run this once after install, or again when new tools are available.
56-
57-
## Usage
58-
59-
Commands are auto-generated from Pipeboard's MCP tool definitions. Each ad platform is a top-level command with subcommands for every available operation.
60-
6158
```bash
6259
# List Google Ads campaigns
6360
pipeboard google-ads get-campaigns --customer-id 1234567890
6461

65-
# Execute a raw GAQL query
66-
pipeboard google-ads execute-gaql-query --customer-id 1234567890 --query "SELECT campaign.id, campaign.name FROM campaign LIMIT 10"
67-
6862
# Get Meta Ads campaign insights
6963
pipeboard meta-ads get-insights --object-id act_123 --date-preset last_30d
7064

7165
# Create a Meta Ads campaign
7266
pipeboard meta-ads create-campaign --account-id act_123 --name "Spring Sale" --objective OUTCOME_SALES
7367

74-
# See all available commands for a platform
68+
# See all available commands
7569
pipeboard google-ads --help
7670
pipeboard meta-ads --help
77-
78-
# Check version
79-
pipeboard version
8071
```
8172

8273
Flags are generated from each tool's JSON Schema — required flags are enforced and enum values are shown in help text.
8374

84-
## Development
75+
## Commands
76+
77+
### Google Ads
78+
79+
50 commands across campaigns, ad groups, ads, keywords, audiences, extensions, and reporting.
80+
81+
#### Campaigns
82+
83+
| Command | Description |
84+
|---------|-------------|
85+
| `create-campaign` | Create a new campaign |
86+
| `get-campaigns` | List campaigns |
87+
| `get-campaign-metrics` | Get campaign performance metrics with optional time-series |
88+
| `update-campaign` | Update campaign name, status, or budget |
89+
| `enable-campaign` | Enable a paused campaign |
90+
| `pause-campaign` | Pause a campaign |
91+
| `create-pmax-campaign` | Create a complete Performance Max campaign with assets |
92+
| `get-pmax-asset-groups` | Get asset groups for a Performance Max campaign |
93+
| `update-pmax-asset-group` | Add/remove assets and search themes in a PMax asset group |
94+
95+
#### Ad Groups
96+
97+
| Command | Description |
98+
|---------|-------------|
99+
| `create-ad-group` | Create a new ad group in a campaign |
100+
| `get-ad-groups` | List ad groups |
101+
| `get-ad-group-metrics` | Get ad group performance metrics |
102+
| `update-ad-group` | Update ad group name, status, or bids |
103+
104+
#### Ads
105+
106+
| Command | Description |
107+
|---------|-------------|
108+
| `create-responsive-search-ad` | Create a Responsive Search Ad (RSA) |
109+
| `get-ads` | List ads |
110+
| `get-ad-metrics` | Get ad performance metrics |
111+
| `enable-ad` | Enable a paused ad |
112+
| `pause-ad` | Pause an ad |
113+
114+
#### Keywords
115+
116+
| Command | Description |
117+
|---------|-------------|
118+
| `add-keywords` | Add keywords to an ad group |
119+
| `get-keywords` | List keywords |
120+
| `get-keyword-metrics` | Get keyword performance metrics |
121+
| `enable-keyword` | Enable paused keywords |
122+
| `pause-keyword` | Pause keywords |
123+
| `update-keyword-bid` | Update CPC bid for keywords |
124+
| `remove-keywords` | Remove keywords from an ad group |
125+
| `add-negative-keywords` | Add negative keywords to a campaign or ad group |
126+
| `get-negative-keywords` | List negative keywords |
127+
| `remove-negative-keywords` | Remove negative keywords |
128+
129+
#### Audiences & Targeting
130+
131+
| Command | Description |
132+
|---------|-------------|
133+
| `add-audience-to-campaign` | Add an audience to a campaign |
134+
| `get-audiences` | List available audience segments |
135+
| `get-device-performance` | Performance breakdown by device type |
136+
| `get-geo-performance` | Performance breakdown by location |
137+
| `get-hour-of-day-performance` | Performance breakdown by hour of day |
138+
| `get-search-terms-report` | Actual search queries that triggered ads |
139+
| `update-network-settings` | Update network targeting (Search, Display, etc.) |
140+
141+
#### Extensions
142+
143+
| Command | Description |
144+
|---------|-------------|
145+
| `create-callout` | Create a callout extension |
146+
| `create-sitelink` | Create a sitelink extension |
147+
| `create-structured-snippet` | Create a structured snippet extension |
148+
| `get-extensions` | List ad extensions for campaigns |
149+
| `remove-extension` | Remove an extension from a campaign |
150+
| `update-extension-status` | Enable or pause an extension |
151+
152+
#### Assets
153+
154+
| Command | Description |
155+
|---------|-------------|
156+
| `list-assets` | List creative assets in an account |
157+
| `upload-asset` | Upload an image, text, or YouTube video asset |
158+
159+
#### Account & Reporting
160+
161+
| Command | Description |
162+
|---------|-------------|
163+
| `get-account-info` | Get account details |
164+
| `list-customers` | List accessible customer accounts |
165+
| `execute-gaql-query` | Run a raw GAQL query |
166+
| `execute-mutate` | Run a raw mutate operation |
167+
| `query-api-docs` | Search Google Ads API documentation |
168+
| `create-email-report` | Send an AI-powered email performance report |
169+
| `submit-feedback` | Report a bug or request a feature |
170+
171+
---
172+
173+
### Meta Ads
174+
175+
67 commands across campaigns, ad sets, ads, creatives, audiences, lead gen, and reporting.
176+
177+
#### Campaigns
178+
179+
| Command | Description |
180+
|---------|-------------|
181+
| `create-campaign` | Create a new campaign |
182+
| `get-campaigns` | List campaigns |
183+
| `get-campaign-details` | Get detailed campaign info |
184+
| `update-campaign` | Update campaign settings |
185+
| `duplicate-campaign` | Duplicate a campaign with all ad sets and ads |
186+
| `bulk-update-campaigns` | Update multiple campaigns at once |
187+
| `create-budget-schedule` | Schedule budget changes for a campaign |
188+
189+
#### Ad Sets
190+
191+
| Command | Description |
192+
|---------|-------------|
193+
| `create-adset` | Create a new ad set |
194+
| `get-adsets` | List ad sets |
195+
| `get-adset-details` | Get detailed ad set info |
196+
| `update-adset` | Update ad set settings, budgets, and frequency caps |
197+
| `duplicate-adset` | Duplicate an ad set with its ads |
198+
| `bulk-update-adsets` | Update multiple ad sets at once |
199+
200+
#### Ads
201+
202+
| Command | Description |
203+
|---------|-------------|
204+
| `create-ad` | Create an ad with an existing creative |
205+
| `get-ads` | List ads |
206+
| `get-ad-details` | Get detailed ad info |
207+
| `update-ad` | Update ad settings |
208+
| `duplicate-ad` | Duplicate an ad |
209+
| `bulk-update-ads` | Update multiple ads at once |
210+
211+
#### Creatives
212+
213+
| Command | Description |
214+
|---------|-------------|
215+
| `create-ad-creative` | Create a creative from an image or video |
216+
| `create-carousel-ad-creative` | Create a carousel creative with multiple cards |
217+
| `get-ad-creatives` | Get creative details for an ad |
218+
| `get-creative-details` | Get creative details by creative ID |
219+
| `get-ad-previews` | Get an ad or creative preview (iframe HTML) |
220+
| `update-ad-creative` | Update creative name or optimization settings |
221+
| `duplicate-creative` | Duplicate a creative |
222+
| `bulk-create-ad-creatives` | Create multiple creatives in a batch |
223+
| `bulk-get-ad-creatives` | Fetch creative details for multiple ads |
224+
225+
#### Media
226+
227+
| Command | Description |
228+
|---------|-------------|
229+
| `upload-ad-image` | Upload an image for use in creatives |
230+
| `get-ad-image` | Download and visualize an ad image |
231+
| `upload-ad-video` | Upload a video for use in creatives |
232+
| `get-ad-video` | Get video details and source URL |
233+
| `bulk-upload-ad-images` | Upload multiple images at once |
234+
| `bulk-upload-ad-videos` | Upload multiple videos at once |
235+
236+
#### Audiences & Targeting
237+
238+
| Command | Description |
239+
|---------|-------------|
240+
| `create-custom-audience` | Create a custom audience |
241+
| `create-lookalike-audience` | Create a lookalike audience from a seed |
242+
| `get-custom-audiences` | List custom audiences |
243+
| `delete-custom-audience` | Delete a custom audience |
244+
| `add-users-to-audience` | Upload a customer list to an audience |
245+
| `estimate-audience-size` | Estimate reach for targeting specs |
246+
| `search-interests` | Search interest targeting options |
247+
| `get-interest-suggestions` | Get suggestions based on existing interests |
248+
| `bulk-search-interests` | Search interests across multiple keywords |
249+
| `search-behaviors` | List behavior targeting options |
250+
| `search-demographics` | List demographic targeting options |
251+
| `search-geo-locations` | Search geographic targeting locations |
252+
253+
#### Insights & Reporting
254+
255+
| Command | Description |
256+
|---------|-------------|
257+
| `get-insights` | Get performance insights for any object |
258+
| `bulk-get-insights` | Get insights for multiple objects at once |
259+
| `create-email-report` | Send an AI-powered email performance report |
260+
| `list-email-reports` | List email report schedules |
261+
| `update-email-report` | Update an email report schedule |
262+
| `delete-email-report` | Delete an email report schedule |
263+
264+
#### Account & Pages
265+
266+
| Command | Description |
267+
|---------|-------------|
268+
| `get-ad-accounts` | List accessible ad accounts |
269+
| `get-account-info` | Get account details |
270+
| `get-account-pages` | Get pages associated with an account |
271+
| `get-instagram-accounts` | Get Instagram accounts for an ad account |
272+
| `get-pixels` | List Meta pixels for an account |
273+
| `search-pages-by-name` | Search for pages by name |
274+
275+
#### Lead Generation
276+
277+
| Command | Description |
278+
|---------|-------------|
279+
| `create-lead-gen-form` | Create a lead gen form on a Page |
280+
| `get-lead-gen-forms` | List lead gen forms for a Page |
281+
| `publish-lead-gen-draft-form` | Publish a draft lead gen form |
282+
| `update-lead-gen-form-status` | Archive or reactivate a form |
283+
284+
#### Product Catalogs
285+
286+
| Command | Description |
287+
|---------|-------------|
288+
| `list-catalogs` | List product catalogs for an account |
289+
| `list-product-sets` | List product sets in a catalog |
290+
291+
#### Other
292+
293+
| Command | Description |
294+
|---------|-------------|
295+
| `submit-feedback` | Report a bug or request a feature |
296+
297+
## How It Works
85298

86-
```bash
87-
# Build
88-
make build
299+
```
300+
pipeboard <platform> <command> [flags]
301+
│
302+
▼
303+
MCP JSON-RPC client (HTTP POST)
304+
│
305+
▼
306+
https://mcp.pipeboard.co/<server>
307+
│
308+
▼
309+
Meta / Google APIs
310+
```
311+
312+
The CLI is a thin client. All API calls go through Pipeboard's cloud — auth tokens, rate limiting, and logging are handled server-side. This is why the CLI repo contains no secrets and can be fully open-source.
313+
314+
## Also Available: MCP Servers
315+
316+
If you prefer MCP over CLI, Pipeboard offers remote MCP servers for the same platforms:
89317

90-
# Run tests
91-
make test
318+
| Platform | Remote MCP URL |
319+
|---|---|
320+
| Meta Ads | `https://mcp.pipeboard.co/meta-ads-mcp` |
321+
| Google Ads | `https://mcp.pipeboard.co/google-ads-mcp` |
92322

93-
# Install locally
94-
make install
323+
Works with Claude Pro/Max, Cursor, and any MCP client. Set up at [pipeboard.co](https://pipeboard.co).
324+
325+
## Community
326+
327+
- [Discord](https://discord.gg/YzMwQ8zrjr) — join the community
328+
- [Email](mailto:info@pipeboard.co) — support and questions
329+
- [Issues](https://github.com/pipeboard-co/pipeboard-cli/issues) — bug reports and feature requests
330+
331+
## Development
332+
333+
```bash
334+
make build # Build binary to bin/pipeboard
335+
make test # Run tests
336+
make install # Install to $GOPATH/bin
337+
make lint # Run go vet
95338
```
96339

97340
## License

0 commit comments

Comments
 (0)