5-Minute Setup

This is the condensed path from zero to distributing your plugin through Troy. For a full walkthrough, see the Troy Server docs.

There are only a few essential steps to get your plugin updates working with Troy—everything else is optional complexity:

  • Troy header tells Troy Client where to look.
  • Troy Server hosts your repository.
  • Block editor manages your releases.
  • Packages bundle everything for easy distribution.
1

Add a Troy Header

In your main plugin file, add the Troy header:

/**
 * Plugin Name: My Plugin
 * Version: 1.3.0
 * Troy: repo.example.org
 */

That's the only 'code' change your plugin needs. Once Troy Client sees that header, it pulls updates from your server.

2

Install Troy Server

Upload via Plugins → Add New → Upload Plugin, then activate. Everything you need gets installed automatically.

3

Create a Plugin Page on Troy Server

  1. WP Admin → Repo Plugins → Add New Plugin.
  2. Set the slug (this becomes your plugin folder name).
  3. Upload your ZIP manually, or connect GitHub/WordPress.org via Integrations.
  4. Publish the plugin page.

Don't share the ZIP directly:

If you send users a ZIP file, they might not have Troy Client installed—and they won't get future updates. Instead, create a Package on Troy Server (next step) and share that link.

4

Distribute via Package

Create a Package on Troy Server:

  1. WP Admin → Repo Packages → Add New Package.
  2. Add your plugins to the package with a single click.
  3. Publish the package page.

Now share your Package download link. When users install the Package:

  • Troy Client gets installed.
  • Your selected plugins get installed.
  • Future updates just work.

The Package is tiny (~9KB) regardless of how big your plugins are. The actual plugin downloads happen on the user's server network—not through spotty WiFi of their neighborhood café.

𒄈

Optional: Dependencies

If your plugin requires another Troy plugin:

/**
 * Troy: repo.example.org
 * Troy Dependencies: required-plugin
 */

Troy Client will automatically install missing dependencies. See Troy Dependencies.

Bundle your dependencies in a Package instead — it's simpler for users.

Optional: Embed Troy Client

If you can't only rely on Packages—for example, when retrofitting Troy onto an already-distributed plugin—you can bundle code that installs Troy Client automatically. See Troy Embed for a code snippet that installs Troy Client in the background.

Be sure to let your users know that Troy Client will be installed. Be transparent about it.