features map on createOracleApp. One additional plugin — flows — ships in the package but is opt-in only: wire it in explicitly via the plugins array.
At a glance
| Name | Visibility | Default state | Required env | Depends on |
|---|---|---|---|---|
memory | always | Auto-detect | MEMORY_MCP_URL, MEMORY_ENGINE_URL | — |
portal | on-demand | On | — | — |
firecrawl | on-demand | Auto-detect | FIRECRAWL_MCP_URL | — |
domain-indexer | always | On | — | — |
composio | on-demand | Auto-detect | COMPOSIO_API_KEY | — |
sandbox | always | Auto-detect | SANDBOX_MCP_URL | — |
skills | always | On | — | sandbox |
editor | always | On | — | — |
agui | on-demand | On | — | — |
slack | silent | Auto-detect | SLACK_BOT_OAUTH_TOKEN | — |
tasks | on-demand | Auto-detect | REDIS_URL | — |
credits | silent | On unless DISABLE_CREDITS=true | — | — |
calls | silent | On (stub) | — | — |
user-preferences | always | On | — | — |
matrix-group-chats | on-demand | On | — | — |
flows | on-demand | Opt-in (not bundled) | — | editor Qi Flow engine |
Default state legend:
- On — loaded by default; opt out with
features: { name: false }. - Auto-detect — loaded when its env var is set; opt in by setting it, force on with
features: { name: true }, force off withfalse. - (stub) — placeholder entry in
BUNDLED_PLUGINSso feature toggles work; full implementation deferred.
How to use features
true forces on, false forces off, 'auto' runs the plugin’s autoDetect callback. Omitted keys default to 'auto'.
Browse
memory
Durable memory across conversations.
portal
Browser-side actions on the user’s Portal UI.
firecrawl
Web search and human-readable page scraping.
domain-indexer
IXO entity lookup — orgs, projects, DAOs, DIDs.
composio
SaaS tool catalog (Gmail, GitHub, Linear, …).
sandbox
Per-user Linux box for code execution.
skills
IXO skill capsule discovery.
editor
Read and edit BlockNote workspace pages.
agui
Render interactive UI components in the browser.
slack
Slack bot transport.
tasks
Schedule the agent to run on time-based triggers, in the background.
credits
Per-user credit enforcement and claim settlement.
calls
LiveKit call integration (stub — deferred).
user-preferences
Tone / format / language preferences.
matrix-group-chats
Gate the bot + per-room compacted memory for Matrix group rooms.
flows
Author and inspect multi-step Qi Flow templates (opt-in).
Wiring custom-constructed plugins
Some plugins accept constructor args. Pass a custom instance via theplugins array — the loader dedupes by name, so your instance overrides the bundled default.
credits genuinely needs a Redis client. Without one the enforcement middleware loads in pass-through mode and the settlement cron is skipped, so production must construct it explicitly:
editor works from env on its own. The bundled editorPlugin is fully functional: when no matrixClient is passed it lazily builds an internal Matrix client from the MATRIX_* admin env vars. Pass matrixClient only to reuse a client your app already keeps synced:
Read next
Plugin vs Skill
Why
skills + sandbox are paired in the catalog.Using bundled plugins
features patterns in depth.Environment variables
All env vars in one table.
Manifest schema
Every field a plugin manifest declares.