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。