How to Automate Social Media with OpenClaw
Install the Postproxy skill from ClawHub, configure the API key in ~/.openclaw/.env, and let OpenClaw publish to 11 platforms from chat.
What OpenClaw is
OpenClaw is an open-source (MIT), self-hosted personal AI assistant. It runs on your own hardware and connects to the channels you already use — WhatsApp, Telegram, Slack, Discord, Signal, and more. You extend it with skills: folders containing a SKILL.md file that teaches the agent a capability. ClawHub is the public registry where skills are shared and installed.
The Postproxy skill gives OpenClaw the full Postproxy API: publishing, scheduling, drafts, queues, comments, DMs, and stats across Facebook, Instagram, TikTok, LinkedIn, YouTube, X (Twitter), Threads, Pinterest, Bluesky, Telegram, and Google Business.
Quick reference
| Detail | Value |
|---|---|
| Skill name | postproxy |
| ClawHub listing | clawhub.ai/danbaranov/postproxy |
| Install command | npx clawhub@latest install postproxy |
| Authentication | Bearer token via POSTPROXY_API_KEY |
| API key location | app.postproxy.dev/api_keys |
| Base URL | https://api.postproxy.dev |
Setup
1. Install the skill
npx clawhub@latest install postproxyThis downloads the skill files into ~/.openclaw/skills/postproxy/. If you have the ClawHub-enabled OpenClaw CLI, openclaw skills install postproxy does the same thing. You can read the full SKILL.md on the ClawHub listing before installing — it’s plain instructions and API reference, nothing executable.
2. Configure the API key
Create an API key at app.postproxy.dev/api_keys, then add it to OpenClaw’s environment file:
echo 'POSTPROXY_API_KEY=pp_live_your_key_here' >> ~/.openclaw/.envAll platform authentication (Instagram OAuth, TikTok tokens, LinkedIn pages) lives in your Postproxy account — OpenClaw only ever holds this one key.
3. Restart OpenClaw
Environment changes are picked up on restart:
openclaw restart4. Verify
Ask your assistant on any connected channel:
List my connected Postproxy profiles.
It should reply with the social accounts connected to your Postproxy workspace. If it doesn’t, see Common issues.
Usage
Message your assistant in plain language:
Post “We just shipped scheduled DMs — details in the changelog” to X, LinkedIn, and Threads.
That’s it — Postproxy handles per-platform formatting rules, media processing, rate limits, and retries, and the assistant reports the per-platform results back in chat.
What you can ask for:
| Prompt | What happens |
|---|---|
| ”Schedule this for tomorrow 9am” | Post goes out at 9am, confirmation in chat |
| ”Save it as a draft first” | Draft waits in your dashboard until you say publish |
| ”Add it to the content queue” | Post takes the next free slot in your posting schedule |
| ”Attach this image” | Media you share in chat goes out with the post |
| ”Any new comments on the launch post?” | Comments from every platform, in one reply |
| ”Reply to that review” | Your response lands on the Google Business review |
| ”How did last week’s posts do?” | Post and follower stats summarized in chat |
Platform-specific fields work too — Instagram Reels format, TikTok and YouTube privacy_status, Pinterest boards — the skill knows where each applies.
Get publish results pushed back
Postproxy can send webhooks when a post finishes processing. Point them at an OpenClaw webhook so the assistant tells you the outcome instead of you asking. In ~/.openclaw/openclaw.json:
{ "webhooks": { "postproxy-status": { "path": "/webhooks/postproxy-status", "secret": "your_webhook_secret", "action": "Summarize the Postproxy post status payload and message me the per-platform results" } }}Then register your gateway’s URL for that path as a webhook endpoint in the Postproxy dashboard. When a scheduled post publishes (or a platform fails), OpenClaw messages you the result.
Advanced workflows
Blog-to-social. OpenClaw watches your RSS feed (cron task), summarizes new posts, adapts the copy per platform, and publishes through Postproxy.
Content calendar from chat. A realistic multi-step request:
Read this week’s changelog at example.com/changelog, write three short posts about the highlights, and schedule them Monday, Wednesday, and Friday at 10am on X and LinkedIn. Show me the drafts before scheduling.
The assistant fetches the page, drafts the posts, sends them for approval in chat, then makes three scheduled Postproxy calls. Approval stays in the conversation — no dashboard round-trip.
Draft-first for autonomous instances. The skill posts with the full permissions of your API key. If your OpenClaw instance acts autonomously (cron jobs, heartbeats), prefer “create a draft and send it to me for review” prompts so nothing publishes without a human look. A wrong post is recoverable — “delete that last post” works too.
Common issues
| Issue | Fix |
|---|---|
| Skill doesn’t trigger | Check the files exist in ~/.openclaw/skills/postproxy/; ask explicitly (“use the Postproxy skill to…”) once |
401 Unauthorized | Key missing from ~/.openclaw/.env, copied with whitespace, or OpenClaw wasn’t restarted after the edit |
Profile not found for X | The platform isn’t connected in your Postproxy account, or the assistant used an unrecognised network name |
Missing privacy_status (TikTok/YouTube) | These platforms require it — tell the assistant “public” or “private” |
Post stuck in processing | Long video uploads take time; ask the assistant to check status, or watch the Postproxy dashboard |
| Rate limit errors | Stagger bulk requests — ask OpenClaw to queue posts instead of firing them at once |
OpenClaw skill vs MCP server
Postproxy also ships a remote MCP server. The difference: MCP is a protocol-level integration for MCP-capable clients (Claude Code, Claude.ai, IDEs); the ClawHub skill is plain instructions over the REST API, so it works with whatever model your OpenClaw instance runs. If you use both, they hit the same account and the same API.
For the integration overview, see postproxy.dev/automation/openclaw.