Show HN:Themis – 自託管AI程式碼審查,使用您自己的金鑰和模型
Themis 是一個自託管的 GitHub PR 審查機器人,使用您自己的 OpenAI Codex、Claude Max 或 GLM 訂閱來審查拉取請求,提供內聯發現和結構摘要,並可自定義審查策略。
Themis 是一款自託管的 GitHub Pull Request 審查機器人,旨在讓開發團隊利用自己的 AI 訂閱進行程式碼審查,而無需將程式碼傳送給第三方服務。它目前支援 OpenAI Codex、Anthropic Claude Max 以及智譜 GLM 作為後端引擎,所有資料均透過使用者自己的 API 金鑰處理,確保了程式碼的隱私和安全。
從架構上看,Themis 以 GitHub App 的形式執行,透過 webhook 接收 PR 和評論事件,並在記憶體佇列中順序處理。每次審查時,它會對 PR 頭部進行淺克隆,根據倉庫中 .themis/ 目錄下的審查策略執行配置的引擎,然後將內聯發現和結構化摘要釋出回 GitHub。整個系統僅需一個 Docker 映象,無需資料庫、Redis 或訊息代理,極大簡化了部署和維護。
部署過程非常簡便。使用者只需擁有 Docker 和對應 AI 引擎的 CLI 登入憑證,即可透過一行命令完成 GitHub App 的建立、金鑰生成和安裝。Themis 提供了預構建映象 ghcr.io/zaimwa9/themis,支援透過 Docker Compose 快速啟動。對於臨時測試,可使用 GitHub App Manifest 引導流程;對於生產環境,建議手動建立穩定的 GitHub App。
審查規則高度可定製。使用者可以在倉庫根目錄下建立 .themis/ 目錄,包含 review.md(審查哲學、嚴重性校準等)和 config.yaml(行為配置)。機器人還支援對話互動:透過 @review 觸發重新審查,@review <focus> 指定審查重點,以及自動回答執行緒中的問題。此外,Themis 提供了詳盡的配置選項,包括引擎選擇、網路訪問、模型引數、超時限制等。
Themis 支援三種引擎:Codex(預設)、Claude 和 GLM。每種引擎的認證方式不同:Codex 需要本地登入並複製 auth.json;Claude 需要設定 CLAUDE_CODE_OAUTH_TOKEN;GLM 只需 GLM_API_KEY。使用者可以在 .env 中設定例項預設引擎,倉庫也可以在配置中覆蓋。如果引擎憑據缺失,Themis 會發布評論說明,而不是靜默失敗。
專案還提供了完善的故障排除和文件支援,包括部署指南、隧道配置、無頭模式以及引擎貢獻指南。Themis 採用 MIT 許可證,鼓勵社群參與開發。對於開發者,可以使用 uv 和 Python 3.12 在本地執行和測試,無需 Docker。