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

Quick Start

You're a plugin developer. You know what you're doing. Here's the short version.

1. Add a Troy Header

In your main plugin file:

/**
 * Plugin Name: My Plugin
 * Version: 1.0.0
 * Troy: repo.example.com
 */

That's the only code change. Users with Troy Client will now receive updates from your server.

2. Create a Plugin Page on Troy Server

  1. Log into your Troy Server
  2. WP Admin → Repo Plugins → Add New Plugin
  3. Set the slug (must match your plugin folder name)
  4. Upload your ZIP or connect GitHub/WordPress.org via Integrations
  5. Publish

Don't share the ZIP directly:

If you email 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.

3. Distribute via Package

Create a Package on Troy Server:

  1. WP Admin → Repo Packages → Add New Package
  2. Add your plugin to the package
  3. Publish

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

  • Troy Client gets installed automatically
  • Your plugin gets installed
  • Future updates just work

The Package is tiny (~9KB) regardless of how big your plugin is. The actual plugin downloads happen on the user's server—not while they're sipping coffee on McDonald's WiFi.

That's It

  • Header tells Troy Client where to look
  • Plugin page hosts your releases
  • Package ensures users can actually receive updates

Everything else is optional complexity.

Optional: Dependencies

If your plugin requires another Troy plugin:

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

Troy Client will prompt users to install missing dependencies. See Dependencies.

Optional: Auto-Install Troy Client

If you can't use Packages, you can bundle code that installs Troy Client automatically:

But really, just use Packages.