baoyu-post-to-x

baoyu-post-to-x

熱門

發布內容與文章至 X (Twitter)。支援包含圖片/影片的一般貼文以及 X Articles(長篇 Markdown 文章)。在 Codex 中,若使用者明確指定 Codex Chrome 外掛 / `@chrome`,請使用 Chrome 擴充功能工作流程;否則在可用時優先使用 Chrome Computer Use,並僅在允許時退回使用真實 Chrome CDP 腳本。當使用者要求「發布至 X」、「發推」、「發布到 Twitter」或「分享至 X」時使用。

2.2萬星標
2606分支
更新於 2026/6/18
SKILL.md
唯讀
名稱
baoyu-post-to-x
描述

發布內容與文章至 X (Twitter)。支援包含圖片/影片的一般貼文以及 X Articles(長篇 Markdown 文章)。在 Codex 中,若使用者明確指定 Codex Chrome 外掛 / `@chrome`,請使用 Chrome 擴充功能工作流程;否則在可用時優先使用 Chrome Computer Use,並僅在允許時退回使用真實 Chrome CDP 腳本。當使用者要求「發布至 X」、「發推」、「發布到 Twitter」或「分享至 X」時使用。

版本
1.58.1

發布至 X (Twitter)

透過真實的 Chrome 瀏覽器,將文字、圖片、影片及長篇文章發布至 X。

在 Codex 中,切勿混淆以下幾種瀏覽器控制途徑:

  • Codex Chrome 外掛 / @chrome / Chrome 擴充功能:使用內建的 chrome:Chrome Skill 以及 Node REPL 瀏覽器用戶端。每當使用者提及「Codex Chrome plugin」、「Codex 自帶的 Chrome 外掛」、@chrome 或類似用語時,必須使用此途徑。
  • Chrome Computer Use:僅在使用者要求 Computer Use,或未指定 Chrome 外掛偏好且 Computer Use 可用時,針對可見的 Google Chrome UI 使用 mcp__computer_use__.*
  • CDP 腳本模式:僅在所選模式不可用,或使用者明確要求 CDP/腳本模式時,作為備用方案使用。

腳本目錄

重要事項:所有腳本均位於此 Skill 的 scripts/ 子目錄中。

Agent 執行說明

  1. 將此 SKILL.md 檔案的目錄路徑判定為 {baseDir}
  2. 腳本路徑 = {baseDir}/scripts/<script-name>.ts
  3. 將本文件中所有的 {baseDir} 替換為實際路徑
  4. 解析 ${BUN_X} 執行環境:若已安裝 bunbun;若 npx 可用 → npx -y bun;否則建議安裝 bun

腳本參考

腳本 用途
scripts/x-browser.ts 一般貼文(文字 + 圖片),CDP 備用方案
scripts/x-video.ts 影片貼文(文字 + 影片),CDP 備用方案
scripts/x-quote.ts 引用貼文附帶評論,CDP 備用方案
scripts/x-article.ts 長篇文章發布(Markdown),CDP 備用方案
scripts/md-to-html.ts Markdown → HTML 轉換
scripts/copy-to-clipboard.ts 將內容複製到剪貼簿
scripts/paste-from-clipboard.ts 發送真實的貼上按鍵動作
scripts/check-paste-permissions.ts 驗證環境與權限

選擇執行模式(必要)

在與 X 互動之前,請嚴格選擇以下其中一種模式:

  1. 若使用者明確要求使用 Codex Chrome 外掛、@chrome、Chrome 擴充功能或「Codex 自帶的 Chrome 外掛」,請使用 Codex Chrome 外掛模式。切勿先呼叫 Computer Use。
  2. 若使用者明確要求使用 Chrome Computer Use,請使用 Chrome Computer Use 模式。未告知使用者並取得同意前,切勿自行退回使用 CDP、Playwright、應用程式內建瀏覽器或 Chrome 外掛。
  3. 若使用者明確要求使用 CDP/腳本模式,請使用 CDP 腳本模式
  4. 否則,優先使用 Chrome Computer Use 模式。針對包含本地圖片的 Markdown X Articles,請使用經測試的 X 編輯器流程:透過工具列(Insert -> Media -> 對話方塊圖示按鈕 Add photos or video)在預留位置處插入每張內文圖片,然後刪除預留位置文字。僅在所選的瀏覽器控制模式不可用,或 UI 上傳/選擇流程不可靠時,才使用 CDP 腳本模式。

切勿將應用程式內建瀏覽器用於 X 的發布工作流程。

Codex Chrome 外掛模式

每當使用者要求 Codex Chrome 外掛、@chrome 或 Chrome 擴充功能途徑時,請使用此模式。此模式會透過內建的 Chrome 外掛使用使用者真實的 Chrome 個人檔案與 X 登入狀態,而非使用 Computer Use 或 CDP。

設定流程

  1. 在進行瀏覽器操作前,先載入 chrome:Chrome Skill。
  2. 若 Node REPL 的 js 工具尚未顯示,請使用 tool_search 搜尋 node_repl js
  3. 完全按照 Chrome Skill 的規範初始化 Chrome 瀏覽器用戶端,接著執行輕量級呼叫(例如 browser.user.openTabs())以驗證擴充功能連線。
  4. 若第一次輕量級呼叫失敗,請等待 2 秒後重試一次。若依然失敗,請遵循 Chrome Skill 的擴充功能檢查與復原步驟。若檢查通過但通訊仍失敗,在開啟新的 Chrome 視窗前請先詢問使用者。切勿默默切換至 Computer Use 或 CDP。

通用規則

  • 執行 X UI 操作時,請使用 Chrome 外掛的 browser.tabs.*tab.playwright.*tab.cua.* 以及檔案選擇器 API。
  • 允許使用 Shell 命令進行 Markdown 預處理以及富文字 HTML 剪貼簿準備。針對 X Article 內文圖片,請勿依賴剪貼簿貼上圖片;請使用編輯器的 Insert -> Media 上傳流程。
  • 若檔案上傳失敗並顯示 Not allowed,請告知使用者:如需啟用檔案上傳,請在 Chrome 中造訪 chrome://extensions,點擊 Codex 擴充功能下方的「詳細資訊」,並啟用「允許存取檔案網址」。詳情請參閱 https://developers.openai.com/codex/app/chrome-extension#upload-files。
  • 若 Chrome 外掛回報 native pipe is closed,請在 2 秒後重試一次輕量級瀏覽器呼叫,然後執行 Chrome Skill 的健康檢查。若 Chrome 正在運行、擴充功能已啟用且原生主機資訊清單(native host manifest)正確,請請求許可開啟新的 Chrome 視窗並重試。切勿繼續透過已中斷的管道發送瀏覽器操作。
  • 在當前對話中未取得使用者明確的最終確認之前,切勿點擊 PublishPost 或任何對外可見的送出動作。

X Articles 流程

  1. 轉換 Markdown 並保留圖片對照表:
    ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
    
  2. 讀取 JSON 輸出的 titlecoverImagecontentImagesplaceholderlocalPath)。
  3. https://x.com/compose/articles 開啟或建立文章草稿。
  4. 使用 Chrome 外掛的檔案選擇器流程上傳封面圖。若上傳因擴充功能權限受阻,請停止並回報上述精確的權限修復方法。
  5. 填寫標題,然後複製富文字 HTML:
    ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
    
  6. 透過 Chrome 外掛以真實的貼上按鍵動作貼入文章內文。在 macOS 上使用 Meta+V
  7. 確認編輯器內文包含文章主體與 XIMGPH_ 預留位置。使用 Shell 寫入剪貼簿後,切勿依賴 tab.clipboard.readText() 作為系統剪貼簿的證明;必要時在 macOS 上請使用 pbpaste 進行驗證。
  8. 依照預留位置順序,針對每個 contentImages 項目:
    • 定位可見的預留位置文字(XIMGPH_N)並點擊以將游標放置於該處。
    • 開啟工具列選單 Insert -> Media
    • 在彈出視窗中,點擊 aria-label="Add photos or video" 的圖示按鈕;切勿點擊文字/拖曳區或隱藏的檔案輸入元件。
    • 使用檔案選擇器上傳該圖片的 localPath
    • 圖片出現後,若 XIMGPH_N 仍位於圖片上方,請精確選取該預留位置並優先按下 Delete。僅在 Delete 失敗且確認選取的文字完全等於預留位置時,才使用 Backspace
    • 驗證該 XIMGPH_N 的預留位置數量已變為 0
  9. 開啟預覽(Preview),確認標題、封面、內文、連結與圖片均正常。
  10. 在點擊 Publish 之前,務必尋求使用者的明確確認。

偏好設定 (EXTEND.md)

依優先順序檢查 EXTEND.md — 以找到的第一個為準:

優先順序 路徑 範圍
1 .baoyu-skills/baoyu-post-to-x/EXTEND.md 專案 (Project)
2 ${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-x/EXTEND.md XDG
3 $HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md 使用者主目錄 (User home)

若皆未找到,則使用預設值。

EXTEND.md 支援:預設 Chrome 個人檔案

先決條件

  • Google Chrome 或 Chromium
  • bun 執行環境
  • 首次執行:手動登入 X(會自動儲存工作階段 session)

執行前檢查(可選)

首次使用前,建議執行環境檢查。使用者亦可依偏好跳過。

${BUN_X} {baseDir}/scripts/check-paste-permissions.ts

檢查項目:Chrome、個人檔案隔離、Bun、輔助功能 (Accessibility)、剪貼簿、貼上按鍵動作、Chrome 衝突。

若有任何檢查失敗,請依項目提供修復指引:

檢查項目 修復方法
Chrome 安裝 Chrome 或設定 X_BROWSER_CHROME_PATH 環境變數
個人檔案目錄 位於 baoyu-skills/chrome-profile 的共用個人檔案(參閱 CLAUDE.md 的 Chrome Profile 章節)
Bun 執行環境 brew install oven-sh/bun/bun (macOS) 或 npm install -g bun
輔助功能 (macOS) 系統設定 → 隱私權與安全性 → 輔助功能 → 啟用終端機應用程式
剪貼簿複製 確保 Swift/AppKit 可用(macOS Xcode CLI 工具:xcode-select --install
貼上按鍵動作 (macOS) 同上方的輔助功能修復方法
貼上按鍵動作 (Linux) 安裝 xdotool (X11) 或 ydotool (Wayland)

參考資料

  • 一般貼文:手動工作流程、疑難排解與技術細節請參閱 references/regular-posts.md
  • X Articles:長篇文章發布指南請參閱 references/articles.md

Chrome Computer Use 模式

當使用者明確要求 Chrome Computer Use,或者未指定 Chrome 外掛偏好且 Codex 可透過 Computer Use 控制 Google Chrome 時,請使用此模式。此模式會使用使用者現有的 Chrome 視窗、Cookie、登入狀態、擴充功能以及 X 工作階段。

通用規則

  • 每次助理回合控制 Chrome 時,先呼叫 Google Chromeget_app_state
  • 在可用時優先使用元素索引 (element-index) 動作;僅在編輯器文字選取或拖曳選取時才使用座標。
  • 在此模式下,除非使用者同意變更模式,否則切勿將應用程式內建瀏覽器、Chrome 外掛、Playwright 或 CDP 用於 X UI 操作。
  • 在當前對話中未取得使用者明確的最終確認之前,切勿點擊 PublishPost 或任何對外可見的送出動作。

一般貼文

  1. 在 Chrome 中開啟或導覽至 https://x.com/compose/post
  2. 使用 Computer Use 在撰寫框中輸入貼文文字。
  3. 針對每張圖片,執行:
    ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png
    
  4. 使用 Computer Use 貼上(macOS 使用 super+v,Windows/Linux 使用 control+v),然後等待 X 完成媒體上傳。
  5. 在點擊 Post 前先尋求確認。

影片貼文

  1. 在 Chrome 中開啟或導覽至 https://x.com/compose/post
  2. 在撰寫框中輸入貼文文字。
  3. 使用可見的媒體上傳/檔案選擇器 UI 附加影片。
  4. 等待上傳與處理完成。
  5. 在點擊 Post 前先尋求確認。

引用貼文

  1. 在 Chrome 中開啟推文網址。
  2. 使用可見的引用/轉發 UI 選擇 Quote。
  3. 輸入評論文字。
  4. 在點擊 Post 前先尋求確認。

X Articles 流程

  1. 轉換 Markdown 並保留圖片對照表:
    ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
    
  2. 讀取 JSON 輸出的 titlecoverImagecontentImagesplaceholderlocalPath)。
  3. 在 Chrome 中開啟 https://x.com/compose/articles,建立或開啟草稿,若有封面圖則上傳封面,並填寫標題。
  4. 將富文字 HTML 複製到剪貼簿:
    ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
    
  5. 使用 Computer Use 貼入文章內文。
  6. 依照預留位置順序,針對每個 contentImages 條目:
    • 定位可見的精確預留位置文字(例如 XIMGPH_3)並點擊以設定插入點。
    • 開啟工具列的 Insert 下拉選單,選擇 Media,然後點擊彈出視窗中標示為 Add photos or video 的圖示按鈕。
    • 使用原生檔案選擇器選取圖片的 localPath
    • 等待圖片區塊出現且所有上傳活動完成。
    • 若預留位置仍位於插入的圖片上方,請重新精確選取該預留位置文字並優先按下 Delete。僅在 Delete 失敗且選取的文字...