cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Connect to a WordPress site via WP-CLI over SSH or the REST API. Check CLI, test SSH, set up auth, verify access, save config. Use whenever the user wants to connect to a WordPress site, set up WP-CLI access, create an Application Password, or troubleshoot WordPress connection /
$ npx -y skills add jezweb/claude-skills --skill wordpress-setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/wordpress-setupContext preview
The summary Claude sees to decide when to auto-load this skill.
Connect to a WordPress site via WP-CLI over SSH or the REST API. Check CLI, test SSH, set up auth, verify access, save config. Use whenever the user wants to connect to a WordPress site, set up WP-CLI access, create an Application Password, or troubleshoot WordPress connection /
name: wordpress-setup description: "Connect to a WordPress site via WP-CLI over SSH or the REST API. Check CLI, test SSH, set up auth, verify access, save config. Use whenever the user wants to connect to a WordPress site, set up WP-CLI access, create an Application Password, or troubleshoot WordPress connection / auth issues." compatibility: claude-code-only
Connect to a WordPress site and verify working access via WP-CLI or REST API. Produces a verified connection config ready for content management and Elementor editing.
wp --version
If not installed, guide the user:
# macOS/Linux curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp
Also ensure the SSH extension is available (needed for remote sites):
wp package install wp-cli/ssh-command
**Option A: WP-CLI over SSH (preferred)**
wp --ssh=user@hostname/path/to/wordpress option get siteurl
Common patterns:
Test with a simple command first:
wp --ssh=user@host/path core version
**Option B: REST API with Application Password**
If SSH isn't available:
1. Navigate to `https://example.com/wp-admin/profile.php` (or use browser automation) 2. Scroll to "Application Passwords" section 3. Enter a name (e.g. "Claude Code") and click "Add New Application Password" 4. Copy the generated password (spaces are part of it but optional in auth)
Test the connection:
curl -s https://example.com/wp-json/wp/v2/posts?per_page=1 \ -u "username:xxxx xxxx xxxx xxxx xxxx xxxx" | jq '.[0].title'
**For WP-CLI SSH** — create a `wp-cli.yml` in the project root:
ssh:
sitename:
cmd: ssh -o StrictHostKeyChecking=no %pseudotty% user@hostname %cmd%
url: /path/to/wordpressThen use: `wp @sitename option get siteurl`
**For REST API** — store in `.dev.vars`:
WP_SITE_URL=https://example.com WP_USERNAME=admin WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
Ensure `.dev.vars` is in `.gitignore`. For cross-project use, store in your preferred secrets manager (environment variable, 1Password CLI, etc.).
Run a comprehensive check:
# Site info wp @sitename option get siteurl wp @sitename option get blogname # Content access wp @sitename post list --post_type=page --posts_per_page=5 --fields=ID,post_title,post_status # Plugin status (check for Elementor) wp @sitename plugin status elementor # Theme info wp @sitename theme status
Create `wordpress.config.json` for other skills to reference:
{
"site": "example.com",
"siteUrl": "https://example.com",
"accessMethod": "ssh",
"sshAlias": "sitename",
"wpPath": "/path/to/wordpress",
"hasElementor": true,
"elementorVersion": "3.x.x"
}---
| Symptom | Fix | |---------|-----| | `Permission denied (publickey)` | Check SSH key: `ssh -v user@host` | | `wp: command not found` via SSH | WP-CLI not in remote PATH — use full path: `/usr/local/bin/wp` | | `Error: This does not appear to be a WordPress installation` | Wrong path — check `wp-path` argument | | Timeout on large operations | Add `--ssh=user@host/path --allow-root` or increase SSH timeout |
Define aliases in `~/.wp-cli/config.yml` for frequently-accessed sites:
@client1: ssh: user@client1.example.com/www/public @client2: ssh: user@client2.rocketcdn.me/www/client2/public
Then: `wp @client1 post list`
---
Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.
Repo: jezweb/claude-skills
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure, configure bindings, deploy. Use…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration commands, type exports, and…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck migrations, handle partial failures. Use…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key ordering, produces idempotent…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error handling, and API_ENDPOINTS.md…