openclaw/docs/plugins/reference/x.md
Peter Steinberger 9666c02c53
feat(x): add the X (Twitter) mentions channel plugin (#165138)
* feat(x): add bundled mentions and public reply channel

Connect allowlisted X mentions to bound group sessions with thread context,
durable ingress, account-scoped cursors, and public threaded replies. Preserve
visible work-session links and append a configurable automation signature.

Verify both the bot recipient and sender before dispatch. Support Activity
streaming with polling fallback, SecretRef inputs and OAuth refresh rotation,
and administrator-only allowlist controls in the X replies plugin page.

Keep channel routing, queue custody and ambiguous-delivery recovery with their
existing core owners. Use only SDK subpaths available in OpenClaw 2026.9.8.

* test(x): verify mention delivery and operator controls

Cover cursor ordering and replay handoff, stream recipient filtering and
fallback, thread assembly, weighted reply chains, refresh ownership, and
administrator authorization. Distinguish safe pre-dispatch failures from
uncertain POST outcomes and preserve receipts for partial reply chains.

Validation: X suite 50 tests in 15.93s wall time; Zalo sibling suite 164 tests
in 145.31s. The shared host ambiguity integration suite also passed 8 tests.
The X queue fixture proves the plugin contract, not SQLite crash durability.

* docs(x): document setup, access controls and API costs

Document bot credentials, event modes, account settings, the allowlist page,
thread context and public reply behavior. Explain API costs, retry uncertainty,
and the 2026.9.8 SDK compatibility boundary. Add the channel to navigation,
glossary and generated plugin/channel inventories.

Record exactly 58 new channel config entries and 21 standard plugin entries
in the canonical config baseline; core field count remains unchanged.

* fix(x): use a product-neutral default reply signature

* fix(x): log the reason when an allowlist method fails

* fix(x): treat 4xx reply rejections as undelivered and keep 5xx ambiguous

A 429 or other client rejection of the reply POST proves X created no post, so the reply now
carries the not-dispatched marker (retryable only for 429). Server errors after dispatch stay
ambiguous so a retry cannot duplicate a public reply.

* improve(xai): name and describe the xAI plugin in its manifest

* docs(xai): regenerate config baseline for plugin display name

* fix(x): satisfy bundled channel and build contracts

* test(x): preserve real exports in partial mocks
2026-10-04 16:35:20 -07:00

590 B

summary read_when title
Allowlisted X mentions and public replies.
You are installing, configuring, or auditing the x plugin
X plugin reference

Allowlisted X mentions and public replies.

Distribution

  • Package: @openclaw/x
  • Install route: included in OpenClaw

Surface

  • Channels: x
  • (/channels/x)