Skip to content
Back to skills

Baoyu Danger X To Markdown

ASecurity

Convert X (Twitter) tweet or article URL to markdown. Uses reverse-engineered X API (private). Requires user consent before use.

  • 416 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 8, 2026
ai-agentsshellbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 15 files and shows the line behind each finding

Scanned February 10, 2026

npx -y skills add aiskillstore/marketplace --skill baoyu-danger-x-to-markdown --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Baoyu Danger X To Markdown?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Baoyu Danger X To Markdown
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aiskillstore-baoyu-danger-x-to-markdown/badge)](https://www.skillsdirectory.com/skills/aiskillstore-baoyu-danger-x-to-markdown)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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**:
1. Determine this SKILL.md file's directory path as `SKILL_DIR`
2. Script path = `${SKILL_DIR}/scripts/<script-name>.ts`
3. 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

```bash
# 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:

```bash
# 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

```bash
# 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

```markdown
---
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 cookie
- `X_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):
1. `.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md` (project)
2. `~/.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md` (user)

If found, load before workflow. Extension content overrides defaults.

Files in this skill

  • SKILL.md4 KB
  • scripts/constants.ts6.6 KB
  • scripts/cookie-file.ts2.4 KB
  • scripts/cookies.ts13.6 KB
  • scripts/graphql.ts12.6 KB
  • scripts/http.ts3.4 KB
  • scripts/main.ts11.9 KB
  • scripts/markdown.ts8.4 KB
  • scripts/paths.ts1.5 KB
  • scripts/thread-markdown.ts8 KB
  • scripts/thread.ts8.7 KB
  • scripts/tweet-article.ts2.9 KB
  • scripts/tweet-to-markdown.ts5.5 KB
  • scripts/types.ts1.4 KB
  • skill-report.json15.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…