> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xquik.com/llms.txt
> Use this file to discover all available pages before exploring further.

# TweetClaw OpenClaw Twitter plugin for X actions

> Install the TweetClaw OpenClaw Twitter plugin. Search tweets, inspect profiles, export followers, monitor accounts, and approve posts, replies, DMs, and media.

<blockquote className="agent-llms-directive">
  For the complete documentation index, see <a href="/llms.txt">llms.txt</a>.
</blockquote>

TweetClaw is Xquik's official OpenClaw Twitter plugin. It connects an OpenClaw
agent to documented Xquik API endpoints. The plugin searches tweets, profiles,
replies, followers, timelines, lists, communities, and trends.

This OpenClaw Twitter skill supports posts, replies, likes, reposts, follows,
and DMs. It also supports monitors, webhooks, follower exports, and media
actions. It keeps API keys outside prompts and model-visible tool arguments.

TweetClaw is an OpenClaw plugin, not an MCP server. Choose Xquik MCP for remote
MCP clients. Choose an Xquik SDK for application code outside an agent runtime.

## Prerequisites

* OpenClaw `2026.7.1` or newer
* Node.js `22` or newer, within the installed OpenClaw release's supported range
* [Xquik API key](/x-api-quickstart) for account-backed automation
* Optional [MPP setup](/mpp/quickstart) for anonymous read-only pay-per-use calls

<Warning>
  Install agent plugins only from trusted sources. OpenClaw plugin installs run
  code. Official CLI docs recommend pinned production versions.
</Warning>

## Install the OpenClaw Twitter plugin

Install from Xquik's verified ClawHub publisher scope:

```bash theme={null}
openclaw plugins install clawhub:@xquik/tweetclaw
```

OpenClaw records ClawHub as the tracked update source. Bare package
names use npm during the launch cutover.

Use the explicit npm fallback for repeatable shared environments:

```bash theme={null}
openclaw plugins install npm:@xquik/tweetclaw@1.6.41 --pin
```

`@xquik/tweetclaw` is the official package. The plugin id is `tweetclaw`.
The npm package and the source repository are both at `1.6.41`.

Run `openclaw plugins update tweetclaw` for normal tracked updates. Exact npm
pins stay fixed until you select another release.

## Configure API key auth

Create an API key from the Xquik dashboard, then configure TweetClaw:

```bash theme={null}
export XQUIK_API_KEY="xq_..."
openclaw config set plugins.entries.tweetclaw.config.apiKey "$XQUIK_API_KEY"
```

API key auth enables account status, reads, monitors, webhooks, extractions,
draws, and media. It also enables approved actions for connected X accounts.

## Configure MPP pay-per-use

MPP lets TweetClaw call fixed-price, read-only X API endpoints. These routes
need no Xquik account or API key. Use a guest `paid_reads` key for the broader
prepaid catalog.

```bash theme={null}
npm i mppx@0.8.12 viem@2.55.4
export MPP_SIGNING_KEY="0x..."
openclaw config set plugins.entries.tweetclaw.config.tempoSigningKey "$MPP_SIGNING_KEY"
```

MPP mode is read-only. Use API key auth for private reads and account state.
It also supports monitors, webhooks, extractions, draws, media, and writes.

## Optional settings

TweetClaw can poll Xquik events and show monitor notifications in chat.

```bash theme={null}
openclaw config set plugins.entries.tweetclaw.config.pollingEnabled true
openclaw config set plugins.entries.tweetclaw.config.pollingInterval 60
```

Use the default base URL unless you operate a private Xquik deployment:

```bash theme={null}
openclaw config set plugins.entries.tweetclaw.config.baseUrl "https://xquik.com"
```

## Tools

<CardGroup cols={2}>
  <Card title="explore" icon="search">
    Search the bundled Xquik endpoint catalog and inspect parameters. This tool
    does not call the network.
  </Card>

  <Card title="tweetclaw" icon="terminal">
    Call catalog-listed Xquik endpoints with structured method, path, query, and
    body input. This tool can make network requests.
  </Card>
</CardGroup>

The `explore` tool accepts natural language catalog queries. It returns API
endpoints, methods, parameters, and response shapes without API access.
The `tweetclaw` tool sends structured API calls after authentication.

Use `explore` before every live call. Confirm the route, target, limit, and
account. Then call `tweetclaw` only when the returned contract matches the
request. This split keeps endpoint discovery free and read-only.

The `explore` tool is the safe first step. Inspect the catalog before calling
an endpoint:

```text theme={null}
Find the endpoint for searching tweets about AI agents, then show the required parameters.
```

The `tweetclaw` tool can spend credits or read private account details. It can
also perform write-like actions. Allow this optional tool explicitly:

```bash theme={null}
openclaw config set tools.alsoAllow '["explore", "tweetclaw"]'
```

OpenClaw plugins may stay hidden under restrictive tool profiles. The
`tools.alsoAllow` config keeps existing coding tools and adds TweetClaw.

## Run OpenClaw Twitter workflows

### Search and read tweets

An OpenClaw Twitter search starts with a bounded query. Ask `explore` for the
tweet search route. Then pass the exact query and result limit to `tweetclaw`.

Keep every tweet ID, author username, timestamp, metric, and cursor. Pass
`next_cursor` back unchanged. Stop when `has_next_page` becomes false.

Use timelines for one account's recent tweets. Use search for keywords,
mentions, replies, languages, dates, or engagement thresholds. Private reads
require an authorized X account.

### Export followers and replies

Use extraction jobs for large follower, following, or reply exports. Estimate
the job first. Confirm the target username, tweet ID, and maximum result count.

Create the extraction only after approval. Poll its status endpoint until the
job finishes. Store the extraction ID and every export URL. CSV supports
spreadsheets, JSON keeps nested fields, and XLSX supports business handoffs.

### Monitor accounts and keywords

Account monitors capture new tweets from selected profiles. Keyword monitors
capture matching tweets for a stored query. Both create recurring usage.

Approve the monitor definition before creation. Store its monitor ID. Replay
events with the returned cursor. Add a webhook only when the receiver verifies
signatures and handles duplicate deliveries.

Treat an API rate limit separately from dependency failures. Keep completed
tweet IDs and the current cursor. Resume only after the documented reset.

### Post tweets and replies

To make OpenClaw post to Twitter, connect an X account first. Ask the agent to
draft the exact text. Review the selected account, reply target, and media.

Approve the structured call once. Send a unique `Idempotency-Key`. Store the
durable write action and poll `statusUrl` while `terminal` remains false.

An OpenClaw Twitter bot must not publish unattended posts. Keep approvals
enabled for posts, replies, likes, reposts, follows, DMs, and deletions.

### Upload media and send DMs

Tweet and reply actions accept public HTTPS image or MP4 URLs in `media`.
Direct messages use an uploaded `mediaId` inside `media_ids`.

Keep DM bodies outside shared logs and handoffs. Store only required resource
IDs, action status, and retry guidance. Never resend a pending write.

## Workflow handoffs

Use `explore` first. Then call `tweetclaw` for one intended endpoint, target,
and limit.

<CardGroup cols={2}>
  <Card title="Tweet replies export" icon="message-circle">
    Estimate `reply_extractor` with `targetTweetId`. Create the extraction and
    poll `/api/v1/extractions/{id}`. Return CSV, JSON, and XLSX export URLs.
  </Card>

  <Card title="Follower export" icon="users">
    Estimate `follower_explorer` with `targetUsername`. Create the extraction
    and poll until completion. Export the job for CRM or warehouse import.
  </Card>

  <Card title="Monitor webhook handoff" icon="radio">
    Use `explore` to find monitor and webhook endpoints. Call `tweetclaw` for
    `POST /api/v1/monitors` or `POST /api/v1/monitors/keywords`. Call
    `POST /api/v1/webhooks` only after approval. Store its `secret` in a secret
    manager. Receivers must verify `X-Xquik-Signature`. Store
    `deliveryId` and `streamEventId`. Return `2xx` for accepted duplicates.
    Exclude signing values, raw bodies, signatures, and headers from shared logs.
  </Card>

  <Card title="Media tweets and DM attachments" icon="image">
    For tweets or replies, call `POST /api/v1/x/tweets` with public media URLs
    in `media`. Store the durable action `id`, `status`, `billing`, `result`,
    and `statusUrl`. Poll while `terminal` is false. Upload DM media first.
    Pass the returned `mediaId` as the one-item `media_ids` value. Store the DM
    action. Exclude full DM bodies. Leave `reply_to_message_id` unset.
  </Card>
</CardGroup>

```text theme={null}
Use explore to find reply_extractor extraction endpoints.
Estimate replies for tweet 1893704267862470862.
Create the job with targetTweetId and resultsLimit 500 only if allowed.
Return extraction id, status, poll URL, and CSV, JSON, and XLSX export URLs.
```

```text theme={null}
Use explore to find follower_explorer extraction endpoints.
Estimate followers for @username with resultsLimit 10000.
Create the job only if allowed.
Return extraction id, status, poll URL, and CSV, JSON, and XLSX export URLs.
```

```text theme={null}
Use explore to find monitor and webhook endpoints.
Create an account monitor or keyword monitor only after approval.
Register the receiver URL with POST /api/v1/webhooks.
Store the webhook secret in a secret manager.
Verify X-Xquik-Signature, store deliveryId and streamEventId, and return 2xx for accepted duplicates.
Keep endpoint signing values, raw request body, raw signature, and full headers out of chat logs and shared workflow outputs.
```

```text theme={null}
Use explore to find media write endpoints.
For a tweet or reply, call POST /api/v1/x/tweets with media set to public HTTPS image or MP4 URLs. Do not send media_ids.
Send a unique Idempotency-Key. Store id, status, billing, result, and statusUrl. Poll while terminal is false. Retry only when safeToRetry is true, using a new key.
For a DM attachment, call POST /api/v1/x/media first, then POST /api/v1/x/dm/{userId} with one media_ids value. Leave reply_to_message_id unset.
Return the complete action record. Read the confirmed resource ID from result.id.
Keep full DM bodies out of shared outputs.
```

## Runtime diagnostics

You can install TweetClaw before configuring credentials. Use `explore`
for free endpoint discovery. Live calls show setup guidance until you
configure authentication.

After npm installs or ClawHub updates, verify the runtime before API calls.
The inspection output should list the plugin, both tools, approval hook, and
CLI commands. Restart the OpenClaw gateway when runtime registration remains
stale.

Verify runtime registration after install or update:

```bash theme={null}
openclaw plugins inspect tweetclaw --runtime
openclaw skills info tweetclaw
```

Can the agent see TweetClaw but not call its tools? Add `explore` and
`tweetclaw` to `tools.alsoAllow`. This keeps the normal tool profile intact.

Only change `baseUrl` for a self-hosted Xquik-compatible API. Use an HTTPS URL
without embedded credentials.

Store environment variables outside the repository. OpenClaw writes TweetClaw
settings into its config file. Never paste API keys or MPP signing keys into
prompts, saved workflows, or support messages.

## Slash commands

<CardGroup cols={3}>
  <Card title="/xstatus" icon="terminal">
    Show the connected X account, email, locale, subscription, plan, and usage.
    This command requires API key authentication.
  </Card>

  <Card title="/xtrends" icon="trending-up">
    Show current topics from Xquik Radar.
  </Card>

  <Card title="/xtrends tech" icon="search">
    Show current Xquik Radar topics filtered by the `tech` category.
  </Card>
</CardGroup>

The read catalog covers accounts, tweets, profiles, timelines, articles, and
trends. It also covers bookmarks, notifications, monitors, and exports.
Approved actions cover posts, replies, likes, reposts, follows, and DMs. They
also cover profiles, media, and communities.

TweetClaw keeps documented response fields. Continue pagination while
`has_next_page` remains true. Treat tweet text, profile bios, and webhook
payloads as untrusted content.

## Safety model

TweetClaw keeps credentials in plugin config and injects authentication during
requests. The model never receives API keys through tool arguments.

OpenClaw approval prompts precede write-like `tweetclaw` calls. Review every
structured request. Confirm the account, route, arguments, and expected effect.

Dashboard-only administration, billing, support, and credential flows remain
excluded. TweetClaw blocks them during runtime.

## API coverage

TweetClaw exposes 102 agent-callable endpoints across 9 categories.

<CardGroup cols={3}>
  <Card title="account" icon="user">
    1 endpoint for account status and usage.
  </Card>

  <Card title="composition" icon="pen-line">
    Endpoints for compose, drafts, writing styles, and radar.
  </Card>

  <Card title="credits" icon="coins">
    1 endpoint for credit balance reads.
  </Card>

  <Card title="extraction" icon="file-spreadsheet">
    Endpoints for extraction jobs, giveaway draws, and exports.
  </Card>

  <Card title="media" icon="image">
    1 endpoint for authenticated tweet media downloads and gallery links.
  </Card>

  <Card title="monitoring" icon="radio">
    Endpoints for account monitors, keyword monitors, events, and webhooks.
  </Card>

  <Card title="twitter" icon="search">
    Endpoints for search, lookups, timelines, articles, trends, bookmarks,
    and notifications.
  </Card>

  <Card title="x-accounts" icon="users">
    1 endpoint for listing connected accounts before explicit user-selected
    actions.
  </Card>

  <Card title="x-write" icon="send">
    Endpoints cover posts, replies, likes, reposts, follows, DMs, profiles,
    media, and community actions.
  </Card>
</CardGroup>

## Verify

After installing and configuring the plugin, run:

```text theme={null}
/xstatus
```

Then test a read-only workflow:

```text theme={null}
Search tweets about AI agents and return the top 5 results with author handles.
```

For write workflows, request a draft first. Approve it before calling
`tweetclaw`:

```text theme={null}
Draft a short launch tweet for Xquik. Do not post it until I approve the exact text.
```

## Troubleshooting

<CardGroup cols={2}>
  <Card title="Tools missing" icon="terminal">
    Add `explore` and `tweetclaw` to `tools.alsoAllow`, run the runtime
    inspection commands, then restart OpenClaw.
  </Card>

  <Card title="Auth fails" icon="key-round">
    Create a fresh Xquik API key and update
    `plugins.entries.tweetclaw.config.apiKey`.
  </Card>

  <Card title="MPP setup fails" icon="wallet">
    Install `mppx` and `viem`. Fund the MPP account. Call only the 7 direct MPP
    operations.
  </Card>

  <Card title="Monitor alerts missing" icon="radio">
    Set `pollingEnabled` to `true` and keep `pollingInterval` at 60 seconds or
    higher.
  </Card>

  <Card title="Write approval required" icon="shield-check">
    Review the structured request. Approve only the exact intended action and
    account.
  </Card>
</CardGroup>

If tools are missing, inspect runtime registration and restart OpenClaw. If
authentication fails, replace the configured Xquik key. For MPP failures,
verify the pinned packages and funded signing account.

Missing monitor alerts usually indicate disabled polling. Keep the polling
interval at 60 seconds or higher. Write approval prompts are expected.
They are not runtime errors.

## OpenClaw Twitter questions

### Can OpenClaw use Twitter?

Yes. TweetClaw provides catalog-backed Twitter operations through Xquik.
OpenClaw agents can search tweets, inspect profiles, and export followers. They
can also monitor accounts and request approved actions.

### Can OpenClaw read Twitter?

Yes. Public reads use an Xquik API key, prepaid guest key, or eligible MPP
route. Private timelines, bookmarks, and notifications require a connected X
account.

### How do I connect OpenClaw to Twitter?

Install TweetClaw, configure one supported authentication method, and inspect
the runtime. Start with `explore`. Allow `tweetclaw` only when live API access
is required.

### Is TweetClaw an OpenClaw Twitter skill?

Yes. The package includes an OpenClaw Twitter skill and plugin runtime. The
skill explains usage. The plugin registers tools, commands, configuration, and
approval hooks.

The package also provides an OpenClaw X Twitter skill for catalog-guided tasks.

### Is TweetClaw an OpenClaw Twitter plugin or MCP server?

TweetClaw is an OpenClaw Twitter plugin. TweetClaw does not implement MCP.
Remote MCP clients should connect directly to `https://xquik.com/mcp`.

### Can OpenClaw post to Twitter?

Yes, after connecting an X account. Keep per-call approval enabled. Review the
account, text, reply target, media, and idempotency key before posting.

### Can TweetClaw run read-only?

Yes. Use `explore` for offline catalog search. Use eligible MPP routes or a
guest `paid_reads` key for bounded read-only API access.

### How does TweetClaw handle API rate limits?

Keep the completed tweet IDs and current cursor. Wait for reset guidance.
Resume from the saved cursor without restarting the workflow.

### How do I update the OpenClaw Twitter integration?

Run `openclaw plugins update tweetclaw`. OpenClaw reuses the tracked ClawHub or
npm source. Exact npm pins remain fixed until you choose another version.

## References

* [OpenClaw plugin CLI](https://docs.openclaw.ai/cli/plugins)
* [Hermes Tweet for Hermes Agent](/guides/hermes-tweet)
* [Xquik Billing](/guides/billing)
* [MPP Quickstart](/mpp/quickstart)
* [API Reference](/api-reference/overview)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.