These docs have been generated using AI. Expect inaccuracies until we remove this banner.

Troy Daemon

Troy Client Daemon is a must-use (MU) plugin for enterprise environments. It guarantees Troy Client stays active and temporarily defers WordPress.org requests until Troy Client is ready.

For Site Managers Only:

Deploy only if you manage the site. This is not for third-party plugins to bundle.

What It Does

  1. Auto-installs Troy Client if missing
  2. Auto-activates Troy Client if inactive
  3. Defers WordPress.org requests until Troy Client loads
  4. Prevents deactivation through the admin UI

When to Use It

EnvironmentReason
Managed HostingEnsure all sites have Troy Client active
EnterpriseEnforce plugin update policies
AgenciesPrevent clients from breaking update flow

Installation

Place troy-client-daemon.php directly in /wp-content/mu-plugins/:

wp-content/
└── mu-plugins/
    └── troy-client-daemon.php  ← here, not in a subfolder

No activation required. MU plugins load automatically.

Quick install:

curl -O https://repo.deploytroy.org/plugin/get/troy-client-daemon.php
cp troy-client-daemon.php /path/to/wp-content/mu-plugins/

How It Works

The daemon hooks into muplugins_loadedβ€”the earliest point in WordPress's load sequence:

WordPress Initialization
    ↓
mu-plugins loaded ← Daemon runs here
    ↓
Is Troy Client active?
β”œβ”€ YES β†’ Normal operation
└─ NO β†’ Defer WP.org requests, install Troy Client
    ↓
plugins_loaded
    ↓
Troy Client runs, WP.org requests resume normally

The deferral is temporaryβ€”just long enough for Troy Client to load and filter outgoing requests.

Requirements

RequirementMinimum
WordPress6.7+
PHP7.4+

Source