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外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| 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管控建议与判定依据
- SKILL.md / 脚本参数: 包含绕过自动化检测、关闭宿主沙箱或跳过 SSL 证书校验
- SKILL.md / 会话存储: 读取或复用浏览器用户登录态与会话 Cookie
- scripts/: 执行本地脚本或命令: npx -y bun ${SKILL_DIR}/scripts/x-browser.ts / x-video.ts / x-quote.ts / x-
- 网络端点: 声明外部网络访问: CDP 端口发现 http://127.0.0.1:<port>/json/version 并以 WebSocket 连 CDP(x-utils.ts
- 本地工作目录: 文件读写与工件输出: Chrome profile 目录(X_BROWSER_CHROME_PATH / profile 参数可改指向)
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…