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
- Plugins declare capabilities — Each plugin implements one or more capability interfaces (e.g.,
ai-provider,search,deployment). - 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.
- Settings cascade — Plugin configuration follows a three-tier hierarchy: work settings override user settings, which override admin defaults.
- 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:
| Category | Plugins | Capability |
|---|---|---|
| AI Providers | OpenAI, Anthropic, Google Gemini, Groq, Mistral, Ollama | ai-provider |
| AI Gateways | OpenRouter, Vercel AI Gateway | ai-provider |
| Search | Brave, Tavily, SerpAPI, Exa, Perplexity, Bright Data, Firecrawl, Valyu, Linkup | search |
| Git Provider | GitHub | git-provider |
| Deployment | Vercel | deployment |
| Screenshot | ScreenshotOne, URLBox, Scrapfly | screenshot |
| Content Extractor | Local HTML, Notion, Jina, PDF Extractor | content-extractor |
| Data Source | Apify | data-source |
| Pipeline | Standard Pipeline, Agent Pipeline, Claude Code, Claude Managed Agent, Codex, Gemini Generator, OpenCode, Make.com, SIM AI, Zapier | pipeline |
| Prompt Management | Langfuse | prompt-provider |
| Utility | Comparison Generator | form-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:
IPlugininterface — The contract every plugin implements- Base classes —
BasePlugin,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:
| Capability | Description |
|---|---|
ai-provider | Chat completions, embeddings, structured output |
search | Web search queries |
git-provider | Repository management, cloning, pushing |
deployment | Site deployment and status |
screenshot | Website screenshot capture |
content-extractor | URL content extraction |
data-source | External data querying |
oauth | OAuth authentication flows |
pipeline | Generation pipeline (Standard, Agent, Claude Code, Claude Managed Agent, Codex, Gemini, OpenCode, Make.com, SIM AI, Zapier) |
prompt-provider | External prompt management (e.g. Langfuse) |
form-schema-provider | Dynamic 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
| Page | Description |
|---|---|
| Architecture | Plugin SDK, interfaces, lifecycle, bootstrap, facades |
| Settings | Three-tier settings, JSON Schema extensions, resolution |
| Creating a Plugin | Step-by-step guide for building a new plugin |
| Built-in Plugins | All 39 plugins with configuration details |
| API Reference | REST endpoints for plugin management |