
Baoyu Danger X To Markdown
Run once before any X/Twitter-to-markdown conversion so media handling and output paths are saved in EXTEND.md instead of re-asking every session.
Overview
baoyu-danger-x-to-markdown first-time setup is an agent skill for the Build phase that captures X-to-markdown conversion preferences in EXTEND.md before any content export runs.
Install
npx skills add https://github.com/ideacco/baoyu-skills-openclaw --skill baoyu-danger-x-to-markdownWhat is this skill?
- BLOCKING first-time setup: must finish before any tweet/article conversion or URL handling
- Single AskUserQuestion call batches all preference questions then writes EXTEND.md
- Media modes: ask each time (recommended), always download to imgs/ and videos/, or never download remote URLs only
- Configurable default output directory including recommended x-to-markdown folder
- Setup flow diagram: no EXTEND.md → questions → create EXTEND.md → continue conversion
- 2 bundled setup question groups: media handling and default output directory
- 3 media handling options including ask-each-time recommended mode
Adoption & trust: 1 installs on skills.sh; 12 GitHub stars; 0/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
Every new session re-asks how to save tweets as markdown and whether to download media, wasting time and producing inconsistent folders.
Who is it for?
Solo builders standardizing X/Twitter saves into markdown archives with explicit media and directory rules.
Skip if: Users who already have a valid EXTEND.md or who need conversion without the baoyu OpenClaw preference file pattern.
When should I use this skill?
No EXTEND.md is found and any baoyu-danger-x-to-markdown conversion workflow would otherwise start.
What do I get? / Deliverables
EXTEND.md stores media and output preferences so subsequent baoyu-danger-x-to-markdown conversion steps run immediately with your chosen defaults.
- EXTEND.md with media and output preferences
- Unblocked path to tweet/article markdown conversion
Recommended Skills
Journey fit
First-time preference capture is part of wiring your documentation toolchain during Build, before repeatable content extraction workflows run. Docs subphase fits markdown output defaults, media embedding policy, and persistent EXTEND.md configuration for conversion artifacts.
How it compares
One-time setup gate for a conversion skill—not a general markdown linter or SEO content strategist.
Common Questions / FAQ
Who is baoyu-danger-x-to-markdown for?
Builders using the baoyu OpenClaw X-to-markdown workflow who need persistent preferences for media downloads and output folders.
When should I use baoyu-danger-x-to-markdown?
Use in Build/docs the first time EXTEND.md is missing—before handing the agent any tweet or article URLs to convert.
Is baoyu-danger-x-to-markdown safe to install?
Setup only writes local preference markdown; review the Security Audits panel on this page before enabling always-download media modes that fetch remote X assets.
SKILL.md
READMESKILL.md - Baoyu Danger X To Markdown
# First-Time Setup ## Overview When no EXTEND.md is found, guide user through preference setup. **BLOCKING OPERATION**: This setup MUST complete before ANY other workflow steps. Do NOT: - Start converting tweets or articles - Ask about URLs or output paths - Proceed to any conversion ONLY ask the questions in this setup flow, save EXTEND.md, then continue. ## Setup Flow ``` No EXTEND.md found | v +---------------------+ | AskUserQuestion | | (all questions) | +---------------------+ | v +---------------------+ | Create EXTEND.md | +---------------------+ | v Continue conversion ``` ## Questions **Language**: Use user's input language or saved language preference. Use AskUserQuestion with ALL questions in ONE call: ### Question 1: Download Media ```yaml header: "Media" question: "How to handle images and videos in tweets?" options: - label: "Ask each time (Recommended)" description: "After saving markdown, ask whether to download media" - label: "Always download" description: "Always download media to local imgs/ and videos/ directories" - label: "Never download" description: "Keep original remote URLs in markdown" ``` ### Question 2: Default Output Directory ```yaml header: "Output" question: "Default output directory?" options: - label: "x-to-markdown (Recommended)" description: "Save to ./x-to-markdown/{username}/{tweet-id}.md" ``` Note: User will likely choose "Other" to type a custom path. ### Question 3: Save Location ```yaml header: "Save" question: "Where to save preferences?" options: - label: "User (Recommended)" description: "~/.baoyu-skills/ (all projects)" - label: "Project" description: ".baoyu-skills/ (this project only)" ``` ## Save Locations | Choice | Path | Scope | |--------|------|-------| | User | `~/.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md` | All projects | | Project | `.baoyu-skills/baoyu-danger-x-to-markdown/EXTEND.md` | Current project | ## After Setup 1. Create directory if needed 2. Write EXTEND.md 3. Confirm: "Preferences saved to [path]" 4. Continue with conversion using saved preferences ## EXTEND.md Template ```md download_media: [ask/1/0] default_output_dir: [path or empty] ``` ## Modifying Preferences Later Users can edit EXTEND.md directly or delete it to trigger setup again. import { resolveXToMarkdownChromeProfileDir } from "./paths.js"; export const DEFAULT_BEARER_TOKEN = "Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"; export const DEFAULT_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"; export const X_LOGIN_URL = "https://x.com/home"; export const X_USER_DATA_DIR = resolveXToMarkdownChromeProfileDir(); export const X_COOKIE_NAMES = ["auth_token", "ct0", "gt", "twid"] as const; export const X_REQUIRED_COOKIES = ["auth_token", "ct0"] as const; export const FALLBACK_QUERY_ID = "id8pHQbQi7eZ6P9mA1th1Q"; export const FALLBACK_FEATURE_SWITCHES = [ "profile_label_improvements_pcf_label_in_post_enabled", "responsive_web_profile_redirect_enabled", "rweb_tipjar_consumption_enabled", "verified_phone_label_enabled", "responsive_web_graphql_skip_user_profile_image_extensions_enabled", "responsive_web_graphql_timeline_navigation_enabled", ]; export const FALLBACK_FIELD_TOGGLES = ["withPayments", "withAuxiliaryUserLabels"]; export const FALLBACK_TWEET_QUERY_ID = "HJ9lpOL-ZlOk5CkCw0JW6Q"; export const FALLBACK_TWEET_FEATURE_SWITCHES = [ "creator_subscriptions_tweet_preview_api_enabled", "premium_content_api_read_enabled", "communities_web_enable_tweet_community_results_fetch", "c9s_tweet_anatomy_moderator_badge_enabled", "responsive_web_grok_analyze_button_fetch_trends_enabled", "respo