NanoSkill
提交你的 Skill

自動化發布至 X(Twitter)的代理技能

作者JimLiu20KGitHub 星標GitHub

使用真實的 Chrome 瀏覽器,自動將文字、圖片、影片和長篇文章發布到 X(Twitter)。支援多種模式,包括 Codex Chrome 外掛、Computer Use 和 CDP 腳本。開始高效分享內容。

推特安全掃描通過
結果預覽

完整 Demo

查看準備好發布的關於 AI 生產力工具的 Twitter 貼文,附有相關圖片和主題標籤。

開始使用

完成第一個任務

  1. <img src="post-to-x-step-1.png" alt="發佈到 X" />
    01

    步驟 1:安裝

    將技能添加至您的代理。

  2. post-to-x-step-2
    02

    步驟 2:分享貼文點子

    提供您的推文、圖片、影片或文章點子,並要求技能為在 X 上發布做好準備。

  3. post-to-x-step-3
    03

    步驟 3:發布前審查

    在發布前審查生成的貼文並確認。

安裝指令

$ npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-post-to-x

關於

發布至 X(Twitter)技能提供了一個強大的解決方案,用於自動化在 X 上發布內容,讓用戶能夠高效地分享文字、圖片、影片和長篇文章。此工具專為希望簡化其社交媒體存在的任何人設計,從個人用戶到內容創作者和行銷人員。它與真實的 Chrome 瀏覽器實例整合,確保與 X 平台相容,同時提供靈活的控制選項。

此技能脫穎而出的地方在於支援多種瀏覽器控制模式,包括 Codex Chrome 外掛、Chrome Computer Use 和 CDP 腳本模式。這種適應性使其能夠在不同的用戶設置和偏好下有效運作。一項關鍵功能是能夠直接從 Markdown 檔案發布詳細的 X 文章,處理封面圖片上傳和嵌入內容圖片等複雜任務,這對於分享深入內容非常寶貴。

用戶可以利用此技能應對各種場景,例如自動化每日社交媒體更新、將全面的部落格文章或報告作為 X 文章發布,或者快速引用和評論其他推文。它包含有用的預檢功能,以確保環境配置正確,並提供清晰的故障排除指導,使其即使對自動化新手也易於使用。

核心功能

它的強大之處

  • 多內容發布

    無縫發布文字、圖片和影片到 X(Twitter),處理不同媒體類型以滿足多元的內容分享需求。

  • 長篇文章發布

    從 Markdown 檔案發布 X 文章,包含封面圖片和嵌入的內容圖片,非常適合詳細的貼文。

  • 靈活的瀏覽器控制模式

    支援 Codex Chrome 外掛、Chrome Computer Use 和 CDP 腳本模式,適應各種執行環境和使用者偏好。

  • 引用推文功能

    輕鬆引用現有推文並加上您的評論,促進平台上的互動和討論。

  • 飛行前環境檢查

    包含一個腳本,用於檢查必要的先決條件,如 Chrome、Bun 和輔助功能權限,並針對任何問題提供指引。

使用場景

什麼時候適合使用

  • 自動化社交媒體更新

    內容創作者和行銷人員可以排程並自動化他們的定期貼文,包括文字、圖片和影片,以在無需手動介入的情況下保持在 X 上的活躍存在。

  • 發布詳細的 X 文章

    記者、部落客和分析師可以直接從 Markdown 發布包含豐富媒體的長篇文章,與 X 上的受眾分享深入內容。

  • 高效引用和評論

    使用者可以快速引用推文並添加他們的評論,簡化與 X 上的熱門話題或其他使用者內容互動的流程。

SKILL.md

發布至 X(Twitter)

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

在 Codex 中,請勿混淆這些瀏覽器路徑:

  • Codex Chrome 外掛 / @chrome / Chrome 擴充功能:使用捆綁的 chrome:Chrome 技能及其 Node REPL 瀏覽器用戶端。當使用者提到「Codex Chrome 外掛」、「Codex 自带的 Chrome 插件」、@chrome 或類似指令時,必須使用此模式。
  • Chrome Computer Use:僅當使用者要求使用 Computer Use,或未指定 Chrome 外掛偏好且 Computer Use 可用時,才使用 mcp__computer_use__.* 針對可見的 Google Chrome UI 進行操作。
  • CDP 腳本模式:僅作為所選模式不可用,或使用者明確要求 CDP/腳本模式時的備用方案。

腳本目錄

重要:所有腳本位於此技能的 scripts/ 子目錄中。

代理執行指令

  1. 確定此 SKILL.md 檔案的目錄路徑為 {baseDir}
  2. 腳本路徑 = {baseDir}/scripts/<script-name>.ts
  3. 將本文件中的所有 {baseDir} 替換為實際路徑
  4. 解析 ${BUN_X} 執行環境:若已安裝 bun → 使用 bun;若 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.tsMarkdown → 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 文章,使用經過測試的 X 編輯器流程:從工具列(插入 -> 媒體 -> 對話圖示按鈕 新增相片或影片)在每個圖片佔位符處插入本文圖片,然後刪除佔位符文字。僅在所選的瀏覽器控制模式不可用,或 UI 上傳/選擇流程不可靠時,才使用 CDP 腳本模式。

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

Codex Chrome 外掛模式

當使用者要求使用 Codex Chrome 外掛、@chrome 或 Chrome 擴充功能路徑時,使用此模式。這會透過捆綁的 Chrome 外掛,使用使用者的真實 Chrome 設定檔和 X 登入狀態,而非 Computer Use 或 CDP。

設定

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

一般規則

  • 使用 Chrome 外掛的 browser.tabs.*tab.playwright.*tab.cua.* 和檔案選擇器 API 進行 X UI 操作。
  • 允許使用 Shell 命令進行 Markdown 預處理和豐富 HTML 的剪貼簿準備。對於 X 文章的本文圖片,請勿依賴圖片剪貼簿貼上;使用編輯器的 插入 -> 媒體 上傳流程。
  • 若檔案上傳失敗並顯示 不允許,告訴使用者:要啟用檔案上傳,請前往 Chrome 中的 chrome://extensions,在 Codex 擴充功能下點擊詳細資料,並啟用「允許存取檔案 URL」。詳情請見 https://developers.openai.com/codex/app/chrome-extension#upload-files。
  • 若 Chrome 外掛回報 原生管道已關閉,請在 2 秒後重試輕量瀏覽器呼叫一次,然後執行 Chrome 技能健康檢查。若 Chrome 正在運行、擴充功能已啟用,且原生主機資訊清單正確,則請求允許開啟新的 Chrome 視窗並重試。請勿透過損壞的管道持續傳送瀏覽器動作。
  • 在目前對話中獲得使用者的明確最終確認前,請勿點擊 發布貼文 或任何外部可見的提交動作。

X 文章

  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)並點擊,將游標置於該處。
    • 開啟工具列選單 插入 -> 媒體
    • 在彈出視窗中,點擊帶有 aria-label="新增相片或影片" 的圖示按鈕;請勿點擊文字/拖放區或隱藏的檔案輸入。
    • 使用檔案選擇器上傳該圖片的 localPath
    • 圖片出現後,若 XIMGPH_N 仍在其上方,請選取該佔位符並先按 Delete 鍵。僅在 Delete 失敗且已確認所選文字確實為該佔位符時,才使用 Backspace
    • 驗證該 XIMGPH_N 的佔位符數量為 0
  9. 開啟預覽並驗證標題、封面、本文、連結和圖片。
  10. 在獲得明確確認後,再點擊 發布

偏好設定 (EXTEND.md)

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

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

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

EXTEND.md 支援:預設 Chrome 設定檔

先決條件

  • Google Chrome 或 Chromium
  • bun 執行環境
  • 首次執行:手動登入 X(會話將被保存)

飛行前檢查(選用)

在首次使用前,建議執行環境檢查。使用者若傾向,可以跳過。

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

檢查項目:Chrome、設定檔隔離、Bun、輔助功能、剪貼簿、貼上按鍵、Chrome 衝突。

若任何檢查失敗,請針對各項提供修復指引:

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

參考資料

  • 一般貼文:請參閱 references/regular-posts.md 以瞭解手動工作流程、故障排除和技術細節
  • X 文章:請參閱 references/articles.md 以獲得長篇文章發布指南

Chrome Computer Use 模式

當使用者明確要求 Chrome Computer Use,或未指定 Chrome 外掛偏好且 Codex 可以使用 Computer Use 控制 Google Chrome 時,使用此模式。這會使用使用者現有的 Chrome 視窗、cookies、登入狀態、擴充功能和 X 會話。

一般規則

  • 在控制 Chrome 的每個助手回合開始時,對 Google Chrome 呼叫 get_app_state
  • 當可用時,優先使用元素索引動作;僅在編輯器文字選取或拖曳選取時使用座標。
  • 在此模式下,請勿使用應用程式內瀏覽器、Chrome 外掛、Playwright 或 CDP 進行 X UI 動作,除非使用者核准模式變更。
  • 在目前對話中獲得使用者的明確最終確認前,請勿點擊 發布貼文 或任何外部可見的提交動作。

一般貼文

  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. 在點擊 貼文 前詢問確認。

影片貼文

  1. 開啟或導航 Chrome 至 https://x.com/compose/post
  2. 在編輯器中輸入貼文文字。
  3. 使用可見的媒體上傳/檔案選擇器 UI 附加影片。
  4. 等待上傳和處理完成。
  5. 在點擊 貼文 前詢問確認。

引用推文

  1. 在 Chrome 中開啟推文 URL。
  2. 使用可見的引用/轉發 UI 選擇「引用」。
  3. 輸入評論。
  4. 在點擊 貼文 前詢問確認。

X 文章

  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,並點擊以設定插入點。
    • 開啟工具列 插入 下拉選單,選擇 媒體,然後點擊彈出視窗中標記為 新增相片或影片 的圖示按鈕。
    • 使用原生檔案選擇器選擇圖片的 localPath
    • 等待圖片區塊出現且所有上傳活動完成。
    • 若佔位符仍留在插入的圖片上方,請重新選取該佔位符文字並先按 Delete 鍵。僅在 Delete 失敗且已確認所選文字確實為該佔位符時,才使用 Backspace
  7. 驗證沒有留下 XIMGPH_ 佔位符,且顯示預期的圖片。
  8. 開啟預覽並驗證標題、封面、本文、連結和圖片。
  9. 在獲得明確確認後,再點擊 發布

若 Computer Use 的選取、工具列上傳或檔案選擇器控制變得不穩定,請停止並回報障礙,而非默默切換至 Chrome 外掛或 CDP。

CDP 腳本模式(備用)

僅在所選的瀏覽器控制模式不可用、不可靠或明確未被要求時,才使用下方的腳本區塊。這些腳本透過 CDP 啟動或重複使用真實的 Chrome 實例,並保持瀏覽器開啟以供審查。

當使用者明確要求 Codex Chrome 外掛或 Chrome Computer Use 時,請勿使用 CDP 腳本模式,除非在您說明障礙後,使用者核准此備用方案。

貼文類型選擇

除非使用者明確指定貼文類型:

  • 純文字 + 10,000 字元以內 → 一般貼文(Premium 會員支援最多 10,000 字元,非 Premium:280)
  • Markdown 檔案 (.md) → X 文章

一般貼文

${BUN_X} {baseDir}/scripts/x-browser.ts "Hello!" --image ./photo.png

參數

參數說明
<text>貼文內容(位置參數)
--image <path>圖片檔案(可重複,最多 4 張)
--profile <dir>自訂 Chrome 設定檔

注意:腳本會開啟已填入內容的瀏覽器。使用者需手動審查並發布。

Codex 模式注意事項:若使用者明確要求 Codex Chrome 外掛,請使用 Codex Chrome 外掛模式。否則,若 Chrome Computer Use 已啟用,請使用 Chrome Computer Use 模式,而非執行 x-browser.ts

影片貼文

文字 + 影片檔案。

${BUN_X} {baseDir}/scripts/x-video.ts "Check this out!" --video ./clip.mp4

參數

參數說明
<text>貼文內容(位置參數)
--video <path>影片檔案(MP4、MOV、WebM)
--profile <dir>自訂 Chrome 設定檔

注意:腳本會開啟已填入內容的瀏覽器。使用者需手動審查並發布。

Codex 模式注意事項:若使用者明確要求 Codex Chrome 外掛,請使用 Codex Chrome 外掛模式。否則,若 Chrome Computer Use 已啟用,請使用 Chrome Computer Use 模式,而非執行 x-video.ts

限制:一般用戶最長 140 秒,Premium 最長 60 分鐘。處理時間:30-60 秒。

引用推文

引用現有推文並加上評論。

${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!"

參數

參數說明
<tweet-url>要引用的 URL(位置參數)
<comment>評論文字(位置參數,選用)
--profile <dir>自訂 Chrome 設定檔

注意:腳本會開啟已填入內容的瀏覽器。使用者需手動審查並發布。

Codex 模式注意事項:若使用者明確要求 Codex Chrome 外掛,請使用 Codex Chrome 外掛模式。否則,若 Chrome Computer Use 已啟用,請使用 Chrome Computer Use 模式,而非執行 x-quote.ts

X 文章

長篇 Markdown 文章(需要 X Premium)。

${BUN_X} {baseDir}/scripts/x-article.ts article.md
${BUN_X} {baseDir}/scripts/x-article.ts article.md --cover ./cover.jpg

參數

參數說明
<markdown>Markdown 檔案(位置參數)
--cover <path>封面圖片
--title <text>覆蓋標題

Frontmatter:支援在 YAML 前言中使用 titlecover_image

Codex 模式注意事項:若使用者明確要求 Codex Chrome 外掛,請遵循上方的 Codex Chrome 外掛模式。若使用者明確要求 Chrome Computer Use,請遵循 Chrome Computer Use 模式。否則,優先使用 Chrome Computer Use;對於帶有本機內容圖片的 Markdown 文章,在退回使用 CDP 腳本模式x-article.ts 之前,請先使用工具列 插入 -> 媒體 的圖片上傳工作流程。

CDP 備用注意事項:腳本會開啟已填入文章的瀏覽器。除非使用 --submit,否則使用者需手動審查並發布。

發布安全:除非使用者明確確認最終公開發布動作,否則請勿使用 --submit 或點擊 發布

撰寫後檢查:腳本在插入所有圖片後會自動驗證:

  • 編輯器內容中剩餘的 XIMGPH_ 佔位符
  • 預期與實際圖片數量比較

若檢查失敗(輸出中有警告),在發布前提醒使用者具體問題。

故障排除

Chrome 除錯埠未就緒

僅限 CDP 備用模式:若腳本因 Chrome 除錯埠未就緒無法連線 而失敗,請先終止現有的 Chrome CDP 實例,然後重試:

pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2

重要:這應自動執行 — 遇到此錯誤時,無需詢問使用者即終止 Chrome CDP 實例並重試命令。

注意事項

  • 首次執行:需要手動登入(會話持續存在)
  • 在 Codex Chrome 外掛模式和 Chrome Computer Use 模式中,使用使用者現有的 Chrome 會話,不要啟動獨立的 CDP 設定檔
  • 預設情況下,CDP 腳本僅將內容填入瀏覽器;使用者必須手動審查並發布,除非明確使用 --submit
  • 跨平台:macOS、Linux、Windows

擴充支援

透過 EXTEND.md 進行自訂配置。請參閱 偏好設定 章節以獲得路徑和支援選項。

常見問題