Getting started
Diffsift runs entirely on your machine. Setup is four steps and none of them involve creating an account.
1. Install
Download the Windows installer from the download page and run it. No admin rights are required and nothing is installed as a service — Diffsift is a normal desktop app.
Start Diffsift. On first run it opens Settings so you can connect a source control provider and a model.
2. Connect source control
Diffsift reads pull requests through a personal access token (PAT) that stays on your machine, stored encrypted with Windows DPAPI.
Azure DevOps
- Create a PAT in Azure DevOps (
User settings → Personal access tokens) with Code: Read scope. - In Diffsift Settings, choose Azure DevOps, enter your organisation URL
(
https://dev.azure.com/your-org) and project, and paste the PAT.
GitHub
- Create a fine-grained token with Pull requests: Read access to the repositories you want to review.
- In Diffsift Settings, choose GitHub, enter the owner and repositories, and paste the token.
3. Connect a model
Any of these works:
- LM Studio — start the local server (
Developer → Start server), then point Diffsift athttp://localhost:1234and pick the loaded model. - Ollama —
ollama serveis usually already running; point Diffsift athttp://localhost:11434and choose a model such asqwen3:32b. - Any OpenAI-compatible endpoint — enter the base URL and, if the endpoint requires one, an API key. This is how you use a model host elsewhere on your network — or an external provider, in which case Diffsift warns you and asks for explicit confirmation before every run.
Tested models
These local models have been verified against Diffsift’s full review pipeline and produced complete, structured review packs (as of 17 September 2026, on a single 32 GB GPU via LM Studio unless noted):
| Model | Size | Review time for the reference PR |
|---|---|---|
| gpt-oss | 20B | 8 s |
| Qwen 3.6 | 35B-A3B (MoE) | 11 s |
| Gemma 4 | 26B-A4B (MoE) | 25 s |
| Gemma 4 | 31B | 51 s |
| DeepSeek-R1-0528 | Qwen3 8B | 67 s |
| Muse Glimmer | 28B | 74 s |
| Qwen 3.8 | 27B | 84 s |
| Qwen 3.6 | 27B | 85 s |
| Qwen 3.5 (Ollama) | 9B | — |
Reasoning models (Qwen 3, Gemma 4, DeepSeek-R1) have their thinking mode switched off automatically so the output budget goes to the review. Other models should work too — the list is what has been proven end to end, not a limit.
4. Generate your first review pack
- Open the Pull Requests page — your open pull requests are listed.
- Pick a PR, choose a review profile (general senior developer review is the default) and a depth.
- Generate. Diffsift builds a bounded context from the diff, runs your model, and writes a structured review pack — findings with severity, confidence, and evidence from the actual diff — as Markdown in your output folder.
Read the pack, copy the comments you agree with, and post them yourself. Diffsift never comments on, approves, rejects, or merges a PR.
5. Optional: let Diffsift watch your PRs
The Inbox is Diffsift’s home page. Turn on monitoring there and, while the app is open, Diffsift polls your source provider every few minutes and detects new and updated pull requests. With auto-review enabled, matching PRs are reviewed automatically — one at a time — and finished packs land in the Inbox with a Windows notification.
The auto-review rules (the gear on the Inbox monitoring row) control exactly what runs unattended: per-repository toggles, skip drafts, a PR size cap, and re-review when new commits are pushed. Both monitoring and auto-review are opt-in and off by default, so a paid endpoint never runs without being asked — on a local model, unattended reviews cost you nothing. Automatic runs are labelled in Review History, and nothing is ever posted automatically.
Troubleshooting
- The model host isn’t reachable — check the server is running and the port matches; Diffsift shows the exact URL it tried.
- Review packs aren’t written — if your output folder is under Documents or
OneDrive, Windows Controlled Folder Access may block writes. Choose a folder
outside protected locations in
Settings → Output, or allow Diffsift through the protection.