DistilCodeBack to home

Claude Code plugin

DistilCode for Claude Code

Keep Claude Code and cut what it spends on context: compacted shell output, persistent codebase memory, and terse reply modes.

Install

Run in your terminal. Needs only Node.js on your PATH.

claude plugin marketplace add DistilCode/distilcode-plugin claude plugin install distilcode@distilcode-marketplace

Or from inside a Claude Code session:

/plugin install distilcode --marketplace DistilCode/distilcode-plugin

Update with claude plugin update distilcode@distilcode-marketplace. Remove with claude plugin uninstall distilcode@distilcode-marketplace.

What it does

  • Shell output compaction. Bash and PowerShell commands run through rtk, which trims their output before it reaches the model. Your normal permission prompts still apply.
  • Codebase memory. A per-repo overview and feature map that survives sessions, loaded automatically at session start. Off until you enable it for a repo.
  • Ponytail mode (on by default). A lazy senior developer: reuse what exists, write the shortest working diff.
  • Caveman mode (off by default). Compressed replies that keep every technical fact.
  • Agents. distilcode:explore for finding code, and distilcode:smart-bash for builds, tests and noisy searches.

Commands

Type these as the whole prompt. A hook handles them, so they cost no model turn. Scopes are session, repo and global (default); the narrower scope wins.

/distilcode
Show whether ponytail and caveman are on.
/distilcode caveman on
Turn on compressed replies (global by default).
/distilcode ponytail off repo
Turn off minimal-diff coding for this repository only.
/distilcode caveman off session
Turn caveman off for this session only.
/distilcode ponytail toggle
Flip a mode. Also accepts on, off and status.
caveman on
Bare form, when followed by an argument.
stop caveman
Caveman off for this session.
normal mode
Both modes off for this session.

What you can ask it

Plain requests work too. For example:

“Enable codebase memory for this repo”
Turns memory on, then writes a repository overview and a short entry for each main feature.
“What do you remember about the auth flow?”
Reads the saved feature: entrypoints, files, symbols and notes.
“Remember that billing lives in api/billing and starts at checkout.ts”
Adds or updates a feature in memory.
“Use the explore agent to find where uploads are validated”
Runs the read-only explore agent, which checks memory first and updates it as it learns.
“Run the test suite with smart-bash and tell me what failed”
Runs noisy commands in a small Haiku agent so only the result reaches your main context.
“Be less verbose for this repo”
Turns caveman on at repo scope.
“Stop the minimal-diff thing”
Turns ponytail off.

Settings

  • DISTILCODE_NO_TOKEN_KILLER=1 turns off shell output compaction.
  • DISTILCODE_DATA_DIR moves memory and mode settings. The default is ~/.local/share/distilcode/, shared with the DistilCode CLI, so a toggle in one applies to both.

What it downloads and stores

The plugin sends no data anywhere: no telemetry, no account, no API keys. Its only network request downloads the pinned rtk release from GitHub on first use, checked against the release's sha256 checksums, into ~/.distilcode/bin/. Memory and settings are local JSON files. Source is on GitHub.