X Reader
ReviewAudited by ClawScan on May 1, 2026.
Overview
X Reader appears to be a coherent content-reading and transcription tool, but users should notice that it can rely on saved login sessions, third-party services, local subprocess tools, and persistent saved content.
Before installing, verify the GitHub source, pin the version if possible, and decide whether you are comfortable with third-party services such as Jina/Groq, local yt-dlp processing, saved browser login sessions, and persistent inbox or Obsidian storage. Avoid using saved sessions or MCP access for workflows you do not fully trust.
Findings (6)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
If you log in through this tool, future fetches may use that saved session to read pages as your account.
The tool can reuse saved browser cookies/localStorage for authenticated fetching on supported platforms. This is disclosed and purpose-aligned, but it gives the reader access to account-gated content.
storage_state: Path to a Playwright storage state JSON file (cookies/localStorage). If provided, the browser context will load this session.
Only log in to accounts you are comfortable using for this tool, protect or delete files under ~/.x-reader/sessions when no longer needed, and avoid enabling session-backed fetching for untrusted workflows.
Audio from videos you process may be sent to Groq for transcription, and submitted URLs may also be handled by external reader services.
For Whisper fallback, downloaded audio is uploaded to Groq with the user's API key. This is consistent with the stated transcription purpose, but it is a sensitive third-party data flow.
response = requests.post("https://api.groq.com/openai/v1/audio/transcriptions", headers={"Authorization": f"Bearer {api_key}"}, files={"file": (os.path.basename(audio_path), f, "audio/mp4")}Do not use the transcription path for private or confidential media unless you accept the provider's data handling terms; keep API keys scoped and rotate them if exposed.
Using YouTube transcription depends on locally installed media tooling and may download temporary subtitle or audio files.
The skill runs the local yt-dlp binary to extract subtitles or audio. The command is passed as an argument list and the URL is validated elsewhere in the function, so this is expected for the transcription feature rather than hidden execution.
cmd = ["yt-dlp", "--write-auto-sub", "--write-sub", "--sub-lang", lang, "--sub-format", "srt", "--skip-download", "-o", output_path, url] subprocess.run(cmd, capture_output=True, text=True, timeout=60)
Install yt-dlp and ffmpeg only from trusted sources and keep them updated.
Installing from a moving GitHub branch can change what code is installed over time.
The documented install path pulls from a GitHub repository without pinning a commit or release tag. This is user-directed and central to the package workflow, but users should verify the source.
pip install git+https://github.com/runesleo/x-reader.git
Prefer a pinned release, tag, or commit when installing, and verify the repository before installing optional extras.
URLs, transcripts, summaries, or fetched text may remain on disk and be visible to later tools or users of the same environment.
Fetched content can be stored persistently in an inbox file or an Obsidian vault. This is useful for the reader workflow but may retain private content beyond the current task.
`INBOX_FILE` | No | Path to inbox JSON (default: `./unified_inbox.json`) `OBSIDIAN_VAULT` | No | Path to Obsidian vault (writes to `01-收集箱/x-reader-inbox.md`)
Choose storage paths intentionally, avoid processing confidential content unless local persistence is acceptable, and clear the inbox when needed.
If you enable the MCP server, an attached agent may be able to fetch URLs or view the stored inbox through these tools.
The optional MCP server exposes URL-reading and inbox-access tools to an agent boundary. This is disclosed and purpose-aligned, but it can make saved content and configured fetching capabilities available to any trusted MCP client.
Tools exposed: - `read_url(url)` — fetch any URL - `read_batch(urls)` — fetch multiple URLs concurrently - `list_inbox()` — view previously fetched content
Enable the MCP server only for trusted clients and be cautious combining it with saved platform sessions or sensitive inbox content.
