tuzi-post-to-x
Original:🇺🇸 English
Translated
9 scripts
发布内容和文章到 X (Twitter)。支持带图片/视频的普通推文和 X Articles(长文 Markdown)。使用真实 Chrome 配合 CDP 绕过反自动化检测。当用户要求"发推"、"发布到X"、"发Twitter"时使用。
3installs
Sourcetuziapi/tuzi-skills
Added on
NPX Install
npx skill4agent add tuziapi/tuzi-skills tuzi-post-to-xTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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 subdirectory of this skill.
scripts/Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>.ts - Replace all in this document with the actual path
${SKILL_DIR}
Script Reference:
| Script | Purpose |
|---|---|
| Regular posts (text + images) |
| Video posts (text + video) |
| Quote tweet with comment |
| Long-form article publishing (Markdown) |
| Markdown → HTML conversion |
| Copy content to clipboard |
| Send real paste keystroke |
| Verify environment & permissions |
Preferences (EXTEND.md)
Use Bash to check EXTEND.md existence (priority order):
bash
# Check project-level first
test -f .tuzi-skills/tuzi-post-to-x/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.tuzi-skills/tuzi-post-to-x/EXTEND.md" && echo "user"┌──────────────────────────────────────────────────┬───────────────────┐
│ Path │ Location │
├──────────────────────────────────────────────────┼───────────────────┤
│ .tuzi-skills/tuzi-post-to-x/EXTEND.md │ Project directory │
├──────────────────────────────────────────────────┼───────────────────┤
│ $HOME/.tuzi-skills/tuzi-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
- runtime
bun - 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.
bash
npx -y bun ${SKILL_DIR}/scripts/check-paste-permissions.tsChecks: 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 |
| Profile dir | Ensure |
| Bun runtime | |
| Accessibility (macOS) | System Settings → Privacy & Security → Accessibility → enable terminal app |
| Clipboard copy | Ensure Swift/AppKit available (macOS Xcode CLI tools: |
| Paste keystroke (macOS) | Same as Accessibility fix above |
| Paste keystroke (Linux) | Install |
References
- Regular Posts: See for manual workflow, troubleshooting, and technical details
references/regular-posts.md - X Articles: See for long-form article publishing guide
references/articles.md
Regular Posts
Text + up to 4 images.
bash
npx -y bun ${SKILL_DIR}/scripts/x-browser.ts "Hello!" --image ./photo.pngParameters:
| Parameter | Description |
|---|---|
| Post content (positional) |
| Image file (repeatable, max 4) |
| Custom Chrome profile |
Note: Script opens browser with content filled in. User reviews and publishes manually.
Video Posts
Text + video file.
bash
npx -y bun ${SKILL_DIR}/scripts/x-video.ts "Check this out!" --video ./clip.mp4Parameters:
| Parameter | Description |
|---|---|
| Post content (positional) |
| Video file (MP4, MOV, WebM) |
| 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.
bash
npx -y bun ${SKILL_DIR}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!"Parameters:
| Parameter | Description |
|---|---|
| URL to quote (positional) |
| Comment text (positional, optional) |
| 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).
bash
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md
npx -y bun ${SKILL_DIR}/scripts/x-article.ts article.md --cover ./cover.jpgParameters:
| Parameter | Description |
|---|---|
| Markdown file (positional) |
| Cover image |
| Override title |
Frontmatter: , supported in YAML front matter.
titlecover_imageNote: 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 placeholders in editor content
XIMGPH_ - 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 or , kill existing Chrome CDP instances first, then retry:
Chrome debug port not readyUnable to connectbash
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2Important: 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.