OpenClaw Skillv0.1.0

X Tweet Fetcher

hjw21centuryby hjw21century
Deploy on EasyClawdfrom $14.9/mo

Fetch full tweets, long tweets, quoted tweets, and X Articles from X/Twitter without login or API keys, using no dependencies and zero configuration.

How to use this skill

OpenClaw skills run inside an OpenClaw container. EasyClawd deploys and manages yours — no server setup needed.

  1. Sign up on EasyClawd (2 minutes)
  2. Connect your Telegram bot
  3. Install X Tweet Fetcher from the skills panel
Get started — from $14.9/mo
10stars
2,400downloads
24installs
0comments
1versions

Latest Changelog

Initial release—fetches tweets and articles from X/Twitter with no API keys or dependencies.

- Fetches regular tweets, long tweets (Twitter Blue), quoted tweets, and complete X Articles.
- Returns full tweet stats: likes, retweets, bookmarks, views, and reply counts.
- CLI and importable Python API supported; outputs JSON or plain text.
- Zero dependencies: runs on Python 3.7+ standard library.
- Requires no authentication; leverages the public FxTwitter API.
- Cannot fetch reply threads (only reply counts) or access deleted/private tweets.

Tags

latest: 0.1.0

Skill Documentation

---
name: x-tweet-fetcher
description: >
  Fetch tweets from X/Twitter without login or API keys.
  Supports regular tweets, long tweets, quoted tweets, and full X Articles.
  Zero dependencies, zero configuration.
---

# X Tweet Fetcher

Fetch tweets from X/Twitter without authentication. Uses FxTwitter API.

## What It Can Fetch

| Content Type | Support |
|-------------|---------|
| Regular tweets | ✅ Full text + stats |
| Long tweets (Twitter Blue) | ✅ Full text |
| X Articles (long-form) | ✅ Complete article text |
| Quoted tweets | ✅ Included |
| Stats (likes/RT/views) | ✅ Included |

## Usage

### CLI

```bash
# JSON output
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456"

# Pretty JSON
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --pretty

# Text only (human readable)
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --text-only
```

### From Agent Code

```python
from scripts.fetch_tweet import fetch_tweet

result = fetch_tweet("https://x.com/user/status/123456")
tweet = result["tweet"]

# Regular tweet
print(tweet["text"])

# X Article (long-form)
if tweet["is_article"]:
    print(tweet["article"]["title"])
    print(tweet["article"]["full_text"])  # Complete article
    print(tweet["article"]["word_count"])
```

## Output Format

```json
{
  "url": "https://x.com/user/status/123",
  "username": "user",
  "tweet_id": "123",
  "tweet": {
    "text": "Tweet content...",
    "author": "Display Name",
    "screen_name": "username",
    "likes": 100,
    "retweets": 50,
    "bookmarks": 25,
    "views": 10000,
    "replies_count": 30,
    "created_at": "Mon Jan 01 12:00:00 +0000 2026",
    "is_note_tweet": false,
    "is_article": true,
    "article": {
      "title": "Article Title",
      "full_text": "Complete article content...",
      "word_count": 4847,
      "char_count": 27705
    }
  }
}
```

## Requirements

- Python 3.7+
- No external packages (stdlib only)
- No API keys
- No login required

## How It Works

Uses [FxTwitter](https://github.com/FxEmbed/FxEmbed) public API (`api.fxtwitter.com`) which proxies X/Twitter content. Articles are returned as structured blocks and reassembled into full text.

## Limitations

- Cannot fetch reply threads (only reply counts available via `replies_count` field)
  - Reply content would require browser automation dependencies (Camofox/Nitter)
  - These were removed to maintain zero-dependency architecture
  - `--replies` flag exists but returns an explanatory error message
- Cannot fetch deleted or private tweets
- Rate limits depend on FxTwitter service availability
- If FxTwitter goes down, the skill won't work (no fallback)

## File Structure

```
skills/x-tweet-fetcher/
├── SKILL.md              (this file)
└── scripts/
    └── fetch_tweet.py    (single file, zero deps)
```
Security scan, version history, and community comments: view on ClawHub