Skip to content

Commit 6f634c6

Browse files
authored
docs: rewrite README with complete command reference (#13)
* 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. * docs: focus intro on convenience over internals
1 parent 13a5de7 commit 6f634c6

1 file changed

Lines changed: 272 additions & 31 deletions

File tree

‎README.md‎

Lines changed: 272 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
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. No need to register apps with each ad platform, run your own MCP servers, or maintain brittle API scripts — authenticate once with [Pipeboard](https://pipeboard.co) and go.
6+
7+
## Why use the CLI
8+
9+
- **All platforms, one binary** — Meta Ads and Google Ads without configuring separate MCP servers
10+
- **More tools than local MCP** — 117 commands covering campaigns, creatives, audiences, reporting, and more
11+
- **Fast for agents** — sub-50ms cold start. Agents shell out to `pipeboard` instead of implementing MCP JSON-RPC
12+
- **Scriptable** — pipe JSON output into `jq`, chain commands in bash, run from CI
613

714
## Installation
815

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

2128
### Binary download
2229

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

2532
## Authentication
2633

@@ -36,7 +43,7 @@ Or store it in the config file:
3643
pipeboard config set token <your-token>
3744
```
3845

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

4148
### Browser OAuth (interactive)
4249

@@ -46,52 +53,286 @@ pipeboard login
4653

4754
## Quick Start
4855

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-
6156
```bash
6257
# List Google Ads campaigns
6358
pipeboard google-ads get-campaigns --customer-id 1234567890
6459

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-
6860
# Get Meta Ads campaign insights
6961
pipeboard meta-ads get-insights --object-id act_123 --date-preset last_30d
7062

7163
# Create a Meta Ads campaign
7264
pipeboard meta-ads create-campaign --account-id act_123 --name "Spring Sale" --objective OUTCOME_SALES
7365

74-
# See all available commands for a platform
66+
# See all available commands
7567
pipeboard google-ads --help
7668
pipeboard meta-ads --help
77-
78-
# Check version
79-
pipeboard version
8069
```
8170

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

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

86-
```bash
87-
# Build
88-
make build
297+
```
298+
pipeboard <platform> <command> [flags]
299+
│
300+
▼
301+
MCP JSON-RPC client (HTTP POST)
302+
│
303+
▼
304+
https://mcp.pipeboard.co/<server>
305+
│
306+
▼
307+
Meta / Google APIs
308+
```
309+
310+
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.
311+
312+
## Also Available: MCP Servers
313+
314+
If you prefer MCP over CLI, Pipeboard offers remote MCP servers for the same platforms:
89315

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

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

97338
## License

0 commit comments

Comments
 (0)