Exact Token Savings for Memory File Compression in Caveman

The /caveman-compress command reduces input token counts by approximately 46% on average when compressing project memory files, with individual savings ranging from 36.9% to 59.6% depending on file content.

The Caveman project by JuliusBrussee provides a specialized compression utility that rewrites verbose project memory files into a compact "caveman-speak" format. This transformation directly reduces the token budget consumed when the LLM loads compressed files like CLAUDE.md or todo-list.md at the start of each session.

How Memory File Compression Works

According to the source code in src/plugins/opencode/commands/caveman-compress.md, the compression algorithm rewrites natural language documentation into a condensed format while preserving semantic meaning. The caveman-compress skill documentation in skills/caveman-compress/README.md confirms this process targets input tokens only—the compressed files are read at session startup, reducing context window usage without affecting output generation costs.

Exact Token Savings Breakdown

The repository's README documents precise measurements for five representative memory files:

Memory file Original tokens Compressed tokens Savings
claude-md-preferences.md 706 285 59.6%
project-notes.md 1,145 535 53.3%
claude-md-project.md 1,122 636 43.3%
todo-list.md 627 388 38.1%
mixed-with-code.md 888 560 36.9%
Average 898 481 46%

These figures represent the reduction in tokens sent to the LLM when the compressed versions are loaded. Files with verbose natural language (like preferences documentation) achieve higher compression ratios than files containing code blocks.

Using the Caveman-Compress Command

Compress individual memory files using the CLI command defined in the OpenCode plugin:


# Compress a single memory file (e.g., CLAUDE.md)

caveman-compress CLAUDE.md

Batch process multiple project files with a shell loop:


# Compress all supported memory files in the current project

for f in CLAUDE.md todos.md preferences.md; do
  caveman-compress "$f"
done

Calculating Token Savings Programmatically

The repository uses whitespace tokenization to measure savings. You can replicate this calculation using Python:


# Example: programmatically compute token savings

import json, pathlib

def token_count(text: str) -> int:
    # Simple whitespace tokenisation (the same logic the repo uses)

    return len(text.split())

def compress_and_report(file_path: str):
    original = pathlib.Path(file_path).read_text()
    # Simulate compression by calling the CLI (omitted here)

    # compressed = subprocess.check_output(["caveman-compress", file_path])

    # For illustration, assume a 46% reduction:

    compressed = " " .join(original.split()[:int(0.54 * token_count(original))])
    saved_pct = 100 * (1 - token_count(compressed) / token_count(original))
    print(f"{file_path}: {saved_pct:.1f}% tokens saved")

compress_and_report("CLAUDE.md")

Summary

Frequently Asked Questions

What is the exact token savings for memory file compression in Caveman?

The average token savings is 46%, with specific files ranging from 36.9% (for code-heavy files) to 59.6% (for verbose preference documentation). These savings are calculated using whitespace tokenization and measured against the original file sizes.

Does caveman-compress affect output tokens or only input tokens?

Compression affects only input tokens. The reduction applies to the context loaded when the LLM reads the compressed memory files at the start of a session. Output token generation costs remain identical to uncompressed workflows.

How do I compress multiple memory files at once?

Use a shell loop to batch process files. The command caveman-compress accepts individual file paths, so you can iterate over CLAUDE.md, todos.md, preferences.md, and other project memory files in a single script.

Where is the compression logic implemented in the Caveman repository?

The CLI command definition resides in src/plugins/opencode/commands/caveman-compress.md, while the skill documentation and token savings receipts are maintained in skills/caveman-compress/README.md and the main README.md respectively.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →