The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Cynicalsally listing page.
Brutally honest code reviews. In your terminal and your AI editor.
Because "You're absolutely right" is probably absolutely wrong.
npm i -g @cynicalsally/cli · MCP server for Claude Code, Cursor & Windsurf
Your AI pair programmer is lying to you. Sally isn't.
She's the senior engineer your code hoped it'd never meet. Scores from 0 to 10, real issues backed by evidence, and fixes you can actually use.
Works as a CLI tool and as an MCP server in Claude Code, Cursor, and Windsurf.
Or run without installing:
Requirements: Node.js 18+
Sending code to a server you don't control deserves more than "trust me." So Sally lets you verify it instead:
--dry-run collects everything as if it were about to roast — then sends nothing. Instead it prints the exact payload: every file path, byte size, and token estimate; which files were held back and why (.env, keys, certs, binaries, .gitignore matches, size limits); and writes a local SHA-256 receipt to .sally/ so you can verify byte-for-byte what would have been uploaded.
Secret files (.env, SSH keys, certs, credential files) are skipped on your machine before anything is sent — verify it yourself with --dry-run. Only review code you're allowed to upload. Local reports land in .sally/ — add it to your .gitignore:
See Privacy & Security below for the full data-flow.
Let Sally judge your whole repo and hand you a README badge with the score baked in:
She scores the repo, then prints ready-to-paste badge markdown:
Score an 8 or higher and the badge is a flex worth wearing. Score lower and, well — it's an honest signal that you're shipping anyway. Either way the badge links back, so every README that wears it does the bragging for you.
Too lazy to copy-paste? Sally will hang it up herself:
The badge image updates automatically on every new sally verdict — add it once,
judged forever.
Six tools, three jobs. The most honest code reviewer you'll ever work with — in your terminal and your AI editor.
Ship faster — review-pr + refactor ·
Be less embarrassing — explain + brainstorm ·
Polish for humans — frontend + marketing
Sally reads the spaghetti someone left in your codebase and translates it into plain English. Just the cold, clear truth of what it actually does.
Before and after, side by side. Sally explains why one of them is going to haunt your 3am on-call rotation.
Sally reviews your PR like a senior engineer who has time, opinions, and absolutely no reason to be polite.
Pitch your architecture idea and Sally tells you the three ways it falls apart at scale. Cheaper than a post-mortem.
Sally tells you why your component re-renders on every keystroke and why your z-index is load-bearing.
Run your copy by Sally before your customers do. They won't be this constructive about it.
Every tool accepts file paths, raw text, or piped stdin. Each includes 1 free trial, no account needed.
Gate your pipeline on code quality:
--ci gives compact output with exit codes. --fail-under fails the build when the score drops below your threshold. Add --json for machine-readable output.
Sally works as an MCP server inside Claude Code, Cursor, and Windsurf.
One click:
Or add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
Add to ~/.codeium/windsurf/mcp_config.json:
| MCP Tool | What it does |
|---|---|
sally_roast | Code review with score, issues, and fixes |
sally_explain | Explain code with Sally's personality |
sally_review_pr | Review PR diffs |
sally_refactor | Refactoring suggestions with before/after |
sally_brainstorm | Feedback on ideas and approaches |
sally_frontend | Frontend/UI code review |
sally_marketing | Marketing copy review |
sally_usage | Check quota and account status |
Roast by path — the agent can call sally_roast with just paths (files or directories); Sally reads them locally and skips binaries and secret files, so the agent doesn't have to read and pass content itself.
Prompts — Sally also exposes ready-made slash-command intents (roast, review-pr, explain) in clients that surface MCP prompts.
Run sally mcp in your terminal to see setup instructions.
| Command | Description |
|---|---|
sally roast [paths...] | Review files, directories, or git changes |
sally verdict | Score your repo + get a README badge |
sally badge [--add] | Print your badge markdown, or add it to README.md |
sally explain [file] | Explain what code actually does |
sally refactor [file] | Refactoring with before/after code |
sally review-pr [pr] | Review a PR diff |
sally brainstorm "idea" | Feedback on ideas and approaches |
sally frontend [file] | Frontend/UI code review |
sally marketing "copy" | Marketing copy review |
sally login <email> | Log in via magic link |
sally logout | Clear stored session |
sally usage | Check your quota and account status |
sally upgrade | Upgrade to Sally's Full Suite |
sally results | View background review results |
sally mcp | MCP server setup instructions |
90 free roasts per month, no account needed. Every premium tool includes a free trial.
Your code is yours. Don't take our word for it — run sally roast --dry-run and see the exact payload before anything is sent. Here's what happens to it:
--dry-run prints every file, size, token estimate, and a SHA-256 receipt of exactly what would be uploaded — and sends nothing. The MCP sally_roast tool has the same preview mode..env, keys, certs, credential files) are skipped on your machine before anything is sent — and --dry-run shows you exactly which ones.--share — and even then the public card contains only the score and Sally's one-liner.~/.sally/config.json.Full engineering detail — data-flow diagram, what's retained, subprocessors, and log policy — is in docs/PRIVACY.md. User-facing summary: cynicalsally.com/privacy.
Found a bug or have a feature idea? Open an issue. Sally promises to only judge your issue title a little.