Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code Review AI Agent

桌面应用形式的 AI 代码审查工具,BYOK(Bring Your Own Key)模式。在应用内填写自己的大模型 API Key → 选一个文件夹 → 配置排除规则 → 一键扫描,后端并发审查,前端实时显示按文件分组的评论。API Key 存储在系统 keychain 中,不写入任何文件。

核心功能

  • 多 Provider 支持 — Anthropic / OpenAI / DeepSeek / 阿里云百炼 / Moonshot / 火山方舟 / MiniMax / Gemini / OpenRouter / Ollama(本地)
  • BYOK 模式 — 在应用 UI 中填写 API Key,自动存入系统 keychain(Windows Credential Manager / macOS Keychain),不写文件、不依赖环境变量
  • 并发扫描 — ThreadPoolExecutor 并发审查,前端实时推送进度
  • 四维审查 — 通用代码质量 / 安全漏洞 / Bug 逻辑错误 / 项目专属规则
  • 排除规则 — 支持 gitignore 格式的排除文件,可自定义
  • 自定义规则 — 指定项目专属规则文件,针对性审查
  • 多语言 UI — 中文 / English 切换

技术栈

技术
后端 Python 3.13+ · langchain-litellm · langgraph · Pydantic · pathspec
前端 Vue 3 · TypeScript · Element Plus · Pinia · vue-i18n · Vite
桌面壳 PyWebView 6+

目录结构

code-review-agent/
├── backend/                Python 后端
│   └── src/reviewer/
│       ├── core/           核心模块 (llm / engine / scanner / schemas / prompts / providers)
│       ├── rules/          默认审查规则
│       ├── api.py          PyWebView API 桥接层
│       ├── app.py          PyWebView 应用入口
│       └── cli.py          命令行入口
├── frontend/               Vue 3 SPA
│   └── src/
│       ├── components/     UI 组件 (8 个)
│       ├── composables/    组合式函数 (usePyApi / useEventBus)
│       ├── store/          Pinia 状态管理
│       ├── types/          TypeScript 类型定义 (镜像后端 schema)
│       └── locales/        i18n 翻译文件
├── tests/                  测试 fixtures
└── CLAUDE.md               Claude 协作指南

快速开始

1. 安装依赖

cd backend && uv sync
cd ../frontend && npm install

2. 启动桌面应用(推荐)

需要两个终端:

# 终端 A: 启动 Vite dev server
cd frontend && npm run dev

# 终端 B: 启动 PyWebView 桌面窗口 (加载 dev server 的 URL)
cd backend && uv run reviewer-app --dev

应用启动后(无需设置任何环境变量):

  1. 在 UI 里选 Provider、填模型名和 API Key
  2. API Key 会自动存到系统 keychain,下次启动自动读出
  3. 选项目根目录,点 "开始扫描"

生产模式(不需要 HMR):

cd frontend && npm run build       # 产出 dist/
cd backend && uv run reviewer-app  # 不加 --dev,加载 dist/index.html

3. CLI 模式(可选,无 UI,直接扫目录)

CLI 模式不经过桌面 UI,API Key 需要通过命令行参数或环境变量传入:

cd backend

# 方式一: 环境变量
export ANTHROPIC_API_KEY=sk-ant-...        # Linux / Mac / Git Bash
$env:ANTHROPIC_API_KEY="sk-ant-..."        # PowerShell
uv run reviewer scan ../frontend/src --model anthropic/claude-sonnet-4-6

# 方式二: 命令行传入
uv run reviewer scan ../frontend/src \
    --model anthropic/claude-sonnet-4-6 \
    --api-key sk-ant-...

4. 打包为 exe

# 安装 PyInstaller (如果还没装)
cd backend && uv pip install pyinstaller

# 一键构建 (前端 build + PyInstaller 打包)
cd .. && python build.py

# 产物在 dist/CodeReviewAgent/CodeReviewAgent.exe

也可以分步执行:

python build.py --skip-frontend   # 只跑 PyInstaller,跳过前端构建
python build.py --onefile          # 打成单文件 exe(启动较慢)

Provider 速查表

桌面应用模式下在 UI 中选择 Provider 并填写 API Key 即可,无需设置环境变量。

CLI 模式下 API Key 通过 --api-key 参数或环境变量传入,对应的环境变量名见下表:

Provider 模型字符串 CLI 环境变量
Anthropic anthropic/claude-sonnet-4-6 ANTHROPIC_API_KEY
OpenAI openai/gpt-5.5 / openai/gpt-5.5-pro OPENAI_API_KEY
DeepSeek deepseek/deepseek-v4-flash / deepseek/deepseek-v4-pro DEEPSEEK_API_KEY
阿里云百炼 / Qwen dashscope/qwen3.7-max / dashscope/qwen3-coder-next DASHSCOPE_API_KEY
Moonshot / Kimi moonshot/kimi-k2.6 MOONSHOT_API_KEY
火山方舟 / Doubao volcengine/doubao-seed-2-0-pro-260215 VOLCENGINE_API_KEY
MiniMax minimax/MiniMax-M2.7 MINIMAX_API_KEY
Gemini gemini/gemini-3-pro GEMINI_API_KEY
OpenRouter openrouter/openai/gpt-5.5 OPENROUTER_API_KEY
Ollama ollama/qwen3-coder-next 无 (本地)

架构概览

PyWebView Host (Python 主进程)
  ├── Main Thread: GUI loop (不能阻塞)
  └── Worker Thread (start_scan 启动):
        scanner.iter_code_files (os.walk + gitignore 排除 + 扩展名白名单)
            ↓
        engine.scan_project (ThreadPoolExecutor 并发)
            ↓ 每文件调 LLM
        get_llm + invoke + PydanticOutputParser
            ↓ on_file_done 回调
        Api._emit (evaluate_js → CustomEvent('py:scan:*'))
            ↓
Vue 3 SPA (Vite dev / pywebview 内置 HTTP)
  ├── window.pywebview.api.* 调 Python
  └── useEventBus 监听 py:scan:* 事件 → 更新 scanStore (Pinia)
        ↓
  组件树: FolderPicker / ModelConfig / ExcludePatternsEditor / ScanProgress / CommentList / ...

开发路线图

CLAUDE.md 中的 Roadmap 表格。

License

私有项目,暂未确定。

About

BYOK 模式的 AI 代码审查桌面应用 — 支持 10+ 大模型 Provider,并发扫描,实时显示按文件分组的审查评论。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages