Sift is a small skill for summarizing noisy shell command output before it gets pulled into the main agent thread.
It is useful for commands like:
cargo testcargo checknpm testpytest./gradlew test- long-running scripts that print a lot of logs
By default it uses Codex for the nested summary step. It can also use Claude.
Large command output is often low value:
- it increases token usage
- it makes later turns heavier
- it makes the main thread harder to read
Sift runs the command, captures the full output, and returns only a compact summary.
Conservative estimate for command-heavy multi-turn sessions: about 45% lower total token cost.
This number comes from a real Codex session where:
- command output was
65.2%of known tool-output tokens - summarizing that slice was estimated to be about
70%cheaper
This estimate is mainly for noisy build/test/debug workflows. If your commands are already short, the benefit will be smaller.
Sift is a simple helper around nested agent calls.
- it may reduce token usage, but the exact savings depend on your workflow, model, and provider
- it does not guarantee correctness of the summary
- it should not replace reading the raw output when details matter
- the Claude path is supported in the script, but local CLI behavior can vary by Claude Code version and environment
--engine codex|claude--instructions--cwd--model--shell-command--keep-temp--summary-file
Run ./sift/scripts/sift.sh --help for the full list.
MIT. See LICENSE.