CLI 0.1.0SDK 0.1.0Node ≥18 April 19, 2026

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.

$ npm install -g @respira/cli
View on GitHub Read the docs

MIT licensed. Requires Node.js 18 or later.

34 commands auth, sites, read, write, exec, more
6 phase execution cycle deterministic, traceable, hook-ready
12 page builders Elementor to Gutenberg
187+ MCP tools same catalog as the MCP server
~/code — respira — 80x24
$ 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.

LoadContext PreHooks Resolve Execute PostHooks Return

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.

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
Managed hosts (WP Engine, Kinsta)
yes, with shell access
yes, always
Built for
sysadmin tasks
AI coding agent workflows

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.

$respira read page site about
$respira write edit-element site about heading-1 --set=text="hello"

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.

$respira read page site home --as=html
$respira write edit-element site home module-42 --set=text_font_size=48px

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.

$respira find-element site home --type=heading
$respira write edit-element site home brxe-abc --set=text="hi"

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.

$respira read page site contact --as=builder

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.

$respira read posts mystore.com --type=product --limit=100
$respira write create-post mystore.com --type=product --from-markdown=./new.md
$respira exec scripts/bulk-price-increase.ts

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

01

Install the CLI

One command from npm. Node.js 18 or later. Works on macOS, Linux, and Windows.

npm install -g @respira/cli
02

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
03

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.

$ npm install -g @respira/cli
Storefront illustration with the Respira CLI wordmark, a Respira mandala, and a vintage typewriter showing code — representing the Respira CLI for WordPress brand.

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.