{"id":305710,"date":"2026-05-08T13:35:14","date_gmt":"2026-05-08T13:35:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/site-agent-connector\/"},"modified":"2026-05-08T13:34:56","modified_gmt":"2026-05-08T13:34:56","slug":"buildli","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/buildli\/","author":23489447,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.4","stable_tag":"0.4.4","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Buildli","header_author":"Buildli","header_description":"Buildli connects your self-hosted WordPress site to an AI assistant that creates posts, edits pages, manages media, and safely rolls back changes. Requires a Buildli account.","assets_banners_color":"3e4d59","last_updated":"2026-05-08 13:34:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/buildli.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.4":{"tag":"0.4.4","author":"wpagentapp","date":"2026-05-08 13:34:56"}},"upgrade_notice":{"0.4.1":"<p>Documentation-only fix. No code changes.<\/p>","0.4.0":"<p>Major feature release: native support for Elementor, WooCommerce, Yoast \/ Rank Math \/ AIOSEO, ACF, Divi, Bricks, and Beaver Builder. No re-connect required after upgrading.<\/p>","0.3.1":"<p>Compliance fixes only \u2014 wraps all exception messages in esc_html() per WordPress.org Plugin Check.<\/p>","0.3.0":"<p>Plugin renamed to Buildli with updated REST namespace and HTTP headers. Re-connect from your buildli.app dashboard after upgrading.<\/p>","0.2.0":"<p>Enables one-click site connection and adds in-chat undo. Existing manual installations continue to work unchanged.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3526583,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3526583,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3526583,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3526583,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3526583,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3526583,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3526583,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3526583,"resolution":"4","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,1320,569,229563,529],"plugin_category":[],"plugin_contributors":[262335],"plugin_business_model":[],"class_list":["post-305710","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-assistant","plugin_tags-automation","plugin_tags-claude","plugin_tags-content","plugin_contributors-wpagentapp","plugin_committers-wpagentapp"],"banners":{"banner":"https:\/\/ps.w.org\/buildli\/assets\/banner-772x250.png?rev=3526583","banner_2x":"https:\/\/ps.w.org\/buildli\/assets\/banner-1544x500.png?rev=3526583","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/buildli\/assets\/icon-128x128.png?rev=3526583","icon_2x":"https:\/\/ps.w.org\/buildli\/assets\/icon-256x256.png?rev=3526583","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/buildli\/assets\/screenshot-1.png?rev=3526583","caption":""},{"src":"https:\/\/ps.w.org\/buildli\/assets\/screenshot-2.png?rev=3526583","caption":""},{"src":"https:\/\/ps.w.org\/buildli\/assets\/screenshot-3.png?rev=3526583","caption":""},{"src":"https:\/\/ps.w.org\/buildli\/assets\/screenshot-4.png?rev=3526583","caption":""}],"raw_content":"<!--section=description-->\n<p>Buildli is the small, zero-dependency bridge between your self-hosted WordPress site and <strong>buildli.app<\/strong> \u2014 an AI-powered chat interface that edits your site on request.<\/p>\n\n<p>After activating the plugin and connecting your site, you can open the chat at buildli.app and ask for changes in plain language:<\/p>\n\n<ul>\n<li><em>\"Create a Contact page with a simple form and a map.\"<\/em><\/li>\n<li><em>\"Rewrite the homepage hero to focus on our new summer collection.\"<\/em><\/li>\n<li><em>\"Translate the FAQ into French and publish it as a new page.\"<\/em><\/li>\n<li><em>\"Fix the SEO titles on my five most-visited blog posts.\"<\/em><\/li>\n<\/ul>\n\n<p>Every action is previewed before it runs, revisions are saved so any change can be undone, and an emergency recovery URL lets you disable the connector with a single click if anything ever goes wrong.<\/p>\n\n<p><strong>Built-in safety:<\/strong><\/p>\n\n<ul>\n<li><strong>Preview-first<\/strong> \u2014 every write action is shown to you in the chat before it runs.<\/li>\n<li><strong>Automatic revisions<\/strong> \u2014 updates snapshot the previous state so one click reverts them.<\/li>\n<li><strong>Draft mode<\/strong> \u2014 an optional per-site toggle that forces every agent write to land in draft.<\/li>\n<li><strong>Recovery URL<\/strong> \u2014 a secret one-time URL that disables the connector even if your admin is broken.<\/li>\n<li><strong>Audit log<\/strong> \u2014 every tool execution is recorded in your Buildli dashboard.<\/li>\n<\/ul>\n\n<p><strong>Zero dependencies.<\/strong> The plugin is a few hundred lines of PHP that only uses WordPress core APIs \u2014 no third-party libraries, no database tables, no analytics, no outbound calls except to the Buildli API.<\/p>\n\n<p><strong>Your API key stays with us.<\/strong> The plugin holds only its own site-specific token; the AI provider API key Buildli uses is never exposed to the plugin or your site.<\/p>\n\n<p><strong>Self-hosted only.<\/strong> This plugin targets WordPress.org (self-hosted) sites \u2014 it cannot be installed on WordPress.com.<\/p>\n\n<p><strong>Disclaimer.<\/strong> Buildli is an independent product and is not affiliated with, endorsed by, or sponsored by the WordPress Foundation, Automattic, or any other entity.<\/p>\n\n<h3>How it works<\/h3>\n\n<ol>\n<li>You connect your site at buildli.app using WordPress's built-in Application Passwords flow \u2014 you're redirected to your own admin, approve, and come back.<\/li>\n<li>The plugin is auto-installed and stores a unique token.<\/li>\n<li>From then on, Buildli signs every request to your site with HMAC-SHA256 using that token.<\/li>\n<li>When you chat at buildli.app, the agent calls this plugin's REST endpoints to read and modify content on your behalf \u2014 only actions you approve.<\/li>\n<\/ol>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>The plugin does not call any third-party service on its own.<\/li>\n<li>On activation, it registers REST endpoints on your site at <code>\/wp-json\/buildli\/v1\/<\/code>.<\/li>\n<li>When you trigger changes from buildli.app, the content of the post or page you're editing is sent to the Buildli API (and onward to the underlying AI model) so the assistant can reason about it. This is disclosed in our Privacy Policy at https:\/\/buildli.app\/legal\/privacy.<\/li>\n<li>Site events (post created, plugin activated, theme switched) are sent as webhook notifications to buildli.app so the assistant's context stays fresh. You can disable webhooks in the plugin settings.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<p><strong>Automatic (recommended):<\/strong><\/p>\n\n<ol>\n<li>Sign up at buildli.app<\/li>\n<li>Paste your site URL and click \"Connect with WordPress\"<\/li>\n<li>Approve the connection in your WP admin<\/li>\n<li>Done \u2014 the plugin is installed and configured automatically.<\/li>\n<\/ol>\n\n<p><strong>Manual:<\/strong><\/p>\n\n<ol>\n<li>Download the latest release ZIP from buildli.app or wordpress.org<\/li>\n<li>In WP admin, go to Plugins \u2192 Add New \u2192 Upload Plugin, select the ZIP, click Install Now, then Activate<\/li>\n<li>Go to Settings \u2192 Buildli and paste the token shown in your buildli.app dashboard<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20page%20builders%20like%20elementor%20or%20divi%3F\"><h3>Does this work with page builders like Elementor or Divi?<\/h3><\/dt>\n<dd><p>Yes for most read operations and for posts using Gutenberg. Direct edits to Elementor\/Divi post_content are blocked by the plugin because they'd break the builder's proprietary data.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20agent%20breaks%20my%20site%3F\"><h3>What happens if the agent breaks my site?<\/h3><\/dt>\n<dd><p>Every write-tool action creates a WordPress revision before it runs. In the chat UI, each action has an Undo button that restores the revision. If something goes catastrophically wrong, your \"recovery URL\" \u2014 shown once at setup \u2014 disables the connector with a single click, even if you can't reach your admin.<\/p><\/dd>\n<dt id=\"does%20buildli%20store%20my%20content%3F\"><h3>Does Buildli store my content?<\/h3><\/dt>\n<dd><p>The chat conversation is stored at buildli.app so you can pick up where you left off. Post\/page content is sent to the AI only at the moment you ask for an edit; it is not retained for training. Enterprise customers can request Zero Data Retention.<\/p><\/dd>\n<dt id=\"can%20i%20disconnect%20the%20site%3F\"><h3>Can I disconnect the site?<\/h3><\/dt>\n<dd><p>Yes \u2014 deactivate the plugin, or delete the site in your Buildli dashboard. Either cuts the connection immediately.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.4<\/h4>\n\n<ul>\n<li>Security: tool exception messages are now stripped of HTML before being returned to the cloud, preventing reflected-XSS via malformed third-party plugin error messages.<\/li>\n<li>Security: capabilities endpoint now returns only currently-active plugins. Inactive plugins are no longer enumerated in the response.<\/li>\n<li>Cleanup: added <code>uninstall.php<\/code> so the API token, recovery-token hash, and legacy plaintext recovery-token are deleted when the plugin is removed (not just deactivated). Multisite-aware.<\/li>\n<\/ul>\n\n<h4>0.4.3<\/h4>\n\n<ul>\n<li>Security: recovery token is now stored as a SHA-256 hash in <code>wp_options<\/code> instead of plaintext. Sites upgrading from 0.4.2 or earlier will see the legacy plaintext value cleaned up automatically the next time the cloud handshakes with the connector.<\/li>\n<\/ul>\n\n<h4>0.4.2<\/h4>\n\n<ul>\n<li>Multilingual support: new i18n adapter detects WPML or Polylang and exposes <code>i18n.list_languages<\/code> and <code>i18n.get_translations<\/code> so the AI can locate translated counterparts of any post and edit them through the regular post tools.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Privacy Policy URL in readme.txt now points to the correct path (<code>\/legal\/privacy<\/code>).<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Universal adapter framework \u2014 Buildli now natively edits posts on Gutenberg, Elementor, WooCommerce, Yoast \/ Rank Math \/ AIOSEO, ACF, Divi, Bricks Builder, and Beaver Builder.<\/li>\n<li>Adapter-aware tool dispatch: one tool name (<code>update_component<\/code>) automatically routes to the right builder per post.<\/li>\n<li>New <code>\/buildli\/v1\/capabilities<\/code> endpoint reports the active builders and integrations on the site so the AI knows what it can edit.<\/li>\n<li>Snapshot\/restore now captures builder-specific meta (Elementor <code>_elementor_data<\/code>, Beaver <code>_fl_builder_data<\/code>, etc) so undo is faithful across builders.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Plugin Check compliance: wrapped all <code>throw new Exception()<\/code> messages in <code>esc_html()<\/code> \/ <code>esc_html__()<\/code>.<\/li>\n<li>Sanitized <code>$_SERVER['REMOTE_ADDR']<\/code> with <code>wp_unslash()<\/code> + <code>sanitize_text_field()<\/code> in the recovery rate limiter.<\/li>\n<li>Shortened the <code>readme.txt<\/code> short description to fit the 150-character limit.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Renamed plugin to Buildli; new REST namespace <code>buildli\/v1<\/code> and HTTP signature headers <code>X-Buildli-*<\/code>.<\/li>\n<li>All code prefixes, options, and constants updated to the <code>buildli_<\/code> \/ <code>BUILDLI_<\/code> prefix per WordPress.org guidelines.<\/li>\n<li>Recovery page styles moved to a registered stylesheet (no inline <code>&lt;style&gt;<\/code>).<\/li>\n<li>Removed <code>load_plugin_textdomain()<\/code> call (handled automatically since WP 4.6).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Added <code>\/setup<\/code> endpoint for one-click connection via Application Passwords.<\/li>\n<li>Added <code>revert_to_revision<\/code> and <code>delete_post<\/code> tools so in-chat undo can restore prior post states.<\/li>\n<li>Added site-event webhooks so manually-made changes keep the agent's context fresh.<\/li>\n<li>Added <code>\/health<\/code> and <code>read_site_info<\/code> improvements.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Talk to your WordPress site. Buildli&#039;s AI chat creates posts, edits pages, manages media, and rolls back any change safely.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/305710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=305710"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpagentapp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=305710"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=305710"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=305710"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=305710"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=305710"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=305710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}