Skills Agentes

Baoyu Danger X To Markdown

Convierte tweets y artículos de X (Twitter) a Markdown con front matter YAML, usando una API no oficial que requiere el consentimiento del usuario.

Estrellas
25k

en todo el repo

Actividad
49

0–100, la ruta de este skill

Actualizado
hace 2 meses

último commit aquí

Commits
1

últimos 90 días

Contexto
1.8k tok

64 tok en reposo

Paquete
20 archivos

130 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

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

Se instala solo en este repositorio.

Este skill makes network requests, needs API credentials.

Qué hace

  • Convierte tweets, hilos y artículos de X (Twitter) a Markdown con front matter YAML
  • Extrae contenido completo de X Articles
  • Descarga opcionalmente imágenes y videos a carpetas locales `imgs/` y `videos/`
  • Pide consentimiento explícito antes de usar la API no oficial
  • Gestiona preferencias del usuario vía EXTEND.md (directorio de salida, descarga de medios)

Úsalo cuando

  • El usuario menciona "X to markdown", "tweet to markdown" o "save tweet"
  • El usuario da una URL de x.com o twitter.com para convertir

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Convierte este tweet a markdown: https://x.com/user/status/123
    • Guarda este hilo de Twitter como markdown con las imágenes
    • Pasa este X Article a markdown

    SKILL.md

    En inglés

    X to Markdown

    Converts X content to markdown:

    • Tweets/threads → Markdown with YAML front matter
    • X Articles → Full content extraction

    User Input Tools

    When this skill prompts the user, follow this tool-selection rule (priority order):

    1. Prefer built-in user-input tools exposed by the current agent runtime — e.g., AskUserQuestion, request_user_input, clarify, ask_user, or any equivalent.
    2. Fallback: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.
    3. Batching: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.

    Concrete AskUserQuestion references below are examples — substitute the local equivalent in other runtimes.

    Script Directory

    Scripts located in scripts/ subdirectory.

    Path Resolution:

    1. {baseDir} = this SKILL.md's directory
    2. Script path = {baseDir}/scripts/main.ts
    3. Resolve ${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun

    Consent Requirement

    Before any conversion, check and obtain consent.

    Consent Flow

    Step 1: Check consent file

    # macOS
    cat ~/Library/Application\ Support/baoyu-skills/x-to-markdown/consent.json
    
    # Linux
    cat ~/.local/share/baoyu-skills/x-to-markdown/consent.json
    

    Step 2: If accepted: true and disclaimerVersion: "1.0" → print warning and proceed:

    Warning: Using reverse-engineered X API. Accepted on: <acceptedAt>
    

    Step 3: If missing or version mismatch → display disclaimer:

    DISCLAIMER
    
    This tool uses a reverse-engineered X API, NOT official.
    
    Risks:
    - May break if X changes API
    - No guarantees or support
    - Possible account restrictions
    - Use at your own risk
    
    Accept terms and continue?
    

    Use AskUserQuestion with options: "Yes, I accept" | "No, I decline"

    Step 4: On accept → create consent file:

    {
      "version": 1,
      "accepted": true,
      "acceptedAt": "<ISO timestamp>",
      "disclaimerVersion": "1.0"
    }
    

    Step 5: On decline → output "User declined. Exiting." and stop.

    Preferences (EXTEND.md)

    Check EXTEND.md in priority order — the first one found wins:

    Priority Path Scope
    1 .baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md Project
    2 ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md XDG
    3 $HOME/.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md User home
    Result Action
    Found Read, parse, apply settings
    Not found MUST run first-time setup (see below) — do NOT silently create defaults

    EXTEND.md supports: Download media by default, default output directory.

    First-Time Setup (BLOCKING)

    CRITICAL: When EXTEND.md is not found, you MUST use AskUserQuestion to ask the user for their preferences before creating EXTEND.md. NEVER create EXTEND.md with defaults without asking. This is a BLOCKING operation — do NOT proceed with any conversion until setup is complete.

    Use AskUserQuestion with ALL questions in ONE call:

    Question 1 — header: "Media", question: "How to handle images and videos in tweets?"

    • "Ask each time (Recommended)" — After saving markdown, ask whether to download media
    • "Always download" — Always download media to local imgs/ and videos/ directories
    • "Never download" — Keep original remote URLs in markdown

    Question 2 — header: "Output", question: "Default output directory?"

    • "x-to-markdown (Recommended)" — Save to ./x-to-markdown/{username}/{tweet-id}.md
    • (User may choose "Other" to type a custom path)

    Question 3 — header: "Save", question: "Where to save preferences?"

    • "User (Recommended)" — ~/.baoyu-skills/ (all projects)
    • "Project" — .baoyu-skills/ (this project only)

    After user answers, create EXTEND.md at the chosen location, confirm "Preferences saved to [path]", then continue.

    Full reference: references/config/first-time-setup.md

    Supported Keys

    Key Default Values Description
    download_media ask ask / 1 / 0 ask = prompt each time, 1 = always download, 0 = never
    default_output_dir empty path or empty Default output directory (empty = ./x-to-markdown/)

    Value priority:

    1. CLI arguments (--download-media, -o)
    2. EXTEND.md
    3. Skill defaults

    Usage

    ${BUN_X} {baseDir}/scripts/main.ts <url>
    ${BUN_X} {baseDir}/scripts/main.ts <url> -o output.md
    ${BUN_X} {baseDir}/scripts/main.ts <url> --download-media
    ${BUN_X} {baseDir}/scripts/main.ts <url> --json
    

    Options

    Option Description
    <url> Tweet or article URL
    -o <path> Output path
    --json JSON output
    --download-media Download image/video assets to local imgs/ and videos/, and rewrite markdown links to local relative paths
    --login Refresh cookies only

    Supported URLs

    • https://x.com/<user>/status/<id>
    • https://twitter.com/<user>/status/<id>
    • https://x.com/i/article/<id>

    Output

    ---
    url: "https://x.com/user/status/123"
    author: "Name (@user)"
    tweetCount: 3
    coverImage: "https://pbs.twimg.com/media/example.jpg"
    ---
    
    Content...
    

    File structure: x-to-markdown/{username}/{tweet-id}/{content-slug}.md

    When --download-media is enabled:

    • Images are saved to imgs/ next to the markdown file
    • Videos are saved to videos/ next to the markdown file
    • Markdown media links are rewritten to local relative paths

    Media Download Workflow

    Based on download_media setting in EXTEND.md:

    Setting Behavior
    1 (always) Run script with --download-media flag
    0 (never) Run script without --download-media flag
    ask (default) Follow the ask-each-time flow below

    Ask-Each-Time Flow

    1. Run script without --download-media → markdown saved
    2. Check saved markdown for remote media URLs (https:// in image/video links)
    3. If no remote media found → done, no prompt needed
    4. If remote media found → use AskUserQuestion:
      • header: "Media", question: "Download N images/videos to local files?"
      • "Yes" — Download to local directories
      • "No" — Keep remote URLs
    5. If user confirms → run script again with --download-media (overwrites markdown with localized links)

    Authentication

    1. Environment variables (preferred): X_AUTH_TOKEN, X_CT0
    2. Chrome login (fallback): Auto-opens Chrome, caches cookies locally

    Extension Support

    Custom configurations via EXTEND.md. See Preferences section for paths and supported options.

    Reproducido de JimLiu/baoyu-skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    20 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere `bun` o `npx`, y autenticación mediante X_AUTH_TOKEN/X_CT0 o login con Chrome; además aceptar el descargo de responsabilidad sobre la API no oficial.

    Necesita en el PATH:jq

    Variables de entorno:BAOYU_CHROME_PROFILE_DIRBUN_XDISCLAIMER_VERSIONJSONWSL_DISTRO_NAMEX_AUTH_TOKENX_BEARER_TOKENX_CHROME_PROFILE_DIRX_CLIENT_TRANSACTION_IDX_COOKIE_PATHX_CT0X_DATA_DIRX_GUEST_TOKENX_TWIDX_USER_AGENT

    Detalles

    Creador
    JimLiu
    Licencia
    MIT
    Recursos incluidos
    scripts en typescript + referencias
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de JimLiu/baoyu-skills

    Este repo incluye 22 skills. Si instalas uno, normalmente ya tienes los demás.

    Generación de imágenes con IA usando OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream, Replicate y Agnes; soporta texto a imagen, referencias, aspectos y lotes.

    Costo de contexto al activarse
    5.2k tok
    Tamaño del paquete
    49 archivos
    Última actualización
    el mes pasado
    diseno ui

    Publica contenido en WeChat Official Account (微信公众号) vía API o Chrome CDP, con posts de artículo (文章) o de imagen-texto (贴图/图文).

    Costo de contexto al activarse
    3.7k tok
    Tamaño del paquete
    29 archivos
    Última actualización
    hace 2 meses
    redaccion contenido

    Convierte los chats de un grupo de WeChat en un resumen estructurado usando el binario local wx-cli, con historial, perfiles de usuario y memoria de hechos por grupo entre ejecuciones.

    Costo de contexto al activarse
    8.3k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    el mes pasado
    productividad

    Publica contenido y artículos en X (Twitter): posts normales con imágenes/vídeos y X Articles en Markdown, vía plugin Chrome de Codex, Computer Use o scripts CDP.

    Costo de contexto al activarse
    4.4k tok
    Tamaño del paquete
    16 archivos
    Última actualización
    el mes pasado
    marketing

    Genera portadas de artículos con 5 dimensiones (tipo, paleta, renderizado, texto, mood), combinando 11 paletas y 7 estilos de renderizado, en formatos cinematic, widescreen o square.

    Costo de contexto al activarse
    4.5k tok
    Tamaño del paquete
    35 archivos
    Última actualización
    hace 2 meses
    diseno ui

    Analiza la estructura del artículo, identifica dónde faltan apoyos visuales y genera ilustraciones combinando Tipo × Estilo × Paleta. Úsalo para "ilustrar artículo", "añadir imágenes" o "为文章配图".

    Costo de contexto al activarse
    4.3k tok
    Tamaño del paquete
    37 archivos
    Última actualización
    hace 2 meses
    redaccion contenido