Wahlu — Social Media Manager for AI Agents
Wahlu lets your agent create, schedule, and publish social media posts across Instagram, TikTok, LinkedIn, Facebook, and YouTube — all from the command line.
Setup
# Set your API key (get one at wahlu.com under Settings > API Keys)
export WAHLU_API_KEY=wahlu_live_...
No global install needed — use npx @wahlu/cli to run any command.
Core Workflow
- List brands —
npx @wahlu/cli brand list
- Switch to a brand —
npx @wahlu/cli brand switch <brand-id>
- List integrations —
npx @wahlu/cli integration list (get integration IDs for scheduling)
- Create a post —
npx @wahlu/cli post create --name "Title" --instagram '{"description":"Caption","post_type":"grid_post"}'
- Schedule it —
npx @wahlu/cli schedule create <content-item-id> --at 2026-03-15T14:00:00Z --integrations <id>
- Upload media —
npx @wahlu/cli media upload ./photo.jpg (returns a media ID)
- Check publications —
npx @wahlu/cli publication list
Use npx @wahlu/cli --help and npx @wahlu/cli <command> --help to discover all commands and options. Always use --json when you need to parse output.
What You Can Do
| Capability |
Commands |
| Post to 5 platforms |
post create with --instagram, --tiktok, --facebook, --youtube, --linkedin |
| Schedule posts |
schedule create with --at (ISO 8601) and --integrations |
| Upload images & video |
media upload <file> — supports PNG, JPG, GIF, WebP, MP4, MOV, WebM |
| Manage posting queues |
queue list, queue add <queue-id> <content-item-id> |
| Save content ideas |
idea create "Name" --description "Details" |
| Organise with labels |
label create "Campaign" --color "#ff5500" |
| View publish history |
publication list — see status, platform, failure reasons |
| List connected accounts |
integration list — find integration IDs for scheduling |
Platform-Specific Settings
Each platform has its own settings passed as JSON:
- Instagram —
--instagram '{"description":"...","post_type":"grid_post|reel|story","media_ids":["mid-123"]}'
- TikTok —
--tiktok '{"description":"...","post_type":"video|image|carousel","media_ids":["mid-123"]}'
- Facebook —
--facebook '{"description":"...","post_type":"fb_post|fb_story|fb_reel|fb_text","media_ids":["mid-123"]}'
- YouTube —
--youtube '{"title":"...","description":"...","post_type":"yt_short|yt_video","media_ids":["mid-123"]}'
- LinkedIn —
--linkedin '{"description":"...","post_type":"li_text|li_image|li_video","media_ids":["mid-123"]}'
Quick Examples
# Upload an image and create a cross-platform post
npx @wahlu/cli media upload ./photo.jpg
# → media ID: mid-abc123
npx @wahlu/cli post create --name "New product launch" \
--instagram '{"description":"Just launched!","post_type":"grid_post","media_ids":["mid-abc123"]}' \
--tiktok '{"description":"Just launched!","post_type":"image","media_ids":["mid-abc123"]}' \
--linkedin '{"description":"Just launched!","post_type":"li_image","media_ids":["mid-abc123"]}'
# Schedule for tomorrow at 9am
npx @wahlu/cli schedule create <content-item-id> \
--at 2026-03-15T09:00:00Z \
--integrations int-123 int-456 int-789
Rules
- Always confirm with the user before publishing or scheduling
- Use
npx @wahlu/cli integration list to find integration IDs — never guess them
- Use ISO 8601 format for all dates
- Use
--json flag when you need to parse command output programmatically
1---2name: wahlu3description: Social media automation for AI agents. Create posts, schedule content, upload media, manage queues, track publications, organise ideas, and publish across Instagram, TikTok, LinkedIn, Facebook, and YouTube. AI-powered social media manager with full API access.4---5
6# Wahlu — Social Media Manager for AI Agents
7
8Wahlu lets your agent create, schedule, and publish social media posts across **Instagram, TikTok, LinkedIn, Facebook, and YouTube** — all from the command line.
9
10- **Website:** [wahlu.com](https://wahlu.com)
11- **CLI on npm:** [@wahlu/cli](https://www.npmjs.com/package/@wahlu/cli)
12- **API docs:** [wahlu.com/docs](https://wahlu.com/docs)
13- **OpenClaw integration page:** [wahlu.com/openclaw](https://wahlu.com/openclaw)
14
15---
16
17## Setup
18
19```bash
20# Set your API key (get one at wahlu.com under Settings > API Keys)
21export WAHLU_API_KEY=wahlu_live_...
22```
23
24No global install needed — use `npx @wahlu/cli` to run any command.
25
26---
27
28## Core Workflow
29
301. **List brands** — `npx @wahlu/cli brand list`
312. **Switch to a brand** — `npx @wahlu/cli brand switch <brand-id>`
323. **List integrations** — `npx @wahlu/cli integration list` (get integration IDs for scheduling)
334. **Create a post** — `npx @wahlu/cli post create --name "Title" --instagram '{"description":"Caption","post_type":"grid_post"}'`
345. **Schedule it** — `npx @wahlu/cli schedule create <content-item-id> --at 2026-03-15T14:00:00Z --integrations <id>`
356. **Upload media** — `npx @wahlu/cli media upload ./photo.jpg` (returns a media ID)
367. **Check publications** — `npx @wahlu/cli publication list`
37
38Use `npx @wahlu/cli --help` and `npx @wahlu/cli <command> --help` to discover all commands and options. Always use `--json` when you need to parse output.
39
40---
41
42## What You Can Do
43
44| Capability | Commands |
45|---|---|
46| **Post to 5 platforms** | `post create` with `--instagram`, `--tiktok`, `--facebook`, `--youtube`, `--linkedin` |
47| **Schedule posts** | `schedule create` with `--at` (ISO 8601) and `--integrations` |
48| **Upload images & video** | `media upload <file>` — supports PNG, JPG, GIF, WebP, MP4, MOV, WebM |
49| **Manage posting queues** | `queue list`, `queue add <queue-id> <content-item-id>` |
50| **Save content ideas** | `idea create "Name" --description "Details"` |
51| **Organise with labels** | `label create "Campaign" --color "#ff5500"` |
52| **View publish history** | `publication list` — see status, platform, failure reasons |
53| **List connected accounts** | `integration list` — find integration IDs for scheduling |
54
55---
56
57## Platform-Specific Settings
58
59Each platform has its own settings passed as JSON:
60
61- **Instagram** — `--instagram '{"description":"...","post_type":"grid_post|reel|story","media_ids":["mid-123"]}'`
62- **TikTok** — `--tiktok '{"description":"...","post_type":"video|image|carousel","media_ids":["mid-123"]}'`
63- **Facebook** — `--facebook '{"description":"...","post_type":"fb_post|fb_story|fb_reel|fb_text","media_ids":["mid-123"]}'`
64- **YouTube** — `--youtube '{"title":"...","description":"...","post_type":"yt_short|yt_video","media_ids":["mid-123"]}'`
65- **LinkedIn** — `--linkedin '{"description":"...","post_type":"li_text|li_image|li_video","media_ids":["mid-123"]}'`
66
67---
68
69## Quick Examples
70
71```bash
72# Upload an image and create a cross-platform post
73npx @wahlu/cli media upload ./photo.jpg
74# → media ID: mid-abc123
75
76npx @wahlu/cli post create --name "New product launch" \
77 --instagram '{"description":"Just launched!","post_type":"grid_post","media_ids":["mid-abc123"]}' \
78 --tiktok '{"description":"Just launched!","post_type":"image","media_ids":["mid-abc123"]}' \
79 --linkedin '{"description":"Just launched!","post_type":"li_image","media_ids":["mid-abc123"]}'
80
81# Schedule for tomorrow at 9am
82npx @wahlu/cli schedule create <content-item-id> \
83 --at 2026-03-15T09:00:00Z \
84 --integrations int-123 int-456 int-789
85```
86
87---
88
89## Rules
90
91- Always confirm with the user before publishing or scheduling
92- Use `npx @wahlu/cli integration list` to find integration IDs — never guess them
93- Use ISO 8601 format for all dates
94- Use `--json` flag when you need to parse command output programmatically