Skip to main content

Plugins

Plugins extend DAEMI's tool graph with new capabilities. Where built-in tools handle generic tasks (web search, file I/O, code execution), plugins connect DAEMI to specific external systems — email, databases, communication platforms, and custom APIs.


How Plugins Work

DAEMI maintains a tool graph — a graph of 37+ built-in capability nodes. When you configure a plugin, it registers new nodes in this graph. Those nodes become available to all agents immediately, without a server restart.

Tool Graph (built-in)          Plugin Nodes (dynamic)
┌─────────────────────┐ ┌──────────────────────┐
│ web_search │ │ email_send │
│ read_file │ + │ email_read │
│ write_file │ │ email_search │
│ run_code │ └──────────────────────┘
│ ...34 more │
└─────────────────────┘

When an agent decides it needs to send an email, it calls email_send from the tool graph — it doesn't need to know it came from a plugin.


Plugin Configuration

Plugins are configured via JSON files in ~/.daemi/plugin_config/. Each plugin has its own file named {plugin_name}.json.

A plugin is active when its config file exists and is valid. Remove or rename the file to deactivate the plugin.

~/.daemi/
plugin_config/
email.json ← email plugin active
slack.json ← slack plugin active (if installed)

→ See Configuring Plugins for the full setup flow.


Plugin Lifecycle

  1. DAEMI starts and loads built-in tool graph
  2. Server scans ~/.daemi/plugin_config/ for config files
  3. For each valid config file, the corresponding plugin initializes
  4. Plugin registers its tool nodes in the tool graph
  5. Agents can now call those tools

If a plugin's config is invalid (missing required fields, bad credentials), DAEMI logs a warning and skips that plugin. The server still starts.


Available Plugins

PluginWhat it adds
EmailSMTP send, IMAP read/search
Web (built-in)Web search and fetch (no config needed)
Code (built-in)Python/JS execution sandbox (no config needed)

→ See Built-in Plugins for a complete list of what's available without any configuration.


Go Deeper