The WordPress CLI
for the AI coding agent era
Builder-native. No SSH. Works on every managed host.
Built on a WordPress-native execution cycle. Extensions and callbacks arrive in v0.2.
Respira CLI is a modern command line interface built for developers working with Claude Code, Cursor, and AI coding agents. It reads and writes Elementor, Divi, Bricks, WooCommerce, and nine more builders in their native formats. Every write is snapshot-backed. Not a WP-CLI replacement, by design.
$ respira auth login opening browser. waiting for callback... authenticated as mihai@respira.press $ respira sites list id name builder status s_1a2b mainblog elementor connected s_9f3c shop woocommerce connected s_4d7e clientsite divi connected $ respira read design-system example.com { "detectedBuilder": "elementor", "colors": [ { name: "primary", value: "#3d9a8b" }, ... ], "fonts": [ { role: "body", family: "Inter" }, ... ] } $ respira find-element example.com home --type=heading --text="welcome" id type text path hd-42 heading Welcome home section[0].column[0].widget[0]
Architecture
A framework, not a command wrapper
Respira CLI is built on a six-phase execution cycle. Every command you run moves through the same deterministic runtime: load context, pre-hooks, resolve, execute, post-hooks, return. You see the output. Underneath, there is a framework.
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
--verbose on 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.
The part most users care about: none of this changes how you use the CLI. Same commands. Same flags. Same output. The architecture is there because v0.2 is going to need it, and retrofitting it later would break everyone who had adopted v0.1. Landing it now, while no one is subscribed to the framework hooks, costs nothing downstream.
How it compares
Respira CLI complements WP-CLI
WP-CLI is excellent for server-side WordPress administration. Built by the WordPress community over a decade. Respira CLI is a different category: it runs locally, understands page builder content natively, and is designed for AI coding agent workflows. Use WP-CLI for server maintenance. Use Respira CLI for builder-native content work driven by agents.
Twelve builders, one CLI
The WordPress CLI that understands your page builder
Every major builder, plus WooCommerce. Same command surface. Same safety workflow.
Elementor CLI
Read and edit Elementor trees, widgets, typography, templates, dynamic tags.
respira read page site about Divi CLI
Divi 4 shortcodes and Divi 5 blocks, both parsed into structured JSON.
respira read page site home --as=html Bricks CLI
Element tree with global-class awareness and ACSS integration.
respira find-element site home --type=heading WPBakery CLI
WPBakery shortcodes, rows, columns, edited as structured data.
respira read page site contact --as=builder Beaver Builder CLI
Modules, rows, templates with node-id preservation.
respira read pages site --builder=beaver Oxygen CLI
Oxygen element tree, style sets, selector resolution.
respira read design-system site Breakdance CLI
Breakdance modules and global settings from the terminal.
respira read page site landing Brizy CLI
Brizy blocks and global styles, addressable by id.
respira find-element site about --css=".hero-title" Thrive Architect CLI
Thrive Architect elements and conversion blocks.
respira read page site landing Flatsome CLI
Flatsome UX Builder elements and shortcodes.
respira read pages site --builder=flatsome Gutenberg CLI
Native WordPress blocks with attribute-level editing.
respira read page site home WooCommerce CLI
Product catalog, variations, attributes, orders, store settings.
respira read posts site --type=product --limit=100 Builder
Elementor CLI
Respira CLI ships with the deepest Elementor support of any command line tool. The element tree is parsed as JSON, ids are preserved across edits, and the distinction between the global kit and inline widget settings is honored. Typography, spacing, dynamic tags, responsive breakpoints are all addressable.
Elementor Pro features are in scope: theme builder templates, popups, dynamic tags, form actions. Safety is built in: every write snapshots first, and --dry-run previews without committing.
Builder
Divi CLI
Divi 4 shortcodes and Divi 5 blocks are both handled. The CLI auto-detects which version a site runs. Editing Divi from a terminal used to mean wrestling with raw shortcode strings. Respira parses them into structured JSON so you target attributes, not regexes.
For Divi 5, the CLI understands the new preset system: apply presets by id, inspect the merged attribute set after preset resolution, update presets site-wide with a single command. Works on every managed host.
Builder
Bricks CLI
Bricks Builder stores content as a flat array of element objects with parent references. Respira CLI reads this structure natively, preserves element ids across edits, and exposes global classes as first-class entities.
Every Bricks element type is supported: sections, rows, columns, headings, text, images, repeaters, query loops, dynamic data, custom elements from Bricks-compatible plugins. ACSS variables are detected when present and surfaced in the design system.
Builder
WPBakery CLI
WPBakery's shortcode structure is parsed into a structured tree so you can edit rows, columns, and module attributes directly. Respira CLI preserves shortcode ordering and comment fidelity that downstream plugins depend on.
TagDiv Composer sites are detected as WPBakery variants. Visual Composer legacy shortcodes round-trip cleanly.
Commerce
WooCommerce CLI for AI-assisted store management
Respira CLI pairs with the Respira WooCommerce add-on to expose the full WooCommerce object graph: products, variations, attributes, orders, coupons, shipping zones, tax classes, store settings. This is the WooCommerce CLI you reach for when an agent needs to audit or update a store at scale.
Product catalog operations are first-class. List products filtered by category, attribute, or stock state. Create products from Markdown with frontmatter. Bulk-update prices and variations with a single JSON patch file. Every write is snapshot-backed so you can roll back a bad bulk change in seconds.
AI coding agents
Built for Claude Code, Cursor, and AI coding agents
Respira CLI is the WordPress CLI for AI coding agents. It pairs with the Respira MCP server so Claude Code, Cursor, Codex, OpenCode, and GitHub Copilot CLI all drive the same builder-native tool surface.
Claude Code
One command installs a skill. Claude Code learns when and how to call the CLI.
respira init-claude-code Cursor
Terminal-first or MCP-native. Same tool surface either way.
respira read structure mysite.com | pbcopy Codex
JSON-first output. Shell out and post-process with jq.
respira sites list --output=json | jq '.[].url' Copilot CLI
Shell-friendly. Every command emits JSON when piped.
respira read design-system mysite.com Three steps
How Respira CLI works
Install the CLI
One command from npm. Node.js 18 or later. Works on macOS, Linux, and Windows.
npm install -g @respira/cli Authenticate once
respira auth login opens your browser and stores an API key in your OS keychain. CI uses RESPIRA_API_KEY.
respira auth login Run commands
Call Respira CLI against any site connected through the plugin. No SSH, no FTP, no database access required.
respira read page mysite.com about Install
Install the WordPress CLI
npm
npm install -g @respira/cli pnpm
pnpm add -g @respira/cli yarn
yarn global add @respira/cli Homebrew
Coming soon.
Standalone binary
Coming soon.
Full docs
Read the docs →FAQ
Common questions
How is this different from WP-CLI?
WP-CLI runs on your WordPress server and is the right tool for server-side administration. Respira CLI runs on your local machine, talks to the Respira plugin over HTTPS, and understands page builder content natively. The two are complementary.
Does it require SSH?
No. Respira CLI never touches your server directly. It talks to the Respira plugin via HTTPS.
Does it work on managed hosts?
Yes. Because there is no SSH requirement, Respira CLI works on every major managed host: WP Engine, Kinsta, SiteGround, Cloudways, Pressable, Pantheon, Flywheel.
Is it open source?
Yes. MIT license. Source at github.com/respira-press/respira-wordpress-cli.
What does it cost?
Public reads (respira read structure, respira read design-system) against any public site are free with no account. Writes require a Respira license. See the pricing page.
Do i need Claude Code or another agent to use it?
No. The CLI is a standard command line tool that works on its own. Agent integrations are optional.
Can i use it in CI?
Yes. Set RESPIRA_API_KEY in your CI environment and every command runs headlessly. JSON output is the default when stdout is not a TTY.
Which page builders are supported?
Elementor, Divi 4, Divi 5, Bricks, WPBakery, Beaver Builder, Oxygen, Breakdance, Brizy, Thrive Architect, Flatsome UX Builder, native Gutenberg blocks, plus WooCommerce through the Respira WooCommerce add-on.
What is the execution cycle?
Every respira command runs through six phases: load context, pre-hooks, resolve, execute, post-hooks, return. It is deterministic, fully traced with --verbose, and extensible in v0.2 via callback registration at phase boundaries. You do not need to know any of this to use the CLI. It matters when you want to extend it.
34 commands, 45-tool catalog, 187+ MCP tools. Which is which?
34 is the number of user-facing respira commands (respira auth login, respira read page, respira write edit-element, ...). 45 is the size of the local tool catalog you can browse with respira tools list / describe / search, scoped to what the CLI exposes today for builder and content operations. 187+ is the full Respira MCP server surface the WordPress plugin publishes, which includes every tool the desktop MCP server can call beyond the CLI’s current reach. They are consistent by design: CLI commands wrap a subset of the tool catalog, which is itself a subset of the MCP surface.
Can i extend the CLI with custom workflows or callbacks?
Starting in v0.2. The hook framework scaffolding is in place now, five framework-level hook points are live in v0.1 but have no callbacks registered. v0.2 adds extension manifests and callback registration on top, without changing anything in v0.1 API. If you are building against respira today, nothing you write will need to change when v0.2 arrives.
What is in v0.2?
Callback registration against framework-level hooks. Extension manifests for third-party contributors. SQLite-backed tool registry with full-text search. Tool chain functions declaring internal hook points. Baseline site inventory for per-site prerequisite validation. Roadmap lives in the GitHub repo.
Get started
One command. No signup required to read public sites.
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.