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.

Lobster’s live gateway runs ~68 enabled plugins out of ~94 discovered. The bulk of those are stock model-provider and infrastructure plugins that OpenClaw bundles and enables by default — Lobster doesn’t add anything special there. What’s worth documenting here is the handful of plugins specific to Lobster’s setup: locally-loaded repos that integrate with Apple PIM, Fastmail, Travel Hub, HomeKit, Obsidian, the car, and so on.

To see the full live list on your install:

Terminal window
openclaw plugins list # everything discovered
openclaw plugins list --enabled # just the active set

Plugin Sources

OpenClaw discovers plugins from four locations. The Lobster gateway runs 32 enabled plugins as of this writing, distributed across all four.

SourceWhere They LiveHow to Install
StockBundled in OpenClaw’s dist/extensions (/opt/homebrew/lib/node_modules/openclaw/dist/extensions/)Auto-loads with OpenClaw; toggled via plugins.entries[<id>].enabled
Extension dir~/.openclaw/extensions/openclaw plugins install <id> for some channel plugins (e.g. WhatsApp)
npm packages~/.openclaw/npm/node_modules/openclaw plugins install <npm-package> (e.g. @martian-engineering/lossless-claw)
LocalGit repos on diskplugins.load.paths in openclaw.json (or openclaw plugins install -l /path)

About plugins.allow: this array gates non-stock plugins. Stock plugins load regardless. If you set plugins.allow, any local or installed plugin not in the list is blocked from loading.

Stock Plugins Enabled on Lobster

OpenClaw bundles dozens of stock plugins (mostly model providers); Lobster enables only the ones it actively uses. The current 14 enabled stock plugins:

PluginPurpose
anthropicAnthropic model provider
openaiOpenAI model provider (Lobster’s default routes through here, currently openai/gpt-5.5)
imessageiMessage channel — backed by the local imsg CLI via channels.imessage.cliPath
telegramNotification channel for exec approval prompts
browserHeadless browser automation for web interactions
memory-coreFile-backed memory search with hybrid vector + BM25
memory-wikiObsidian-renderable wiki bridge over memory-core
active-memoryBounded blocking memory sub-agent that injects relevant memory into prompt context before eligible replies
open-proseStructured prose generation via /prose programs
oc-pathjsonc-aware config editing (the substrate behind oc_path_get / oc_path_set wrappers)
file-transferPath-allowlisted file moves (node-scoped)
elevenlabsTTS voice + SAG skill
canvasLive shared canvases (editor surface)
policyTool-policy enforcement primitives used by sandboxed agents

The remaining stock plugins (other model providers like Google/Mistral/Groq, voice/media plugins like Deepgram/Runway/Fal, telephony, etc.) are discovered but not enabled on Lobster. Run openclaw plugins list to see the full discovery list and toggle as needed.

Third-Party npm-Installed Plugins

Plugins installed into ~/.openclaw/npm/node_modules/ via openclaw plugins install <npm-package>. They don’t appear in plugins.allow or plugins.load.paths but show up in openclaw plugins list under their npm package name. Currently 4 enabled on Lobster:

Pluginnpm packageVersionPurpose
Lossless Claw@martian-engineering/lossless-claw0.11.2Context-window compaction — keeps long conversations coherent past the model’s effective window. martian-engineering/lossless-claw
ACPX@openclaw/acpx2026.5.22ACP runtime backend for configurable commands
Codex@openclaw/codex2026.5.22OpenAI Codex provider integration (used by the openai-codex auth profile)
Voice Call@openclaw/voice-call2026.5.22Twilio-backed voice-call origination for owner-initiated calls

Install or update: openclaw plugins install <package-name>.

Lobster-Specific Plugins (Locally Loaded)

These plugins live in git repos referenced from plugins.load.paths so edits are live after a gateway restart. Currently 13 loaded from local repos:

PluginIDRepo (relative to ~/GitHub/)VersionPurpose
Apple PIMapple-pim-cliApple-PIM-Agent-Plugin/openclaw3.7.10Calendars, reminders, contacts, mail via native Swift CLIs and EventKit
Fastmailfastmail-clifastmail-mcp-remote/openclaw-plugin3.1.4Email: inbox, search, read, drafts, folders
Travel Hubtravel-hubtravel-hub/openclaw2.0.1Trip management, flights, hotels, ground transport
Obsidian Vaultobsidian-vaultlobster/openclaw-plugins/obsidian1.1.1Read/write access to the owner’s Obsidian vault
Find Myopenclaw-findmyfindmy-cli0.1.0Find My locations for devices and people
Porsche Connectporsche-connect-cliporsche-connect/openclaw3.0.1Vehicle status, climatization, location
Trakttrakt-toolstrakt-plugin/openclaw1.9.0Movie and TV show tracking via trakt.tv
Parcelopenclaw-parcelopenclaw-parcel2.0.7Package delivery tracking via the Parcel macOS app
Instapaperinstapaper-cliopenclaw-instapaper1.1.5Reading list and highlight management
EasyPostopenclaw-easypostopenclaw-easypost1.0.3Shipping labels and rate quotes
Restaurantrestaurant-clirestaurant-cli0.1.18Reservations via Resy, OpenTable, Tock, SevenRooms
FaceTimefacetimeopenclaw-facetime2026.5.10-beta.1FaceTime audio/video bridge
WhatsAppwhatsapp(extension dir, not git)2026.5.22WhatsApp channel via Baileys (Web protocol). Installed under ~/.openclaw/extensions/whatsapp/ rather than plugins.load.paths.

Some additional plugins are present in the live config but intentionally not documented as user-facing features here (e.g. experimental/in-progress ones). See openclaw plugins list --enabled for the authoritative live list.

Plugin notes

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.

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 use a rolling 30-day sliding window — the Worker extends the expiry on every successful call and returns it in an X-Token-Expires-At header, which the CLI writes back to config.json. As long as the CLI runs at least once per 30 days, the token never expires; re-auth is only needed on outright revocation.

Travel Hub is a native plugin (registered as travel-hub in plugins.entries) that exposes travel_hub_* tools directly to the main agent. For restricted agents (family, group), a travel-hub mcporter wrapper script is allowlisted in ~/.openclaw/exec-approvals.json for read-only access paths where the native tool isn’t appropriate.

HomeClaw (HomeKit smart home control) does NOT register as a separately enumerated plugin in plugins.allow. It surfaces as homekit_* tools on the main agent via the HomeClaw bridge and skills — see HomeKit Control.

Obsidian Vault runs as a native local plugin loaded from ~/GitHub/lobster/openclaw-plugins/obsidian. The obsidian_* tools the main agent allows are registered directly by that plugin; there is no mcporter middleman.

Parcel integrates with the Parcel macOS app to track deliveries. The agent can list active deliveries, add new tracking numbers, and check delivery status. The published NPM package is openclaw-parcel; the plugin ID and plugins.entries key are both openclaw-parcel.

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

Trakt lets the agent log movies and shows the family watches, look up what’s trending, and check watch history. Loaded locally rather than from ClawHub.

Find My (openclaw-findmy, loaded from ~/GitHub/findmy-cli) queries Apple’s Find My network for device and person locations. Used by the main agent (and the location-aware skills) for “where is X” and family location queries. Pairs with the Find My shared skill for query patterns.

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
iMessage HealthDiagnostics and troubleshooting for the iMessage bridge
Browser UseHeadless browser automation patterns (navigate, click, extract)
CronCreate, edit, and manage scheduled cron jobs
DumpQuick-capture web content into the Obsidian knowledge base
Eight SleepEight Sleep pod control (temperature, schedules, sleep data)
Find MyQuery Find My locations for devices and people
Moshi Best PracticesGuidance for preparing a host for Moshi remote coding
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
YouTube TranscriptExtract transcripts from YouTube videos

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 gates non-stock plugins. Only listed plugin IDs from your local paths and ClawHub installs will load; stock plugins load regardless.

Lobster’s live plugins.allow (32 entries) spans all four source types — local repos, npm packages, the extension dir, and stock plugins it wants to explicitly enumerate for clarity:

{
"plugins": {
"allow": [
"acpx",
"active-memory",
"anthropic",
"apple-pim-cli",
"browser",
"canvas",
"codex",
"elevenlabs",
"facetime",
"fastmail-cli",
"file-transfer",
"imessage",
"instapaper-cli",
"lossless-claw",
"memory-core",
"memory-wiki",
"obsidian-vault",
"oc-path",
"open-prose",
"openai",
"openclaw-collaboration",
"openclaw-easypost",
"openclaw-findmy",
"openclaw-parcel",
"policy",
"porsche-connect-cli",
"restaurant-cli",
"telegram",
"trakt-tools",
"travel-hub",
"voice-call",
"whatsapp"
]
}
}

Without an allowlist, all discovered non-stock 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/lobster/openclaw-plugins/obsidian",
"/path/to/porsche-connect/openclaw",
"/path/to/trakt-plugin/openclaw",
"/path/to/openclaw-parcel",
"/path/to/openclaw-instapaper",
"/path/to/openclaw-easypost",
"/path/to/restaurant-cli",
"/path/to/openclaw-facetime",
"/path/to/findmy-cli"
]
}
}
}

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": {}
},
"openclaw-parcel": {
"enabled": true,
"config": {
"apiKey": { "$secretRef": "/plugins/openclaw-parcel/apiKey" }
}
}
}
}
}

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. Note that agents.list is a JSON array, not an object keyed by id:

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

This denies the group-chat agent access to all Fastmail 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 How to Build Your Own §5.2 for the full multi-agent 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 (for non-stock plugins). Without it, the plugin is discovered but blocked. Stock plugins ignore the allowlist.

”plugins.allow is empty” Warning

This means any discovered non-stock 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 and tools.alsoAllow list. Also verify the plugin is listed in plugins.entries with enabled: true.

”plugin not found” Warnings on Startup

openclaw plugins list may report stale plugins.entries keys (e.g. parcel-cli after a rename to openclaw-parcel). Remove the stale key from plugins.entries; the gateway ignores them but the warning is noisy.

ClawHub Plugin Version Mismatch

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