1实现原理 · 为什么它能做到
不用 Playwright/Puppeteer,而是驱动真实 Chrome(CDP)把内容填进 X 真实 UI,官方描述即声明目的是绕过反自动化检测。
Posts text, images, videos, and long-form articles to X via real Chrome browser (bypasses anti-bot detection).
四类内容(常规帖/视频帖/引用/长文)共用同一套 Chrome/CDP 基建与剪贴板子系统。
| `scripts/x-video.ts` | Video posts (text + video) |
关键绕过手段:不用 CDP 合成键事件,而用 osascript 发真实 Cmd+V,因为 X 会检测并忽略合成事件。
Sends real Cmd+V keystroke to Chrome, bypassing CDP's synthetic events that X can detect
启动参数主动关闭自动化特征标志。
'--disable-blink-features=AutomationControlled',
长文路径:md-to-html.ts 解析 frontmatter/封面并把正文图替换为 XIMGPH_n 占位符,x-article.ts 经 CDP 填编辑器后反向替换占位符插入图片。
"placeholder": "XIMGPH_1",
剪贴板/键击子系统跨平台:Linux 用 xdotool/ydotool,macOS 用 osascript,Windows 用 PowerShell SendKeys。
{ cmd: 'xdotool', args: ['key', 'ctrl+v'] },
默认只填充不发布:脚本把内容填好后停下等人工复核,长文仅 --submit 才真正发布。
10. **Publish**: Only with `--submit` flag
预检脚本检查 Chrome、profile 隔离、Bun、辅助功能、剪贴板、粘贴键与 Chrome 冲突。
Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, Chrome conflicts.
首次运行需人工登录,会话持久化到 profile。
- First run: log in to X manually (session saved)
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| network | X 编辑器页面(浏览器端访问) |
| cli | bun(经 npx -y 即时拉取) |
| cli | Google Chrome / Chromium(CDP) |
| cli | 真实键击工具:osascript / xdotool / ydotool / powershell.exe |
| package | marked / highlight.js / front-matter / remark-*(md 转换) |
| mcp | Playwright MCP(可选的手工工作流示例调用) |
4风险提醒 风险提醒:红色 · 谨慎使用
- 以真实 Chrome + 真实键击并关闭自动化特征标志,属对 X 反自动化检测的技术性绕过。 — 命中范式红档反反爬/绕过;可能导致账号被风控或违反平台条款。
- 复用共享 Chrome 登录态操作 X,--submit 会以用户账号发布不可逆内容。 — 凭证即 profile 会话;发布动作不可撤回。
- 依赖系统辅助功能/剪贴板权限与真实键击,放大宿主进程的操作面。 — macOS 需授予终端 Accessibility 权限;Linux 依赖 xdotool/ydotool。
- 主脚本(x-*.ts)正文未在 bundle 展开,DOM 操作细节未经代码级复核。 — 第二遍已标 unlocatable。
5第二遍独立确认
- [ok] 反自动化绕过动机 — SKILL.md 描述、regular-posts.md 的 How It Works 与 paste-from-clipboard.ts 顶部注释三处一致声明绕过检测。
- [ok] AutomationControlled 标志 — 风险扫描在 x-article.ts:117 / x-browser.ts:44 / x-quote.ts:48 / x-video.ts:48 四处定位同一参数,判红据成立。
- [ok] 四条内容路径 — SKILL.md Script Reference 与各命令行示例互证 x-browser/x-video/x-quote/x-article 四个入口。
- [ok] 剪贴板/键击跨平台适配 — paste-from-clipboard.ts 正文完整展开,pasteMac/pasteLinux/pasteWindows 分派逐字可核。
- [ok] 长文占位符机制 — articles.md 的 images XIMGPH_n 与 Workflow 第 8 步『反向替换』描述自洽。
- [ok] 凭证读取 — 「凭证/环境变量」39 条命中均为 ${SKILL_DIR}/$HOME/profile 参数与示例,未见密钥/cookie 文件读取;凭据即 profile 登录态,与结论一致。
- [unlocatable] 主脚本的 CDP DOM 细节 — x-browser/x-video/x-quote/x-article.ts 全文未在 bundle 展开,文本注入与 DOM 操作细节以 SKILL.md/references 描述与扫描行为据,未代码级复核。
- [ok] Playwright MCP 引用 — 仅出现在 regular-posts.md 的可选手工工作流示例,非脚本内置依赖,不改变档位。
6结论
aa885729a2c33e40…dd0bf35595