Skip to content

Plugins

dEXploarer edited this page Mar 9, 2026 · 1 revision

Plugins

Milady loads plugins at runtime via elizaOS. Plugins extend the agent with additional tools, connectors, and capabilities. The plugin system is managed through the plugins config block and the milady plugins CLI.


Plugin loading

Plugins are resolved and loaded dynamically at agent startup. The @elizaos/plugin-plugin-manager package handles runtime installation and management.

The plugins config block controls what is loaded:

{
  "plugins": {
    "enabled": true,
    "allow": ["telegram", "discord"],
    "deny": ["twitch"],
    "load": {
      "paths": ["/path/to/my-local-plugin"]
    }
  }
}
  • allow — optional allowlist of plugin IDs to load (all others blocked)
  • deny — plugins to explicitly block, takes priority over allow
  • load.paths — additional local paths to scan for plugins

CLI plugin commands

milady plugins list           # list installed plugins
milady plugins add <name>     # install a plugin
milady plugins remove <name>  # remove a plugin

Built-in elizaOS plugins

The following @elizaos/plugin-* packages are included as dependencies in package.json:

Plugin Purpose
plugin-anthropic Anthropic/Claude model provider
plugin-openai OpenAI model provider
plugin-groq Groq model provider
plugin-ollama Ollama local model provider (see known issue in Model Providers)
plugin-openrouter OpenRouter model aggregator
plugin-google-genai Google Gemini models
plugin-telegram Telegram bot connector
plugin-discord Discord bot connector
plugin-twitch Twitch chat connector
plugin-browser Browser automation (Puppeteer/CDP)
plugin-shell Shell command execution
plugin-pdf PDF reading
plugin-vision Vision/image analysis
plugin-knowledge Document knowledge base
plugin-local-embedding Local embedding model
plugin-sql Database (PGLite/PostgreSQL, handles migrations)
plugin-agent-skills elizaOS skills system
plugin-agent-orchestrator Multi-agent orchestration
plugin-cron Scheduled tasks
plugin-todo Task/todo management
plugin-form Form generation
plugin-experience Agent experience and memory
plugin-personality Agent personality system
plugin-rolodex Contact and relationship tracking
plugin-secrets-manager Secret management
plugin-trajectory-logger Conversation trajectory logging
plugin-elizacloud ElizaCloud integration
plugin-edge-tts Edge TTS text-to-speech
plugin-elevenlabs ElevenLabs TTS
plugin-computeruse CUA (computer use agent)
plugin-claude-code-workbench Claude Code workbench integration
plugin-cli CLI tools for the agent
plugin-trust Trust scoring

Workspace plugins (packages/*)

The packages/ directory contains additional plugins specific to Milady:

Package Purpose
@milady/plugin-bnb-identity BNB Chain identity
@milady/plugin-pumpfun-streaming Pump.fun streaming
@milady/plugin-retake Retake integration
@milady/plugin-streaming-base Base streaming utilities
@milady/plugin-twitch-streaming Twitch streaming
@milady/plugin-x-streaming X (Twitter) streaming
@milady/plugin-youtube-streaming YouTube streaming

Plugin slots

The plugins.slots config allows you to control which plugin owns specific system slots:

{
  "plugins": {
    "slots": {
      "memory": "plugin-name"
    }
  }
}

Set memory to "none" to disable memory plugins entirely.


Plugin registry

Milady can fetch plugin metadata from registry endpoints. Additional registry endpoints can be configured:

{
  "plugins": {
    "registryEndpoints": [
      {
        "label": "My Registry",
        "url": "https://my-registry.example.com/plugins.json",
        "enabled": true
      }
    ]
  }
}

Disabling a specific plugin

{
  "plugins": {
    "entries": {
      "telegram": {
        "enabled": false
      }
    }
  }
}

NODE_PATH and plugin resolution

Milady sets NODE_PATH in three places (src/runtime/eliza.ts, scripts/run-node.mjs, apps/app/electron/src/native/agent.ts) to ensure dynamic plugin imports resolve correctly when running from source or as an installed package. Do not remove this code. See docs/plugin-resolution-and-node-path.md in the repo for the full explanation.

A Bun exports patch (scripts/patch-deps.mjs) also fixes Cannot find module errors for plugins whose published package.json points exports["."].bun at a missing ./src/index.ts.

Clone this wiki locally