Sphinx
一個 Git hook:程式碼推上 main 之前,另一個沒看過你和 AI 對話的模型會讀 diff 出題,你答對了才放行
Sphinx 是 10 月 18 日在 Hacker News 以「A hook that quizzes you on your AI's code before shipping」上榜的開源工具,拿到 250 多點,GitHub 專案兩週累積約 450 顆星。標語是「你可以外包思考,但不能外包理解」。用 AI 寫程式的人應該有感:AI 一次改了十幾個檔案,你掃一眼就推了,其實說不出它出錯時會怎麼跑。
Sphinx 是一個 Git hook。你(或你的代理)對受保護分支下 git push 時,Git 會暫停,Sphinx 在本機開問卷網頁,由另一個「沒看過你聊天紀錄」的審查模型讀這次的 diff,問你行為、失敗模式與不變條件,不考檔名。官網示範題是:Stripe webhook 先存事件 ID 再呼叫 charge(),若 charge() 失敗,下次重送會怎樣?答錯會解釋並換新情境重考,答對同一個 push 就繼續送出。
功能特色與適用場景:支援 Claude Code、Codex、Cursor、OpenCode、Pi,或完全不用代理的一般 git push。安裝引導會建議用 Claude Code 跑 Haiku 或用 Codex 跑 GPT-6 Luna 當審查者,也能接 OpenRouter。sphinx init 會產生 .sphinxconfig、.sphinxignore、.sphinxcontext.md 三個設定檔,commit 進 repo 就能全隊共用。題目開卷,答案不會回傳給寫程式的代理,.env 與私鑰預設排除;趕時間可用 sphinx yolo 跳過,但會留紀錄。
README 的限制寫得很誠實:一次檢查約 5~8 次模型請求,預設沒有上限,付費 API 要自己設花費上限;push 最多等 25 分鐘;它是練習而非資安關卡,出題的 LLM 也會錯;變更內容會送到你選的模型供應商。
台灣使用者怎麼用:適合正在導入 AI 寫程式、想守住「看得懂才上線」的技術主管,例如接案公司讓資淺工程師推 main 前先過一關,或大學程式課讓學生用 AI 寫作業時保留理解檢查。題目預設英文,需要 Node.js 22.19 以上與 macOS、Linux 或 WSL,原生 Windows 還不支援。
TheAI學院 編輯建議
編輯實測後的真心話AI 寫程式最大的隱憂不是寫錯,而是人類審核者其實沒看懂就按下合併。Sphinx 把這件事做成一個擋在 git push 前面的小考,概念簡單到有點想罵自己怎麼沒想到。它不會讓程式更安全,作者也講得很清楚;但對想讓團隊維持「看得懂才上線」習慣的技術主管,這是成本極低的一個做法。記得先設好模型呼叫上限。
主要功能
- 以 Git hook 攔下推到受保護分支的 push,在本機問卷頁出題,答對才放行
- 由沒看過開發對話的獨立審查模型讀 diff,題目聚焦行為、失敗模式與不變條件
- 答錯會解釋原因並換新情境重考,可對題目提出爭議(Dispute)
- 支援 Claude Code、Codex、Cursor、OpenCode、Pi 與一般 git push
- 每個 repo 以 .sphinxconfig、.sphinxignore、.sphinxcontext.md 設定政策並可共享
- sphinx yolo 可緊急跳過但會記錄,sphinx doctor 檢查安裝狀態
如何使用 Sphinx
- 確認電腦有 Node.js 22.19 以上與 Git(macOS、Linux 或 WSL),執行 npm install -g sphinx-understand
- 執行 sphinx install,選擇你用的程式碼代理與審查模型(例如透過 Claude Code 跑 Haiku)
- 進入專案資料夾執行 sphinx init,設定要檢查的分支與題目深度,並先編輯 .sphinxignore 排除敏感路徑
- 執行 sphinx doctor 確認設定無誤,並在設定中替付費 API 加上模型呼叫上限
- 照常 git push,到本機問卷網頁回答題目,通過後選 Continue push 完成推送
適用場景
- 技術主管要求資淺工程師推 main 前先通過理解檢查
- 大量使用 Claude Code、Codex 的個人開發者,避免推出自己說不清楚的程式碼
- 大學或程式補習班讓學生用 AI 寫作業,同時保留理解驗收
- 接案團隊在交付前針對金流、併發等高風險變更加深出題深度
Sphinx 的優點與缺點
優點
- MIT 開源、無帳號,審查可直接用既有 Claude Code 或 Codex 方案額度
- 把「看懂 AI 程式碼」變成流程,而不是靠口頭要求
- 答案不會回傳給寫程式的代理,.env 與金鑰檔預設不讀
缺點
- 預設沒有模型呼叫上限,用付費 API 時要自己設花費上限
- 會阻擋 Git 最多 25 分鐘,代理的終端機可能先逾時;不支援原生 Windows
- 變更內容會送到審查模型供應商,且官方明說這不是資安關卡、出題模型也可能出錯
價格方案
MIT 開源、免費;本身沒有帳號或雲端服務,出題用的審查模型走你自己的 Claude Code/Codex 方案額度、OpenRouter 金鑰(另計費,免費模型也需金鑰)或任何 OpenAI 相容端點
Sphinx 常見問題
Sphinx 要錢嗎?
Sphinx 本身是 MIT 授權的免費開源工具,沒有帳號或雲端服務。出題的審查模型需要你自己的 Codex 或 Claude Code 登入(用該方案的額度),或 OpenRouter 金鑰(另外計費,即使用免費模型也需要金鑰),或任何 OpenAI 相容端點。
我的程式碼會被送出去嗎?
會。審查模型供應商會收到這次 commit 的變更與相關檔案、你的答案和 .sphinxcontext.md。被 ignore 的檔案不會讀,.env、私鑰與常見憑證檔預設排除,也可以在 .sphinxignore 加上自己的敏感路徑。
趕時間不想作答怎麼辦?
可以用 sphinx yolo 讓 push 通過,但每次跳過都會留下紀錄。另外通過一次後,24 小時內同一份變更、同一目的地與政策不變時不會再出題。
需要什麼環境?
Node.js 22.19 以上、Git,以及 macOS、Linux 或 WSL;原生 Windows 目前不支援。用 npm install -g sphinx-understand 安裝。
使用者評價
還沒有足夠評價,搶先分享你的使用心得!
寫下你的評價
Sphinx 的替代方案
查看相似的 AI 工具 →相關 AI 工具
Claude
Anthropic 的 AI 助理,長文件與寫作品質是它的主場。
Pidgeon
一次 API 呼叫就給 AI 代理一個真正能收發信的地址,收進來的每封信先過「防火牆」標出隱藏指令,資料全程放在歐盟
TheySaid
在 Claude Code、Cursor、Lovable 裡直接叫出「用你的客戶資料訓練的合成測試員」試用設計,幾分鐘拿到放聲思考錄影與修正提示詞
Revix AI
不用先寫規則手冊:Revix 讀你的 repo 歸納團隊慣例,再用這些規則審查每一個 pull request
ContextGem
用描述取代提示詞的 Python 文件抽取框架,1.0 版加入「決策模型」,是非題與分類題改用機率回答,又快又省
Yardlet
原生 Swift 寫的 Mac App,把 Codex、Claude Code 等 CLI 代理放進同一個視窗,還能讓它們互相派工、互相審查