Code Pluginsource linked

Facebook Page Messengerv2026.5.28

OpenClaw Facebook channel plugin

@dj-shortcut/facebook·runtime facebook·by @dj-shortcut
Community code plugin. Review compatibility and verification before install.
openclaw plugins install clawhub:@dj-shortcut/facebook
Latest release: v2026.5.28Download zip

Capabilities

Channels
facebook
configSchema
Yes
Executes code
Yes
HTTP routes
0
Runtime ID
facebook
Setup entry
Yes

Compatibility

Built With Open Claw Version
2026.5.28
Min Gateway Version
2026.5.19
Plugin Api Range
>=2026.5.19
Plugin Sdk Version
2026.5.28
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The stated purpose is Facebook Page Messenger DMs, but runtime code also handles media attachments and routes image-generation intents to a Leaderbot image-generation service, while listing/docs in places say attachments or media messages are not included.
!
Instruction Scope
The extra Leaderbot forwarding is controlled by environment variables rather than the advertised channel config schema, and may send raw Messenger event data, PSIDs, prompts, and source-image URLs to an external service if enabled.
Install Mechanism
No install-time scripts or destructive install behavior were found; the package is source-linked but lacks stronger provenance and is not from the trusted @openclaw publisher.
!
Credentials
Reading Facebook tokens, app secrets, verify tokens, and secret files is expected for this channel, but the default external image-generation endpoint and hidden LEADERBOT_* activation path are broader than the basic Facebook channel surface.
Persistence & Privilege
The plugin registers a webhook handler, processes events asynchronously, keeps bounded in-memory dedupe/prompt caches, may write downloaded inbound media under OPENCLAW_STATE_DIR, and can update config during logout; these are mostly purpose-aligned but should be understood before use.
Scan Findings in Context
[SkillSpector.clean] expected: SkillSpector reported no issues; that is consistent with the absence of obfuscation, shell execution, destructive commands, or obvious credential theft.
[VirusTotal.clean] expected: VirusTotal reported no malicious or suspicious engine detections; this supports but does not determine the verdict.
[metadata.scanStatus.suspicious] unexpected: The prior metadata scan label is not treated as ground truth, but artifact review found a real under-disclosure concern around the Leaderbot image-generation forwarding path.
What to consider before installing
Review the Leaderbot image-generation behavior before installing, especially if your host has LEADERBOT_IMAGE_GEN_INTERNAL_TOKEN or INTERNAL_IMAGE_REQUEST_TOKEN set. Use pairing or allowlist mode by default, publish clear privacy/data-retention terms for public Pages, and avoid enabling the external image-generation service unless you intend Messenger content and identifiers to be sent there.
dist/src/monitor.js:290
Environment variable access combined with network send.
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Verification

Tier
source linked
Scope
artifact only
Summary
Validated package structure and linked the release to source metadata.
Commit
f00c05fe2aa2
Tag
codex/clawhub-plugin-publish
Provenance
No
Scan status
suspicious

Tags

latest
2026.5.28

OpenClaw Facebook Plugin

This plugin gives OpenClaw a Facebook Page inbox. After setup, people can send a direct message to your Facebook Page and OpenClaw can receive it, decide what to do, and reply through Messenger.

It is meant as a clear starting point for building on the Meta platform: connect a Meta app, a Facebook Page, and the Messenger product, then let OpenClaw handle Facebook Page Messenger DMs through Meta webhooks.

V1 is intentionally focused: Facebook Page Messenger direct messages only. It does not yet implement comments, Private Replies/comment-to-DM flows, Instagram DMs, attachments, or broader Meta automation.

The plugin is called facebook because this is the Facebook/Meta integration surface. Legacy messenger, fb, and fbm aliases remain temporarily for existing installs only.

Install

Private phase:

openclaw plugins install <private-git-or-tarball-url>

ClawHub phase:

openclaw plugins install clawhub:@dj-shortcut/facebook

Public phase:

openclaw plugins install @dj-shortcut/facebook

Repository Layout

This repository is now the Leaderbot/OpenClaw monorepo. The Facebook/OpenClaw plugin still lives at the repository root so existing plugin packaging keeps working. The production image-generation service lives in apps/image-gen.

leaderbot.live is planned as a tenant/customer portal where customers manage their own AI. It should not expose the private OpenClaw gateway UI/API, and it should not become a marketing-only brochure site.

.
├── apps/image-gen              # Leaderbot image-generation web/service app
├── deploy/fly-gateway          # OpenClaw gateway Fly image
├── src                         # Facebook channel plugin runtime
└── docs                        # Shared operations and release docs

Deploy targets:

npm run gateway:deploy
npm run image-gen:deploy

Configure

Use channels.facebook for new installs:

{
  channels: {
    facebook: {
      enabled: true,
      pageId: "<FACEBOOK_PAGE_ID>",
      pageAccessToken: "<FACEBOOK_PAGE_ACCESS_TOKEN>",
      appSecret: "<FACEBOOK_APP_SECRET>",
      verifyToken: "<FACEBOOK_VERIFY_TOKEN>",
      dmPolicy: "pairing",
    },
  },
}

Default webhook:

https://<gateway-host>/facebook/webhook

Do not configure a second active messenger channel. Existing channels.messenger config and MESSENGER_* secrets remain temporary fallbacks, but new installs should use channels.facebook and FACEBOOK_*. The old /messenger/webhook path is not the new default; keep it only if an existing deployment explicitly configured that legacy webhookPath.

See docs/setup.md for the short setup tutorial, and docs/facebook-complete-tutorial.md for the full Meta-side guide covering the app, Page identity, permissions, review, Messenger rules, production checks, and troubleshooting. See docs/clawhub.md for ClawHub release preparation. See docs/cost-control-plan.md for the recommended budget, usage-ledger, and payment boundaries for public Facebook assistants. See docs/x-twitter-companion.md only if the same OpenClaw assistant also needs X/Twitter search, monitors, webhooks, media workflows, follower export, giveaway draws, or approval-reviewed tweet posts. TweetClaw is a separate optional third-party plugin maintained outside this repository; it is not required for Facebook Page Messenger DMs.

Access model

Default setup uses dmPolicy: "pairing" so unknown Facebook users receive a pairing code before they can talk to the assistant. For a public Page bot, use dmPolicy: "open" with allowFrom: ["*"] to let anyone message the Page.

Open means the conversation entry point is public; it should not grant unknown users privileged tools, private memory, files, git/deploy access, or admin actions. Use separate OpenClaw permissions/tool policy for that trusted core. Public users may send personal, financial, authentication, or business-sensitive information into Messenger. In open mode, those messages can be forwarded into your OpenClaw host, model provider, logs, memory, and any enabled tools according to your runtime configuration. Publish a privacy policy, disclose automated/AI handling where required, and decide what data is retained, deleted, or shared with third-party providers before enabling this for a public Page. For paid or public assistants, keep billing, credits, model selection, and tool budgets in the OpenClaw host runtime where provider calls execute.

Conversation Actions

Assistant replies may include channel-neutral actions:

{
  "text": "What would you like to do next?",
  "actions": [
    { "id": "edit_image", "label": "Edit image", "inputText": "Edit image" },
    { "id": "new_image", "label": "New image", "inputText": "New image" }
  ]
}

The Facebook channel renders these actions as Messenger quick replies. When a person clicks one, the action id is decoded back into the next inbound message text, so the assistant receives it like normal user input instead of a Messenger-specific payload branch.

Local/private install validation

This plugin does not need to be published to npm before it can be installed privately:

npm run build
npm test
npm run pack:dry
npm pack
openclaw plugins install ./dj-shortcut-facebook-*.tgz
openclaw channels list

Expected channel listing: Facebook. There should be no separate Messenger channel.

Development

Use Node.js 22.19.0 (see .nvmrc / .node-version) before installing dependencies.

npm install
npm run build
npm test
npm run pack:dry

Run Fallow from the repository root when you want a repo-wide dead-code and maintainability pass:

npm run fallow:report
npm run fallow:report:production

The generated root reports stay in .fallow/ and are normalized to UTF-8 with repo-relative paths. The image-generation app keeps its app-specific Fallow badge flow under apps/image-gen and uses the same root normalizer.

Do not commit real Page tokens, app secrets, verify tokens, PSIDs, or live deployment config.