Baoyu Post To X
When & Why to Use This Skill
This Claude skill provides a robust solution for automating X (Twitter) interactions, allowing users to publish regular posts, multimedia content, and long-form articles. By utilizing a real Chrome browser via CDP (Chrome DevTools Protocol), it effectively bypasses anti-bot detection, ensuring reliable delivery of content. It is particularly powerful for creators who want to convert Markdown documents into X Articles or automate social media workflows directly from their AI environment.
Use Cases
- Automated Content Distribution: Streamline the process of posting updates, news, and marketing threads to X without manual browser entry.
- Markdown to X Articles: Effortlessly transform long-form Markdown files into professional X Articles, including support for titles and cover images.
- Multimedia Marketing: Automate the uploading of promotional videos and image galleries (up to 4 images) to enhance social media engagement.
- Strategic Engagement: Use the quote tweet functionality to share industry-relevant content with automated, AI-generated commentary to maintain an active social presence.
| name | baoyu-post-to-x |
|---|---|
| description | Posts content and articles to X (Twitter). Supports regular posts with images/videos and X Articles (long-form Markdown). Uses real Chrome with CDP to bypass anti-automation. Use when user asks to "post to X", "tweet", "publish to Twitter", or "share on X". |
Post to X (Twitter)
Posts text, images, videos, and long-form articles to X via real Chrome browser (bypasses anti-bot detection).
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/x-browser.ts |
Regular posts (text + images) |
scripts/x-video.ts |
Video posts (text + video) |
scripts/x-quote.ts |
Quote tweet with comment |
scripts/x-article.ts |
Long-form article publishing (Markdown) |
scripts/md-to-html.ts |
Markdown → HTML conversion |
scripts/copy-to-clipboard.ts |
Copy content to clipboard |
scripts/paste-from-clipboard.ts |
Send real paste keystroke |
Preferences (EXTEND.md)
Use Bash to check EXTEND.md existence (priority order):
# Check project-level first
test -f .baoyu-skills/baoyu-post-to-x/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md" && echo "user"
┌──────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-post-to-x/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md │ User home │ └──────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Use defaults │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md Supports: Default Chrome profile | Auto-submit preference
Prerequisites
- Google Chrome or Chromium
bunruntime- First run: log in to X manually (session saved)
References
- Regular Posts: See
references/regular-posts.mdfor manual workflow, troubleshooting, and technical details - X Articles: See
references/articles.mdfor long-form article publishing guide
Regular Posts
Text + up to 4 images.
npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.png # Preview
npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.png --submit # Post
Parameters:
| Parameter | Description |
|---|---|
<text> |
Post content (positional) |
--image <path> |
Image file (repeatable, max 4) |
--submit |
Post (default: preview) |
--profile <dir> |
Custom Chrome profile |
Video Posts
Text + video file.
npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Check this out!" --video ./clip.mp4 # Preview
npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Amazing content" --video ./demo.mp4 --submit # Post
Parameters:
| Parameter | Description |
|---|---|
<text> |
Post content (positional) |
--video <path> |
Video file (MP4, MOV, WebM) |
--submit |
Post (default: preview) |
--profile <dir> |
Custom Chrome profile |
Limits: Regular 140s max, Premium 60min. Processing: 30-60s.
Quote Tweets
Quote an existing tweet with comment.
npx -y bun ${SKILL_DIR}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!" # Preview
npx -y bun ${SKILL_DIR}/scripts/x-quote.ts https://x.com/user/status/123 "I agree!" --submit # Post
Parameters:
| Parameter | Description |
|---|---|
<tweet-url> |
URL to quote (positional) |
<comment> |
Comment text (positional, optional) |
--submit |
Post (default: preview) |
--profile <dir> |
Custom Chrome profile |
X Articles
Long-form Markdown articles (requires X Premium).
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md # Preview
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --cover ./cover.jpg # With cover
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --submit # Publish
Parameters:
| Parameter | Description |
|---|---|
<markdown> |
Markdown file (positional) |
--cover <path> |
Cover image |
--title <text> |
Override title |
--submit |
Publish (default: preview) |
Frontmatter: title, cover_image supported in YAML front matter.
Notes
- First run: manual login required (session persists)
- Always preview before
--submit - Cross-platform: macOS, Linux, Windows
Extension Support
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.