Skip to main content

Plugin System

The Ever Works Platform uses a capability-driven plugin architecture where all external integrations — AI providers, search engines, deployment targets, screenshot services, and more — are implemented as self-contained plugins.

Instead of hardcoding providers, the platform asks "give me a plugin that can do X" and the system resolves which plugin to use based on admin, user, and work-level configuration.

How It Works

  1. Plugins declare capabilities — Each plugin implements one or more capability interfaces (e.g., ai-provider, search, deployment).
  2. Facades route requests — When the platform needs to perform an AI completion or a web search, a facade service resolves the active plugin for the current scope.
  3. Settings cascade — Plugin configuration follows a three-tier hierarchy: work settings override user settings, which override admin defaults.
  4. Discovery is automatic — Plugins in packages/plugins/ are discovered at startup. No manual registration is needed.

Built-in Plugins

The platform ships with 39 plugins across multiple categories:

CategoryPluginsCapability
AI ProvidersOpenAI, Anthropic, Google Gemini, Groq, Mistral, Ollamaai-provider
AI GatewaysOpenRouter, Vercel AI Gatewayai-provider
SearchBrave, Tavily, SerpAPI, Exa, Perplexity, Bright Data, Firecrawl, Valyu, Linkupsearch
Git ProviderGitHubgit-provider
DeploymentVerceldeployment
ScreenshotScreenshotOne, URLBox, Scrapflyscreenshot
Content ExtractorLocal HTML, Notion, Jina, PDF Extractorcontent-extractor
Data SourceApifydata-source
PipelineStandard Pipeline, Agent Pipeline, Claude Code, Claude Managed Agent, Codex, Gemini Generator, OpenCode, Make.com, SIM AI, Zapierpipeline
Prompt ManagementLangfuseprompt-provider
UtilityComparison Generatorform-schema-provider

See Built-in Plugins for details on each plugin and its configuration.

Plugin SDK

The Plugin SDK (@ever-works/plugin) is a standalone TypeScript package with no NestJS dependencies. It provides:

  • IPlugin interface — The contract every plugin implements
  • Base classesBasePlugin, BaseAiProvider, BaseGitProvider, BasePipelineStep
  • 15 capability interfaces — Typed contracts for each plugin category
  • Settings types — JSON Schema with extensions for secrets, environment variables, and scoping
  • Plugin context — Logger, cache, HTTP client, events, and settings access

See Architecture for the full technical breakdown.

Key Concepts

Capabilities

A capability is a specific function a plugin can perform. One plugin can provide multiple capabilities — for example, the Tavily plugin provides both search and content-extractor.

Available capabilities:

CapabilityDescription
ai-providerChat completions, embeddings, structured output
searchWeb search queries
git-providerRepository management, cloning, pushing
deploymentSite deployment and status
screenshotWebsite screenshot capture
content-extractorURL content extraction
data-sourceExternal data querying
oauthOAuth authentication flows
pipelineGeneration pipeline (Standard, Agent, Claude Code, Claude Managed Agent, Codex, Gemini, OpenCode, Make.com, SIM AI, Zapier)
prompt-providerExternal prompt management (e.g. Langfuse)
form-schema-providerDynamic form schema generation for plugin UIs

Configuration Modes

Each plugin declares how it should be configured:

  • admin-only — Only admins can configure (system infrastructure plugins)
  • user-required — Users must provide their own credentials (e.g., API keys)
  • hybrid — Admin provides defaults, users can override

Scoped Resolution

Each work can use a different plugin per capability. For example:

  • Work A uses OpenAI for AI and Brave for search
  • Work B uses Anthropic for AI and Tavily for search

This is managed through the Settings System and the work-level plugin management UI.

Documentation

PageDescription
ArchitecturePlugin SDK, interfaces, lifecycle, bootstrap, facades
SettingsThree-tier settings, JSON Schema extensions, resolution
Creating a PluginStep-by-step guide for building a new plugin
Built-in PluginsAll 39 plugins with configuration details
API ReferenceREST endpoints for plugin management