Chat compression
Chat compression is opt-in and member-owned. Your choices apply only to turns you start. They never change another member's settings, and they are never borrowed through a shared chat.
Manage it from Settings → Chat compression, or from the compact Compression control beside any Chat composer. Both save the same preference. Chat summarizes the effective state as Off, RTK, Caveman, or Both.
The controls
Member compression is the master switch. Turning it off pauses both tools without erasing their saved positions; turning it back on restores your choices. Turning either tool on while paused also resumes Member compression, so your selection applies to your next turn.
In the compact Chat control, select anywhere on an option row—including its title, description, or switch—to change that setting.
| Tool | What it shortens |
|---|---|
| Tool-result compression | Sandbox command output, before the model sees it |
| Plain-speak responses | Kaizen's visible thinking and final answer prose |
| Prompt trim | Filler in your own message, before the model sees it |
All three are opt-in and default off. Kaizen shows their effective state plainly:
- On — master, tool, and organization availability are all on.
- Off — tool toggle off — master is on, but this tool is off.
- Off — member compression off — the master switch is off.
- Off — unavailable — an organization-level availability flag is off.
Preference changes apply to your next turn. A turn already running keeps the state captured when it started, and existing messages are never rewritten.
You can also just ask: "Do you have compression enabled?" Every agent receives a server-authored projection of your effective settings and answers from those values rather than guessing.
Tool-result compression
After a public sandbox run_code command finishes, its stdout and stderr are
filtered before being handed to the model.
The raw output stays canonical. Kaizen keeps the full authorized result for audit, presentation, and diagnostics, and applies the smaller projection only to the model-bound copy. Artifact references, diagnostics, source identifiers, exit status, member-facing summaries, and rich presentation data are never rewritten.
What is never compressed
Search, conversation-history search, and document retrieval bypass compression byte-for-byte. Any source-bearing evidence reaches the model unchanged, so query construction, authorization filtering, ranking, retrieved source IDs, answer facts, and citations are identical whether your setting is on or off.
Unsupported tools, private collaboration output, and output that would not
actually get smaller pass through unchanged and count as bypasses. So do two kinds
of run_code call whose code never ran — one whose dependency could not be
installed, and a refused persistent-kernel request — because there was no
command output to compress.
If it fails
A missing, timed-out, or failed compression step returns the original, already-authorized result, records the failure, and continues the turn. It never fails a tool call, and it never widens one.
Compression invokes no second model and grants no new tool, sandbox, filesystem, network, identity, or approval authority.
Plain-speak responses
Plain-speak makes user-visible prose terser: streamed Thinking text and the final answer.
It keeps all technical substance, states each fact once, drops filler and hedging, prefers short exact phrasing, preserves the language you wrote in, and keeps code, commands, paths, URLs, API names, technical terms, and exact error strings verbatim.
Private reasoning stays complete. Only user-visible prose changes. Tool selection and arguments, search queries, retrieval sets, citations and source links, approval behavior, and structured tool payloads are unchanged.
Clarity always wins
Terseness is overridden for:
- security warnings,
- destructive-action confirmations,
- approval prompts,
- ordered multi-step instructions,
- anything where shorter wording would create material ambiguity.
If Kaizen cannot compose the Plain-speak instruction it uses the normal prompt and continues.
Prompt trim
Prompt trim removes filler and hedging from your message before it reaches the model. It removes a request preamble such as "I was just wondering if maybe you could possibly", an apologetic aside, filler adverbs such as "basically" and "actually", and a closing "please" or "thanks".
Your chat keeps your message exactly as you wrote it. The trimmed version exists only in the copy sent to the model, so the transcript, your history, and anything that replays the conversation still show your own words.
Some things are never touched:
- code blocks, inline code, text you put in quotation marks, and links;
- a sentence that already contains "not", "never", or "no", because removing a word there can reverse what you asked;
- your whole message, if trimming would leave too little of it — then Kaizen sends what you wrote.
Trim works from a fixed list of phrasings. Unusual hedging is left alone, so treat it as a small saving on each turn rather than a rewrite of your prompt. Nothing else about the turn changes: no extra model call and no extra wait.
Statistics
Type /compression stats in any writable composer, or choose View
compression stats from the Compression popover. The panel is local and
non-persisted — no message is sent, no turn starts, no tokens are spent.
The panel has separate RTK and Caveman tabs, each showing member-scope and current-conversation figures. Prompt trim is measured the same way, and its exact byte savings are already part of your saved measurements; it does not have its own tab yet.
Exact versus estimated. Measured delivered-byte and event counters are labeled Exact. Plain-speak's tokens saved and compression ratio are labeled Estimate, because they use a deterministic modeled baseline rather than generating a second verbose answer to compare against.
Top commands cached ranks Kaizen-owned command families — Python, Node, and
Bash run_code — by estimated tokens saved, with run counts and average
reduction. "Cached" means aggregate measurements retained across sessions. Kaizen
never stores raw code, arguments, paths, or output in this list, and never
imports machine-global history that could mix in other members' commands.
Reset member totals clears only your member-scope measurements and starts a new window. It does not change preferences, rewrite messages, or erase current-conversation measurements.
System safety compaction is different
System safety compaction keeps long conversations inside model context limits. It is always on, system-managed, and cannot be disabled or weakened by any member preference.
It is not the same thing as compression and shares no controls with it. See Context management & compaction.
If you want to run that context operation early, use /compact in the active
Chat. It is intentionally separate from /compression stats, which only opens
measurements.