Clockwork Renegade is the official open-source, GPL-2.0-or-later edition of the Clockwork Companion plugin designed for distribution on the official WordPress.org Plugin Directory.
While private Clockwork Companion is distributed via SSH tarball push or direct zip downloads for managed infrastructure, Clockwork Renegade provides WordPress site owners with a zero-friction, standard 1-click install directly from the WordPress plugin search directory.
Key Differences: Renegade vs Companion
| Feature | Private Companion (companion) |
Clockwork Renegade (renegade) |
|---|---|---|
| Distribution | Private zip / SSH mu-plugin push (~/Projects/clockwork-companion) |
Official WordPress.org Plugin Directory (~/Projects/clockwork-renegade) |
| License | Proprietary / Internal | GPL-2.0-or-later |
| REST Namespace | /wp-json/clockwork/v1/ |
/wp-json/clockwork-renegade/v1/ |
| Route Prefix & Nonce | clockwork_ |
clockwork_renegade_ |
Arbitrary Remote Code (eval) |
Supported (CodeSnippetRoute.php for internal rescue operations) |
Completely Removed (Strict WordPress.org Guideline compliance; zero eval() on remote payloads) |
| Plugin Updates | Self-hosted release tarballs / SSH push | WordPress Core official updater via WordPress.org SVN repository |
| Pairing UI | Tools → Clockwork Control (mu-plugin) | Clockwork → Connection (admin.php?page=clockwork-connection) |
| Update Exceptions & Transparency | /wp-json/clockwork/v1/update-exceptions (wp_options['clockwork_update_exceptions']) |
/wp-json/clockwork-renegade/v1/update-exceptions (identical option storage & wp-admin Update coverage submenu) |
WordPress.org Guideline Compliance
Clockwork Renegade adheres to all WordPress.org plugin review requirements:
- Zero Remote Execution (Guideline 6 & Security Rules):
- The private Companion
CodeSnippetRoute(which allows executing arbitrary PHP code via remote REST call) is completely omitted from Clockwork Renegade. - Guarded by automated
DriftGuardTestasserting that noeval()calls exist anywhere in the codebase.
- The private Companion
- Affirmative Consent & 3rd-Party Service Disclosures (Guideline 6 & 7):
- Full service terms, privacy policy links, and data handling explanations are documented in both
readme.txtandsrc/Admin/Pages/ConnectionPage.php. - The plugin does not connect to Clockwork Control until the site administrator explicitly copies the Connection Key and connects their dashboard.
- Full service terms, privacy policy links, and data handling explanations are documented in both
- Core Updater Exclusivity (Guideline 8):
- Contains no external update checkers, background auto-installers, or remote tarball pulls. Updates are delivered exclusively via the official WordPress.org updater.
- Clean Uninstallation (Guideline 9):
- Includes a comprehensive
uninstall.phpscript that deletes allclockwork_renegade_*options, transients, and any custom action log or security sample tables upon deletion.
- Includes a comprehensive
- Core Privacy Policy Guide:
- Integrates with WordPress core’s
wp_add_privacy_policy_content()to provide suggested privacy policy text for site administrators.
- Integrates with WordPress core’s
256-Bit Cryptographic Connection Key & Pairing
Communication between Clockwork Control and a WordPress site requires explicit administrator enrollment via a 256-bit cryptographic Connection Key:
- Entropy & Generation: Generated via PHP’s cryptographically secure pseudo-random number generator (
random_bytes(32)), producing a 256-bit (32-byte) secret encoded as a 64-character hex string. - Connection Key Format: A base64-encoded JSON envelope containing the site URL, the 256-bit shared secret, and the variant tag:
{ "url": "https://client-site.com", "secret": "d4f3a8b2... (256-bit hex secret)", "variant": "renegade" } - Admin Location: Displayed in WordPress under Clockwork → Connection (
admin.php?page=clockwork-connection), featuring a 1-click clipboard copy button, connection status badge (Active & MonitoredvsUnlinked), and manual credential reveals. - Affirmative Consent (WordPress.org Guideline 7): Zero network calls, background pings, or data transmissions occur upon plugin activation. Communication begins solely when an authorized site administrator copies the Connection Key and submits it in Clockwork Control’s Sites → + Add Site modal.
- Optional Constant Pinning: For hardened production sites, operators can define
CLOCKWORK_RENEGADE_SECRETinwp-config.php, isolating the 256-bit secret fromwp_optionsand database backups.
Clockwork Control Integration
Clockwork Control seamlessly supports both Companion variants through dynamic route negotiation and configuration.
Data Model
The sites table includes a companion_variant column:
- Default:
'companion' - Renegade:
'renegade' - Model helpers on
App\Models\Site:isRenegade(): boolisClassicCompanion(): boolpluginOnlyHostLabel(): string— Renegade Only or Companion Only, used as the host pill on/sitesand the site header for custom (no-server) sites.
Dynamic REST Client & HMAC Signing
App\Services\Companion\ClockworkCompanionClient automatically computes URLs and HMAC signatures based on the site’s companion_variant:
- Uses
ClockworkCompanionClient::routeNamespace()(clockwork-renegade/v1vsclockwork/v1). - HMAC-SHA256 signatures are computed using the matching route URI string:
METHOD + "\n" + "/wp-json/" + routeNamespace + route + "\n" + timestamp + "\n" + body - Transparent retry mechanics re-sign with fresh timestamps to prevent replay detection failures.
Dual-Variant Enrollment Handshake
When an operator enrolls a new site under Sites → + Add Site (SitesController::store()):
- Connection Key Decoding: Decodes the base64 connection payload containing
url,secret, and optionalvariant: 'renegade'. - Variant Probing:
- If the connection key explicitly specifies
variant: 'renegade', Control probes/wp-json/clockwork-renegade/v1/healthfirst. - If manual credentials or standard keys are provided, Control probes with automatic fallback across
['companion', 'renegade'].
- If the connection key explicitly specifies
- Automatic Variant Assignment:
- If the Renegade endpoint returns 200 OK, the site is created with
companion_variant = 'renegade'. - If Classic Companion returns 200 OK,
companion_variant = 'companion'. - If neither endpoint responds, the operator receives an informative HTTP 404 message indicating neither variant was found.
- If the Renegade endpoint returns 200 OK, the site is created with
Enrollment matches SpinupWP/Pressable imports for nightly plugin updates (auto_updates_paused = false) and kicks a one-shot Sucuri SiteCheck + Companion malware scan in the background so the Security tab is not empty until the next 02:00 ET cron. WP core checksums stay SSH/Pressable-only.
Download Hub
Operators can download the latest release .zip packages for both editions directly from Clockwork Control at Plugin Downloads (route('downloads.index')). The hub is directly linked from:
- Sites List (
/sitesheader button) - Add Site (
/sites/createconnection banner) - Global Settings Hub (
/settingsFleet Policies section)
