Launch offer
20% off every Pro tier — and every renewal — for a limited time. Use the code at checkout:
Roadmap — no dates
Every item is a numbered requirement in the plugin's repository, with its preview, snapshot and rollback policy decided before any code was written. This page is generated from that file and from the changelog, so it cannot say a thing has shipped when it has not.
The current release is 0.16.0. Anything marked shipped links to the changelog entry for the release it landed in.
Scoped, with its preview, snapshot and rollback policy already decided. Listed in the intended order, which is not a schedule.
read-only performance and security findings (page weight, caching headers, outdated software, file permissions, debug flags, exposed version strings) stated as plain findings the owner can act on
the Permissions tab's Off / Read / Edit / Full levels set per connected app, so a content assistant may edit while a reporting tool may only read
an owner can require a human tap before any destructive change, or confine writes to hours they choose
the site acts on its own — a stored recipe pairs a trigger with actions drawn from the operations SiteHelm already registers, so automation adds composition and no new write surface…
the site acts on its own — a stored recipe pairs a trigger with actions drawn from the operations SiteHelm already registers, so automation adds composition and no new write surface. Triggers: a post published or updated, a term created, a comment received, a form entry recorded, a user registered, an order placed, or a schedule. Actions: any operation the recipe's account is allowed to call, each running through the same preview, capability re-check, snapshot, verify and rollback path as an agent's call — the difference is only that the owner approved the recipe once, in the console, instead of approving each run. Conditions test typed fields of the trigger payload. Every run lands in History as an ordinary reversible change, a failing step stops the chain rather than half-applying it, and a recipe can be paused or disabled from one screen (the existing global write pause disables all of them). A recipe cannot reach an operation its own account's capabilities do not already permit, and cannot call an operation the Tools tab has switched off
a dispatcher's catalogue answers what is on that one tool, and nobody reads eleven of them side by side, so a client choosing between operations had no single document naming what each one is, how risky it is…
a dispatcher's catalogue answers what is on that one tool, and nobody reads eleven of them side by side, so a client choosing between operations had no single document naming what each one is, how risky it is, and whether it can be undone
every other media write could add or change a library item and none could remove one, so a build that uploaded the wrong file had to finish the job in wp-admin
a page that plainly exists answers "not found" after a plugin, theme or permalink change, and the only fix was to open wp-admin and re-save the permalinks screen
Yoast and Rank Math build the XML sitemap once and keep serving that copy until something tells them to build it again, which they cannot do when the change came from an import, a restore…
Yoast and Rank Math build the XML sitemap once and keep serving that copy until something tells them to build it again, which they cannot do when the change came from an import, a restore, or a post type another plugin registers; the sitemap then lists pages that are gone and misses pages that exist, and nothing in the plugin's settings looks wrong
an SEO score and sitemap entry, a page builder's compiled CSS, a caching plugin's stored copy and a translation index are all worked out when a page is saved and refreshed by nothing else…
an SEO score and sitemap entry, a page builder's compiled CSS, a caching plugin's stored copy and a translation index are all worked out when a page is saved and refreshed by nothing else, so content that arrived from a backup, an import or a row edited in the database leaves every one of them wrong while the page itself is right
saving a page runs whatever code the plugins on that site have hooked to a save, clearing permalinks throws away work the site had already done…
saving a page runs whatever code the plugins on that site have hooked to a save, clearing permalinks throws away work the site had already done, and deleting a menu item or an image leaves other parts of the site still pointing at it, none of which is a risk level or a destructive flag, so an agent could only learn it by doing it
Built, merged and on the main branch. It is not in 0.16.0; it lands in the version after it.
Nothing is waiting on a release. Everything merged is out.
In a release you can download, and named in the changelog entry for it.
SiteHelm Pro as a separate add-on plugin that registers its modules through the free plugin's extension points (a folder inside the free plugin would not survive a WordPress.org update)…
SiteHelm Pro as a separate add-on plugin that registers its modules through the free plugin's extension points (a folder inside the free plugin would not survive a WordPress.org update), a per-site licence key signed offline and checked by every Pro unit itself, and a Licence card on the Health tab; the free plugin carries no Pro file, no nag and no crippled operation
today both providers stop at per-post metadata. This adds: the plugin's own SEO and readability scores and analysis flags, per post and across the site; term (category/tag) metadata; per-post schema type and fields…
today both providers stop at per-post metadata. This adds: the plugin's own SEO and readability scores and analysis flags, per post and across the site; term (category/tag) metadata; per-post schema type and fields; a strict allowlist of the plugin's settings (title and description templates, separator, per-post-type index rules, sitemap inclusions, breadcrumbs, social defaults, the site's knowledge-graph name and logo); Rank Math's redirections and 404 log (Yoast's where the site has it); an SEO audit of the whole site — missing or duplicate titles and descriptions, noindexed pages that should not be, posts under a score, thin descriptions, missing focus keyword — with bulk fixes proposed as one previewed, reversible change each
read and change a strict allowlist of options (title, tagline, timezone, date and time formats, posts per page, front page and posts page, permalink structure, default comment settings, search-engine visibility)…
read and change a strict allowlist of options (title, tagline, timezone, date and time formats, posts per page, front page and posts page, permalink structure, default comment settings, search-engine visibility), each previewed, snapshotted and reversible; nothing outside the allowlist is reachable
a client writes a title and description the same way whichever plugin the site runs; the REQ-0098 depth follows for each where the plugin stores it
list the site's forms and read their fields and recent entries for Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Ninja Forms, Formidable, Forminator, SureForms; form embedding by shortcode…
list the site's forms and read their fields and recent entries for Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Ninja Forms, Formidable, Forminator, SureForms; form embedding by shortcode; no entry deletion
products (read, create, update, price and stock), categories, and read-only orders and customers; every write previewed and reversible
find every post, page and Elementor element that mentions a phrase, then change them as one previewed, reversible change
list what is installed and what has an update; activate, deactivate and update a plugin or theme (reversible by construction: the previous state is the rollback); installing from WordPress.org only…
list what is installed and what has an update; activate, deactivate and update a plugin or theme (reversible by construction: the previous state is the rollback); installing from WordPress.org only, never an arbitrary zip
the reusable style classes Elementor 4 stores site-wide, as a first-class surface: list them in cascade order, create one, rename one or merge style properties into it, delete one…
the reusable style classes Elementor 4 stores site-wide, as a first-class surface: list them in cascade order, create one, rename one or merge style properties into it, delete one, and set the order they cascade in
the saved templates Elementor stores as a library, as a first-class surface: list them, read one in full, save a document or one element as a new template, insert a template into a page…
the saved templates Elementor stores as a library, as a first-class surface: list them, read one in full, save a document or one element as a new template, insert a template into a page, import a template this site did not produce, and create an empty theme document
the parts of an Elementor page that are not the element tree: the page's own settings, the order of an element's children, and the name an element carries in the navigator
build a page's entire content in one change, empty one, and create a page Elementor controls
add an SVG to the media library through the one path that is allowed to store markup, because it is the one path that rebuilds the document first
a snippet's body is described by its size and its digest wherever a change is shown, never reproduced
a fourth risk level, a module identifier reserved for it, and the console vocabulary for both, shipped ahead of anything that can use them
return a page's front-end HTML so a client can check what visitors actually see, for SEO and QA
a site was built end to end through SiteHelm alone, and everything it could not do was written down: custom fields that could be read but not written, meta values that arrived as text whatever their type…
a site was built end to end through SiteHelm alone, and everything it could not do was written down: custom fields that could be read but not written, meta values that arrived as text whatever their type, private post types that no listing showed, paging and status friction on the content list, no way to put pages in a chosen order, no way to set the site icon or the logo, and no way to make the first menu
a second source for the two install operations: a zip that is already in this site’s own media library…
a second source for the two install operations: a zip that is already in this site’s own media library, so a child theme or a plugin that is not in the directory can reach the site without SiteHelm ever being handed an address
list what a theme ships and read one of its templates, so a caller can see what it is about to change instead of guessing at file names
a package is too large to travel as an operation argument, so the permission to upload and the bytes themselves take different roads
Why a page looks wrong - report the CSS rules written for a selector on a page, which of them apply at a given viewport width, and which one wins, so a layout fix can be checked without a browser
the same site was taken further and the next round of gaps written down: a read that hid the custom fields actually on a post, three errors that told the operator the wrong thing…
the same site was taken further and the next round of gaps written down: a read that hid the custom fields actually on a post, three errors that told the operator the wrong thing, an update check that could not see a release that had already shipped, and no way to take a menu item back out
These are not queued and they are not promised. Each one survived a survey of what AI-connected WordPress tooling offers, which is a low bar — it means the idea is worth keeping, not that it will be built. Describe the workflow you need and one of them moves; a feature name on its own does not.
SiteHelm Hub — connect once, run every site — a hosted hub the AI client connects to once; each site's plugin pairs with the hub, every call names the site it targets, and adding a site becomes install-and-pair instead of another connection in every client config. The safety model does not move: preview, snapshot, verification, the audit log and rollback all keep running inside each site's own plugin, and the hub stores site credentials encrypted or it does not ship. Requested by users 2026-09-14, which is what moves an item up this list — this is the next item that gets a design
CoreAdditional page builders (Bricks, Beaver Builder, Divi) through the same element read / write vocabulary as Elementor
IntegrationsPopular theme settings — Astra, Kadence, GeneratePress, Blocksy: read and change the customizer options those themes expose, reversibly
IntegrationsElementor add-on packs (Essential Addons, Premium Addons, Ultimate Addons) — their widgets discoverable through the existing Elementor control-schema operations
IntegrationsBlock-library plugins (Spectra, Kadence Blocks, GenerateBlocks) — their blocks discoverable and editable through the block-editor operations
IntegrationsProject memory — a client can store and recall short site notes (brand voice, conventions, decisions) between sessions, scoped per site and visible in the console
CoreAn AI chat inside wp-admin that drives the same operations, for owners who do not run a desktop MCP client
ConsoleSaved prompts and templates — reusable instructions and page blueprints an owner can hand to any connected app
ConsoleStock images — search and sideload from Unsplash, Pexels, Pixabay into the media library with attribution
CoreExport and import a page or a set of posts as a portable bundle between two SiteHelm sites
CoreMultisite
CoreCRM connections (the form half moved to REQ-0084)
IntegrationsElementor 4 atomic layout elements (e-flexbox, e-div-block) addable through the element write vocabulary when Elementor 4 is present
ElementorBreakpoint-aware writes — tablet and mobile values on global typography and class variants in the same call
ElementorGlobal Variables (design tokens): list, create, update and retire them alongside global colors and classes
ElementorResponse size ceiling on document reads, with an explicit "narrowed, ask by element id" marker instead of a client-side failure
ElementorRich-text writes that preserve the editor's children tree, so a text update never leaves a widget uneditable
ElementorFull-bleed container preset that zeroes the kit padding, and a template-type term set on theme-template create so Elementor renders it
ElementorGlobal-class writes verified by reading the class back through Elementor, reporting any property it discarded
ElementorStrict-schema mode — an opt-in schema rewrite for validators that require required lists and non-empty enum members
GatewayEvery one of these would make SiteHelm more capable and none of them can be previewed, capability-checked or rolled back as a change. A request to add one will be closed with this reason.
Direct SQL bypasses every WordPress hook, every capability check, and every snapshot. A change made that way cannot be verified or rolled back.
excludedIt escapes the plugin's own guarantees and turns a content tool into a remote shell. The Code module writes rows in its own table, never files — and it refuses every write on a site that sets DISALLOW_FILE_EDIT.
excludedEvery destructive operation in SiteHelm is reversible by construction. content-trash moves to trash; nothing hard-deletes.
excludedNew with the Code module, and load-bearing: snippets load only on the hook they declare, and the loader excludes the gateway request, WP-CLI and cron outright. A snippet that white-screens the site cannot break the channel you would use to remove it.
excludedAn mu-plugin loads before everything, cannot be deactivated from the admin, and is outside every switch this plugin offers. Nothing SiteHelm stores may load unconditionally.
excludedConsidered 2026-08-28 alongside REQ-0100 and declined for now. Shipping connectors to outbound services means SiteHelm holds other people's API keys and makes arbitrary outbound requests — the same shape as the guarded-fetch surface that already needs the most careful code in the plugin, multiplied by every service. REQ-0100's Pro tier sends a signed webhook to one URL the owner types in; anything richer belongs behind that webhook, in a tool built to hold credentials.
excludedFound in the 2026-08-23 survey and declined: each is a remote shell wearing a different hat, and none can be previewed or rolled back as a change. Site settings ship through an allowlist (REQ-0062) instead, and code ships through the guarded Code module, not a theme-file editor.
excludedThe same board as /requests, sorted by what has been committed to rather than by what is most wanted. A request moves here when it is accepted, and leaves when it ships, naming the version it shipped in.
Accepted and on the roadmap. Not started, and not dated.
Nothing filed on the board is queued at the moment. What the plugin itself has planned is above.
Being built now. It will name its release when it ships.
Nothing filed on the board is mid-build right now. When something is, it appears here before it ships.
Released. The version is on the request and links to its changelog entry.
Nothing filed on the board has shipped yet. The changelog records everything that has.
Votes are the loudest input into what gets built next, and they are not the only one. A request also has to be safe to build, possible to roll back, and worth the maintenance it will cost forever.
A request with three votes can ship before one with forty, if the three are the same problem seen from three angles and the forty are a feature that would need arbitrary code execution to implement.
Nothing here is a commitment or a date. When something is accepted it moves to Planned, and when it ships the request names the release it shipped in.
The declined requests are on the board, with the reason written on each one. That list and the Never section above are the clearest statement of what SiteHelm is not going to be.