Cynicalsally

io.github.w1ckedxtPublished by GitHub account w1ckedxtv0.7.0Updated Oct 24, 2026

Brutally honest code reviews: scores, real issues, and usable fixes. CLI + MCP server.

VerifiedSTDIODesktop onlyDeveloper ToolsBusiness & Commerce

Overview

AI-generated overview

A code-review MCP server that gives an assistant brutally honest scores, issues and fixes for code, PR diffs, frontend code and marketing copy.

What you can do
Review code by path or content with a score, issues and fixes, including a preview mode that sends nothing and a quota check tool (sally_roast, sally_usage). Explain what code actually does in plain language (sally_explain). Review pull request diffs (sally_review_pr). Suggest refactors with before and after code (sally_refactor). Give feedback on architecture ideas and approaches (sally_brainstorm). Review frontend and UI code, and review marketing copy (sally_frontend, sally_marketing). Also exposes ready-made prompts for roast, review-pr and explain.
When to use it
Use it when you want an AI editor or terminal assistant to critique code before committing, review a PR diff, explain unfamiliar code, or sanity-check frontend code and marketing copy. It suits developers who want a second, blunt opinion inside Claude Code, Cursor or Windsurf.
Requirements
Local Node.js 18+ runtime; runs via npx as a stdio MCP server. No API keys or environment variables are declared. Network access is needed because code is sent to the vendor's service for review. An account is optional for the free quota and required for premium tools.
Before you install
Code you point at is uploaded over HTTPS to a third-party service and processed through Anthropic's API, so only review code you are allowed to upload. Secret files such as .env, keys and certs are skipped locally, and a preview mode shows the exact payload without sending. Free quota is limited (90 roasts per month); premium tools and the Full Suite require an account and payment. Share links are opt-in and contain only the score and a one-liner.

Installation

In SourceWeft

  1. Open Cynicalsally in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[Cynical Sally]

Cynical Sally

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

[Cynical Sally Verdict] [Sally Score] [npm version] [npm downloads] [MCP Registry] [Cursor Directory] [Glama score] [license]

[Add Cynical Sally to Cursor]


Your AI pair programmer is lying to you. Sally isn't.

[sally roast — a real review, live in the terminal]

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.

[Sally code review with score and issues] [Sally actionable fixes and verdict]

Install

bash
npm install -g @cynicalsally/cli

Or run without installing:

bash
npx @cynicalsally/cli roast ./src/

Requirements: Node.js 18+

See exactly what leaves your machine

Sending code to a server you don't control deserves more than "trust me." So Sally lets you verify it instead:

bash
sally roast --dry-run ./src/

--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.

text
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

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:

gitignore
.sally/

See Privacy & Security below for the full data-flow.

Quick Start

bash
# Sally auto-detects what to reviewsally roast# → staged changes? reviews those# → unstaged changes? reviews those# → recent commit? reviews that# → nothing? scans the directory
# Roast a file or directorysally roast src/utils/auth.tssally roast ./src/
# Roast staged changes before you commitsally roast --staged
# Compare your branch against mainsally roast --diff main
# Deep analysis with issues + actionable fixessally 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 nothingsally 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 codesally roast ./src/ --share

Roast Options

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

Get your repo's verdict — and a badge to prove it

Let Sally judge your whole repo and hand you a README badge with the score baked in:

bash
sally verdict

She scores the repo, then prints ready-to-paste badge markdown:

markdown
[![Cynical Sally Verdict](https://cynicalsally.com/api/v1/badge/repo/you/repo)](https://cynicalsally.com)

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:

bash
sally badge --add   # inserts the badge into README.md, right under the titlesally badge         # just prints the markdown (and your current score)

The badge image updates automatically on every new sally verdict — add it once, judged forever.


Sally's Full Suite

Six tools, three jobs. The most honest code reviewer you'll ever work with — in your terminal and your AI editor.

[Sally's Full Suite]

Ship faster — review-pr + refactor · Be less embarrassing — explain + brainstorm · Polish for humans — frontend + marketing


Explain

[sally explain]

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.

bash
sally explain src/utils/auth.ts
# Pipe code directlycat legacy-module.js | sally explain
# Explain the current directorysally explain


Refactor

[sally refactor]

Before and after, side by side. Sally explains why one of them is going to haunt your 3am on-call rotation.

bash
sally refactor src/components/Dashboard.tsx
# Refactor current directorysally refactor


PR Review

[sally review-pr]

Sally reviews your PR like a senior engineer who has time, opinions, and absolutely no reason to be polite.

bash
# Review PR #42 (requires GitHub CLI)sally review-pr 42
# Review current branch vs mainsally review-pr
# Pipe a diffgit diff main | sally review-pr


Brainstorm

[sally brainstorm]

Pitch your architecture idea and Sally tells you the three ways it falls apart at scale. Cheaper than a post-mortem.

bash
sally brainstorm "Microservices for a 2-person team?"
# Brainstorm about the current projectsally brainstorm


Frontend Review

[sally frontend]

Sally tells you why your component re-renders on every keystroke and why your z-index is load-bearing.

bash
sally frontend src/components/Header.tsx
# Review all frontend code in a directorysally frontend ./src/


Marketing Review

[sally marketing]

Run your copy by Sally before your customers do. They won't be this constructive about it.

bash
sally marketing "Ship faster with AI-powered code reviews"
# Review your README and landing page copysally marketing README.md


Every tool accepts file paths, raw text, or piped stdin. Each includes 1 free trial, no account needed.

CI/CD Integration

Gate your pipeline on code quality:

yaml
# GitHub Actions- name: Sally Code Review  run: npx @cynicalsally/cli roast ./src/ --fail-under=5 --ci

--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.

MCP Server

Sally works as an MCP server inside Claude Code, Cursor, and Windsurf.

[Cynical Sally MCP server on Glama]

Claude Code

bash
claude mcp add cynical-sally -- npx @cynicalsally/cli mcp

Cursor

One click:

[Add Cynical Sally to Cursor]

Or add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):

json
{  "mcpServers": {    "cynical-sally": {      "command": "npx",      "args": ["@cynicalsally/cli", "mcp"]    }  }}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "cynical-sally": {      "command": "npx",      "args": ["@cynicalsally/cli", "mcp"]    }  }}

Available tools

MCP ToolWhat it does
sally_roastCode review with score, issues, and fixes
sally_explainExplain code with Sally's personality
sally_review_prReview PR diffs
sally_refactorRefactoring suggestions with before/after
sally_brainstormFeedback on ideas and approaches
sally_frontendFrontend/UI code review
sally_marketingMarketing copy review
sally_usageCheck 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.

All Commands

CommandDescription
sally roast [paths...]Review files, directories, or git changes
sally verdictScore 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 logoutClear stored session
sally usageCheck your quota and account status
sally upgradeUpgrade to Sally's Full Suite
sally resultsView background review results
sally mcpMCP server setup instructions

Free to Use

90 free roasts per month, no account needed. Every premium tool includes a free trial.

bash
sally usage     # Check your quotasally upgrade   # Unlock the Full Suite

Privacy & Security

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:

  • Verify before you send. --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.
  • Sent only to be reviewed. The files you choose are transmitted over HTTPS and processed in real-time to generate the review — that's the only reason they leave your machine.
  • Never written to disk, logs, or analytics. Your source code is processed in memory and discarded after analysis. It is never persisted to a database, never written to application logs or error traces, and never sent to any third-party APM or analytics. We keep the review (score, issues), not your source.
  • Never trained on, sold, or shared. Analysis runs through Anthropic's API, which doesn't train on submitted content.
  • Only what you point at. Sally doesn't browse your repo, read files you didn't give her, or scan your projects or plans. Secret files (.env, keys, certs, credential files) are skipped on your machine before anything is sent — and --dry-run shows you exactly which ones.
  • Sharing is opt-in, and never includes code. Nothing is ever published unless you pass --share — and even then the public card contains only the score and Sally's one-liner.
  • Anonymous by default. Reviews are tied to a random device ID, not your identity — until you link an email for Full Suite. Config stored locally at ~/.sally/config.json.
  • Signed releases. npm packages are published with provenance — a cryptographic, public attestation linking each release to the exact source commit and CI build that produced it.

Full engineering detail — data-flow diagram, what's retained, subprocessors, and log policy — is in docs/PRIVACY.md. User-facing summary: cynicalsally.com/privacy.

Contributing

Found a bug or have a feature idea? Open an issue. Sally promises to only judge your issue title a little.

License

MIT


cynicalsally.com · npm · issues

Source: README.md at commit 68c8303

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.7.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts