What do you want to do?
4 use cases
-
Trim large Claude Code tool results before they fill context
Install Winnow as a Claude Code plugin so big Read, Bash, and Grep outputs are filtered before Claude sees them.
- REPO
GhalebDweikat/winnow - Claude Code
- Software and DevOps
- Intermediate
View prompt
Using the winnow repo at <repo path>, install it as a Claude Code plugin and run `uv run --project winnow/sidecar winnow doctor`. Report which judge backend initialized. Then read <target file> in a new session and confirm a [winnow] line appears in the result if the file is longer than 1,500 characters.
- REPO
-
Test Winnow in shadow mode before it changes results
Log what Winnow would hide for a week without changing anything Claude sees.
View prompt
In the winnow repo at <repo path>, set WINNOW_MODE=shadow, then run `winnow stats` after a week of Claude Code use. Report the number of results that would have been rewritten and the characters that would have been saved. Verify that the decision log in ~/.winnow/decisions.jsonl contains per-block probabilities.
-
Score a judge on your own Claude Code transcript history
Run Winnow replay offline against saved transcripts to benchmark a judge with no API key.
View prompt
In the winnow repo at <repo path>, run `uv run --project winnow/sidecar winnow replay run --judge lexical` against the transcripts under ~/.claude/projects. Report the scored output and confirm that no API key was needed.
-
Inject relevant memory notes into each Claude Code prompt
Point Winnow at your markdown notes so the right ones load with each prompt.
- REPO
GhalebDweikat/winnow - Claude Code
- Software and DevOps
- Intermediate
View prompt
In the winnow repo at <repo path>, set WINNOW_CONTEXT_DIRS to <notes directory> and start a new Claude Code session. Send the prompt <test prompt> and confirm that the note matching it is injected. Report the files injected and the file count against WINNOW_CONTEXT_TOP_K.
- REPO
Quick start with Winnow
- Check you have what it needs: Python 3.10+; uv installed; Claude Code 2.1.260 or newer with function hooks enabled (early access).
- Open GhalebDweikat/winnow on GitHub and read the README and license.
- In ~/.claude/settings.json, add { "env": { "CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1" } }.
- Clone the repo with
git clone https://github.com/GhalebDweikat/winnow.git, then runclaude plugin marketplace add ./winnowandclaude plugin install winnow@winnow. - Put TYPESAFE_API_KEY in ~/.winnow/env, or set WINNOW_JUDGE=adapter with ANTHROPIC_API_KEY to use the adapter.
- Run
uv run --project winnow/sidecar winnow doctorto check which keys were found and whether each backend starts.
These steps come from our top use case, Trim large Claude Code tool results before they fill context, which also has a copy-paste agent prompt.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for GhalebDweikat/winnow
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeAbout this repo
- Who it is forDevelopers who use Claude Code on large codebases and want to cut token use without losing access to the hidden output.
- Why it is hot115 stars, launched 40 days ago
- LanguagePython
- Sourcegithub.com/GhalebDweikat/winnow · Back to Hot repos
Requirements
- Python 3.10+
- uv installed
- Claude Code 2.1.260 or newer with function hooks enabled (early access)
- A Jev key from TypeSafe, or an Anthropic API key for the adapter judge
- Git to clone the repo
Add this badge to your README
Maintain Winnow? Show readers where to find these use cases.
Markdown
[](https://dedupedai.com/use-cases/ghalebdweikat-winnow/?utm_source=github&utm_medium=badge&utm_campaign=GhalebDweikat-winnow)
HTML
<a href="https://dedupedai.com/use-cases/ghalebdweikat-winnow/?utm_source=github&utm_medium=badge&utm_campaign=GhalebDweikat-winnow"><img src="https://dedupedai.com/badge/GhalebDweikat/winnow.svg" alt="Use cases on Deduped" height="20"></a>
A static image, no tracking script. About the badge
Questions about Winnow
What is Winnow?
winnow is a Python sidecar and Claude Code plugin that judges large Read, Bash, and Grep results and hides blocks it is confident are not needed, replacing them with short stubs. It is an open-source project on GitHub: https://github.com/GhalebDweikat/winnow.
How do I use Winnow?
In ~/.claude/settings.json, add { "env": { "CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1" } }; then clone the repo with git clone https://github.com/GhalebDweikat/winnow.git, then run claude plugin marketplace add ./winnow and claude plugin install winnow@winnow; put TYPESAFE_API_KEY in ~/.winnow/env, or set WINNOW_JUDGE=adapter with ANTHROPIC_API_KEY to use the adapter. The use cases on this page give the full steps and a copy-paste agent prompt for each job.
Who is Winnow for?
Developers who use Claude Code on large codebases and want to cut token use without losing access to the hidden output.
What can I do with Winnow?
4 use cases so far, for example: Trim large Claude Code tool results before they fill context; Test Winnow in shadow mode before it changes results; Score a judge on your own Claude Code transcript history. Each has steps and a copy-paste agent prompt.
What do I need to run Winnow?
Python 3.10+; uv installed; Claude Code 2.1.260 or newer with function hooks enabled (early access); A Jev key from TypeSafe, or an Anthropic API key for the adapter judge.
What are alternatives to Winnow?
Other hot AI repos in Software and DevOps: Deep Infer, Harness2, Orca, Opencode, Graphify.
Is Winnow safe to run?
Deduped does not own, audit or vouch for it. Read the README and license, run it on your own systems first and review every command before you run it.