{"id":359809,"date":"2026-08-31T01:57:48","date_gmt":"2026-08-31T01:57:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/foundry-helper\/"},"modified":"2026-08-31T01:57:20","modified_gmt":"2026-08-31T01:57:20","slug":"foundry-helper","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/foundry-helper\/","author":14076325,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.2.0","stable_tag":"4.2.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Foundry Helper","header_author":"Mikey Beck","header_description":"Pair this site with the WP Foundry desktop app using a shared secret.","assets_banners_color":"","last_updated":"2026-08-31 01:57:20","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpfoundry.app","header_author_uri":"https:\/\/mikeybeck.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"4.2.0":{"tag":"4.2.0","author":"mikeywazowski","date":"2026-08-31 01:57:20","revision":3673286}},"upgrade_notice":{"4.2.0":"<p>This WordPress.org plugin now only pairs the site. Install the full helper from wpfoundry.app for remote management.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[563,14512],"plugin_category":[],"plugin_contributors":[270300],"plugin_business_model":[],"class_list":["post-359809","plugin","type-plugin","status-publish","hentry","plugin_tags-administration","plugin_tags-remote","plugin_contributors-mikeywazowski","plugin_committers-mikeywazowski"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/foundry-helper.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Foundry Helper is the WordPress.org pairing plugin for the <a href=\"https:\/\/wpfoundry.app\">WP Foundry<\/a> desktop app. It stores a shared secret on this site so you can add the site in WP Foundry. There is no central cloud service: pairing credentials stay on this site and in your local WP Foundry install.<\/p>\n\n<p>This directory plugin does <strong>not<\/strong> run WP-CLI, install or activate other plugins or themes, create backups, or update itself from GitHub.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Shows a Settings screen with the shared secret used to pair the site<\/li>\n<li>Exposes HMAC-authenticated REST endpoints used by WP Foundry to confirm the helper version and rotate the secret<\/li>\n<\/ul>\n\n<h4>Remote management<\/h4>\n\n<p>To manage plugins, themes, users, backups, and WP-CLI from the desktop app, install the full WP Foundry Helper from <a href=\"https:\/\/wpfoundry.app\">wpfoundry.app<\/a> or the project's GitHub repository. The full helper uses the same shared secret, so you do not need to re-pair the site.<\/p>\n\n<h4>Third-party service<\/h4>\n\n<p>This plugin is designed to be used with the WP Foundry desktop application:<\/p>\n\n<ul>\n<li>Site: <a href=\"https:\/\/wpfoundry.app\">https:\/\/wpfoundry.app<\/a><\/li>\n<li>The plugin does not phone home on page load. It only talks to WP Foundry when the desktop app (or another client that knows the shared secret) calls the REST API.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Foundry Helper from the Plugins screen.<\/li>\n<li>Go to <strong>Settings \u2192 Foundry Helper<\/strong>.<\/li>\n<li>Copy the shared secret and paste it into WP Foundry when adding this site.<\/li>\n<li>Test the connection from the desktop app.<\/li>\n<li>Optional: install the full helper from wpfoundry.app if you want remote management.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20manage%20my%20other%20plugins%3F\"><h3>Does this plugin manage my other plugins?<\/h3><\/dt>\n<dd><p>No. The WordPress.org listing only pairs the site. Install the full helper from wpfoundry.app to manage plugins, themes, and backups.<\/p><\/dd>\n<dt id=\"is%20the%20shared%20secret%20the%20same%20as%20a%20wordpress%20user%20password%3F\"><h3>Is the shared secret the same as a WordPress user password?<\/h3><\/dt>\n<dd><p>No. It is a site-wide pairing key stored in the WordPress options table. Anyone who has it can call the helper API as this site. Keep it private and regenerate it if it leaks.<\/p><\/dd>\n<dt id=\"why%20is%20remote%20management%20a%20separate%20plugin%3F\"><h3>Why is remote management a separate plugin?<\/h3><\/dt>\n<dd><p>WordPress.org plugins must not install arbitrary third-party plugin or theme zip files, run a remote WP-CLI shell, or self-update from GitHub. Those features stay in the separately distributed full helper.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.2.0<\/h4>\n\n<ul>\n<li>WordPress.org edition is pairing-only (shared secret, version check, secret rotation).<\/li>\n<li>Remote management moved to the full helper distributed from GitHub \/ wpfoundry.app.<\/li>\n<\/ul>\n\n<h4>4.1.1<\/h4>\n\n<ul>\n<li>Single plugin listing (legacy bootstrap is no longer a second plugin).<\/li>\n<li>Constants use the wpfoundry_ prefix expected by Plugin Check.<\/li>\n<\/ul>\n\n<h4>4.1.0<\/h4>\n\n<ul>\n<li>Directory-ready package: Foundry Helper name\/slug, license headers, readme, uninstall, and i18n.<\/li>\n<\/ul>\n\n<h4>4.0.6<\/h4>\n\n<ul>\n<li>Previous helper release used before WordPress.org packaging.<\/li>\n<\/ul>","raw_excerpt":"Pair this WordPress site with the WP Foundry desktop app using a shared secret.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359809","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=359809"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mikeywazowski"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359809"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359809"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359809"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359809"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359809"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}