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
- DAEMI starts and loads built-in tool graph
- Server scans
~/.daemi/plugin_config/for config files - For each valid config file, the corresponding plugin initializes
- Plugin registers its tool nodes in the tool graph
- 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
| Plugin | What it adds |
|---|---|
| SMTP 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.