From hush
Compresses a memory file (CLAUDE.md, project notes, preferences) into hush's own dev-shorthand voice to cut input tokens every session it's loaded. Never touches the original file — writes a sibling file for the user to review and swap in manually. A mechanical verifier checks that headings, code blocks, URLs, paths, and inline code all survived.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hush:hush-compress <path to the file to compress>When to use
Trigger when the user wants to shrink a memory/CLAUDE.md file to save input tokens, says "compress this file", "shrink my CLAUDE.md", "compress this memory file", or invokes /hush:hush-compress <path>.
<path to the file to compress>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Shrinks a memory file's word count using hush's own voice — the same "Word economy" rules the output style already applies to conversation — so every future session that loads this file pays fewer input tokens for it. Never writes to the original.
Shrinks a memory file's word count using hush's own voice — the same "Word economy" rules the output style already applies to conversation — so every future session that loads this file pays fewer input tokens for it. Never writes to the original.
.env (or .env.*), .netrc, credentials*, secrets*, passwords*, id_rsa/id_ed25519 (or .pub), authorized_keys, known_hosts, any *.pem/*.key/*.p12/*.pfx/*.crt/*.cer/*.jks/*.keystore/*.asc/*.gpg, or any path containing a .ssh/, .aws/, .gnupg/, or .kube/ component.
Tell the user why and stop. Do not read the file. These are exactly the kinds of files that must never reach a model call.
If the file is empty or whitespace-only after reading, say so and stop — nothing to compress.
If the file starts with YAML frontmatter (--- ... ---), leave it completely untouched — copy it verbatim into the output. Compress only the body below it.
Apply hush's own word economy — see output-styles/hush.md:
Preserve these EXACTLY, byte for byte — never reword, shorten, or paraphrase inside them:
`like this`)$HOME, NODE_ENV)For some/path/CLAUDE.md, write to some/path/CLAUDE.hush.md. For any other filename, insert .hush before the extension (notes.md → notes.hush.md). This is the whole safety model: the original's bytes are never touched by this skill, in any step, so there is no path by which running this can damage or delete the source file.
Run:
node "${CLAUDE_PLUGIN_ROOT}/scripts/cache-stability-check.js" <original>
This scans the ORIGINAL file's first 60% of lines for volatile content — ISO dates, times, AUTO-GENERATED/Last updated/Generated by stamps, UUID-v4s, and @import lines whose paths carry a date or build stamp. These lines sit early in the prompt-cache prefix; every session that changes one re-bills everything after it. This never edits the file — it's advisory only. Include any findings in your report to the user (move-or-remove suggestion); if it reports clean, no need to mention it.
Run:
node "${CLAUDE_PLUGIN_ROOT}/scripts/verify-compression.js" <original> <compressed>
This checks that every heading, code block, URL, path, and inline-code span in the original still appears somewhere in the compressed file. It exits 1 and lists what's missing if not — it doesn't block anything (there's nothing destructive to block), it's evidence for you to look at before reporting back.
If something is flagged missing, look at whether it actually mattered (the checker is deliberately crude and can flag things like a URL fragment as a false "path") — restore anything real that got dropped, by editing the sibling file, before reporting.
One line: original word count → compressed word count, percent saved, where the sibling file was written. If the verifier flagged anything worth mentioning, say what and whether you fixed it. If the cache-stability check found anything, name the flagged lines and suggest moving them to the end of the file or removing them. Tell the user to review the sibling file and manually replace the original (or ask them to rename it) once they're satisfied — this skill never does that replacement itself.
npx claudepluginhub v-songbird/hushRewrites CLAUDE.md, AGENTS.md, or notes files into terse form to reduce input token cost each session. Backs up the original first.
Compresses verbose memory files (CLAUDE.md, todos, preferences) into terse TLDR format to reduce input tokens, preserving all code, URLs, and structure. Invoke via /tldr-compress <filepath>.
Compresses natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves code, URLs, structure. Trigger: /caveman-compress.