Sando plugin
A plugin for Claude Code and Codex that caps tool output by content type and keeps the full text on disk.
- 52 ★ on the repository
- Last commit
Extended access
Why this level
- The hook changes what the model sees in tool results, and in Codex it rewrites shell commands before they run.
- Full command output, with secrets redacted, is stored on disk.
Install
- Works in
Manual install
/plugin marketplace add yuzushi-dev/yuzushi-pluginsThen `/plugin install sando@yuzushi`. Requires Node.js from 22.23.4 up to below 23.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The hook changes what the model sees in tool results, and in Codex it rewrites shell commands before they run.
- Full command output, with secrets redacted, is stored on disk.
This is third-party code. Review the repository files before installing.
What it does
Sando limits what a tool result costs in tokens before it reaches the model. Long output is cut to a cap by content type, the full bytes go to a store with a verified hash, and the lines that answer the question (errors, test totals) are pulled out of the cut part. In Claude Code the plugin works through a `PostToolUse` hook; in Codex it rewrites the shell command before it runs. Secrets are redacted before bounding, using rules from `.sando/redaction.json`. The `sando_artifact_get` MCP tool, which only reads, returns what was cut. The default path is deterministic and local.
Who it is for. People who hit the context window because of long logs, test output and build output in Claude Code and Codex sessions.
Good fit when
- `npm test` prints hundreds of lines while the model needs only the totals.
- A session overflows with build output and the cause of failure must survive.
- Output contains tokens and passwords that must be redacted before the model sees them.
- After truncation you need the full result back through `sando_artifact_get`.
- You want token savings measured reproducibly: the repository ships `bench-codex-shell.mjs` and `bench-reduction.mjs`.
Not a fit when
- You need exact output bytes in every reply: Sando cuts it by default.
- The environment has no Node.js from 22.23.4 up to below 23.
- You want to cut prompt-cache costs: only result size is measured.
Example request
Run the project tests, and if the output is cut, fetch the full result through `sando_artifact_get` and show the line with the first error.Limitations
Node.js from 22.23.4 up to below 23 must be on `PATH`. In Codex the `PostToolUse` hook cannot rewrite output, so the plugin changes the command before it runs; `SANDO_CLI_ROUTING=0` turns that off. Stated reductions are measured on individual results and ignore prompt caching. Binary output is withheld rather than bounded. Telemetry is off by default. The optional Slice mode needs a separately built native symbol engine.
How to disable. In Claude Code remove the plugin through `/plugin`; in Codex disable it on the `/plugins` screen. Delete the `.sando/` directory with rules and stored results by hand.
FAQ
How do I install Sando in Claude Code?
In a session run `/plugin marketplace add yuzushi-dev/yuzushi-plugins`, then `/plugin install sando@yuzushi`.
How do I install Sando in Codex?
Run `codex plugin marketplace add yuzushi-dev/yuzushi-plugins`, then open `/plugins`, select `sando` and enable it. Restart a Codex session that was already open.
Is the cut part of the output lost?
No. The full bytes sit in a content-addressed store and the reply carries a command to fetch them. `sando_artifact_get` reads them from MCP.
How many tokens does Sando save?
On Codex shell output 90.9 percent over 40,000 results, on Claude `PostToolUse` results 14.5 to 18.9 percent. The method is in `docs/measurements.md`.
Does Sando send telemetry?
No, it is off until you choose it. Details are disclosed in `TELEMETRY.md`.
Discussion
No questions or reviews yet.
Related
PluginsA Claude Code plugin with hooks and 26 skills: measures what the agent knows, blocks edits until code is read, keeps memory
An installer for a set of hooks, commands and plugins that compress tool output and save tokens in Claude Code.
A Claude Code plugin that runs one task across several external models and surfaces disagreements before you ship
A Claude Code plugin that replaces built-in file tools with lighter versions so a session spends fewer tokens
An operating layer for Claude Code and Codex: one /do entry point, project memory across sessions, safety hooks, cost telemetry and parallel agents
A plugin for long Claude Code runs: context, cache and progress at a glance, with handoff to a fresh context before it fills.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Sando (this card) | no | 52 | ||
| RTK | no | 86,236 | a CLI filter that compresses command output; Sando works on tool results and keeps the full text | |
| Context Mode | no | not required | 33,913 | an MCP output sandbox; Sando uses hooks and bounds results by content kind |
README in short
The plugin caps tool result size by content type, keeps the full output and salvages the answer from it. One set of files serves Claude Code and Codex.