Caveman Intensity Levels Explained: When to Use Lite, Full, Ultra, and Wenyan Modes
Caveman provides six intensity levels—lite, full, ultra, wenyan-lite, wenyan-full, and wenyan-ultra—that progressively strip linguistic filler to reduce token usage while preserving technical accuracy, with lite maintaining readability and ultra maximizing compression.
The JuliusBrussee/caveman repository implements a token-saving compression system for Claude-based agents through configurable caveman intensity levels. At session start, the activation hook filters the skill's ruleset to emit only the row matching your selected intensity, ensuring the model adheres to specific compression constraints throughout the conversation.
What Are Caveman Intensity Levels?
Caveman operates as a filtered ruleset mode defined in skills/caveman/SKILL.md. When activated, the hook in src/hooks/caveman-activate.js (lines 93-101) strips the YAML front-matter from the skill file and filters the intensity table to retain only the header and the row corresponding to your selected level. This filtered subset travels with the session, instructing Claude to apply specific linguistic constraints—such as removing articles, hedging, or sentence fragments—while strictly preserving code, error messages, and API names.
The Six Caveman Intensity Levels
The skill file defines six distinct levels that balance compression against readability.
Lite
Lite removes filler and hedging but keeps full sentences and articles. The prose remains professional and tight, making it ideal when you need concise but fully readable answers for documentation snippets or quick explanations where natural language flow matters.
Full (Default)
Full is the default mode that drops articles, allows sentence fragments, and substitutes short synonyms. This represents the classic "caveman" style and serves as the general-purpose token-saving option for routine code reviews and bug-fix suggestions.
Ultra
Ultra strips conjunctions, uses bare fragments, forbids invented abbreviations (e.g., cfg, impl) and arrows (→), and states every fact exactly once. Use this when maximum compression is required, such as processing large-scale diffs, log summarization, or when approaching model token limits.
Wenyan-Lite
Wenyan-lite applies classical Chinese register with light compression while maintaining Chinese grammar structure. This suits users preferring historical Chinese style with fairly readable output, such as teaching classical Chinese programming concepts.
Wenyan-Full
Wenyan-full delivers full-blown 文言文 (classical Chinese) with 80-90% character reduction. Select this for the most terse classical Chinese prose, often used for poetic or highly compact Chinese documentation.
Wenyan-Ultra
Wenyan-ultra applies extreme classical-Chinese compression. Use this for ultra-short Chinese snippets or scenarios where every single character must be preserved.
How to Activate Different Intensity Levels
Intensity levels are triggered through slash commands defined in commands/caveman.md. The activation hook writes your selection to $CLAUDE_CONFIG_DIR/.caveman-active and filters the ruleset accordingly.
# Default full compression mode
/caveman
# Light compression - keeps full sentences
/caveman lite
# Maximum compression - bare fragments only
/caveman ultra
# Classical Chinese variants
/caveman wenyan-lite
/caveman wenyan-full
/caveman wenyan-ultra
# Disable compression and return to normal mode
stop caveman
Choosing the Right Level for Your Use Case
Select your intensity based on the trade-off between token savings and readability requirements:
- Lite: Best for brief, human-friendly answers like error explanations or tutorials requiring full sentences.
- Full: The standard choice for general token-saving in routine code reviews and standard interactions.
- Ultra: Essential when running out of tokens during large document processing or complex diffs.
- Wenyan variants: Use when users explicitly request Chinese output, selecting the specific tier based on desired terseness versus readability.
Summary
- Caveman intensity levels are defined in
skills/caveman/SKILL.mdand filtered by the activation hook atsrc/hooks/caveman-activate.js(lines 93-101). - Six levels exist: lite, full (default), ultra, wenyan-lite, wenyan-full, and wenyan-ultra.
- Lite preserves readability while removing filler; ultra maximizes compression through bare fragments.
- Wenyan modes provide classical Chinese compression registers.
- Activation occurs via
/caveman [level]commands processed throughcommands/caveman.md.
Frequently Asked Questions
What is the default caveman intensity level?
Full is the default intensity level when you invoke /caveman without specifying a parameter. This mode drops articles and allows sentence fragments while maintaining clarity, serving as the standard token-saving option for most interactions.
How does the activation hook filter the ruleset?
The hook in src/hooks/caveman-activate.js reads skills/caveman/SKILL.md, removes the YAML front-matter, and filters the intensity table to emit only the header row and the specific level row matching your selection (lines 93-101). This filtered subset constrains the model's output style for the entire session.
Can I switch intensity levels mid-conversation?
Yes. You can switch levels by issuing a new /caveman [level] command at any time. The activation hook updates the active configuration and re-filters the ruleset. To disable compression entirely, use stop caveman, which removes the caveman constraints and returns Claude to normal operating mode.
What is the difference between ultra and wenyan-ultra?
Ultra applies maximum compression to English or standard text output using bare fragments and strict abbreviation rules. Wenyan-ultra applies the same compression philosophy to classical Chinese (文言文), producing the tightest possible character-efficient expression while maintaining classical linguistic structures.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →