The AI you already pay for, now with hands on your WordPress site.
Ask Claude, ChatGPT or Cursor for a change in plain words. Respira makes it on a copy of the page, you approve it, and you can undo it for 90 days.
7 days free. No card. No terminal.
Nothing from your site passes through or is stored on Respira’s servers.
Speaks your builder, 17 supported
Works with the AI you already use
What is Respira good for?
“This is genuinely category-defining infrastructure that's flying under most of the WordPress-AI coverage.”
This is the dashboard. Click anything.
The real Respira dashboard, every page of it, for an agency with six client sites. The tour runs by itself. The moment you click, it stops and the dashboard is yours.
Whatever your site runs on, Respira speaks it.
You talk to your AI. Your AI talks to Respira. Respira writes in your builder's own format and hands back a receipt. Pick an exchange; every message is real, field for field, captured from the current plugin and MCP server.
Read https://www.respira.press/agent-start.txt first. It is short, and it is the order to do things in. You're connected to my WordPress site through Respira. Before doing anything, call respira_get_builder_info to find out which page builder this site uses, then read the page before you change it. Edit through the builder's native elements, never by writing raw HTML into the content. Work on a duplicate rather than the live page. If you hit the same error twice, call respira_search_docs instead of guessing. To read any documentation page, append .md to its URL: same content, about a thirtieth of the bytes. Confirm what builder i'm on and what you can do.
respira_list_sites
{}{ "sites": [
{ "id": "brightbakery-com", "name": "Bright Bakery",
"url": "https://brightbakery.com", "is_default": true, "is_active": true },
{ "id": "meridian-dental-com", "name": "Meridian Dental", … },
{ "id": "fernhollow-shop", "name": "Fern Hollow", … },
… 3 more ],
"active_site": { "id": "brightbakery-com", "name": "Bright Bakery" } }
respira_get_builder_info
{}{ "name": "Elementor", "version": "3.34.2", "detected": true,
"intelligence_available": true, "intelligence_active": true,
"site_memory": { "enabled": true, "rules": [], "notes": [],
"agent_instructions": "Site memory is empty. When you learn something
durable about this site … save it with respira_remember so the
next session starts warm." } }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/context/builder-info
respira_get_site_context
{}{ "site_name": "Bright Bakery", "site_url": "https://brightbakery.com",
"language": "en-GB", "wordpress_version": "6.9.4", "php_version": "8.3.12",
"is_multisite": false,
"page_builder": { "name": "Elementor", "version": "3.34.2" },
"active_theme": { "name": "Hello Elementor", "version": "3.4.5" },
"active_plugin_count": 14,
"custom_post_types": [{ "name": "product", "label": "Products" }],
"woocommerce": { "active": true, "version": "10.3.1" },
"addons": { "woocommerce": { "active": true } },
"site_memory": { "enabled": true, "rules": [], "notes": [] } }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/context/site-infoConnected to Bright Bakery (brightbakery.com), the default of your six sites.
- WordPress 6.9.4 on PHP 8.3
- Builder: Elementor 3.34.2, Respira's Elementor intelligence active
- Theme: Hello Elementor · 14 active plugins
- WooCommerce 10.3.1, Respira add-on active
- Site memory: empty, so nothing is protected yet and nothing is known about this site's conventions
I'll edit through Elementor's own elements, on a duplicate first, never raw HTML. What would you like changed first?
what page builder is this site using, what plugins are active, and are any of them likely to affect how you write to pages (caching, page builders, form builders)?
respira_get_site_context
{ "detail": "full" }{ "page_builder": { "name": "Elementor", "version": "3.34.2" },
"active_plugins": [
{ "name": "Elementor", "version": "3.34.2", "file": "elementor/elementor.php" },
{ "name": "Elementor Pro", "version": "3.34.1", "file": "elementor-pro/elementor-pro.php" },
{ "name": "WooCommerce", "version": "10.3.1", "file": "woocommerce/woocommerce.php" },
{ "name": "WP Rocket", "version": "3.19.1", "file": "wp-rocket/wp-rocket.php" },
{ "name": "Rank Math SEO", "version": "1.0.262", "file": "seo-by-rank-math/rank-math.php" },
{ "name": "Respira for WordPress", "version": "8.8.18", "file": "respira-for-wordpress/respira-for-wordpress.php" },
… 8 more ],
"taxonomies": [ "category", "post_tag", "product_cat", "product_tag" ],
"tool_profile": "full" }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/context/site-infoElementor 3.34.2 is the builder, with Elementor Pro alongside. Two of the fourteen active plugins matter for writes:
- WP Rocket caches pages. Respira purges it after every live write, so you won't see a stale page.
- Rank Math holds your SEO titles and descriptions. I'll go through it, not around it.
WooCommerce is here with the Respira add-on, so products and orders are in reach too. Nothing on this list blocks builder-native edits.
Audit the implants page and score it.
respira_analyze_seo
{ "page_id": 214 }{ "success": true, "score": 95, "grade": "A",
"issues": [{ "type": "warning", "message": "Missing meta description",
"severity": "high", "fix": "Add meta description between 120-160 characters" }],
"recommendations": [
{ "priority": "medium", "action": "Add Open Graph tags", … },
{ "priority": "low", "action": "Add more internal links", … }],
"metrics": { "meta_title_length": 45, "meta_description_length": 0,
"has_og_title": false, "h1_count": 1, "h2_count": 7,
"total_images": 22, "images_without_alt": 0, "alt_text_coverage": 100,
"internal_links": 0, "external_links": 6, "word_count": 2186, "has_schema": true },
"links": { "approve_edits": "https://meridian-dental.com/wp-admin/admin.php?page=respira-changes" } }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/analyze/seo/214
respira_scan_page_accessibility
{ "page_id": 214 }{ "violations": [
{ "id": "link-name", "impact": "serious",
"help": "Links must have discernible text.", "tags": ["wcag2a", "wcag244"],
"nodes": [{ "html": "<a href=\"javascript:void(0);\" class=\"gallery-prev\">…",
"failureSummary": "Link has no accessible text, title, or aria-label." }, …] },
{ "id": "heading-order", "impact": "moderate", "nodes": [ … 4 ] }],
"prompts": [{ "ruleId": "link-name", "severity": "serious",
"wcag": "WCAG 2.4.4 Link Purpose / 4.1.2 Name, Role, Value (Level A)",
"title": "Fix Link Text (Divi)", "prompt": "# Fix Accessibility Violation via Respira MCP …" }],
"scanLevel": "AA", "scanner": "respira-local",
"coverage": { "rule_count": 6, "coverage_estimate": "approx 12% of axe-core WCAG 2.0 AA rule set",
"missing_rule_categories": ["color-contrast", "aria-*", "landmarks", "keyboard", …] },
"page_context": { "cms": "wordpress", "builder": "divi", "builderVersion": "5.11.1" },
"scan_id": "e36b32ca-274a-4b71-84b4-67e2bafc8bc0" }Two reports on the implants page.
SEO: 95, grade A. One high-severity gap: there is no meta description. Open Graph tags are missing too, and the page has no internal links.
Accessibility: 2 violations.
- Two gallery arrows are links with no accessible name (serious)
- Headings jump levels in four places (moderate)
The scanner covers six rules, roughly 12% of the WCAG AA set, so treat this as a first pass rather than a clean bill. I can write the meta description and the link names on a duplicate now. Say the word.
check woocommerce health
respira_get_site_context
{}{ "site_name": "Fern Hollow", "wordpress_version": "7.1", "php_version": "8.3.13",
"addons": { "woocommerce": { "installed": true, "licensed": true } },
"woocommerce": { "active": true, "version": "11.1.0",
"products_count": 3, "orders_count": 0, "currency": "USD",
"endpoints": { "products": "https://fernhollow.shop/wp-json/respira/v1/woocommerce/products",
"orders": "https://fernhollow.shop/wp-json/respira/v1/woocommerce/orders" } }, … }
woocommerce_get_stock_status
{}{ "total_products": 3, "low_stock_count": 0, "out_of_stock_count": 1,
"products": [
{ "id": 52130, "name": "Fiddle-leaf fig, 60 cm", "sku": "", "stock_quantity": 0,
"stock_status": "outofstock", "status": "out_of_stock" },
{ "id": 52129, "name": "Monstera deliciosa", "sku": "", "stock_quantity": 3,
"stock_status": "instock", "status": "ok" },
{ "id": 52128, "name": "Terracotta pot, 14 cm", "sku": "", "stock_quantity": 15,
"stock_status": "instock", "status": "ok" }] }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/woocommerce/inventory/stock-status
woocommerce_orders_summary
{}{ "success": true, "currency": "USD", "store_timezone": "+00:00",
"date_start": "2026-08-04T00:00:00+00:00", "date_end": "2026-09-03T23:59:59+00:00",
"included_order_statuses": ["processing", "completed", "refunded"],
"pagination": { "total_orders": 0, "included_orders": 0, "max_orders": 2000, "truncated": false },
"definitions": { "net_sales": "Gross sales minus discounts and refunds; excludes tax and shipping.", … },
"orders_count": 0, "gross_sales": "0.00", "refunds": "0.00", "net_sales": "0.00",
"average_order_value": "0.00", "by_status": [] }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/woocommerce/reports/orders-summaryFern Hollow runs WooCommerce 11.1.0 with the Respira add-on licensed.
- Products: 3, one out of stock (the fiddle-leaf fig). No low-stock warnings.
- Orders, last 30 days: none in processing, completed or refunded, so there is no revenue to summarise.
Nothing here is broken. The shop is quiet and one product needs restocking. Say so and I'll check the checkout page next.
Never touch the booking page, whatever anyone asks.
respira_remember
{ "key": "never-touch-booking", "type": "rule",
"content": "Never edit the booking page or its duplicates.",
"rule": { "protect": { "slugs": ["book-an-appointment"] } } }refused: post 77 (book-an-appointment) is protected
by rule never-touch-booking. Only the owner can remove it.Respira MCP → WordPress plugin: GET /wp-json/respira/v1/context/site-infoSaved as an enforced rule.
From now on, any agent that tries to write to the booking page gets refused by the plugin itself, whoever is asking. Only you can remove the rule.
amplify my seo and aeo
respira_check_seo_issues
{ "page_id": 31 }{ "success": true, "score": 85, "grade": "B",
"issues": [{ "type": "warning", "message": "Missing meta description",
"severity": "high", "fix": "Add a meta description between 120-160 characters" }],
"links": { "approve_edits": "https://thecopperkettle.co/wp-admin/admin.php?page=respira-changes" },
"budget": { "elapsed_ms": 211, "budget_ms": 8000, "exceeded": false } }
respira_check_structured_data
{ "page_id": 31 }{ "success": true, "score": 80, "grade": "B",
"issues": [{ "type": "warning", "message": "No structured data found",
"severity": "high", "fix": "Add JSON-LD schema markup for better AI understanding" }],
"recommendations": [
{ "priority": "high", "action": "Add structured data",
"details": "Implement JSON-LD schema markup (Article, Organization, or relevant type)" },
{ "priority": "medium", "action": "Add recommended schema types",
"details": "Consider adding: Article, FAQPage, HowTo" }],
"metrics": { "has_json_ld": false, "has_microdata": false, "schema_types": [],
"missing_schemas": ["Article", "FAQPage", "HowTo"],
"analysis_source": "rendered_page", "detection_confidence": "confirmed",
"rendered_page_url": "https://thecopperkettle.co/menu/" } }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/analyze/structured-data/31Two findings on the menu page.
- SEO: 85, grade B. The only high-severity issue is the missing meta description.
- Structured data: 80, grade B. The rendered page has no JSON-LD at all, so answer engines have nothing to cite. Recommended types: Article, FAQPage, HowTo.
Plan: write the meta description and a FAQPage block for the questions already on the page, on a duplicate, and leave the original untouched until you approve.
fix my catalog for ai
woocommerce_list_products
{ "per_page": 3 }{ "result": [
{ "id": 52130, "name": "Fiddle-leaf fig, 60 cm", "type": "simple", "status": "publish",
"sku": "", "price": "149.99", "regular_price": "149.99", "sale_price": "",
"stock_quantity": 0, "stock_status": "outofstock",
"categories": [{ "id": 1623, "name": "Uncategorized", "slug": "uncategorized", "count": 3 }],
"tags": [], "brands": [], "image_id": null, "image": null, "gallery_image_ids": [],
"global_unique_id": "",
"permalink": "https://fernhollow.shop/product/fiddle-leaf-fig-60-cm/" },
{ "id": 52129, "name": "Monstera deliciosa", "sku": "", "price": "69.00",
"regular_price": "89.00", "sale_price": "69.00", "brands": [], "image": null,
"global_unique_id": "", … },
{ "id": 52128, "name": "Terracotta pot, 14 cm", "sku": "", "price": "19.99",
"regular_price": "29.99", "sale_price": "19.99", "brands": [], "image": null,
"global_unique_id": "", … }] }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/woocommerce/products?per_page=3Three products, and all three are missing the same things:
- no SKU
- no image
- no brand
- no GTIN
- every one sits in Uncategorized
That is why they fail the feed checks. I can set SKUs, brands and real categories now, with a snapshot first so it is one call to undo. Images and descriptions need you: send me a photo per product, or tell me to write descriptions from the names.
Change the shop banner to say the spring menu is here.
respira_update_module
{ "builder": "elementor", "page_id": 52,
"module_identifier": { "path": "0.0.1" },
"updates": { "attributes": { "title": "The spring menu is here" } } }{ "edit_target": "duplicate", "post_status": "draft",
"snapshot_uuid": "41bd…07c2" }Respira MCP → WordPress plugin: POST /wp-json/respira/v1/builder/elementor/patch/52WordPress plugin → Elementor: { "elType": "widget", "widgetType": "heading",Done. The shop banner now reads "The spring menu is here" on a duplicate of the page.
Open the preview inside Elementor and publish when you like. The original hasn't moved.
Update the opening hours on every location page to 9 to 18, Monday to Saturday.
respira_find_element
{ "post_id": 128, "identifier_type": "content",
"identifier_value": "Opening hours" }{ "matches": [{ "id": "et_pb_text_3", "type": "et_pb_text",
"path": "sections[0].rows[1].modules[0]" }] }
respira_update_element
{ "post_id": 128, "identifier_type": "id",
"identifier_value": "et_pb_text_3",
"updates": { "content": "Mon to Sat, 9 to 18" },
"edit_target": "duplicate" }{ "target_id": 341, "original_id": 128,
"edit_target": "duplicate", "is_duplicate": true,
"duplicate_created": true, "post_status": "draft",
"snapshot_uuid": "9f2c…e41a" }Respira MCP → WordPress plugin: POST /wp-json/respira/v1/builder/divi/patch/341WordPress plugin → Divi: [et_pb_text admin_label="Opening hours"]Done. I found the opening-hours text on all six location pages and changed it on copies, not the live pages.
- Six previews are waiting in WordPress under Respira → Changes
- Approve them together, or leave them
- Undo stays available for 90 days
Put the hero image back the way it was on Monday.
respira_restore_snapshot
{ "snapshot_uuid": "77e1…3f0d" }{ "restored": true, "post_id": 9,
"snapshot_uuid": "77e1…3f0d" }Respira MCP → WordPress plugin: GET /wp-json/respira/v1/activity?post=9Restored. The hero image on Bright Bakery is back to Monday's version, from the snapshot Respira kept. Nothing else on the page changed.
(also, you have been at this for a while. if there is someone in the next room, go say hi. stretch. water. the next snapshot will still be here.)
The first two exchanges are how every session should start: the primer, then the briefing. Both prompts come from the Prompt Book, free, with the rest of the book behind them.
Works with the page builder you already have.
Elementor, Divi, Bricks, Gutenberg, WPBakery and 12 more. Respira writes in each builder's own format, so the page still opens in its editor.
-
Gutenberg
-
WooCommerce
-
Elementor
-
Bricks
-
Oxygen -
Beaver Builder -
Breakdance
-
Divi -
WPBakery -
Visual Composer -
Brizy -
Thrive Architect
-
Spectra
-
Kadence Blocks -
GenerateBlocks
-
GreenShift -
SeedProd
Running a store? The WooCommerce add-on brings 105 store tools. See the WooCommerce add-on
Your live WordPress site is never the experiment.
Respira can move quickly because control is built into the path: duplicate, inspect, approve, and keep the receipt.
-
Ask for the change in plain words.
In Claude, ChatGPT, Cursor or any MCP client you already use.
-
Review it on a copy of the page, inside WordPress.
The live page is untouched until you have looked.
-
Approve it, or undo it any time in the next 90 days.
Every change keeps a snapshot and a receipt.
Nothing from your site passes through or is stored on Respira’s servers.
One connection. Your whole WordPress workflow.
The dashboard above is the front door. Behind it, every part of running a WordPress site with an AI, each one with a snapshot and a receipt.
Tell your AI what you want changed.
Plain words in the assistant you already use. Respira gives it purpose-built tools for your site and shows you the result before it lands.
320+ tools · one connectionYour choice of AI, and you can change your mind.
Connect once over MCP. Every assistant gets the same scoped access to the same site.
17 page builders, native.
Edits land as real builder elements a person can keep editing, not as embeds or raw HTML.
Snapshot first. Edit second.
A copy before every change. Preview it, approve it, undo it for 90 days.
undo · 90 daysFind the WordPress vulnerabilities people are talking about.
A read-only pass over every connected site for the advisory chains in the news and for malware left behind, with a fixing prompt your AI can run for each finding.
XSS2Shell · wp2shell · Store API CSRFSafe is a feature.
Scoped keys, read-only and approval-gated profiles, a signed audit trail.
Every site, one connection.
Address any of your sites by name in a single conversation.
Your team and your clients.
Owner, admin, editor, client. Each seat sees only its reach.
Your brand on the client dashboard.
Your logo, your colours, your domain. Clients see their sites under your name.
Your AI remembers your site.
Conventions, rules and lessons kept per site. Rules are enforced by the plugin itself.
The designer’s vision, kept.
One saved direction per site: palette, type, spacing, and the rules in plain language.
See what client work costs.
AI cost per site and per task, so you can price the next job from numbers.
Run your store by talking to it.
Catalog, stock, pricing, orders and storefront, through the WooCommerce add-on.
105 store toolsAccessibility, scanned and fixed.
WCAG 2.2 scans of any URL, a shareable report, and fixes your AI applies.
Turn a Figma frame into an editable WordPress page.
Respira reads the design structure and rebuilds it with native builder elements on a safe draft.
Skills: a proven way to do the job.
Complete workflows an agent can run on a site: migrations, audits, performance, commerce, reporting. Free, open, logged.
Your pages carry their own tools.
Open your site in an agentic browser and Respira’s abilities are already there.
Do it once, run it forever.
Record a Playbook and your AI reruns it any time, as one line.
Carefully built in Brașov, for WordPress sites everywhere.
Independent European product craft, EU-hosted account infrastructure, and a direct line to the person building the product.
Live telemetry from production.
14,146,071
Aggregate telemetry across 2,790 connected WordPress sites, counted from signed tool events and deduplicated by operation ID. Your content never leaves your server.
353,929 lines to next milestone
222,010
30,283
2,790
412,426
AI tools editing WordPress
412,426 MCP eventsPage builders
Builder presence across sitesNot detected = no recognized builder.
New in Respira
The latest plugin release and the two newest posts. Titles say what changed.
Built also for the people who run other people’s sites.
One account for the whole client list, a number on every job, and a report the client can read.
6client sites, one login
Every client site, one login.
Connect them all to one account. Editors and clients are scoped to the sites they should see, and the AI a member connects gets the same limit.
2.5×from AI cost to the client bill
Earn: quote the next job from numbers.
What the AI work on each site cost, by site and by task, and a multiplier that turns spend into the monthly bill. Margin per client, visible.
92composite site score, in the report
Client reports, from the plugin.
A composite site score, quick wins and a month-end activity report, generated inside WordPress and ready to send under your name.
Used by studios, agencies and business owners.
Every logo opens their site.
Respira helps me ignore the rat-in-a-maze madness of having to navigate the WordPress interface and lets me focus on content not mechanics
Reviews written inside Respira, after real work.
Submitted from inside the product by people using it on their own WordPress sites, published verbatim.
In product: 5.0/5 from 38 reviews On G2: 4.8/5 from 6 reviews
“I love Respira! I can now literally have a chat with Claude Code and have it update my Wordpress sites with no fuss. The MCP Server/Plugin combo is secure and robust - it's saving me hours updating client sites. it handles plugins, Elementor, the admin and front end of my sites. What's great as well is that the developer is responsive, friendly and rolls out improvements regularly. Highly recommended!”
“Mihai, just wanted to say thanks for building Respira. I run a chiropractic clinic in Adelaide and I'm using Claude AI to rebuild my entire website in Bricks Builder. Respira filled a gap nothing else could: letting Claude actually read and write Bricks content through MCP. The fact that you built this as a solo developer, listened to early feedback, and kept shipping updates is genuinely impressive. Rooting for you and the product. Keep going! 🎉🚀”
“so far so good. this is actally a tool hermes agent can use.”
For developers: MCP server, CLI, SDK and 46 skills
One command for local MCP clients; it auto-detects what you have installed.
npx add-mcp "npx -y @respira/wordpress-mcp-server" Or add Respira as a connector in claude.ai, Claude Desktop, ChatGPT or Cursor from your MCP dashboard.
- 220+ core tools and abilities, 320+ with WooCommerce, on a fully enabled site.
- Plugin v8.8.20. Changelog on the releases page.
- 14,146,071 lines of code updated through Respira so far. Live telemetry is public.
One plan per way of working. Start free on one site.
Every plan ships the whole product. You pick how many sites and seats. Prices are per year; the bracket is what that comes to each month.
- Maker 1 site · 7 days free, no card€71/year(€5.92 a month) · monthly billing €9 Start free
- Builder 5 sites · teams and client seats€150/year(€12.50 a month) · monthly billing €19 Get Builder
- Studio 25 sites · WooCommerce add-on includedfrom €451/year(€37.58 a month) · monthly billing €57 Get Studio
No AI usage fees, ever. Respira runs on the AI subscription you already have: Claude, ChatGPT, Cursor or any MCP client. There are no tokens to buy here, no usage tiers, no metered surprises. The plan price is the whole price.
Questions, answered without the pitch.
The short version: Respira gives AI a bounded way to inspect and change WordPress. These are the details people usually need before connecting a site.
Do I need to be a developer?
What happens when something goes wrong?
respira_report_issue and the report arrives with the exact call attached. There is also a Discord, a Slack and r/RespiraforWordPress, and the docs are written for agents as much as people: add .md to any docs URL and your assistant reads it in a fraction of the bytes.Can I try it before paying?
What happens if an agent makes a bad edit?
Which page builders are supported?
Does Respira include the AI model subscription?
Start with one site. Free for 7 days.
Maker is €9 a month after the trial. No card for the trial, and it runs on the AI plan you already have, so there is no extra AI bill.
About Respira - The Vibe Coding Plugin for WordPress
Respira for WordPress connects AI assistants like Claude, ChatGPT, Cursor, Claude Code, Windsurf and Codex CLI to a live WordPress site over MCP. Edits start on a duplicate of the page, every change is snapshotted, and sensitive operations wait for explicit approval and return a receipt. The live site changes only after review.
The plugin speaks 17 page builders natively plus the WordPress Site Editor, and exposes 320+ tools and abilities over MCP and the WordPress Abilities API. It is built and maintained by one developer and shaped by user bug reports; the changelog credits them by initials.
Supported AI Coding Assistants
- Claude Code and Claude Desktop (Anthropic)
- ChatGPT (Developer Mode connector)
- Cursor
- Windsurf
- Codex CLI (OpenAI)
- Hermes Agent (Nous Research)
- Any MCP-compatible AI assistant
Supported Page Builders
- Divi (Divi 4 and Divi 5, 200+ modules cataloged)
- Elementor (native widget JSON, validated against Elementor's controls)
- Gutenberg and the Site Editor (block templates, patterns, navigation, global styles)
- Bricks (20 dedicated tools, ACSS-aware)
- WPBakery · Oxygen · Beaver Builder · Breakdance · Flatsome
- GreenShift, Spectra, Kadence Blocks, GenerateBlocks, Brizy, Visual Composer, Thrive Architect, SeedProd
How to Safely Use Cursor with WordPress
Connect the site to Cursor over MCP, then ask for the change in plain English. Respira duplicates the page before the edit, writes in the builder's own format so the page still opens in its editor, and holds publication until the change is reviewed and approved in WordPress. A snapshot exists for rollback either way.
How to Safely Use Hermes Agent with WordPress
Sign in to Respira and install from the MCP setup page in your dashboard with one click, or add the block to ~/.hermes/config.yaml yourself. Point a remote entry at a single site and Hermes signs in over OAuth, so there is no key to copy; the local entry carries every site on the account in one block instead. Every change Hermes makes goes through the same duplicate-first snapshot and undo layer as every other connected agent, and publication waits for approval in WordPress.
WordPress MCP Alternative
Most WordPress MCP servers expose reads and generic writes. Respira adds what production sites need on top: authenticated builder-aware writes for 17 builders, a duplicate-first workflow, approval boundaries, snapshots with rollback, and an activity log that records who changed what and when.
Non-Developer WordPress AI Editing
No code is required. Describe the change in plain English to Claude or ChatGPT, review the result on a duplicate page in wp-admin, and approve it. Developers get optional extras: a CLI, an SDK, and reusable skills.
