---
name: pinch-to-post
description: WordPress automation for Clawdbot. Manage posts, pages, WooCommerce products, orders, inventory, comments, SEO (Yoast/RankMath), media via REST API or WP-CLI. Multi-site support, bulk operations, content health checks, markdown to Gutenberg, social cross-posting. 50+ featuresβjust ask.
metadata: {"clawdbot":{"emoji":"π¦","skillKey":"pinch-to-post","primaryEnv":"WP_APP_PASSWORD","requires":{"anyBins":["curl","wp"]}}}
user-invocable: true
---
# π¦ Pinch to Post `v3.1.0`
**Your WordPress site just got claws.**
The only WordPress skill you'll ever need. 50+ features. Zero admin panels. Just tell me what you want.
> **Keywords:** WordPress, WooCommerce, REST API, WP-CLI, blog automation, content management, ecommerce, posts, pages, media, comments, SEO, Yoast, RankMath, inventory, orders, coupons, bulk operations, multi-site, Gutenberg, publishing
## β‘ Watch This
```
You: "Create a post about sustainable coffee farming"
Bot: Done. Draft #1247 created. Want me to add a featured image?
You: "Publish all my drafts from this week"
Bot: Published 8 posts. Here are the links...
You: "Approve the good comments, spam the bots"
Bot: Approved 12, marked 47 as spam. Your comment section is clean.
```
No clicking. No admin panels. No friction.
## π Why Pinch to Post?
| Task | Manual (WP Admin) | With Pinch to Post |
|------|-------------------|-------------------|
| Create 10 posts | 15-20 minutes | 30 seconds |
| Update inventory on 50 products | 45 minutes | 1 minute |
| Moderate 100 comments | 20 minutes | 10 seconds |
| Check content health on 5 posts | 30 minutes | 15 seconds |
| Export all posts to markdown | Hours | 5 seconds |
**Time saved per week:** 2-4 hours. **Sanity saved:** Immeasurable.
## π What's New in v3.0
- **Markdown to Gutenberg** β Write markdown, publish as blocks
- **Content Health Scores** β Know if your post is ready before you publish
- **Social Cross-Posting** β Twitter, LinkedIn, Mastodon in one command
- **Content Calendar** β See your whole publishing schedule
- **Bulk Operations** β Mass publish, delete, approve
- **Multi-Site Management** β Control all your sites from one place
## π¬ What People Are Saying
> *"I used to spend my Sunday mornings moderating comments. Now I just say 'clean up the comments' and go make pancakes."*
> *"We manage 12 WordPress sites. This turned a full-time job into a 10-minute daily check-in."*
> *"I didn't know I needed this until I had it. Now I can't go back."*
## π Performance
Tested and optimized for:
- Sites with **50,000+ posts**
- WooCommerce stores with **10,000+ products**
- Media libraries with **100,000+ files**
Rate limiting built-in. Won't hammer your server.
## Quick Setup (60 Seconds)
### Step 1: Get Your Password
WordPress Admin β Users β Profile β Application Passwords β Add New β Copy it
### Step 2: Configure Me
```json
{
"skills": {
"entries": {
"pinch-to-post": {
"enabled": true,
"env": {
"WP_SITE_URL": "https://your-site.com",
"WP_USERNAME": "admin",
"WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
}
}
}
}
}
```
### Step 3: There Is No Step 3
You're done. Go publish something.
## Running Multiple Sites? You Overachiever.
```json
{
"env": {
"WP_DEFAULT_SITE": "blog",
"WP_SITE_BLOG_URL": "https://blog.example.com",
"WP_SITE_BLOG_USER": "admin",
"WP_SITE_BLOG_PASS": "xxxx xxxx xxxx",
"WP_SITE_SHOP_URL": "https://shop.example.com",
"WP_SITE_SHOP_USER": "admin",
"WP_SITE_SHOP_PASS": "yyyy yyyy yyyy",
"WP_SITE_DOCS_URL": "https://docs.example.com",
"WP_SITE_DOCS_USER": "editor",
"WP_SITE_DOCS_PASS": "zzzz zzzz zzzz"
}
}
```
Now say "list posts on the shop site" and feel like a wizard.
## Got WooCommerce? Even Better.
```json
{
"env": {
"WC_CONSUMER_KEY": "ck_xxxxxxxxxxxxxxxx",
"WC_CONSUMER_SECRET": "cs_xxxxxxxxxxxxxxxx"
}
}
```
Products, orders, inventory, coupons, sales reports. All yours.
## Want Social Cross-Posting? (Fancy!)
```json
{
"env": {
"TWITTER_API_KEY": "...",
"TWITTER_API_SECRET": "...",
"TWITTER_ACCESS_TOKEN": "...",
"TWITTER_ACCESS_SECRET": "...",
"LINKEDIN_ACCESS_TOKEN": "...",
"MASTODON_INSTANCE": "https://mastodon.social",
"MASTODON_ACCESS_TOKEN": "..."
}
}
```
One post. Three platforms. Zero extra work.
# The Feature Feast π½οΈ
Everything below is what I can do. It's a lot. Grab a snack.
## Posts & Pages
The bread and butter. The peanut butter and jelly. The... you get it.
### Create a Post
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/posts" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{
"title": "Post Title",
"content": "<!-- wp:paragraph --><p>Your brilliant words here</p><!-- /wp:paragraph -->",
"excerpt": "Brief summary for SEO nerds",
"status": "draft",
"categories": [1, 5],
"tags": [10, 15],
"featured_media": 123
}'
```
### Update a Post
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/posts/{id}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"title": "Even Better Title", "status": "publish"}'
```
### Delete a Post (Goodbye, Old Friend)
```bash
# Soft delete (trash)
curl -X DELETE "${WP_SITE_URL}/wp-json/wp/v2/posts/{id}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
# Hard delete (gone forever)
curl -X DELETE "${WP_SITE_URL}/wp-json/wp/v2/posts/{id}?force=true" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
```
### Find Your Posts
```bash
# Recent stuff
curl -s "${WP_SITE_URL}/wp-json/wp/v2/posts?per_page=20&status=any" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
# Search (where did I put that post about llamas?)
curl -s "${WP_SITE_URL}/wp-json/wp/v2/posts?search=llamas" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
# By category
curl -s "${WP_SITE_URL}/wp-json/wp/v2/posts?categories=5" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
# By date (time travelers welcome)
curl -s "${WP_SITE_URL}/wp-json/wp/v2/posts?after=2026-01-01T00:00:00&before=2026-01-31T23:59:59" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
```
### Schedule a Post (Future You Will Thank You)
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/posts" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{
"title": "This Post Is From The Future",
"content": "Scheduled content, so fancy",
"status": "future",
"date": "2026-02-15T10:00:00"
}'
```
### Pages Too!
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/pages" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{
"title": "About Us (We're Pretty Great)",
"content": "Page content here",
"status": "publish",
"template": "templates/full-width.php"
}'
```
## Media Management
Pictures! Videos! PDFs! All the things!
### Upload an Image
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/media" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Disposition: attachment; filename=masterpiece.jpg" \
-H "Content-Type: image/jpeg" \
--data-binary @/path/to/masterpiece.jpg
```
### Add Alt Text (Because Accessibility Matters)
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/media/${MEDIA_ID}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{
"title": "Hero Image",
"alt_text": "A majestic llama wearing sunglasses",
"caption": "Living its best life"
}'
```
### Set Featured Image
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/posts/{post_id}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"featured_media": 456}'
```
## Categories & Tags
Organize your chaos.
### List Categories
```bash
curl -s "${WP_SITE_URL}/wp-json/wp/v2/categories?per_page=100&hide_empty=false" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
```
### Create a Category
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/categories" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"name": "Hot Takes", "slug": "hot-takes", "description": "Opinions nobody asked for"}'
```
### Tags Work the Same Way
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/tags" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"name": "must-read", "slug": "must-read"}'
```
## Comments
The good, the bad, and the spammy.
### See Pending Comments
```bash
curl -s "${WP_SITE_URL}/wp-json/wp/v2/comments?status=hold" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}"
```
### Approve a Comment
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/comments/{id}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"status": "approved"}'
```
### Mark as Spam (Begone, Bot!)
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/comments/{id}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"status": "spam"}'
```
### Reply to a Comment (Be Nice)
```bash
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/comments" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{
"post": {post_id},
"parent": {comment_id},
"content": "Thanks for reading! You rock."
}'
```
### Bulk Approve Everything (YOLO Mode)
```bash
for id in $(curl -s "${WP_SITE_URL}/wp-json/wp/v2/comments?status=hold&per_page=100" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" | jq -r '.[].id'); do
curl -X POST "${WP_SITE_URL}/wp-json/wp/v2/comments/${id}" \
-u "${WP_USERNAME}:${WP_APP_PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"status": "approved"}'
done
```
## WooCommerce π
Ka-ching! Let's make some money.
### Products
```bash
# List 'em
curl -s "${WP_SITE_URL}/wp-json/wc/v3/products?per_page=20" \
-u "${WC_CONSUMER_KEY}:${WC_CONSUMER_SECRET}"
# Create one
curl -X POST "${W
... (truncated)AI advertising agents that automates ad campaigns across Google Ads, Meta Ads, LinkedIn Ads, and TikTok Ads. Creates campaigns, reads live performance data, researches keywords with real CPC data, optimizes budgets, and manages ads through natural language via the Adspirer MCP server. 103 tools across 4 ad platforms.
Self-orchestrating multi-agent development workflows.
Complete guide for creating and deploying browser automation functions
Comprehensive guide for building AI workflows, agents