Skip to content

Plugins and Skills

Plugins and Skills

OpenClaw extends agent capabilities through two mechanisms: plugins (tool providers that register with the gateway) and skills (markdown instruction files that give agents domain knowledge and workflows).

Plugins

Plugins register tools directly with the gateway. Unlike MCP servers (which require mcporter as a middleman), native plugins run in-process and give agents typed tool access without shell execution overhead.

Plugin Sources

SourceWhere They LiveHow to Install
StockBundled in OpenClaw’s dist/extensionsAlways available, enable in config
ClawHubDownloaded to ~/.openclaw/extensions/openclaw plugins install <id>
LocalGit repos on diskopenclaw plugins install -l /path or plugins.load.paths

Stock plugins ship with every OpenClaw install. ClawHub is the community marketplace. Local plugins load from your own repos, which makes development and iteration fast.

Stock Plugins (Bundled with OpenClaw)

These ship with OpenClaw and provide core infrastructure. You enable them in config but don’t need to install anything.

Channels

PluginIDPurpose
BlueBubblesbluebubblesiMessage bridge for DMs and group chats
WhatsAppwhatsappWhatsApp channel via Baileys (Web protocol)
TelegramtelegramNotification channel for exec approval prompts

BlueBubbles is the primary communication channel. WhatsApp adds a second messaging platform. Telegram delivers exec approval prompts to the owner’s phone.

Infrastructure

PluginIDPurpose
Memory (Core)memory-coreFile-backed memory search with vector + BM25 hybrid
BrowserbrowserHeadless browser automation for web interactions
OpenProseopen-proseStructured prose generation via /prose programs
Lossless Contextlossless-clawContext window compaction without losing information
Brave SearchbraveWeb search
ACPX RuntimeacpxACP runtime backend for configurable commands

Added Plugins (What I Installed)

These are the plugins I added to make the agent useful for managing my household. They fall into three groups: ClawHub marketplace plugins, and plugins I built or forked and load from local git repos.

From ClawHub

PluginIDVersionPurpose
Apple PIMapple-pim-cli3.4.2Calendars, reminders, contacts, mail via native Swift CLIs and EventKit
Parcelparcel-cli1.2.0Package delivery tracking via the Parcel macOS app
Trakttrakt-tools1.0.0Movie and TV show tracking via trakt.tv

Apple PIM uses a factory pattern where each agent gets its own config from its workspace directory (apple-pim/config.json). Restricted agents can have blocklists that hide private calendars or contact groups at the plugin level, without needing tool deny entries. It registers five tools: apple_pim_calendar, apple_pim_reminder, apple_pim_contact, apple_pim_mail, and apple_pim_system.

Parcel integrates with the Parcel macOS app to track deliveries. The agent can list active deliveries, add new tracking numbers, and check delivery status.

Trakt lets the agent log movies and shows the family watches, look up what’s trending, and check watch history.

Local (From Git Repos)

These plugins are loaded from local git repos via plugins.load.paths. Edits to the repo are live after a gateway restart.

PluginIDRepoPurpose
Fastmailfastmail-clifastmail-mcp-remote/openclaw-pluginEmail access: inbox, search, read, drafts, folders
Travel Hubtravel-hubtravel-hub/openclawTrip management, flights, hotels, ground transport
HomeClawhomeclawHomeClaw/openclawHomeKit smart home control via webhooks
Obsidian Vaultobsidian-vaultlobster/openclaw-plugins/obsidianNote management in Obsidian
Porsche Connectporsche-connect-cliporsche-connect/openclawVehicle status, climatization, location

Fastmail shells out to the fastmail CLI via execFile (no shell, no injection risk). The CLI handles MCP connection and auth via ~/.config/fastmail-cli/config.json. Tokens last 30 days.

Travel Hub manages trips, flights, hotel reservations, and ground transport. It connects to a remote MCP server via mcporter. Restricted agents access it through a wrapper script that only exposes the travel-hub CLI.

HomeClaw receives HomeKit state-change webhooks, classifies events (door opened, motion detected, temperature change), and notifies the main agent via agent-to-agent messaging when something meaningful happens. It runs as a dedicated webhook agent.

Obsidian Vault provides read/write access to the owner’s Obsidian vault for note management, daily logs, and knowledge capture.

Porsche Connect provides vehicle status, remote climatization, and location tracking via the Porsche Connect API.

Skills

Skills are markdown files (SKILL.md) that inject domain knowledge and workflows into the agent’s context when triggered. Unlike plugins, skills don’t register tools. Instead, they teach the agent how to use existing tools for specific tasks.

Skills live in two places:

  • Shared skills (openclaw-skills/) are accessible to all agents
  • Agent-specific skills (openclaw-agents/<id>/skills/) are scoped to one agent

Shared Skills

Available to all agents in the gateway.

SkillPurpose
Apple PIMCalendar, reminder, and contact query patterns and best practices
BlueBubbles HealthDiagnostics and troubleshooting for the iMessage bridge
CronCreate, edit, and manage scheduled cron jobs
Eight SleepEight Sleep pod control (temperature, schedules, sleep data)
Find MyQuery Find My locations for devices and people
ObsidianRead, edit, search, and create notes in Obsidian vault
OpenClaw CLICLI reference for openclaw commands and subcommands
SonosSpeaker control (play, pause, volume, grouping)
TrafilaturaExtract clean article text from web pages
Travel HubTrip management patterns and tool usage
Update DocsUpdate changelog and project documentation after completing work

Agent-Specific Skills (Main Agent)

Scoped to the primary agent only.

SkillPurpose
Auto-DreamCognitive memory consolidation via periodic “dream cycles” (daily cron at 4 AM). Scans daily logs, extracts decisions and lessons, routes to structured memory layers with importance scoring and forgetting curves. Community skill by MyClaw.ai.
Apple MailApple Mail notification handling and email routing
Blue BottleBlue Bottle Coffee subscription management (skip, pause, status)
Eight SleepEight Sleep pod commands specific to the owner’s preferences
FlightRadarReal-time aircraft tracking via FlightRadar24 API
Travel HubAgent-specific trip concierge patterns and briefing programs
Walking MapBuild walking routes with Google Maps links and timing buffers
WhatsAppWhatsApp channel management and troubleshooting
Update DocsAgent-scoped doc update workflow

How Skills Work

A skill is a directory with a SKILL.md file containing frontmatter (trigger conditions, description) and a markdown body (instructions, examples, tool usage patterns). When the agent encounters a matching trigger, the skill content is injected into context.

openclaw-skills/
└── sonos/
└── SKILL.md # Trigger: "sonos", "speaker", "music", "play"

Skills can also contain supporting files (data, templates, scripts) that the agent references during execution.

Configuration

Plugin Allowlist

The plugins.allow array acts as a security gate. Only listed plugin IDs can load:

{
"plugins": {
"allow": [
"apple-pim-cli",
"fastmail-cli",
"bluebubbles",
"telegram",
"memory-core",
"browser",
"travel-hub",
"parcel-cli",
"homeclaw",
"trakt-tools",
"porsche-connect-cli",
"obsidian-vault",
"open-prose",
"lossless-claw",
"brave",
"acpx",
"whatsapp"
]
}
}

Without an allowlist, all discovered plugins auto-load. Always set plugins.allow to explicit trusted IDs.

Local Plugin Paths

{
"plugins": {
"load": {
"paths": [
"/path/to/Apple-PIM-Agent-Plugin/openclaw",
"/path/to/fastmail-mcp-remote/openclaw-plugin",
"/path/to/travel-hub/openclaw",
"/path/to/HomeClaw/openclaw",
"/path/to/lobster/openclaw-plugins/obsidian",
"/path/to/porsche-connect/openclaw"
]
}
}
}

Each path points to a directory with the plugin’s package.json and entry point.

Plugin Entries

Individual plugin config goes in plugins.entries:

{
"plugins": {
"entries": {
"fastmail-cli": {
"enabled": true,
"config": {
"cliCommand": "fastmail",
"autoDiscover": true
}
},
"apple-pim-cli": {
"enabled": true,
"config": {}
}
}
}
}

Set enabled: false to disable a plugin without removing it from the allowlist.

Per-Agent Tool Policies

Plugins register tools that any agent can call by default. Use per-agent tools.deny to restrict access:

{
"agents": {
"list": {
"group-agent": {
"tools": {
"deny": ["fastmail_*", "homeclaw_*"]
}
}
}
}
}

This denies the group chat agent access to all Fastmail and HomeClaw tools. Combined with Apple PIM’s factory config pattern, you get defense-in-depth: tool policy controls which agents can call a plugin, and the plugin’s own config controls what data it exposes.

See Multi-Agent Architecture for the full tool policy design.

Installing Plugins

From ClawHub

Terminal window
openclaw plugins install apple-pim-cli

From Local Path

Terminal window
openclaw plugins install -l /path/to/plugin-repo

Verify

Terminal window
# List all plugins with load status
openclaw plugins list
# Check a specific plugin
openclaw plugins list | grep apple-pim

After installing or changing plugin config, restart the gateway:

Terminal window
openclaw gateway restart

Troubleshooting

Plugin Not Loading

Check that the plugin ID is in plugins.allow. Without it, the plugin is discovered but blocked.

”plugins.allow is empty” Warning

This means any discovered plugin will auto-load. Set plugins.allow to an explicit list of trusted IDs.

Plugin Tools Not Available to Agent

Check the agent’s tools.deny list. Also verify the plugin is listed in plugins.entries with enabled: true.

ClawHub Plugin Version Mismatch

Terminal window
# Check installed version
openclaw plugins list | grep parcel
# Update to latest
openclaw plugins install parcel-cli