Local-First · Zero Auth Required

Code review that
only finds the signal

Critiq is a zero-noise AI code review agent. Pipe in git diff, and get back only real bugs, security flaws, and performance issues — no style nitpicks, no naming lectures. Max 3 comments per PR. | 零噪声 AI 代码审查,只抓真问题,不废话。

$0.00002
per review (DeepSeek Flash)
12h38
prompt design → working demo
100%
local, no data stored
critiq — local review session
$ cd my-project && git diff HEAD | critiq
──────────────────────────────────────────────────
🤖 Critiq Review — DrfterX/critiq
──────────────────────────────────────────────────
代码结构清晰,测试覆盖较全面。发现 1 个假阳性
(只看 diff 误报截断)和 2 个边界情况建议。
🔴 FALSE POSITIVE src/review.ts:1
实际代码完整,diff 边界导致的误报。
Critiq 诚实标注,不捏造。
🟡 WARNING src/cli.ts:139
process.exit 在异步上下文使用,
可能导致悬垂 Promise 和日志丢失。
🟡 WARNING src/cli.ts:65
parseInt 缺少 NaN 校验。
Score: ★★★☆☆ 6/10
──────────────────────────────────────────────────
Tokens: 1842 (↑1420 ↓422)
──────────────────────────────────────────────────
$

Signal, not noise.
Real bugs, not style tips.

其他 AI 审查工具每 PR 输出十几条,其中一半是噪音。Critiq 只抓你应该关心的东西。

🎯

只抓真实的 Bug

逻辑错误、安全漏洞、遗漏的边界情况——仅此而已。不批评缩进、不挑剔命名、不说"加个注释"。每条建议都可能是真正的坑。

📏

最多 3 条 / 次

硬性上限。没有"建议性修改",没有"可以考虑优化"。如果找不到 3 个真实问题,我们宁可不说话——你的 inbox 值得被尊重。

🇨🇳

中文原生

审查结果和摘要全部用中文,代码标识符保持原文。专为中国开发者社区打造,不再被英文 AI 的输出困扰。

🏷️

置信度标记

每条评论自带 HIGH / MEDIUM / LOW 置信度标签。HIGH 说明 AI 很肯定这是个坑;LOW 则是"可以看一眼"。

🔌

任何 API 都可用

支持任何 OpenAI 兼容 API:DeepSeek、OpenAI、通义千问、GLM、Claude……只要你用得惯。API Key 自己管,代码不会外传。

📦

本地优先,零认证

不需要注册账号、不需要登录、不需要配 OAuth。安装脚本一行命令搞定,所有代码本地跑。数据不上云。

Critiq is not "just a wrapper"

Critiq's edge isn't the model — it's the tasteful tuning for code review. | Critiq 的差异不是模型本身,而是围绕"代码审查"做的精调。

❌ Just Asking An AI
Noise level depends on your prompt — inconsistent
Random output format — you parse manually
No confidence score — you guess if it's right
No hard limit — can waste time on style opinions
直接问 AI:噪声看心情、格式不统一、没有置信度、风格建议浪费时间。
✅ Critiq
Hard cap: 3 comments max. Silence when nothing's wrong.
Standardized JSON: severity + confidence + score
Every comment tagged: high/medium/low confidence
One command: git diff | critiq
Critiq:硬上限 3 条、标准化输出、每条带置信度、一行命令搞定。

Critiq vs. AI review noise

同样一段代码,同样的 AI 模型。来对比一下其他工具和 Critiq 的输出。

🔇 Other AI reviewers 60% noise

src/App.tsx:23
"Consider using const instead of let" ← 风格建议
src/App.tsx:45
"Add JSDoc comment to this function" ← 非必要
src/App.tsx:67
"Line is a bit long, consider breaking it up" ← 琐碎
src/db.ts:88
"You forgot to close the DB connection" ← 真实的 Bug,但已经淹没在噪音里了

✅ Critiq 0 noise

CRITICAL HIGH src/db.ts:88
DB 连接泄漏。在 finally 块中关闭连接,否则连接池会迅速耗尽。
// 没有别的了。这就是审查结果。
// 只找到了一个真实问题 → output 就只有一条。

One command. Any project.

从安装到出结果,只需要几十秒。不需要注册、不需要配环境变量(除非你想自定义)。

01

安装 Critiq

一行命令搞定。脚本会自动检测 Node.js 版本、克隆仓库、安装依赖、全局注册 critiq 命令。不需要 sudo,不需要登入任何平台。

02

配置 API Key

设置一个 OpenAI 兼容的 API Key。DeepSeek 最便宜($0.01/M tokens),ModelScope 国内极速访问,OpenAI/GLM 等也支持。导出为 CRITIQ_API_KEY 环境变量即可。

03

审查代码

只需 git diff HEAD | critiq。Critiq 会分析改动,输出 0–3 条真实反馈,附带置信度和严重度标记。全程本地运行,代码不会离开你的机器。

quick-start.sh
#!/usr/bin/env bash
# One-line install — no npm auth, no GitHub login, no fuss

# 1. 一键安装
curl -fsSL https://raw.githubusercontent.com/DrfterX/critiq/main/install.sh | bash

# 2. 设置 API Key(DeepSeek 示例)
export CRITIQ_API_KEY=sk-your-key-here

# 3. 运行审查
git diff HEAD | critiq

# 可选:自定义模型和 API Base
export CRITIQ_MODEL=gpt-4o-mini
export CRITIQ_API_BASE=https://api.openai.com/v1

Real review, real codebase

以下是对 Auto Company 项目自己的代码进行审查的样例输出。Critiq 就是用它自己的标准来审查自己的代码。

DrfterX/critiq — Critiq Self-Review
6
★★★☆☆
overall score out of 10
代码结构整体清晰,测试覆盖较全面。发现 1 个 假阳性(因只看到 diff 不完整而误报)和 2 个微小的边界情况建议。这个结果本身就是 Critiq 诚实度的最佳证明——没有为了填满列表而捏造问题。
FALSE POSITIVE src/review.ts:1
报告说 "review.ts 末尾 return pro 不完整,疑似截断"。但实际代码是完整的——getApiBase() 函数的全部实现都在原文件中。这是 AI 审查的固有限制:只看 diff 时,无法判断截断是 diff 边界还是代码缺陷。Critiq 诚实标注了这个发现——批评者可能误报,但我们不会假装。
WARNING HIGH src/cli.ts:139
process.exit(1) 在异步上下文(readDiff/runReview)中使用,可能导致悬垂 Promise 和日志丢失。建议改为顶层 main().catch() 统一流程退出。
WARNING HIGH src/cli.ts:65
--pr-number 参数值 parseInt 没有校验 NaN。虽然实际使用中不太可能触发,但健壮性角度应该加 isNaN 检查。
INFO LOW src/cli.ts:161
opts.prBody 可能为 undefined,而 prompt.ts 处理 null。虽然后者用 || 都能处理,但类型一致性角度建议显式转换 opts.prBody || null
12,746 prompt tokens · 1,215 completion tokens 🔧 ModelScope · DeepSeek-V4-Flash 🎯 3 real findings · 0 faked ⚠️ 1 known false positive (documented)
12,734 prompt tokens · 2,057 completion tokens 🔧 ModelScope · DeepSeek-V4-Flash 🐛 bug #1 fixed

Your code, your API key.
We don't meter usage.

Critiq 不卖额度、不限制用量、不锁定供应商。你只用付你的 API 费用,从几分钱开始。

Open Source
$0
forever — unlimited
  • 任何开源项目免费使用
  • 本地 CLI 全功能
  • 置信度 + 严重度标记
  • 任何 OpenAI 兼容 API
  • JSON 输出 / CI 集成
Team
$29
per month — unlimited
  • 团队 Dashboard(coming soon)
  • 统一配置管理
  • CI/CD 深度集成
  • 审查历史记录
  • 专属 SLA + 定制支持

Ready to silence the noise?

两分钟安装,直接开始审查。不需要注册账号,不需要配 GitHub App 。

</> View on GitHub
one-liner.sh
$ curl -fsSL https://raw.githubusercontent.com/DrfterX/critiq/main/install.sh | bash

# Node 18+ ✓  ~/.critiq cloned ✓  npm install ✓  critiq ready ✓
$ export CRITIQ_API_KEY=sk-your-key-here
$ git diff HEAD | critiq