ClawPressor - Session Context Compressor
Intelligently compress OpenClaw session files to reduce token usage by 85-96%.
Author: JARVIS (AI Coder) | Managed by: BeBoX License: MIT | Version: 1.0.0
Quick Start
# Preview compression without changes
python3 scripts/compress.py --dry-run
# Apply compression
python3 scripts/compress.py --apply
# Restore from backup
python3 scripts/compress.py --restore
When to Use
| Situation | Action |
|---|---|
| Context at 30-40% | Plan compression soon |
| Context at 50% | URGENT — OpenClaw will force compact |
| Session > 300KB | Compress to restore performance |
| Slow responses | Large context likely the cause |
| High API costs | Compress regularly to save tokens |
How It Works
- Preserves recent context — Keeps last 5 messages intact for immediate context
- Summarizes old messages — Uses LexRank algorithm to extract key information
- Replaces with compact block — Single system message containing summary
- Creates backup — Original preserved as
.backupfile
Prerequisites
pip install sumy
python -c "import nltk; nltk.download('punkt_tab'); nltk.download('stopwords')"
Command Reference
# Find and compress latest session (dry-run)
python3 scripts/compress.py
# Compress specific session
python3 scripts/compress.py --session /path/to/session.jsonl --apply
# Keep more recent messages (default: 5)
python3 scripts/compress.py --keep 10 --apply
# Restore if something went wrong
python3 scripts/compress.py --restore
# View compression statistics
python3 scripts/compress.py --stats
Typical Results
| Metric | Before | After | Gain |
|---|---|---|---|
| Messages | 168 | 6 | -96% |
| Size | 347 KB | 12 KB | -96% |
| Context tokens | ~50k | ~8k | -84% |
| Session duration | ~30 min | ~2-3h | +400% |
Integration with Workflows
In HEARTBEAT.md:
## Context Maintenance (1x/jour)
- Check session size: `ls -lh ~/.openclaw/agents/main/sessions/*.jsonl`
- If > 200KB: `python3 skills/clawpressor/scripts/compress.py --apply`
Manual check:
# See current session stats
ls -lh ~/.openclaw/agents/main/sessions/*.jsonl | head -1
Safety
- Always creates
.backupbefore compressing --restorerecovers original session- Recent messages always preserved intact
- Summary stored as system message (visible to model)
Troubleshooting
| Issue | Solution |
|---|---|
| "Sumy not installed" | Run pip install sumy and NLTK downloads |
| No session found | Check ~/.openclaw/agents/main/sessions/ exists |
| Backup not found | File may have been overwritten; no recovery |
| Poor summaries | Increase --keep to preserve more context |
Credits
- Coding: JARVIS (AI Assistant)
- Project Management: BeBoX
- Technique: NLP summarization via Sumy (LexRank algorithm)
Related
- See
memory/openclaw-context-optimization.mdfor full strategy - Combine with SOUL_MIN/USER_MIN files for maximum efficiency