Marketplace baoyu-danger-x-to-markdown
Convert X (Twitter) tweet or article URL to markdown. Uses reverse-engineered X API (private). Requires user consent before use.
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/jimliu/baoyu-danger-x-to-markdown" ~/.claude/skills/aiskillstore-marketplace-baoyu-danger-x-to-markdown && rm -rf "$T"
skills/jimliu/baoyu-danger-x-to-markdown/SKILL.mdX to Markdown
Converts X (Twitter) content to markdown format:
- Tweet threads → Markdown with YAML front matter
- X Articles → Full article content extraction
Script Directory
Important: All scripts are located in the
scripts/ subdirectory of this skill.
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>.ts - Replace all
in this document with the actual path${SKILL_DIR}
Script Reference:
| Script | Purpose |
|---|---|
| CLI entry point for URL conversion |
⚠️ Disclaimer (REQUIRED)
Before using this skill, the consent check MUST be performed.
Consent Check Flow
Step 1: Check consent file
# macOS cat ~/Library/Application\ Support/baoyu-skills/x-to-markdown/consent.json 2>/dev/null # Linux cat ~/.local/share/baoyu-skills/x-to-markdown/consent.json 2>/dev/null # Windows (PowerShell) Get-Content "$env:APPDATA\baoyu-skills\x-to-markdown\consent.json" 2>$null
Step 2: If consent exists and
accepted: true with matching disclaimerVersion: "1.0":
Print warning and proceed:
⚠️ Warning: Using reverse-engineered X API (not official). Accepted on: <acceptedAt date>
Step 3: If consent file doesn't exist or
disclaimerVersion mismatch:
Display disclaimer and ask user:
⚠️ DISCLAIMER This tool uses a reverse-engineered X (Twitter) API, NOT an official API. Risks: - May break without notice if X changes their API - No official support or guarantees - Account restrictions possible if API usage detected - Use at your own risk Do you accept these terms and wish to continue?
Use
AskUserQuestion tool with options:
- Yes, I accept - Continue and save consent
- No, I decline - Exit immediately
Step 4: On acceptance, create consent file:
# macOS mkdir -p ~/Library/Application\ Support/baoyu-skills/x-to-markdown cat > ~/Library/Application\ Support/baoyu-skills/x-to-markdown/consent.json << 'EOF' { "version": 1, "accepted": true, "acceptedAt": "<ISO timestamp>", "disclaimerVersion": "1.0" } EOF # Linux mkdir -p ~/.local/share/baoyu-skills/x-to-markdown cat > ~/.local/share/baoyu-skills/x-to-markdown/consent.json << 'EOF' { "version": 1, "accepted": true, "acceptedAt": "<ISO timestamp>", "disclaimerVersion": "1.0" } EOF
Step 5: On decline, output message and stop:
User declined the disclaimer. Exiting.
Usage
# Convert tweet (outputs markdown path) npx -y bun ${SKILL_DIR}/scripts/main.ts <url> # Save to specific file npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md # JSON output npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --json
Options
| Option | Description |
|---|---|
| Tweet or article URL |
| Output path (file or dir) |
| Output as JSON |
| Refresh cookies only |
File Structure
x-to-markdown/ └── {username}/ └── {tweet-id}.md
Supported URLs
https://x.com/<user>/status/<id>https://twitter.com/<user>/status/<id>https://x.com/i/article/<id>
Output Format
--- url: https://x.com/username/status/123 author: "Display Name (@username)" tweet_count: 3 --- Tweet content... --- Thread continuation...
Authentication
Option 1: Environment variables (recommended)
- auth_token cookieX_AUTH_TOKEN
- ct0 cookieX_CT0
Option 2: Chrome login (auto if env vars not set)
- First run opens Chrome for login
- Cookies cached locally
Extension Support
Custom configurations via EXTEND.md.
Check paths (priority order):
(project).baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md
(user)~/.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md
If found, load before workflow. Extension content overrides defaults.