baoyu-danger-x-to-markdown
💡 摘要
此技能将X(Twitter)推文和文章转换为使用反向工程API的markdown格式。
🎯 适合人群
🤖 AI 吐槽: “该技能使用反向工程API,这带来了破坏性更改和潜在账户限制的风险。为减轻风险,确保妥善管理用户同意,并告知用户相关风险。”
风险:Medium。建议检查:是否执行 shell/命令行指令;是否发起外网请求(SSRF/数据外发);文件读写范围与路径穿越风险。以最小权限运行,并在生产环境启用前审计代码与依赖。
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
# 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 |
|--------|-------------|
| <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/123 author: "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.
优点
- 高效将推文转换为markdown
- 支持推文和文章
- 可自定义输出选项
缺点
- 依赖反向工程API
- 可能会出现破坏性更改
- 使用前需要用户同意
相关技能
免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。
版权归原作者所有 JimLiu.
