Coolkid mascot CoolkidLab Build in Public. Level up together.
首頁新手教學SEO 歷程開源工具庫陪跑服務關於

Workflow · 內容生產機器人

Threads 自動發文機器人

閱讀

內容生產機器人

我想固定在 Threads 分享 GitHub 上的好專案,順便當 build-in-public 的素材。但每天逛熱門榜、挑一個、看懂它在幹嘛、翻成繁中再發出去,大概要花一小時。固定的事就該自動化,可是我不想做成「全自動亂發」。

開源工具 · 可直接安裝

github.com/Coolkidlab-Yin/threads-auto-poster

/plugin marketplace add Coolkidlab-Yin/Coolkidlab
/plugin install threads-auto-poster@coolkidlab

在 Claude Code 輸入上面兩行即可安裝。裝完直接說你想做什麼,AI 會照 skill 的 SOP 帶你建;原始碼與 README 都在 GitHub。

摘要

用 Claude Code 的 scheduled-tasks 每天觸發,跳一題問我今天想看哪個方向,抓 GitHub 熱門專案挑一個並用我口吻寫中文介紹,再透過 Threads Graph API 分兩步發出去。核心是「我出 5 秒判斷,AI 處理剩下一小時的勞動」,不是全自動,人還是有參與。2026 年 5 月初上線後穩定跑到現在。

卡點:固定分享 GitHub 好物 但每天手挑手寫很累

想固定分享 GitHub 好專案累積帳號,但流程每天一模一樣。逛熱門榜、挑一個、看懂它在幹嘛、用自己口吻翻中文、發出去。

固定的勞動就該丟給程式。

但我看過太多「全自動發文機器人」,吐出一堆機器味、沒人看過的內容。那種會反過來毀掉帳號可信度。

所以我要的不是全自動,是把勞動自動化、判斷留給自己。

解法:Claude Code 排程 + 人只出一個「方向」

核心設計是「人也要參與」。每天 Claude Code 的 scheduled-tasks 會自動觸發流程。

但第一件事不是發文,是用 AskUserQuestion 跳一題問我方向。選項有 AI / agent、CLI 工具、全端後台,或隨意挑熱門榜第一名。

不想發就直接打「今天跳過」。

我點一下方向,剩下抓專案、去重、寫文、發文,它全包。我出 5 秒判斷,省 20 分鐘勞動。

而且每篇都還是我選的方向,不會發出我沒看過的東西。

AI 在哪幾段做事

選完方向之後,它做四件事。

先抓候選:「隨意挑」就用 WebFetch 去讀 GitHub 熱門榜。指定方向就走 GitHub 搜尋,按 star 排序抓前 15 個。

再來比對過去 30 天的紀錄去重,不重複介紹同一個專案。然後挑一個 star 高、最近還有在維護的,避開那種只是清單的專案跟明顯刷 star 的。

最後用我的 voice 規則寫繁中介紹:第一人稱、整篇最多 1 個 emoji、句尾不加句號直接換行、控制在 480 字內。

voice 規則是寫死在流程指引裡的,不是每次重講一遍。

我 debug 最久的一段:Graph API 兩段式發文 + Windows 編碼坑

發文這段卡最久,兩個問題。

Threads Graph API 不是一步發完,要先建一則草稿,再送出。中間還得等一下,不然草稿還沒準備好就送,會發失敗。

更麻煩的是 Windows。Git Bash 裡的 curl 是 Windows 版的,中文塞進指令會被 CP950 轉成亂碼。

解法是貼文先寫成 UTF-8 檔,讓 curl 從檔案讀。

還有一個更陰險:長期用的那把金鑰 60 天會過期,要排每週重新換一次。不然某天機器人就默默不發了,而這種「沒報錯但也沒發」最難抓。

下面是發文核心:

# Threads 發文是「兩段式」:先建 container 再 publish 不是一步到位
# Windows 雷:Git Bash 的 curl 中文直接進命令列會被 CP950 轉亂碼
#   → 貼文先寫成 UTF-8 檔 用 --data-urlencode @file 讓 curl 讀
TEXT_FILE="logs/post-main.txt"                  # 用 Write 工具寫成 UTF-8
FILE_FOR_CURL="$(cygpath -m "$TEXT_FILE")"      # native curl 讀不了 /c/... 路徑

# 1) 建 container(media_type=TEXT)
CREATION_ID=$(curl -s -X POST \
  "https://graph.threads.net/v1.0/${USER_ID}/threads" \
  -d "media_type=TEXT" \
  --data-urlencode "text@${FILE_FOR_CURL}" \
  -d "access_token=${TOKEN}" | grep -o '"id":"[^"]*"' | cut -d'"' -f4)

sleep 2   # 不 sleep container 偶爾還沒 ready publish 會失敗

# 2) publish container
curl -s -X POST \
  "https://graph.threads.net/v1.0/${USER_ID}/threads_publish" \
  -d "creation_id=${CREATION_ID}" \
  -d "access_token=${TOKEN}"

三條紅線:不塞 slogan、不放聯盟連結、不超過 500 字

機器人最容易做歪的地方是「順手塞推廣」,所以我在流程裡寫死三條紅線。

結尾不加「追蹤我」這類 CTA、文中不放任何聯盟連結或 UTM 追蹤參數、整篇不超過 500 字(Threads 上限是 500,留一點餘裕)。

原因跟我在自我介紹頁學到的是同一條。這個帳號的價值是「我真的每天在看這些專案」,一旦開始塞推廣,策展的可信度就沒了。

自動化可以省力,但不能拿可信度去換。

整段複製給 AI agent,你就有這個 workflow

把下面整段複製貼給你的 AI agent(Claude Code 或其他 coding agent),它就能照著幫你把這個「每天定時自動發 Threads、但你只出方向」的機器人建起來,你不用自己從零摸。

我要你幫我做一個「半自動的 Threads 發文機器人」,核心是人在迴路:每天定時自動觸發,但發什麼方向由我決定,其餘抓素材、寫文、發文交給你包。我用 Claude Code,作業系統是 Windows,請依這個規格做:
1. 用 Claude Code 的 scheduled-tasks 設一個每天 20:00(時區 Asia/Taipei)觸發的排程。
2. 觸發後第一步不是發文,是用 AskUserQuestion 跳一題問我今天想看哪個方向(例如 AI 代理、CLI 工具、全端後台,或隨意挑 trending 第一名,也要能讓我直接回「今天跳過」)。
3. 我選方向後:「隨意挑」就用 WebFetch 抓 GitHub trending;指定方向就走 GitHub search 按 star 排序抓前 15 個。然後比對我過去 30 天的發文紀錄做去重,不要重複介紹同一個專案,並避開 awesome-list 類清單與明顯刷 star 的專案,挑一個高 star 且最近仍有在維護的。
4. 用我的語氣寫一段繁體中文介紹:第一人稱、整篇最多一個 emoji、句尾不加句號直接換行、控制在 480 字以內。請把這份語氣規則寫死在流程指引檔裡,不要每次重講。
5. 發文用 Threads Graph API,請注意這是兩段式:先建一個 media_type 為 TEXT 的 container,中間 sleep 約兩秒再 publish,不要一步發,否則 container 還沒就緒會發失敗。
6. 請避開我已知的三個雷:第一,Windows 上 Git Bash 的 curl 是原生 build,中文直接塞進命令列會被 CP950 編碼轉成亂碼,所以貼文要先用 Write 寫成 UTF-8 檔,再用 curl 的 --data-urlencode 搭配 @檔案 去讀,並用 cygpath -m 把路徑轉成 curl 讀得懂的格式;第二,長效 token 大約 60 天會靜默失效,請順便排一個每週自動 refresh token 的機制,避免某天機器人沒報錯卻也沒發;第三,這種「沒報錯但也沒發」最難抓,請在每步加 log 方便我事後對照。
7. 內容守三條紅線:結尾不要加「追蹤我」這類 CTA 或 slogan、文中不放任何聯盟連結或 UTM、整篇不超過 500 字。
請先確認我目前的環境(Claude Code 版本、是否已有 Threads Graph API 權限與 token、發文用哪個帳號)再一步步建,每完成一步就先跟我確認再往下做。

把上面整段複製貼給 agent 就好,它會問你細節(像 token、帳號、環境)再實作,你只要回答,卡住時補一下你的環境資訊就行。

完整 SOP 清單

上面已經把真實架構(Claude Code 排程、人選方向、從 GitHub 熱門榜選題、Threads Graph API 分兩步發文)跟我遇到的編碼、金鑰過期問題都寫出來了。下面是完整元件對照,確認沒漏掉哪塊:

看完這篇之前先確認:

適合你
  • 想在 Threads / X 固定發 build-in-public 素材但每天手挑很煩
  • OK 用 Claude Code Pro (US$20/月)、有 GitHub / Threads 帳號
  • 願意「人出方向、AI 包執行」不要完全交給 AI 亂發
不適合
  • 想 100% 全自動發文不審稿 (帳號可信度會崩)
  • 完全沒程式背景但連終端機都沒裝過 (先看 Claude Code Windows 安裝那篇)
  • 沒 Claude Code Pro 想找免費替代 (本 workflow 走 scheduled-tasks 需 Pro)
最常踩
  • Windows Git Bash 中文塞命令列被 CP950 轉亂碼 — 要寫成 UTF-8 檔讓 curl --data-urlencode @file 讀
  • Threads Graph API 不是一步發,要先建 container 再 publish 中間 sleep 2 秒
  • long-lived token 60 天靜默失效,要排每週自動 refresh,不然某天機器人沒報錯但也沒發

▸ 常見問題

這個機器人真的能取代我每天手動發 Threads 嗎?

可以,但前提是「你只出方向、AI 包執行」這個架構。完全交給 AI 亂發會崩帳號可信度。我這個是每天跳問題讓你 5 秒選方向,剩下 20 分鐘抓 / 寫 / 發全自動,兩個多月穩定。

普通人可以做嗎?要會什麼?

可以,但要會「跟 Claude Code 講需求」加上有耐心 debug 一兩天。文章內 prompt 整段可以複製給 AI agent 直接幫你建,不用自己從零摸 Python 跟 Threads API。

發 Threads 會被 IG / Meta 鎖帳號嗎?

Threads Graph API 是官方 API,正常使用不會。但有 rate limit (每天約 250 篇 publish),日發 1 篇遠低於上限。注意「不放聯盟連結 / 不堆 hashtag / 不重複發同一個 repo」這三條紅線守住就 OK。

如果想換平台 (X / Bluesky / Threads) 程式碼要重寫嗎?

選 repo 加上寫文那段都通用,只有發文 API 那段要換。換 X 改 Twitter API、Bluesky 改 AT Protocol,大概 30 分鐘工程。文章內把流程模組化好,API call 是最後一段獨立 function。

名詞解釋

API(應用程式介面)
程式跟程式之間溝通的窗口。例如你的程式透過 LINE 的 API 自動發訊息、透過 Google 的 API 讀試算表。
Threads
Meta 旗下的文字社群平台。本站的社群引流主戰場之一,相關自動發文流程有整篇教學。
機器人(bot)
自動執行特定任務的程式,例如 LINE 機器人自動回訊息、發文機器人每天定時發貼文。
Claude Code
Anthropic 推出的 AI 寫程式工具,裝在自己電腦的終端機裡,能直接讀寫你的檔案、跑指令,把你用中文描述的需求做成真的網站或工具。
排程(cron)
讓程式「每天 8 點」「每小時」自動執行的定時器。自動發文、定期抓資料都靠它。
API 金鑰(API key)
服務發給你的一串密碼,程式用它證明「我有權限使用這個服務」。絕對不能公開、不能寫死在程式碼裡。
編碼(encoding)
電腦儲存文字的方式。Windows 中文環境常用 Big5,多數程式假設 UTF-8,兩邊對不上就變亂碼 — 所以資料夾、檔案建議用英文命名。
Python
入門門檻最低的主流程式語言之一,資料處理、自動化、AI 領域的首選。
GitHub
放 Git 程式碼的雲端平台,也是全世界開源專案的集散地。程式碼推上去之後可以接自動部署。
repo(專案倉庫)
GitHub 上的一個專案資料夾,裡面放程式碼、說明文件跟修改紀錄。一個 repo 就是一個獨立的專案。
GitHub trending(熱門榜)
GitHub 每天自動整理的「最近最多人收藏」專案排行榜,可以按語言或時間範圍篩。想找新工具的人常從這裡逛。
star(星星數)
GitHub 上的收藏功能,等於「按讚+加書籤」。star 數常被當成專案受歡迎程度的指標,但可以刷,看的時候要順便看最近有沒有在維護。
scheduled-tasks(排程功能)
Claude Code 的內建功能:設定好時間之後,它會自己在那個時間點跑你交代的流程,不用你開著電腦盯。
AskUserQuestion(跳問功能)
Claude Code 執行到一半可以跳出選項問你的功能。用在「流程自動跑,但關鍵決定留給人」的地方。
WebFetch(讀網頁功能)
讓 AI 直接去讀一個網址的內容再回來處理的功能,不用你先複製貼上。
curl(命令列抓網頁工具)
用打指令的方式跟網站要資料或送資料的小工具,幾乎每台電腦都有。程式要呼叫別人的服務時常用它。
Graph API
Meta 系列服務(Threads、Instagram、Facebook)開放給程式使用的官方介面。要先申請權限拿到金鑰,程式才能代替你發文或讀資料。
token(字元計費單位)
AI 讀寫文字的計量單位,一個中文字約 1-2 個 token。訂閱方案的用量限制、API 的計費都是按 token 算,所以「講重點、少貼無關內容」直接等於省錢。
命令列(CLI, Command Line Interface)
用打字指令操作電腦的方式,沒有按鈕跟視窗。Claude Code 就是命令列工具。
Git
程式碼的版本紀錄系統:每次改動存成一個「存檔點」(commit),隨時可以回溯、比對、還原,不怕改壞。
行動呼籲(CTA, Call to Action)
頁面上引導你做下一步的元素,像「訂閱」「立即開始」那顆按鈕。

不想錯過 Lab 的新文章?
訂閱後有新文章上線,就寄信通知你,
點有興趣的進來看就好。

填 email 就完成訂閱(信由 Substack 代寄)、隨時取消、不轉賣 email。

如果內容對你有用就太好了
隨喜斗內

Buy Me a Coffee at ko-fi.com

相關 workflow

← 回開源工具庫

⚠ 本站所有內容僅供教育與研究用途,不構成投資建議,不保證任何獲利。投資有風險,使用者須自行判斷並承擔結果。