关于 Cynical Sally
Cynical Sally 是一个代码审查 MCP 服务与命令行工具,以资深工程师的视角给出 0 到 10 分的评分、带证据的问题列表和可用的修复建议。面向在 Claude Code、Cursor 或 Windsurf 中工作的开发者。提交前可用 --dry-run 查看将发送的内容。
主要功能
- 010 到 10 分代码评分
- 02带证据的问题列表与修复建议
- 03--dry-run 预览发送内容并生成 SHA-256 凭证
- 04自动跳过 .env、密钥和证书等敏感文件
- 05CI 中通过 --fail-under 设置评分阈值
- 06提供 8 个 MCP 工具
适用场景
- 01在 Claude Code 或 Cursor 中让 Agent 调用代码审查
- 02在 CI 流水线中按评分阈值拦截低质量代码
- 03审查 PR 差异或暂存的变更
- 04在 README 中添加由评分生成的徽章
MCP 相关
Cynical Sally 以 MCP 服务的形式运行,向 MCP 客户端暴露 sally_roast、sally_review_pr、sally_refactor 等 8 个工具。Agent 可以按路径调用 sally_roast,由服务在本地读取文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lang | string | 否 | Sally 回复所用的 ISO 639-1 语言代码(例如 'en'、'nl')。默认为英语。 |
| mode | enum | 否 | quick = 快速吐槽;full_truth = 深入分析,按优先级排列问题并提供可执行的修复方案(每月免费 1 次,之后需使用 Full Suite)quick | full_truth |
| tone | enum | 否 | Sally 的表达风格:cynical(默认,讽刺拉满)、neutral 或 professional——发现的问题相同,只是措辞不同。cynical | neutral | professional |
| files | array | 否 | 包含内联内容的代码文件(`paths` 的替代方式) |
| paths | array | 否 | 要审查的文件或目录路径。Sally 会在本地读取(跳过二进制文件、超大文件和常见机密文件)。优先使用此参数而非 `files`,这样你无需自行读取并传递内容。 |
| share | boolean | 否 | 发布公开分享卡片并附上链接——卡片仅显示评分和 Sally 的一句话点评,绝不显示代码。仅在用户明确要求分享吐槽结果时使用。 |
| preview | boolean | 否 | 试运行:准确返回将要发送的内容(文件列表、字节大小、token 估算值、SHA-256 哈希,以及跳过的文件及原因),且不向后端发送任何内容。用户想在代码点评前确认哪些内容会离开其设备时使用。 |
详细介绍
愤世嫉俗的 Sally
毫不留情的代码审查。在终端和 AI 编辑器中使用。
因为“你说得完全正确”很可能完全错了。
npm i -g @cynicalsally/cli · 适用于 Claude Code、Cursor 和 Windsurf 的 MCP 服务
你的 AI 编程搭档在骗你。Sally 不会。
她是你的代码最不想遇到的资深工程师。评分范围为 0 到 10,指出有证据支持的真实问题,并提供切实可用的修复方案。
可作为 CLI 工具使用,也可作为 MCP 服务在 Claude Code、Cursor 和 Windsurf 中使用。
安装
npm install -g @cynicalsally/cli
或直接运行,无需安装:
npx @cynicalsally/cli roast ./src/
要求: Node.js 18+
准确查看哪些内容会离开你的设备
把代码发送到你无法控制的服务,需要的不只是“相信我”。因此,Sally 让你可以自行验证:
sally roast --dry-run ./src/
--dry-run 会收集所有内容,就像即将开始犀利点评一样——但不会发送任何内容。它会打印出确切的载荷:每个文件的路径、字节大小和令牌估算;哪些文件被拦下,以及原因(.env、密钥、证书、二进制文件、匹配 .gitignore 的文件、大小限制);并在 .sally/ 中写入本地 SHA-256 回执,以便你逐字节验证原本会上传的内容。
WOULD SEND 3 files · 91 B · ~24 tokens (est.)
src/app.ts 36 B ~9 tok 68a3be428746…
HELD BACK 2 items — kept on your machine
✖ secret (2) — looks like a secret — never leaves your machine
.env
server.key
机密文件(.env、SSH 密钥、证书、凭据文件)会在发送任何内容之前,先在你的设备上跳过——你可以用 --dry-run 自行验证。只审查你获准上传的代码。本地报告会保存在 .sally/ 中——请将其添加到 .gitignore:
.sally/
完整的数据流说明请参阅下文的隐私与安全。
快速开始
# Sally auto-detects what to review
sally roast
# → staged changes? reviews those
# → unstaged changes? reviews those
# → recent commit? reviews that
# → nothing? scans the directory
# Roast a file or directory
sally roast src/utils/auth.ts
sally roast ./src/
# Roast staged changes before you commit
sally roast --staged
# Compare your branch against main
sally roast --diff main
# Deep analysis with issues + actionable fixes
sally roast ./src/ -m full_truth
# Run deep analysis in the background (OS notification when done)
sally roast ./src/ -m full_truth --bg
# See exactly what would be sent — and send nothing
sally roast --dry-run ./src/
# Get a shareable roast card (saved to .sally/)
sally roast ./src/ --card
# Publish a share link — only the score + sneer go public, never your code
sally roast ./src/ --share
犀利点评选项
sally roast [paths...] [options]
--staged Review only staged git changes
--diff <branch> Compare against another branch (e.g., main)
-m, --mode <mode> "quick" (default) or "full_truth" (deep dive)
--tone <tone> "cynical" (default), "neutral", or "professional"
--lang <lang> Response language code (default: "en")
--json Output raw JSON (for piping or scripting)
--fail-under <score> Exit code 1 if quality score is below threshold
--ci CI mode: compact output, exit codes
--bg Run Full Truth in background, get OS notification when done
--dry-run Print the exact payload (files, sizes, tokens, SHA-256) and send NOTHING
--card Print + save a shareable roast card after the review
--share Create a public share link (cynicalsally.com/card/…) — score + sneer only, never code
获取仓库评分,并用徽章证明
让 Sally 评判整个仓库,并为你生成一个带有评分的 README 徽章:
sally verdict
她会为仓库打分,然后输出可直接粘贴的徽章 Markdown:
[](https://cynicalsally.com)
评分达到 8 分或以上,徽章就值得骄傲地戴上。评分较低的话,嗯—— 这只是诚实地表明你无论如何都会发布。无论结果如何,徽章都会链接回来, 所以每个展示它的 README 都会替你炫耀。
懒得复制粘贴?Sally 会帮你挂上去:
sally badge --add # inserts the badge into README.md, right under the title
sally badge # just prints the markdown (and your current score)
每次运行新的 sally verdict,徽章图片都会自动更新——添加一次,
永久接受评判。
Sally 全套工具
六款工具,三种用途。你合作过的最诚实的代码审查员——既能在终端中使用,也能在 AI 编辑器中使用。
更快发布 — review-pr + refactor ·
少些难堪 — explain + brainstorm ·
打磨得更适合人类 — frontend + marketing
解释
Sally 会读懂代码库里别人留下的意大利面式代码,并把它翻译成通俗易懂的语言。只讲它实际做什么,冷静、清晰,绝不粉饰。
sally explain src/utils/auth.ts
# Pipe code directly
cat legacy-module.js | sally explain
# Explain the current directory
sally explain
重构
并排展示前后对比。Sally 会解释为什么其中一个会让你在凌晨 3 点值班时挥之不去。
sally refactor src/components/Dashboard.tsx
# Refactor current directory
sally refactor
PR 审查
Sally 会像一位有时间、有主见、完全没必要客气的资深工程师那样审查你的 PR。
# Review PR #42 (requires GitHub CLI)
sally review-pr 42
# Review current branch vs main
sally review-pr
# Pipe a diff
git diff main | sally review-pr
头脑风暴
说说你的架构构想,Sally 会告诉你它在规模扩大时会在哪三方面崩溃。比事后复盘便宜。
sally brainstorm "Microservices for a 2-person team?"
# Brainstorm about the current project
sally brainstorm
前端审查
Sally 会告诉你为什么组件每输入一个字符就重新渲染,以及为什么你的 z-index 牵一发而动全身。
sally frontend src/components/Header.tsx
# Review all frontend code in a directory
sally frontend ./src/
营销审查
先让 Sally 审阅你的文案,再交给客户。他们可不会像她这么有建设性。
sally marketing "Ship faster with AI-powered code reviews"
# Review your README and landing page copy
sally marketing README.md
每款工具都接受 文件路径、原始文本或管道传入的 stdin。每款工具都包含 1 次免费试用,无需账号。
CI/CD 集成
根据代码质量为流水线设置门槛:
# GitHub Actions
- name: Sally Code Review
run: npx @cynicalsally/cli roast ./src/ --fail-under=5 --ci
--ci 会提供精简输出和退出码。--fail-under 会在分数低于阈值时使构建失败。添加 --json 可获取机器可读的输出。
MCP 服务
Sally 可作为 MCP 服务在 Claude Code、Cursor 和 Windsurf 中运行。
Claude Code
claude mcp add cynical-sally -- npx @cynicalsally/cli mcp
Cursor
一键安装:
或者添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(每个项目单独配置):
{
"mcpServers": {
"cynical-sally": {
"command": "npx",
"args": ["@cynicalsally/cli", "mcp"]
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"cynical-sally": {
"command": "npx",
"args": ["@cynicalsally/cli", "mcp"]
}
}
}
可用工具
| MCP 工具 | 功能 |
|---|---|
sally_roast | 代码审查,提供评分、问题和修复建议 |
sally_explain | 以 Sally 的个性风格解释代码 |
sally_review_pr | 审查 PR 差异 |
sally_refactor | 提供重构建议,并展示前后对比 |
sally_brainstorm | 对想法和方案提供反馈 |
sally_frontend | 前端/UI 代码审查 |
sally_marketing | 营销文案审查 |
sally_usage | 查看配额和账户状态 |
按路径审查——Agent 只需向 sally_roast 传入 paths(文件或目录);Sally 会在本地读取这些内容并跳过二进制文件和机密文件,因此 Agent 无需自行读取并传入内容。
提示词——在支持展示 MCP 提示词的客户端中,Sally 还提供现成的斜杠命令意图(roast、review-pr、explain)。
在终端中运行 sally mcp,查看设置说明。
所有命令
| 命令 | 描述 |
|---|---|
sally roast [paths...] | 审查文件、目录或 git 变更 |
sally verdict | 为代码仓库评分,并获取 README 徽章 |
sally badge [--add] | 输出徽章 Markdown,或将其添加到 README.md |
sally explain [file] | 解释代码的实际作用 |
sally refactor [file] | 提供重构建议,并展示前后代码 |
sally review-pr [pr] | 审查 PR 差异 |
sally brainstorm "idea" | 对想法和方案提供反馈 |
sally frontend [file] | 前端/UI 代码审查 |
sally marketing "copy" | 营销文案审查 |
sally login <email> | 通过魔法链接登录 |
sally logout | 清除已存储的会话 |
sally usage | 查看配额和账户状态 |
sally upgrade | 升级到 Sally 的 Full Suite |
sally results | 查看后台审查结果 |
sally mcp | MCP 服务设置说明 |
免费使用
每月可免费进行 90 次代码审查,无需账户。每款高级工具均包含免费试用。
sally usage # Check your quota
sally upgrade # Unlock the Full Suite
隐私与安全
你的代码属于你。别只听我们说——运行 sally roast --dry-run,在发送任何内容之前查看确切的载荷。以下是载荷的处理方式:
- 发送前先验证。
--dry-run会打印每个文件、文件大小、令牌估算值,以及一份精确显示将要上传内容的 SHA-256 回执,并且不会发送任何内容。MCPsally_roast工具也有相同的preview模式。 - 仅为审核而发送。 你选择的文件会通过 HTTPS 传输,并实时处理以生成审核结果——这就是它们离开你设备的唯一原因。
- 绝不写入磁盘、日志或分析系统。 你的源代码会在内存中处理,并在分析后丢弃。它绝不会存入数据库、写入应用日志或错误追踪,也绝不会发送给任何第三方 APM 或分析服务。我们会保留审核结果(评分、问题),而不是你的源代码。
- 绝不用于训练、出售或共享。 分析通过 Anthropic 的 API 运行,该 API 不会使用提交的内容进行训练。
- 只处理你指定的内容。 Sally 不会浏览你的代码库、读取你未提供的文件,也不会扫描你的项目或计划。秘密文件(
.env、密钥、证书、凭据文件)会在你的设备上、任何内容发送之前跳过,--dry-run会准确显示哪些文件被跳过。 - 共享需主动选择,且绝不包含代码。 除非你传入
--share,否则不会发布任何内容;即使传入该参数,公开卡片也只包含评分和 Sally 的一句话点评。 - 默认匿名。 审核结果关联的是随机设备 ID,而不是你的身份,除非你为 Full Suite 关联电子邮件。配置存储在本地的
~/.sally/config.json中。 - 发布版本已签名。 npm 软件包发布时附带 provenance——一种公开的加密证明,将每个发布版本与生成它的确切源代码提交和 CI 构建关联起来。
完整的工程细节——数据流图、保留的数据、子处理商和日志策略——请参阅 docs/PRIVACY.md。面向用户的摘要:cynicalsally.com/privacy。
参与贡献
发现了 Bug 或有功能创意?提交 issue。Sally 保证只会稍微吐槽一下你的 issue 标题。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
