agentleFS
OpenMinisOpenMinis/MinisSkills/twitter-downloader/SKILL.md

twitter-downloader

Skill584 starsChanged 59 days agoMITView on GitHub

Download Twitter/X tweet text, images, GIFs, and videos via fxtwitter/vxtwitter, then return a tweet summary plus Markdown-formatted Minis links. Trigger when users share twitter.com/x.com links or ask to download/summarize tweet media.

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 4 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run the helper script with the tweet URL.

    line 78
  2. Distinctive:

    Do not merely mention the folder path.

    line 80
  3. Very specific:

    Keep images, thumbnails, videos, and GIFs as inline media syntax: !filename

    line 81
  4. Very specific:

    Keep JSON/text summary files as normal links: filename

    line 83
  5. Very specific:

    If Sensitive: True, preserve that field and avoid adding explicit extra descriptions unless the user asks.

    line 85
  6. Very specific:

    If URL parsing fails, ask for a valid twitter.com/x.com status URL.

    line 114
  7. Distinctive:

    If both APIs fail, report that the tweet may be private/deleted or the API may be temporarily unavailable.

    line 115
  8. Distinctive:

    If no media is found, still return the tweet summary and JSON/summary links.

    line 116

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Twitter Downloader Skill

Download and summarize Twitter/X posts, save media into Minis, and return chat-ready Markdown.

When to Use

  • User provides a twitter.com or x.com status URL.
  • User asks to download Twitter/X images, GIFs, or videos.
  • User asks what a tweet says/contains.
  • User wants downloaded media inserted/displayed in chat as Markdown.

What It Does

  1. Parses username and tweet/status ID from Twitter/X URL variants.
  2. Fetches structured JSON from api.fxtwitter.com, with fallback to api.vxtwitter.com.
  3. Generates a short summary:
    • author
    • text
    • created time if available
    • sensitive flag
    • original media URLs
  4. Downloads images, video thumbnails, and GIF/video files by default.
  5. Returns Markdown containing:
    • ## Tweet Summary
    • summary/raw JSON links
    • inline media syntax for images/thumbnails/videos/GIFs: ![filename](minis://...)

Dependencies

  • curl
  • jq
  • python3

The helper script auto-installs missing packages with apk add --no-cache.

Helper Script

Path: /var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh

Usage:

/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "<tweet_url>"

Options:

--dir DIR        Output directory, default /var/minis/workspace/tweet_media
--images         Download images/thumbnails only in addition to summary
--video          Download videos/GIFs only in addition to summary
--all            Download images/thumbnails and videos/GIFs; default when no media flag is provided
--no-download    Only fetch summary/JSON and return Markdown links for those files
--json-only      Fetch and print raw tweet JSON only; no Markdown output

Examples:

# Default: download all available media and output Markdown
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "https://x.com/user/status/123"

# Summary only, no media downloads
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "https://x.com/user/status/123" --no-download

# Custom output directory
/var/minis/skills/twitter-downloader/scripts/twitter_downloader.sh "https://x.com/user/status/123" --dir "/var/minis/workspace/tweet_media"

Generated files:

/var/minis/workspace/tweet_media/<tweet_id>.json
/var/minis/workspace/tweet_media/<tweet_id>_summary.txt
/var/minis/workspace/tweet_media/<tweet_id>/<media files>

Agent Workflow

  1. Run the helper script with the tweet URL.
  2. Paste stdout directly into chat.
  3. Do not merely mention the folder path; include generated Markdown links.
  4. Keep images, thumbnails, videos, and GIFs as inline media syntax: ![filename](minis://...)
  5. Keep JSON/text summary files as normal links: [filename](minis://...)
  6. If Sensitive: True, preserve that field and avoid adding explicit extra descriptions unless the user asks.

Output Format

The helper outputs Markdown similar to:

## Tweet Summary

- Author: ...
- Text: ...
- Created: ...
- Sensitive: false
- Media:
-   photo https://...
- Downloaded images: 1, videos: 1

## File Links

- [summary.txt](minis://workspace/...)
- [raw.json](minis://workspace/...)

## Media

![photo.jpg](minis://workspace/.../photo.jpg)

![video.mp4](minis://workspace/.../video.mp4)

Error Handling

  • If URL parsing fails, ask for a valid twitter.com/x.com status URL.
  • If both APIs fail, report that the tweet may be private/deleted or the API may be temporarily unavailable.
  • If no media is found, still return the tweet summary and JSON/summary links.

Notes

  • Video/GIF downloads choose the best bitrate variant when available.
  • Video/GIF thumbnails are downloaded when image download is enabled.
  • Minis URLs are percent-encoded by the helper.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.