Sieve
Filter AI slop before it hits your codebase.
Get Started •
Features •
Keyboard Shortcuts •
Contributing •
Roadmap
AI assistants modify 10–50+ files in seconds. But then you're left eyeballing a massive diff, hoping nothing slipped through. Sieve is a local PR review for AI-generated code — triage, annotate, and copy structured feedback, all without leaving your editor.
Get Started
- Install — Extensions (
Ctrl+Shift+X) → search "Sieve" → Install
- Open a project where AI has made changes
- Click the Sieve icon in the Activity Bar — done
Or grab the .vsix from the latest release and install manually:
code --install-extension sieve-0.1.4.vsix
Works with VS Code, Cursor, Windsurf, VSCodium. No configuration needed.
Features
Review Desk
Branch commits and current workspace changes in one panel. Triage them one by one — R to approve, F to flag.

- Separate
Committed on this branch and Current changes sections
- Committed changes use the branch merge-base; current changes include staged, unstaged, and untracked files
- Compare any branches, tags, or commits: pick the base, then the target, from fuzzy branch and tag pickers — or type a commit,
base...target, or base..target
- Change just the base or just the target from the committed section's right-click menu
- Tree view grouped by directory with git status badges (A, M, D, R); folder icons show
reviewed/total and turn green once every file inside is reviewed, orange when one is flagged
- Worktree aware: open a repository and its worktrees side by side, keep worktrees inside the repository folder, or turn on VS Code's
git.detectWorktrees setting — each one gets its own group in the panel with its own review state
- Review only what changed since your last pass: a review checkpoint is set when you copy the review for your LLM, when the agent skill starts working, or with Set Review Checkpoint (milestone icon). A
Since last review section then lists just the changes made after it, committed or not, each starting unreviewed, and Current changes folds away
- Filter by status: All / Unreviewed / Reviewed / Flagged
- Progress in the status bar:
12/47 reviewed

Pre-prompted Annotation Categories
Click the + gutter on any changed line. Pick a category — each one generates tailored instructions when you copy the review.

| Category |
What it tells the LLM |
| Bug |
Identify root cause, suggest minimal fix |
| Security |
Assess OWASP risk, provide remediation |
| Performance |
Profile the bottleneck, suggest optimization |
| Architecture |
Evaluate design impact, propose alternative |
| Explain |
Clarify intent and reasoning |
| Refactor |
Improve readability, reduce complexity |
| Test |
Add missing coverage |
Cycle categories with the tag button. Power users can type [bug] your text directly.
Copy to LLM — Like Reviewing a Friend's PR
Flag files, add annotations, press C. Sieve builds a structured prompt with your diffs + annotations and copies it to your clipboard. Paste it into Claude, ChatGPT, or any LLM — it reads like a thorough code review from a colleague.

Three formats:
| Format |
Best for |
| Claude (XML) |
Claude Code, Claude Chat |
| Generic LLM |
ChatGPT, Copilot Chat, any LLM |
| Markdown Report |
Docs, Slack, Notion |
Each copy includes the comparison source, annotated diff hunks, your notes matched to the relevant code, and auto-generated instructions based on the categories you used.
Example output (Claude XML)
<review>
<instructions>
For each [bug]: identify the root cause and suggest a minimal, targeted fix.
For each [security]: assess the OWASP risk level and provide a concrete remediation.
</instructions>
<file path="src/hooks/useAuth.ts" status="modified" source="origin/main...feature/auth">
<hunk header="@@ -23,5 +23,7 @@">
<diff>
+useEffect(() => {
+ const sub = auth.onStateChange(setUser);
+}, []);
</diff>
<annotation line="24" category="bug">
Missing cleanup — will cause memory leak on unmount
</annotation>
</hunk>
</file>
</review>
Let Your Agent Pick Up the Review
Run Sieve: Install Agent Skill from the Command Palette and choose Claude Code, Codex, or both. After that, ask your agent to address your latest review: the Sieve skill is selected automatically, finds the annotations for the current workspace, and works through them without an export or paste step.
Each repository and worktree keeps its own review, so an agent working in a worktree picks up exactly the annotations you left there.
Before its first edit, the skill sets a review checkpoint, so the Review Desk then shows only what the agent changed. Apart from that, it is read-only: it can fix your code, but only you resolve or delete annotations in Sieve.
3-State Triage
| State |
Shortcut |
Meaning |
| ⬜ Unreviewed |
— |
Not yet looked at |
| ✅ Reviewed |
R |
Approved |
| 🚩 Flagged |
F |
Needs attention — prompts for an annotation |
Press the same shortcut again to revert to unreviewed. State persists across restarts.
The Loop
AI generates code
|
v
You review in Sieve ──> Flag + annotate
^ |
| v
Re-review <──────── Copy to LLM ──> AI fixes issues
Works with Claude Code, Cursor, Copilot, Cline, Aider, Codex — any tool that writes code.
Keyboard Shortcuts
Scoped to the Review Desk panel — zero conflicts with your keybindings.
| Key |
Action |
R |
Toggle reviewed |
F |
Toggle flagged |
Enter |
Open diff |
C |
Copy review for LLM |
F5 |
Refresh |
Privacy
- Zero cloud — everything runs locally
- Zero telemetry — no data collection
- Zero network — no outbound connections
- Clean repositories — new review state lives under
~/.sieve/workspaces; Sieve no longer writes project or Git metadata. A review checkpoint only adds unreferenced Git objects, as git stash create does, which git gc prunes on its own
Contributing
git clone https://github.com/DanielT777/sieve.git
cd sieve
pnpm install
pnpm run compile:watch # terminal 1
# Press F5 to launch Extension Development Host
pnpm test
Roadmap
- [ ] Direct LLM API integration (send & receive without leaving the editor)
- [ ] MCP server for bidirectional AI communication
- [ ] Custom export templates
- [ ] Team review session sharing
License
MIT
If Sieve saves you from merging slop, star it on GitHub