Plugins
Plugins add focused capabilities: weather, news, email, custom APIs, browser automation, and more. One plugin = one feature. Built-in and external plugins make HomeClaw extensible and more powerful.
Want to write your own? See Writing plugins and skills for a guide to building plugins (built-in and external) and skills, with examples and a future plugin/skill marketplace.
Built-in plugins (Python)
- Live in
plugins/<Name>/with plugin.yaml (id, description, capabilities), config.yml (API keys, defaults), and plugin.py (class extendingBasePlugin). Core discovers them at startup. - Examples: Weather, News, Mail. The LLM sees the plugin list and calls route_to_plugin(plugin_id) when the user intent matches.
External plugins (any language)
- External plugins can be written in any language—Node.js, Go, Java, Python, or whatever you prefer. There are many tools and ecosystems you can leverage.
- The system plugin homeclaw-browser (in
system_plugins/homeclaw-browser) is one external plugin, written in Node.js. It provides WebChat, browser automation, canvas, and nodes. You can run it with Core via system_plugins_auto_start inconfig/core.yml. - How it works: Run your plugin as a separate HTTP server that implements:
GET /health→ 2xxPOST /run(or your path) → body = PluginRequest JSON, response = PluginResult JSON.- Register with Core:
POST http://<core>:9000/api/plugins/registerwith plugin id, name, description,health_check_url,type: "http",config(base_url, path, timeout_sec), andcapabilities. After registration, Core routes to your server like built-in plugins.
Examples: Small samples in external_plugins/ — Python (Quote, Time), Node.js (Quote), Go (Time), Java (Quote). Full-featured: system_plugins/homeclaw-browser (Node.js — WebChat, browser automation, canvas, nodes) and a companion plugin (Python — same contract). See Writing plugins and skills, PluginsGuide.md, and HowToWriteAPlugin.md in the repo.