Wahlu — Social media automation, scheduling, publishing, and API for Instagram, TikTok, LinkedIn, Facebook, YouTube

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.

Audits

Pending

Install

openclaw skills install wahlu

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

  1. List brandsnpx @wahlu/cli brand list
  2. Switch to a brandnpx @wahlu/cli brand switch <brand-id>
  3. List integrationsnpx @wahlu/cli integration list (get integration IDs for scheduling)
  4. Create a postnpx @wahlu/cli post create --name "Title" --instagram '{"description":"Caption","post_type":"grid_post"}'
  5. Schedule itnpx @wahlu/cli schedule create <content-item-id> --at 2026-03-15T14:00:00Z --integrations <id>
  6. Upload medianpx @wahlu/cli media upload ./photo.jpg (returns a media ID)
  7. Check publicationsnpx @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

CapabilityCommands
Post to 5 platformspost create with --instagram, --tiktok, --facebook, --youtube, --linkedin
Schedule postsschedule create with --at (ISO 8601) and --integrations
Upload images & videomedia upload <file> — supports PNG, JPG, GIF, WebP, MP4, MOV, WebM
Manage posting queuesqueue list, queue add <queue-id> <content-item-id>
Save content ideasidea create "Name" --description "Details"
Organise with labelslabel create "Campaign" --color "#ff5500"
View publish historypublication list — see status, platform, failure reasons
List connected accountsintegration 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