xradio
- Repo stars 39
- Author updated Live
- Author repo awesome-omni-skill
- Domain
- Other
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @diegosouzapw · no license declared
- Token usage
- Lean
- Setup complexity
- Plug-and-play
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: xradio
description: CLI tool for pulling, caching, and reading Twitter/X posts offline A command-line tool for manag…
category: other
runtime: no special runtime
---
# xradio output preview
## PART A: Task fit
- Use case: CLI tool for pulling, caching, and reading Twitter/X posts offline A command-line tool for managing a local cache of Twitter/X posts. Pull tweets from your feed, read them offline, track read/unread status, and play videos. runs entirely locally. Works with Claude Code, Cursor, Cline and 23 more..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Prerequisites / Commands / Pull Tweets from Feed” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “CLI tool for pulling, caching, and reading Twitter/X posts offline A command-line tool for managing a local cache of Twitter/X posts. Pull tweets from your feed, read them offline, track read/unread status, and play videos. runs entirely locally. Works with Claude Code, Cursor, Cline and 23 more.”.
- **02** When the source has headings, the agent prioritizes “Prerequisites / Commands / Pull Tweets from Feed” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files.
Start with a small task and check whether the result follows “Prerequisites / Commands / Pull Tweets from Feed”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: xradio
description: CLI tool for pulling, caching, and reading Twitter/X posts offline A command-line tool for manag…
category: other
source: diegosouzapw/awesome-omni-skill
---
# xradio
## When to use
- CLI tool for pulling, caching, and reading Twitter/X posts offline A command-line tool for managing a local cache of T…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Prerequisites / Commands / Pull Tweets from Feed” and keep inference separate from source facts.
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "xradio" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Prerequisites / Commands / Pull Tweets from Feed
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} xradio
A command-line tool for managing a local cache of Twitter/X posts. Pull tweets from your feed, read them offline, track read/unread status, and play videos.
Prerequisites
- Browser server must be running for
pullcommand:browser server start - Must be logged into Twitter/X in the browser session
yt-dlpandmpvfor video playback
Commands
Pull Tweets from Feed
xradio pull --limit <n>
Fetches tweets from your Twitter home feed and saves them to local storage.
--limit <n>: Number of tweets to pull (default: 10)- Automatically scrolls to load more if needed
- Never overwrites existing cached tweets - skips duplicates
- Requires browser server to be running and logged into Twitter
Example:
xradio pull --limit 20
Output:
📡 Pulling up to 20 new tweets from feed...
🌐 Browser connected: https://x.com/home
🔄 Refreshing feed...
scroll 1: +8 new, 2 cached (8/20 total new)
scroll 2: +6 new, 4 cached (14/20 total new)
scroll 3: +6 new, 3 cached (20/20 total new)
✅ [a1b2c3d] User Name: Tweet text preview...
✅ [e4f5g6h] Another User: More tweet content here...
📦 Done! Saved 20 new tweets.
List Cached Tweets
xradio list # Show unread tweets only
xradio list -A # Show all tweets (including read)
xradio list --all # Same as -A
Lists tweets in the offline cache.
- By default, only shows unread tweets
- Use
-Aor--allto include read tweets - Shows media indicators: 🎬 (video), 🖼️ (image)
- Shows ✓ for read tweets (when using --all)
Output:
📚 4 unread tweets in cache:
a1b2c3d🎬🖼️ Man, Crimson Desert looks like the kind of game that would make me disappear...
e4f5g6h🖼️ Breaking: New development in the ongoing situation as officials announce...
Use 'xradio read <id>' to view a tweet, 'xradio mark <id>' to mark as read.
Read a Tweet
xradio read <id>
Display the full content of a cached tweet.
- Supports short IDs (like git):
xradio read a1binstead of full hash - Shows formatted tweet with author, text, media indicators
- If ambiguous (multiple matches), asks for longer prefix
Example:
xradio read a1b
Output:
────────────────────────────────────────────────────────────
# User Name
**@handle** · 2h
This is the full tweet text content here...
---
🎬 Video | 🖼️ Image
[View on Twitter](https://x.com/handle/status/123456789)
────────────────────────────────────────────────────────────
ID: a1b2c3d (a1b2c3d4e5f6g7h8i9j0...)
Pulled: 2026-01-08T16:00:00.000Z
🎬 This tweet has a video. Use 'xradio play a1b' to play it.
Mark as Read
xradio mark <id>
Mark a tweet as read. It will no longer appear in xradio list (only in xradio list -A).
Example:
xradio mark a1b
# Output: ✅ Marked a1b2c3d as read
Unmark (Mark as Unread)
xradio unmark <id>
Remove the read status from a tweet, making it appear in the unread list again.
Example:
xradio unmark a1b
# Output: ↩️ Unmarked a1b2c3d (now unread)
Describe Images
xradio describe <id>
xradio describe <id> "custom prompt here"
Describe images in a tweet using AI vision. Downloads images and generates a text description suitable for radio narration.
- Works only on tweets with images (🖼️ indicator)
- Uses AI vision model to describe the image content
- Optional custom prompt for specific questions about the image
Example:
xradio describe 836
Output:
🖼️ Describing 1 image(s) from: Visegrád 24
This is a line graph from Netblocks.org showing normalized network
connectivity in Iran from January 7 to 8, 2026...
Play Video
xradio play <id>
Play a video from a tweet that has video content.
- Extracts video URL via yt-dlp
- Plays with mpv (video + audio)
- Interactive controls:
qto quit,spaceto pause
Example:
xradio play a1b
Output:
🎬 Extracting video URL for: User Name
https://x.com/handle/status/123456789
📺 Playing video...
(Press 'q' to quit, 'space' to pause)
Storage Format
Tweets are stored in storage/<id>.md where id is SHA1 hash of the permalink.
Each file has YAML frontmatter + Markdown content:
---
id: a1b2c3d4e5f6...
permalink: https://x.com/handle/status/123456789
displayName: User Name
handle: "@handle"
timestamp: "2h"
hasVideo: true
hasImage: false
pulledAt: 2026-01-08T16:00:00.000Z
offline:
read: true
readAt: 2026-01-08T17:00:00.000Z
---
# User Name
**@handle** · 2h
Tweet text content...
---
🎬 Video
[View on Twitter](https://x.com/handle/status/123456789)
Typical Workflow
# 1. Start browser (if not running)
browser server start
# 2. Pull fresh tweets
xradio pull --limit 10
# 3. See what's new
xradio list
# 4. Read a tweet
xradio read a1b
# 5. If it has video, play it
xradio play a1b
# 6. Mark as read when done
xradio mark a1b
# 7. Continue with next unread tweet
xradio list
Notes
- Short IDs work like git refs - use just enough characters to be unique
- The
offline.*namespace in frontmatter is for our metadata (read status, etc.) - Tweet data is never overwritten once cached - pull is additive only
- Video playback requires working yt-dlp Twitter extraction (may have intermittent issues with Twitter API)
Decide Fit First
Design Intent
How To Use It
Boundaries And Review