DistilCodeBack to home

Codex plugin

DistilCode for Codex

Install

Add the marketplace in your terminal. Needs only Node.js on your PATH.

codex plugin marketplace add DistilCode/distilcode-plugin

Then enable distilcode@distilcode-marketplace from /plugins in Codex, or in config.toml:

[plugins."distilcode@distilcode-marketplace"] enabled = true

Codex doesn’t trust plugin hooks automatically. Open /hooks once, review DistilCode’s hooks and trust them; until then shell compaction and modes stay off.

What it does

  • Shell output compaction. Shell commands run through rtk, which trims their output before it reaches the model. Your normal approval 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.
  • Explorer with memory. When memory is on, Codex’s built-in explorer subagent gets the memory snapshot and keeps it up to date.

Commands

Codex has no plugin slash commands, so 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.

caveman status
Show whether caveman is on. Works for ponytail too.
caveman on
Turn on compressed replies (global by default).
ponytail off repo
Turn off minimal-diff coding for this repository only.
caveman off session
Turn caveman off for this session only.
ponytail toggle
Flip a mode.
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 explorer to find where uploads are validated”
The explorer subagent checks memory first and updates it as it learns.
“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 and the other plugin, so a toggle in one applies to all.

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.