The WordPress CLI for the AI coding agent era.
Respira CLI is a modern WordPress command line interface built for developers working with AI coding agents like Claude Code, Cursor, and Codex. It understands Elementor, Divi, Bricks, WPBakery, Beaver Builder, Oxygen, Breakdance, Brizy, Thrive Architect, Flatsome, Gutenberg, and WooCommerce. It runs on your local machine. It never requires SSH.
Built on a WordPress-native execution cycle. Extensions and callbacks arrive in v0.2.
npm install -g @respira/cli
respira auth login
respira sites listRespira CLI is not a WP-CLI replacement. WP-CLI is excellent for server-side WordPress administration and the two tools are complementary.
| WP-CLI | Respira CLI | |
|---|---|---|
| Runs on | your WordPress server | your local machine |
| Transport | PHP / shell | Respira API over HTTPS |
| Requires SSH | yes | no |
| Understands page builder content | limited | yes, natively |
| Built for | sysadmin tasks | AI coding agent workflows |
| Works on managed hosts (WP Engine, Kinsta) | yes, with shell access | yes, always |
Use WP-CLI for server maintenance. Use Respira CLI for builder-native content work driven by agents.
- Local-first: runs on your Mac, Linux, or Windows workstation. No SSH.
- Builder-native: reads and writes Elementor, Divi, Bricks, and more in their native formats, not as generic WordPress posts.
- Agent-ready: scriptable through
@respira/sdk, JSON-first output, a command surface designed for Claude Code and Cursor. - Safety-first: every destructive operation snapshots first.
--dry-runand--diffon every write.
Respira CLI is built on a six-phase execution cycle. Every command you run moves through the same deterministic runtime:
LoadContext -> PreHooks -> Resolve -> Execute -> PostHooks -> Return
Four things ship in v0.1:
- The execution cycle. Six named phases. Every command runs through all of them. Nothing skips phases. Nothing reorders them. Deterministic by design, traceable with
--verbose. - The hook framework. Five framework-level hook points are live:
before_resolve,filter_plan,before_execute,filter_result,after_execute. In v0.1 no callbacks register here yet. The contracts are frozen. v0.2 adds callback registration and extension manifests on top, without changing anything you see in v0.1. - Tool Chain Functions. Every command is a typed function with a capability class, domain tags, and prerequisite declarations. Read, write, or destructive. Elementor, pages, write. Site connected and licensed. The cycle reads these and routes accordingly.
- Structured tracing.
--verboseon any command emits a JSON trace of the invocation: which phase ran, how long each took, what the tool chain function received and returned. Saved to~/.respira/traces/. Useful when a coding agent needs to understand why something did or did not do what was expected.
Full details at respira.press/cli/docs/architecture and respira.press/cli/docs/hooks.
Manage Elementor sites from the terminal. Read page trees as JSON, target any widget, and edit typography or layout in place.
respira read page mysite.com about
respira write edit-element mysite.com about heading-123 --set=text="welcome"
respira tools list --for=elementorDivi 4 shortcodes and Divi 5 blocks, both handled. Respira CLI parses the tree so you edit attributes, not regex.
respira read page mysite.com home --as=html
respira write edit-element mysite.com home module-42 --set=text_font_size=48pxBricks Builder support with element-level targeting and global-class awareness.
respira read design-system mysite.com
respira find-element mysite.com home --type=headingRead WPBakery shortcodes as structured JSON. Edit rows and columns without touching the raw content.
Respira CLI auto-detects your builder and exposes builder-aware tools. See respira.press/cli for per-builder documentation.
Product catalog, orders, attributes, and store settings, all from the command line.
respira read posts mysite.com --type=product --limit=100
respira write create-post mysite.com --type=product --title="new widget"Native block editor support. Read blocks as JSON, edit attributes, or rewrite entire block trees.
Respira CLI pairs with the Respira MCP server so Claude Code, Cursor, Codex, OpenCode, and GitHub Copilot CLI can all use the same tool surface.
respira init-claude-code # sets up .claude/ in the current directorynpm install -g @respira/cli
# or
pnpm add -g @respira/cli
# or
yarn global add @respira/cliHomebrew and standalone binaries are coming soon.
Requires Node.js 18 or later.
# 1. authenticate
respira auth login
# 2. connect a site
respira sites connect https://mysite.com
# 3. read a page
respira read page mysite.com about
# 4. list the tools available for your builder
respira tools list --for=elementor
# 5. run a script
respira exec scripts/audit.tsrespira auth login
respira auth logout
respira auth status
respira auth whoamirespira sites list
respira sites info <site>
respira sites health <site>
respira sites connect <url>
respira sites disconnect <site>respira read page <site> <page> [--as=builder|html|portable]
respira read pages <site> [--builder=elementor]
respira read posts <site> [--type=product]
respira read media <site> [--type=image]
respira read taxonomy <site> <taxonomy>
respira read structure <site> # works on any public site
respira read design-system <site> # works on any public siterespira write create-page <site> --title="..."
respira write edit-page <site> <page> --set=path=value
respira write edit-element <site> <page> <selector> --set=key=value
respira write create-post <site> --from-markdown=<file>
respira write update-design-system <site> --from=<file>
respira write upload-media <site> <file>
respira write delete-page <site> <page> --confirmSee respira <command> --help.
respira init-claude-codeThis creates .claude/skills/respira-wordpress-cli/SKILL.md and a couple of shortcut commands in .claude/commands/. Claude Code picks up the skill automatically.
Point the Cursor MCP client at the Respira MCP server or call respira directly from the terminal.
Set RESPIRA_API_KEY in your CI environment.
- name: audit production WordPress
env:
RESPIRA_API_KEY: ${{ secrets.RESPIRA_API_KEY }}
run: |
respira read structure https://mysite.com > audit.json- Anonymous (no license):
respira read structureandrespira read design-systemagainst any public WordPress URL,respira tools list,respira docs. - Lite (free): monthly write quota against your own connected sites.
- Maker, Studio, Agency: higher quotas and advanced tools. See respira.press/pricing.
See CONTRIBUTING.md. The Respira community hangs out on Discord and Slack. Join from respira.press/community.
MIT. See LICENSE.
WordPress is a registered trademark of the WordPress Foundation. Respira CLI for WordPress is an independent open-source project and is not affiliated with, endorsed by, or sponsored by WordPress.org, Automattic, or the WordPress Foundation.
Built by Mihai Dragomirescu in Brașov, Romania. respira.press · @mihai_respira · @Respira_press
