Give Your OpenClaw Agent a Social Media Account
Install the Chirpie skill in OpenClaw, or connect the MCP server, so your agent can post to X, Bluesky, LinkedIn, Mastodon and more.
Updated September 2026
How do you give an OpenClaw agent a social media account?
Install the Chirpie skill with openclaw skills install git:Firefloco/chirpie-skills, set CHIRPIE_API_KEY, and your agent can post to eight networks — X, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook, and Telegram. If you would rather give it real tools instead of instructions, connect the Chirpie MCP server with openclaw mcp add — both paths use the same API key and the same connected accounts.
Step 1 — Set up Chirpie
- Sign up at chirpie.ai.
- Connect the accounts you want the agent to use at chirpie.ai/dashboard/accounts.
- Create an API key at chirpie.ai/dashboard/keys. It starts with
chirpie_sk_.
Export the key so OpenClaw can see it:
export CHIRPIE_API_KEY=chirpie_sk_YOUR_KEYStep 2, option A — Install the skill
openclaw skills install git:Firefloco/chirpie-skillsInstall for every agent on the machine instead of just the active workspace:
openclaw skills install git:Firefloco/chirpie-skills --globalPin a branch or tag with @ref:
openclaw skills install git:Firefloco/chirpie-skills@mainThe bundle includes chirpie-openclaw, a skill written for OpenClaw's conventions: it declares requires.env: ["CHIRPIE_API_KEY"], so the agent only loads it when the key is present, and requires.bins: ["curl"], so it fails loudly rather than silently on a container without curl.
Confirm it loaded:
openclaw skills listStep 2, option B — Connect the MCP server
If you prefer tool calls to instructions, register the hosted endpoint:
openclaw mcp add chirpie \
--url https://chirpie.ai/mcp \
--transport streamable-httpOr run the local server over stdio:
openclaw mcp add chirpie \
--command npx \
--arg @chirpie/mcpThen check the connection:
openclaw mcp doctor chirpie --probeThe server exposes chirpie_post, chirpie_thread, chirpie_list_posts, chirpie_get_post, chirpie_delete_post, chirpie_list_accounts, and chirpie_analytics. Narrow that with --include 'chirpie_post,chirpie_thread,chirpie_list_accounts' if you want a publish-only agent.
Step 3 — Post
Ask the agent in plain language:
Post to Bluesky: "The overnight batch finished — 12,400 rows processed, zero failures."
With the skill installed, the agent resolves the account and issues:
curl -X POST https://chirpie.ai/api/v1/posts \
-H "Authorization: Bearer $CHIRPIE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "660f9500-f30c-52e5-b827-557766551111",
"text": "The overnight batch finished — 12,400 rows processed, zero failures."
}'With MCP, it calls chirpie_post with the same arguments. Same result, different plumbing.
What can the agent do?
| Capability | Endpoint |
|---|---|
| List connected accounts | GET /api/v1/accounts |
| Post | POST /api/v1/posts |
| Thread (2–25 posts) | POST /api/v1/threads |
| Schedule | any of the above with schedule_at |
| List / inspect posts | GET /api/v1/posts, GET /api/v1/posts/:id |
| Delete | DELETE /api/v1/posts/:id |
| Analytics | GET /api/v1/analytics/posts/:id |
Live platforms: X, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook, and Telegram.
An autonomous posting agent
The pattern that works: let the agent own the content, not the credentials.
- Give it one long-lived API key via
CHIRPIE_API_KEY. - Have it call
chirpie_list_accountsonce and cache the UUIDs. - Let it schedule rather than publish immediately, so a bad run is cancellable.
- Review the queue with
GET /api/v1/posts?status=scheduledand delete anything you do not want.
# What is queued
curl "https://chirpie.ai/api/v1/posts?status=scheduled&limit=50" \
-H "Authorization: Bearer $CHIRPIE_API_KEY"
# Cancel one
curl -X DELETE https://chirpie.ai/api/v1/posts/POST_ID \
-H "Authorization: Bearer $CHIRPIE_API_KEY"Create a separate API key for each agent. Revoking one key stops that agent without touching anything else you have running.
Guardrails worth setting
- Character limits. X is 280 (25,000 on Premium), Bluesky 300, LinkedIn 3,000, Mastodon 500, Telegram 4,096. The
max_post_lengthfield on each account is authoritative. - Instagram needs media. A text-only Instagram post is rejected.
- Spacing. Scheduled posts on the same account must be five minutes apart.
- Burst limit. 60 requests per minute per API key.
Troubleshooting
The skill does not load. OpenClaw gates it on CHIRPIE_API_KEY being present. Export it in the environment the agent runs in, then openclaw skills list again.
unauthorized from the API. The key is wrong or revoked. Check it at chirpie.ai/dashboard/keys.
MCP server will not connect. Run openclaw mcp doctor chirpie --probe for the specific failure, then openclaw mcp reload.
FAQ
Do I need the skill and the MCP server? No — either works. The skill teaches the agent the REST API; MCP hands it typed tools. Use MCP if your model is better with tools, the skill if you want it to work through plain HTTP.
Where do skills install to?
The active workspace skills/ directory by default, or OpenClaw's shared managed skills directory with --global.
Can I limit an agent to one network? Give it an API key on an account that only has that network connected, or tell it in the prompt. Chirpie keys are scoped to your account, not to individual social accounts.
Can the agent read replies or mentions? No. Chirpie is a publishing and analytics layer, not an inbox.
How do I update the skill?
Re-run the install command. openclaw skills update refreshes ClawHub-tracked installs only, so a Git-sourced skill is updated by installing it again.
Is this free to try? Yes — the Free plan covers 50 posts a month and one connected account.
Next steps
Post to Social Media from n8n
Use the n8n HTTP Request node to publish to X, Bluesky, LinkedIn, and more through the Chirpie API — with an importable workflow.
Cross-Post One Update to 8 Networks from Cursor
Configure the Chirpie MCP server in Cursor and fan a single announcement out to X, Bluesky, LinkedIn, Threads, Mastodon, Instagram, Facebook, and Telegram.