1仕組みと動作原理
Playwright/Puppeteerを使用せず、CDPを介して実環境のChromeを駆動しコンテンツをXの実UIに入力します。公式説明文でも自動化検出の回避を目的と明記しています。
Posts text, images, videos, and long-form articles to X via real Chrome browser (bypasses anti-bot detection).
4種類のコンテンツ(通常ポスト/動画ポスト/引用/長文記事)で同一のChrome/CDP基盤およびクリップボードサブシステムを共有します。
| `scripts/x-video.ts` | Video posts (text + video) |
主要な回避手法:CDPの合成キーイベントはXに検出・無視されるため、osascriptを用いた実際のCmd+Vキーストロークを送信します。
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、プロファイル分離、Bun、アクセシビリティ権限、クリップボード、貼り付けキー、およびChromeとの競合を検証します。
Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, Chrome conflicts.
初回実行時は手動ログインが必要であり、セッションはプロファイルに永続化されます。
- 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プロファイルディレクトリ(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…