
Wordpress Setup
- 1.3k installs
- 946 repo stars
- Updated July 2, 2026
- jezweb/claude-skills
wordpress-setup is an agent skill that connects to a WordPress site via WP-CLI over SSH or REST API Application Passwords, verifies access, and saves a reusable site configuration.
About
The wordpress-setup skill walks developers through connecting to a WordPress site using WP-CLI over SSH or the REST API with Application Passwords. It starts by checking local WP-CLI installation and the wp-cli/ssh-command package, then tests remote access with commands like wp --ssh=user@host/path core version or a curl call to /wp-json/wp/v2/posts. Credentials are stored in wp-cli.yml SSH aliases or .dev.vars for REST auth, with guidance to keep secrets out of git. A verification pass confirms site URL, blog name, recent pages, Elementor plugin status, and active theme. The skill outputs wordpress.config.json capturing site URL, access method, SSH alias, WordPress path, and Elementor availability for downstream content skills. Troubleshooting tables cover publickey failures, wrong wp-path, remote PATH issues, HTTPS requirements for Application Passwords, and REST blocks from security plugins. Developers use it when setting up WP-CLI access, creating Application Passwords, or diagnosing WordPress connection and auth problems before editing pages or running content automation.
- Five-step workflow: check WP-CLI, connect via SSH or REST API, store credentials, verify access, save wordpress.config.j
- Supports WP-CLI SSH aliases in wp-cli.yml and REST Application Password auth in .dev.vars.
- Verification checks site URL, pages, Elementor plugin status, and theme before handoff.
- Troubleshooting table for SSH publickey, wrong wp-path, remote PATH, and REST 401/403 issues.
- Produces shared site config for other WordPress and Elementor editing skills.
Wordpress Setup by the numbers
- 1,255 all-time installs (skills.sh)
- +26 installs in the week ending Jul 29, 2026 (Skillselion tracking)
- Ranked #97 of 550 CLI & Terminal skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Jul 31, 2026 (Skillselion catalog sync)
wordpress-setup capabilities & compatibility
- Capabilities
- wp cli installation check · ssh remote wordpress connection · rest api application password auth · site access verification · wordpress.config.json generation · ssh and rest troubleshooting
- Use cases
- orchestration · api development
What wordpress-setup says it does
Connect to a WordPress site and verify working access via WP-CLI or REST API.
npx skills add https://github.com/jezweb/claude-skills --skill wordpress-setupAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.3k |
|---|---|
| repo stars | ★ 946 |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 2, 2026 |
| Repository | jezweb/claude-skills ↗ |
How do I connect Claude Code to a remote WordPress site with working WP-CLI or REST API access and stored credentials?
Connect a WordPress site via WP-CLI over SSH or the REST API, verify access, and save a reusable site config for content workflows.
Who is it for?
Developers managing WordPress sites who need repeatable WP-CLI SSH aliases or REST API auth before automated content edits.
Skip if: Skip when you only need page content drafting without any site connection setup or credential verification.
When should I use this skill?
User wants to connect to a WordPress site, set up WP-CLI access, create an Application Password, or troubleshoot WordPress auth.
What you get
A verified connection with wp-cli.yml or .dev.vars credentials plus wordpress.config.json ready for content management skills.
- wp-cli.yml alias config
- Remote wp command recipes
- JSON or CSV export commands
By the numbers
- Documents 4 common WP-CLI flags: --fields, --format=json, --format=csv, and --posts_per_page
- Shows 3 SSH connection patterns: inline, project wp-cli.yml, and global config aliases
Files
WordPress Setup
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.
Workflow
Step 1: Check WP-CLI
wp --versionIf 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/wpAlso ensure the SSH extension is available (needed for remote sites):
wp package install wp-cli/ssh-commandStep 2: Connect to the Site
Option A: WP-CLI over SSH (preferred)
wp --ssh=user@hostname/path/to/wordpress option get siteurlCommon patterns:
- Rocket.net:
wp --ssh=user@hostname/www/sitename/public option get siteurl - cPanel:
wp --ssh=user@hostname/public_html option get siteurl - Custom: Ask user for SSH user, host, and WordPress path
Test with a simple command first:
wp --ssh=user@host/path core versionOption 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'Step 3: Store Credentials
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 xxxxEnsure .dev.vars is in .gitignore. For cross-project use, store in your preferred secrets manager (environment variable, 1Password CLI, etc.).
Step 4: Verify Full Access
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 statusStep 5: Save Site Config
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"
}---
Critical Patterns
SSH Connection Issues
| 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 |
WP-CLI Aliases
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/publicThen: wp @client1 post list
REST API Gotchas
- Application passwords require HTTPS (won't work on HTTP)
- Some security plugins block REST API — check for 401/403 responses
- Caching plugins may serve stale REST responses — use
?_=${timestamp}cache buster - Custom post types need
show_in_rest: trueto appear in API
---
Reference Files
references/wp-cli-essentials.md— SSH alias patterns, common flags, and troubleshooting
WP-CLI Essentials
SSH Connection Patterns
Inline SSH
wp --ssh=user@host/path/to/wordpress <command>Alias in wp-cli.yml (project-level)
ssh:
mysite:
cmd: ssh -o StrictHostKeyChecking=no %pseudotty% user@hostname %cmd%
url: /path/to/wordpressUsage: wp @mysite <command>
Global Aliases (~/.wp-cli/config.yml)
@client1:
ssh: user@client1.com/www/public
@client2:
ssh: user@client2.rocketcdn.me/www/client2/publicCommon Flags
| Flag | Purpose |
|---|---|
--fields=ID,post_title | Limit output columns |
--format=json | JSON output (pipe to jq) |
--format=csv | CSV output |
--posts_per_page=N | Limit results |
--post_type=page | Filter by post type |
--post_status=publish | Filter by status |
--allow-root | Run as root (hosting that requires it) |
--skip-plugins | Skip plugin loading (faster, useful for debugging) |
--skip-themes | Skip theme loading |
--quiet | Suppress informational messages |
Useful Diagnostic Commands
# Site health
wp @site core version
wp @site option get siteurl
wp @site option get home
# Database
wp @site db size
wp @site db tables
# Plugins
wp @site plugin list --status=active --fields=name,version
wp @site plugin status elementor
# Users
wp @site user list --fields=ID,user_login,user_email,roles
# Cron (useful for scheduled posts)
wp @site cron event listRocket.net SSH Pattern
Rocket.net sites typically use:
wp --ssh=sshuser@hostname.rocketcdn.me/www/sitename/public <command>Or with their MCP server for direct API access without SSH.
Troubleshooting
| Issue | Solution |
|---|---|
wp: command not found on remote | Use full path: /usr/local/bin/wp or install via SSH |
| SSH key not accepted | Check ~/.ssh/config for correct IdentityFile |
Error establishing a database connection | DB credentials may differ — check wp-config.php |
| Timeout on large exports | Use --skip-plugins --skip-themes to reduce memory |
PHP Fatal error: Allowed memory size | Add --exec="ini_set('memory_limit','512M');" |
Related skills
How it compares
Pick wordpress-setup over generic SSH skills when the target is WordPress-specific WP-CLI remote administration, not general server provisioning.
FAQ
What access methods does wordpress-setup support?
WP-CLI over SSH (preferred) or REST API with WordPress Application Passwords when SSH is unavailable.
What config file does it produce?
wordpress.config.json with site URL, access method, SSH alias, WordPress path, and Elementor availability flags.
When should I use wordpress-setup?
Before content management or Elementor editing workflows that require verified WP-CLI or REST API site access.
Is Wordpress Setup safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.