baoyu-post-to-x

Posts text, images, videos, and long-form articles to X via real Chrome browser (bypasses anti-bot detection).

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "baoyu-post-to-x" with this command: npx skills add oldwinter/skills/oldwinter-skills-baoyu-post-to-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

scripts/check-paste-permissions.ts

Verify environment & permissions

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

Prerequisites

  • Google Chrome or Chromium

  • bun runtime

  • First run: log in to X manually (session saved)

Pre-flight Check (Optional)

Before first use, suggest running the environment check. User can skip if they prefer.

npx -y bun ${SKILL_DIR}/scripts/check-paste-permissions.ts

Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, Chrome conflicts.

If any check fails, provide fix guidance per item:

Check Fix

Chrome Install Chrome or set X_BROWSER_CHROME_PATH env var

Profile dir Ensure ~/.local/share/x-browser-profile is writable

Bun runtime curl -fsSL https://bun.sh/install | bash

Accessibility (macOS) System Settings → Privacy & Security → Accessibility → enable terminal app

Clipboard copy Ensure Swift/AppKit available (macOS Xcode CLI tools: xcode-select --install )

Paste keystroke (macOS) Same as Accessibility fix above

Paste keystroke (Linux) Install xdotool (X11) or ydotool (Wayland)

References

  • Regular Posts: See references/regular-posts.md for manual workflow, troubleshooting, and technical details

  • X Articles: See references/articles.md for 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

Parameters:

Parameter Description

<text>

Post content (positional)

--image <path>

Image file (repeatable, max 4)

--profile <dir>

Custom Chrome profile

Note: Script opens browser with content filled in. User reviews and publishes manually.

Video Posts

Text + video file.

npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Check this out!" --video ./clip.mp4

Parameters:

Parameter Description

<text>

Post content (positional)

--video <path>

Video file (MP4, MOV, WebM)

--profile <dir>

Custom Chrome profile

Note: Script opens browser with content filled in. User reviews and publishes manually.

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!"

Parameters:

Parameter Description

<tweet-url>

URL to quote (positional)

<comment>

Comment text (positional, optional)

--profile <dir>

Custom Chrome profile

Note: Script opens browser with content filled in. User reviews and publishes manually.

X Articles

Long-form Markdown articles (requires X Premium).

npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --cover ./cover.jpg

Parameters:

Parameter Description

<markdown>

Markdown file (positional)

--cover <path>

Cover image

--title <text>

Override title

Frontmatter: title , cover_image supported in YAML front matter.

Note: Script opens browser with article filled in. User reviews and publishes manually.

Post-Composition Check: The script automatically verifies after all images are inserted:

  • Remaining XIMGPH_ placeholders in editor content

  • Expected vs actual image count

If the check fails (warnings in output), alert the user with the specific issues before they publish.

Troubleshooting

Chrome debug port not ready

If a script fails with Chrome debug port not ready or Unable to connect , kill existing Chrome CDP instances first, then retry:

pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2

Important: This should be done automatically — when encountering this error, kill Chrome CDP instances and retry the command without asking the user.

Notes

  • First run: manual login required (session persists)

  • All scripts only fill content into the browser, user must review and publish manually

  • Cross-platform: macOS, Linux, Windows

Extension Support

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

agent-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

designing-growth-loops

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

e2e-test-automation

No summary provided by upstream source.

Repository SourceNeeds Review