tuzi-post-to-x

安装量: 40
排名: #17869

安装

npx skills add https://github.com/tuziapi/tuzi-skills --skill tuzi-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/.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 .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
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
Post content (positional)
--image
Image file (repeatable, max 4)
--profile
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
Post content (positional)
--video
Video file (MP4, MOV, WebM)
--profile
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
URL to quote (positional)
Comment text (positional, optional)
--profile
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 file (positional)
--cover
Cover image
--title
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.
返回排行榜