Cynical Sally について
Cynical Sally は、Claude Code、Cursor、Windsurf で利用できるコードレビューの CLI および MCP サーバーです。シニアエンジニアの視点から 0 から 10 のスコア、根拠付きの問題点、修正案を提示します。送信前に --dry-run で送信内容を確認できます。
主な機能
- 010 から 10 のコードスコア
- 02根拠付きの問題点と修正案
- 03--dry-run による送信内容のプレビューと SHA-256 レシート
- 04`.env` や鍵などの機密ファイルの除外
- 05--fail-under による CI 用のスコア閾値
- 06レビュー用の MCP ツール 8 種
活用シーン
- 01Claude Code や Cursor のエージェントからのコードレビュー呼び出し
- 02CI パイプラインでのスコア基準によるゲート
- 03ステージ済みの変更や PR 差分のレビュー
- 04リポジトリの README へのスコアバッジの追加
MCP 対応
Sally は MCP サーバーとして動作し、sally_roast、sally_review_pr、sally_refactor など 8 つのツールを MCP クライアントに公開します。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 | いいえ | ドライラン:送信される内容(ファイル一覧、バイト数、トークン推定値、SHA-256 ハッシュ、スキップされたファイルとその理由)を正確に返し、バックエンドには何も送信しません。コードレビューの前に、デバイス外へ送信される内容を確認したい場合に使用してください。 |
詳細
シニカル・サリー
容赦なく正直なコードレビュー。ターミナルでもAIエディターでも。
「おっしゃるとおりです」は、たいていまったく正しくないからです。
npm i -g @cynicalsally/cli · Claude Code、Cursor、Windsurf 用の MCP サーバー
あなたのAIペアプログラマーは嘘をついています。サリーは違います。
彼女は、あなたのコードが出会いたくなかったシニアエンジニアです。0〜10のスコア、根拠に裏付けられた実際の問題、そして本当に役立つ修正案を提示します。
CLI ツールとしても、Claude Code、Cursor、Windsurf で使える MCP サーバーとしても利用できます。
インストール
npm install -g @cynicalsally/cli
または、インストールせずに実行します。
npx @cynicalsally/cli roast ./src/
要件: Node.js 18 以降
マシンから送信される内容を正確に確認する
自分で管理していないサーバーにコードを送るなら、「信じてください」だけでは不十分です。そこでサリーでは、送信内容を自分で確認できます。
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 のフルスイート
6 つのツールで 3 つの仕事をこなします。ターミナルでも 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
リファクタリング
変更前と変更後を並べて比較できます。どちらか一方が、午前 3 時のオンコール対応であなたを悩ませることになる理由を、Sally が説明します。
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
ブレインストーミング
アーキテクチャのアイデアを提案すると、規模拡大時に破綻する 3 つのポイントを Sally が教えてくれます。事後検証よりもお得です。
sally brainstorm "Microservices for a 2-person team?"
# Brainstorm about the current project
sally brainstorm
フロントエンドレビュー
コンポーネントがキー入力のたびに再レンダリングされる理由や、z-index が重要な役割を担っている理由を、Sally が教えてくれます。
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 は Claude Code、Cursor、Windsurf の中で MCP サーバーとして動作します。
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 | クォータとアカウントのステータスを確認 |
パスを指定してレビュー — エージェントは paths(ファイルまたはディレクトリ)だけを指定して sally_roast を呼び出せます。Sally はローカルでファイルを読み込み、バイナリファイルとシークレットファイルをスキップするため、エージェントが内容を読み取って渡す必要はありません。
プロンプト — Sally は、MCP プロンプトを表示するクライアントで利用できる、すぐに使えるスラッシュコマンドのインテント(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 レシートがすべて表示されます。データは一切送信されません。MCP のsally_roastツールにも、同じpreviewモードがあります。 - レビューに必要な場合に限り送信します。 選択したファイルは HTTPS 経由で送信され、レビューの生成のためにリアルタイムで処理されます。ファイルがお使いのマシンから送信される理由はこれだけです。
- ディスク、ログ、分析データには一切記録しません。 ソースコードはメモリ上で処理され、分析後に破棄されます。データベースに保存したり、アプリケーションログやエラートレースに記録したり、サードパーティの APM や分析サービスに送信したりすることはありません。保存するのはレビュー(スコア、問題点)であり、ソースコードではありません。
- 学習、販売、共有には一切使用しません。 分析には Anthropic の API を使用します。送信されたコンテンツが学習に使われることはありません。
- 指定された範囲だけを対象にします。 Sally がリポジトリを閲覧したり、指定されていないファイルを読んだり、プロジェクトや計画をスキャンしたりすることはありません。秘密情報を含むファイル(
.env、キー、証明書、認証情報ファイル)は、送信前にお使いのマシン上で除外されます。--dry-runでは、除外されたファイルも正確に確認できます。 - 共有はオプトインで、コードは含まれません。
--shareを指定しない限り、何も公開されません。指定した場合でも、公開カードに含まれるのはスコアと Sally のひとことだけです。 - デフォルトでは匿名です。 Full Suite 用にメールアドレスを連携するまでは、レビューは本人の身元ではなくランダムなデバイス ID に紐付けられます。設定は
~/.sally/config.jsonにローカル保存されます。 - リリースには署名があります。 npm パッケージはプロベナンス付きで公開されます。これは、各リリースを、その作成元である正確なソースコミットおよび CI ビルドに結び付ける、暗号学的な公開証明です。
データフロー図、保持するデータ、サブプロセッサー、ログポリシーなど、エンジニアリングに関する詳細はdocs/PRIVACY.mdをご覧ください。ユーザー向けの概要はcynicalsally.com/privacyにあります。
貢献
バグを見つけた場合や機能のアイデアがある場合は、イシューを作成してください。Sally は、イシューのタイトルを少しだけしか批評しないと約束しています。
ライセンス
cynicalsally.com · npm · イシュー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
