Post videos, photos, text, and documents to 10 social platforms through a single REST API call.
Documents
TinkerClaw WordPress
Try itThree env vars. One script. Your agent manages your WordPress site — and cannot quietly change it. Reads are free and new posts land as drafts; anything visitors would see (publishing, editing or trashing live content, uploading media, moderating comments) needs WP_ALLOW_PUBLISH=1 on that call, and plugins, themes, users, settings and any route the script does not know need WP_ALLOW_ADMIN=1. WP_URL is parsed strictly and credentials go only to that HTTPS host (pin it with WP_ALLOWED_HOSTS). Plugin install is code execution on your site and is named as such. Built for the TinkerClaw fork — github.com/globalcaos/tinkerclaw. See Permissions, Data Flow & Consent.
What it does
Manage WordPress sites through the REST API with draft-only safety.
The skill document
WordPress Ultimate
Manage WordPress sites through the REST API with draft-only safety.
Setup
Requires three environment variables (stored in .env, never committed):
WP_URL=https://example.com
WP_USER=user@example.com
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
Core Script
All operations go through scripts/wp.sh. It wraps curl with auth and JSON handling.
# Usage: scripts/wp.sh [json_body]
# Examples:
scripts/wp.sh GET "posts?per_page=5&status=draft,publish"
scripts/wp.sh POST "posts" '{"title":"My Post","content":"Hello","status":"draft"}'
scripts/wp.sh PUT "posts/42" '{"title":"Updated Title"}'
Safety Rules
- DRAFT-ONLY by default —
scripts/wp.sh POST postsforcesstatus: draftunless the JSON body explicitly contains"status":"publish"AND the caller confirms intent. - Never delete — use
scripts/wp.sh PUT posts/ID '{"status":"trash"}'instead of DELETE. - Credentials — read from
.envat runtime, never hardcoded in commands.
Common Workflows
Create a Blog Post (Draft)
scripts/wp.sh POST posts '{
"title": "My Article Title",
"content": "Article body in HTML.",
"status": "draft",
"categories": [3],
"tags": [5, 8]
}'
Create a Page (Draft)
scripts/wp.sh POST pages '{
"title": "About",
"content": "About page content.",
"status": "draft"
}'
List Posts
scripts/wp.sh GET "posts?per_page=20&status=draft,publish&orderby=date&order=desc"
Create a Category
scripts/wp.sh POST categories '{"name": "AI & Agents", "slug": "ai-agents", "description": "Posts about AI agent development"}'
Create a Tag
scripts/wp.sh POST tags '{"name": "OpenClaw", "slug": "openclaw"}'
Upload Media
Use scripts/wp-upload.sh for media uploads:
scripts/wp-upload.sh /path/to/image.png "Alt text description"
Returns the media ID for use in posts (featured_media field).
Install a Plugin
scripts/wp.sh POST plugins '{"slug": "plugin-slug", "status": "active"}'
List Plugins
scripts/wp.sh GET plugins
Update Yoast SEO Metadata
When Yoast is installed, posts accept yoast_head_json fields. Set SEO via post meta:
scripts/wp.sh PUT "posts/42" '{
"meta": {
"_yoast_wpseo_title": "SEO Title Here",
"_yoast_wpseo_metadesc": "Meta description for search engines."
}
}'
Manage Categories and Tags
# List categories
scripts/wp.sh GET categories
# List tags
scripts/wp.sh GET tags
# Assign post to categories (by ID)
scripts/wp.sh PUT "posts/42" '{"categories": [3, 7]}'
Content Formatting
WordPress REST API accepts HTML in content field. For rich posts:
- Use
,for headings (not H1 — the title IS H1) - Use `` for paragraphs
- Use
<!-- wp:heading -->blocks for Gutenberg compatibility - Images: upload first via
wp-upload.sh, then reference with `` or<!-- wp:image -->
Gutenberg Block Format
For full Gutenberg compatibility, wrap content in block comments:
<!-- wp:paragraph -->
Text here.
<!-- /wp:paragraph -->
<!-- wp:heading {"level":2} -->
Section Title
<!-- /wp:heading -->
<!-- wp:image {"id":123} -->
<!-- /wp:image -->
Error Handling
- 401: Check WP_USER and WP_APP_PASSWORD
- 403: Application password may lack required capabilities
- 404: Check WP_URL and endpoint path
- rest_cannot_create: May need to enable REST API or check user role
Reference
For full WP REST API endpoint details, see references/wp-api-reference.md.
For SEO optimization patterns, see references/seo-patterns.md.
Pairs Well With
- coding-agent — generate content with sub-agents, publish it with wordpress-ultimate
- outlook-hack — same browser-relay philosophy applied to Microsoft; this one covers your blog
👉 https://github.com/globalcaos/tinkerclaw
Clone it. Fork it. Break it. Make it yours.
Credits
Created by Oscar Serra with the help of Claude (Anthropic).
Built after the third time of hand-copying blog posts from a terminal. Never again.
Related skills
Query Twitter/X profiles, tweets, follower events, and KOL data through the 6551 REST API.
Adaptive web scraping in Python that bypasses anti-bot systems and scales from single requests to concurrent crawls.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Query and manage Linear issues, projects, teams, cycles, labels, and comments through a managed OAuth GraphQL endpoint.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
More from globalcaos
Browse all skillsGive your OpenClaw agent a JARVIS-style British voice with matching dry humor, audio plus a purple chat bubble in one call.
Native WhatsApp channel for OpenClaw with 22 messaging/group actions plus Protocol v2 multi-agent coordination.
One dashboard tracking Anthropic, Gemini, OpenAI, and Manus token usage with budget alerts and a local REST API.
Stop sending 'format this JSON' to Opus. Stop sending 'cron job' to GPT. Billing-aware routing guide for choosing among the models already configured in your OpenClaw setup when assigning an agent, sub-agent or cron task — flat-rate first, metered only when justified, budget pressure respected. Not for picking models outside your configuration, and not a runtime proxy.
Your agent says 'done' — but did it check? Superpowers turns any OpenClaw agent into a disciplined engineer. Verification iron law (evidence before claims), three-agent code review (build → verify spec → verify quality), systematic debugging (4-phase root cause, three-strike rule), brainstorming gates (design before code), and anti-over-engineering rules. Use when: (1) coding tasks of any complexity, (2) debugging failures, (3) about to claim work is complete, (4) spawning sub-agents, (5) planning features, (6) reviewing code. Inspired by top coding agent methodologies, adapted for OpenClaw multi-agent architecture.
Read and search Outlook, inspect attachments, and create or edit drafts without any send endpoint. Uses one short-lived Microsoft Graph access token supplied on stdin for one run; it never stores credentials. Bulk mailbox export is opt-in.