Skip to main content

Plugin System Overview

Conductor’s plugin system enables you to extend the framework with custom operations, third-party integrations, and specialized functionality without modifying the core codebase.

What Are Plugins?

Plugins are packages that extend Conductor’s capabilities by:
  • Adding custom operations (e.g., plasmic:render, unkey:validate)
  • Integrating external services (Resend, Twilio, Plasmic, Payload CMS)
  • Providing specialized functionality (authentication, data fetching, rendering)
  • Working universally across all contexts (ensembles, pages, forms, APIs, webhooks)

Plugin Ecosystem

Core Package

@ensemble-edge/conductor - The core framework (native functionality)
  • All AI providers (Anthropic, OpenAI, Cloudflare AI)
  • All agent patterns (Think, Email, SMS, PDF, HTML, Data, API)
  • Core authentication (Bearer, API Key, Cookie)
  • Built-in operations (http, transform, convert, code)

Plugin Packages

@conductor/* - Optional plugin packages for specific integrations Planned Plugins:
  • @conductor/unkey - Unkey authentication and API key management
  • @conductor/resend - Resend email service
  • @conductor/twilio - Twilio SMS service
  • @conductor/plasmic - Plasmic visual builder integration
  • @conductor/payload - Payload CMS integration
  • @conductor/stripe - Stripe payments

Two Plugin Patterns

Conductor supports two plugin patterns to balance simplicity and power:

1. Functional Plugins (Simple)

For lightweight plugins that only need to transform configuration:
Use Cases:
  • Adding operations to the registry
  • Modifying configuration
  • Simple hooks without async setup
  • Lightweight integrations

2. Lifecycle Plugins (Complex)

For plugins that need async initialization, external connections, or complex setup:
Use Cases:
  • Database connections
  • External API initialization
  • Complex state management
  • Plugins with cleanup requirements

Global Plugin Registry

All plugins register their operations with the global PluginRegistry:

Universal Operations

Once registered, operations work in all contexts:

Plugin Context

Plugins receive a PluginContext during initialization:

Operation Discovery

Operations can be discovered and filtered:

Example: Plasmic Plugin

Here’s how a Plasmic plugin might work:
Usage in Ensembles:

Creating Your Own Plugin

See the following guides:

Official Plugins

Browse the official plugin ecosystem:

Benefits

Universal Operations: Register once, use everywhere (ensembles, pages, forms, APIs, webhooks) Type Safe: Full TypeScript support with type guards and helpers Discoverable: Operations include metadata for documentation and discovery Two Patterns: Simple functional plugins or complex lifecycle plugins Edge Native: Plugins work on Cloudflare Workers edge network Independent Versioning: Each plugin has its own version and release cycle

Next Steps