Skill v1.0.1
currentLLM-judged scan90/1001 files
version: "1.0.1" name: baoyu-danger-x-to-markdown description: Convert X (Twitter) tweet or article URL to markdown. Uses reverse-engineered X API (private). Requires user consent before use.
X 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
${SKILL_DIR}in this document with the actual path
Script Reference:
| Script | Purpose | |
|---|---|---|
scripts/main.ts | 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
# macOScat ~/Library/Application\ Support/baoyu-skills/x-to-markdown/consent.json 2>/dev/null# Linuxcat ~/.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:
⚠️ DISCLAIMERThis 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 riskDo 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:
# macOSmkdir -p ~/Library/Application\ Support/baoyu-skills/x-to-markdowncat > ~/Library/Application\ Support/baoyu-skills/x-to-markdown/consent.json << 'EOF'{"version": 1,"accepted": true,"acceptedAt": "<ISO timestamp>","disclaimerVersion": "1.0"}EOF# Linuxmkdir -p ~/.local/share/baoyu-skills/x-to-markdowncat > ~/.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 filenpx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md# JSON outputnpx -y bun ${SKILL_DIR}/scripts/main.ts <url> --json
Options
| Option | Description | |
|---|---|---|
<url> | Tweet or article URL | |
-o <path> | Output path (file or dir) | |
--json | Output as JSON | |
--login | 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/123author: "Display Name (@username)"tweet_count: 3---Tweet content...---Thread continuation...
Authentication
Option 1: Environment variables (recommended)
X_AUTH_TOKEN- auth_token cookieX_CT0- ct0 cookie
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):
.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md(project)~/.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md(user)
If found, load before workflow. Extension content overrides defaults.