Install Scrutin with Python

Use this path when you have Python 3.11+ and git on your machine. Scrutin installs from PyPI and runs a local web server so you can review changes before committing. Prefer no Python? Use the Docker guide instead.

After following these steps, you should be able to:

Step 1 — Check requirements

RequirementNotes
Python 3.11+Runs the Scrutin server and CLI
gitOn your PATH
A git repositoryExisting repo or git init—first commit is optional for uncommitted review
Browser (web UI)Any modern browser
python3 --version
git --version

Step 2 — Install from PyPI

Install into your user environment or an active virtualenv:

pip install scrutin
scrutin --help

If scrutin: command not found, ensure the directory where pip installs scripts is on your PATH, or use python3 -m scrutin.cli --help.

Step 3 — Start the server

From your project directory (or any path—you can set the repo in the UI):

cd /path/to/your-project
scrutin serve

Your browser should open http://127.0.0.1:8787. To start without opening a tab:

scrutin serve --no-open

To pin a specific repository on startup:

scrutin serve --repo /path/to/your-project

Step 4 — Set the repository in the UI

In the left Workspace panel:

  1. Repository — full path to your git root (e.g. /Users/you/your-project).
  2. Click ◎ Detect repo if the field is empty or wrong.
  3. Confirm the hint under Compare shows changed paths.

Step 5 — Choose compare mode and refresh

Use the Compare dropdown, then click ↻ Refresh brief:

ModeWhat it shows
workingStaged + unstaged vs HEAD (default for pre-commit)
stagedIndex vs HEAD only
unstagedWorking tree vs index only
branchbase…head (e.g. main…HEAD)—set Base and Head when selected

Step 6 — Review, stage, and commit

  1. Read the dashboard (KPIs, risk overview, summary).
  2. In Files to scrutinize, open View diff and click Mark reviewed on each flagged file.
  3. Stage per file or use Stage all in the Commit panel.
  4. Write a commit message or click Suggest message, then Commit staged.

Commit gate: Commit staged stays disabled until every file in Files to scrutinize is marked reviewed and at least one change is staged.

Files under Other changed files do not require “Mark reviewed” but can still be staged and committed.

IDE plugins — coming soon

Sidebar plugins are not listed on the Marketplace yet. Until they ship, use the browser UI from Steps 3–6 above.

Planned:

  • VS Code — Scrutin brief in the activity bar, connected to scrutin serve on port 8787.
  • Cursor — same experience as the VS Code extension.
  • IntelliJ — JetBrains plugin for IDEA and compatible IDEs.

All plugins will use the same local server you start with scrutin serve—no cloud required.

Optional — LLM polish

Without an API key, Scrutin uses Sharpen heuristics (local rules, no API calls). To enable an LLM, expand LLM (optional) in the sidebar, set provider/model/key, click Save LLM settings, then Refresh brief. Keys are stored in .env in your repo (or ~/.scrutin/.env).

Troubleshooting

ProblemWhat to do
scrutin: command not foundpip install scrutin or activate the venv where you installed it
Not inside a git repositorycd to the repo root or run git init
No diff to analyzeSave edits, git add some files, or switch compare mode
UI empty / wrong repoSet RepositoryDetect repoRefresh brief
Port 8787 in useStop the old server (Ctrl+C) or use scrutin serve --port 8788
Commit button disabledMark all scrutinize files reviewed and stage at least one file

Quick cheat sheet

pip install scrutin
cd ~/your-project
scrutin serve
# → http://127.0.0.1:8787 → Detect repo → Refresh brief → review → Stage all → Commit staged

scrutin brief          # terminal-only brief
scrutin brief --json