Skip to Content
ExtendingIntroduction

Extending Pandora

Plugins add new capabilities to your agent — tools it can use, specialist agents it can delegate to, and channels that connect it to external platforms. Everything is a package: drop it in, enable it, done.

New to plugin development? Start with Create Your First Plugin.

What You Can Build

TypeWhat it doesExample
ToolGives the agent a new abilityWeb search, weather lookup, file conversion
AgentA specialist sub-agent the main agent can delegate toDeep research, code review, data analysis
ChannelConnects Pandora to an external messaging platformTelegram, Discord, Slack

You can also build a custom chat frontend using the React SDK, or use the SDK Client directly for non-React apps.

Key Concepts

Plugin — A standalone package with a pandora.manifest.json at its root. Plugins are installed in the packages/ directory and must be explicitly enabled on the Plugins page.

Entry Point — The TypeScript file that exports a plugin’s capabilities. Tool entry points export a tools array, agent entry points export an agent object, and channel entry points export a factory function.

Sandbox — The security boundary for tool execution. Tools default to compartment mode (sandboxed, zero capabilities by default). Tools that need native dependencies use host mode (full process access). Agents and channels always run in host mode.

Namespacing — All tools, agents, and channels are registered as pluginId:entityId (e.g. @pandorakit/tavily-search:tavily_search). This prevents collisions between plugins.

Config Fields — User-configurable settings declared in the manifest. These render as form inputs on the Plugins page and are passed to your plugin at runtime.

Environment Variables — Secrets declared in the manifest’s envVars array. Set on the server, not through the UI. Plugins with missing required env vars are skipped at load time.

Plugin Lifecycle

A plugin goes through four stages:

  1. Discovery — Pandora scans packages/ for pandora.manifest.json files at startup
  2. Loading — Entry points are imported (compartment mode for sandboxed tools, host mode for agents/channels)
  3. Validation — Required env vars and config fields are checked
  4. Activation — Tools, agents, and channels are registered and become available

Plugins support hot reload — when configuration changes on the Plugins page, the runtime re-validates all plugins and rebuilds the registries without a server restart.

SymptomLikely cause
Plugin not listed on Plugins pageManifest missing, malformed, or not in packages/
Plugin listed but greyed outMissing required env vars or config fields
Plugin enabled but tools not availableEntry point exports don’t match expected shape, or sandbox permissions too restrictive

Check the server logs for [manifest] and [runtime] prefixed messages.

Choose Your Path

Build a Plugin

Build a Custom UI

Last updated on