AI-powered context management for OpenClaw sessions. Uses the agent itself to generate intelligent summaries, then resets the session with compressed context.
bash
# List all sessions with usage stats
~/openclaw/skills/context-manager/compress.sh list
# Check status of a specific session
~/openclaw/skills/context-manager/compress.sh status agent:main:main
# Generate AI summary (read-only, safe)
~/openclaw/skills/context-manager/compress.sh summarize agent:main:main
# Compress session: generate summary, reset, inject (DESTRUCTIVE)
~/openclaw/skills/context-manager/compress.sh summarize agent:main:main --replace
memory/compressed/Key insight: The agent has full visibility into its own context, so it generates the best possible summary.
CommandDescriptionlistList all sessions with token usagestatus [KEY]Show detailed status for a sessionsummarize [KEY]Generate AI summary (read-only)summarize [KEY] --replaceSummarize AND reset session with compressed contextcompress [KEY]Legacy grep-based extraction (not recommended)check [KEY]Check if session exceeds thresholdcheck-allCheck all sessions at once
CommandDescriptionset-threshold NSet compression threshold (50-99%, default: 80)set-depth LEVELSet depth: brief/balanced/comprehensiveset-quiet-hours HHSet quiet hours (e.g., "23:00-07:00")helpShow help and usage examples
bash
$ ~/openclaw/skills/context-manager/compress.sh list
📋 Available Sessions (4 total)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# SESSION KEY KIND TOKENS USAGE
1 agent:main:main direct 70188 70%
2 agent:main:slack:channel:c0aaruq2en9 group 20854 20%
3 agent:main:cron:0d02af4b-... direct 18718 18%
bash
$ ~/openclaw/skills/context-manager/compress.sh status agent:main:main
📊 Context Manager Status
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Session Key: agent:main:main
Session ID: fc192a2d-091c-48c7-9fad-12bf34687454
Kind: direct
Model: auto-routed via SkillBoss API Hub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Threshold: 80%
Tokens: 70188 / 100000
Usage: 70%
bash
$ ~/openclaw/skills/context-manager/compress.sh summarize agent:main:main
🧠 Requesting AI summary for session: agent:main:main
Session ID: fc192a2d-091c-48c7-9fad-12bf34687454
✅ AI Summary generated!
Saved to: memory/compressed/20260127-123146.ai-summary.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
### Session Summary: January 27, 2026
#### 1. What was accomplished
- System audit completed
- Essay generation with sub-agents
...
bash
$ ~/openclaw/skills/context-manager/compress.sh summarize agent:main:main --replace
🧠 Requesting AI summary for session: agent:main:main
Session ID: fc192a2d-091c-48c7-9fad-12bf34687454
Mode: REPLACE (will reset session after summary)
✅ AI Summary generated!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[AI-generated summary displayed]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔄 Resetting session and injecting compressed context...
Backing up session file...
Backup saved: memory/compressed/20260127-123146.session-backup.jsonl
Deleting session JSONL to reset...
Injecting compressed context into fresh session...
✅ Session compressed successfully!
Old session ID: fc192a2d-091c-48c7-9fad-12bf34687454
New session ID: a1b2c3d4-...
Session is ready to continue with compressed context
Result: 70k tokens → 16k tokens (77% reduction)
When compression occurs, these files are created in memory/compressed/:
FileDescription{timestamp}.ai-summary.mdAI-generated session summary{timestamp}.session-backup.jsonlFull backup of original session (can restore if needed){timestamp}.transcript.mdRaw transcript extraction (legacy){timestamp}.summary.mdGrep-based summary (legacy)
brew install jq)openclaw agent and openclaw sessionsThe script uses JSONL deletion to reset sessions (official method):
memory/compressed/~/.openclaw/agents/{agent}/sessions/{sessionId}.jsonlopenclaw agent --to mainThe /reset slash command only works in the chat interface. When sent via openclaw agent --session-id, it's treated as a regular message and the agent tries to interpret it as a task.
The script asks the agent to provide:
If the AI summary extraction fails, check stderr redirect:
bash
# The script uses 2>/dev/null to avoid Node deprecation warnings breaking JSON
openclaw agent --session-id $ID -m "..." --json 2>/dev/null
Verify the JSONL file path:
bash
ls ~/.openclaw/agents/main/sessions/
If something goes wrong:
bash
cp memory/compressed/{timestamp}.session-backup.jsonl \
~/.openclaw/agents/main/sessions/{sessionId}.jsonl
Use openclaw logs to troubleshoot:
bash
openclaw logs --limit 50 --json | grep -i "error\|fail"
summarize without --replace first to verify the summary qualitystatus to verify compression workedopenclaw sessions --helpopenclaw agent --help