Context Compression

v3.13.3

Prevent context overflow with automatic session truncation and memory preservation.

3· 1.7k·23 current·23 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for lifei68801/context-compression.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Context Compression" (lifei68801/context-compression) from ClawHub.
Skill page: https://clawhub.ai/lifei68801/context-compression
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: bash, jq, sed, grep, head, tail, wc, date, tr, cut
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install lifei68801/context-compression

ClawHub CLI

Package manager switcher

npx clawhub@latest install context-compression
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the actual behavior: scripts read OpenClaw session JSONL files, score/prioritize lines, truncate sessions, and append identified facts to MEMORY.md and daily notes. The declared binaries and file paths align with this function. The one minor mismatch: some installation/docs reference scripts placed directly in ~/.openclaw/workspace/skills/context-compression/, while configure.sh writes/prints paths under a 'scripts' subdirectory ($WORKSPACE/skills/context-compression/scripts) — this is likely a packaging/installation path bug, not a capability mismatch.
Instruction Scope
Runtime instructions and scripts operate on local OpenClaw files (sessions, MEMORY.md, memory/). The optional AI-assisted fact extractor invokes the local 'openclaw agent' CLI and passes conversation content to it — that CLI may, depending on the user's OpenClaw configuration, forward data to remote LLMs. The SKILL.md notes this, but users should be aware that enabling AI-assisted identification will cause conversation content to leave the local truncation scripts via the configured OpenClaw agent pathway. Otherwise, the scripts do not perform external HTTP calls themselves.
Install Mechanism
No install spec / no external downloads are required (instruction-only skill with bundled scripts). Files are intended to be placed in the standard OpenClaw skill path; nothing in the package auto-downloads code from untrusted URLs or writes to system-wide nonstandard locations.
Credentials
The skill requires only standard shell utilities and reads/writes files under the user's OpenClaw workspace (~/.openclaw). It does not request environment variables or external service credentials. The only indirect network risk is via the optional call to the local 'openclaw' CLI, which depends on the user's OpenClaw/network configuration — this is proportional but should be noted by privacy-conscious users.
Persistence & Privilege
The skill does not request always:true and is designed to be invoked by cron/hooks or manually. configure.sh prompts the user to add cron entries rather than modifying crontab silently. Scripts write only to their own workspace files (config, MEMORY.md, memory/), and do not modify other skills' configurations.
Assessment
This package appears to do what it says: periodically trim session JSONL files and preserve important lines into MEMORY.md/daily notes. Before installing: 1) Backup ~/.openclaw/workspace/MEMORY.md and your sessions directory. 2) Review/adjust the cron path printed by configure.sh — configure.sh expects a 'scripts' subdirectory but the packaged scripts live in the skill root; ensure your cron points to the actual truncate-sessions-safe.sh location. 3) If you enable AI-assisted identification, be aware that the skill will invoke the local 'openclaw agent' CLI and that the agent's configuration may send conversation content to remote LLM providers — disable this feature if you do not want trimming-time content to be forwarded. 4) Inspect created logs and files (~/ .openclaw/logs/, memory/) and set filesystem permissions as you prefer. 5) If you want stricter guarantees, run the scripts manually first (without cron) to confirm behavior and outputs before enabling automated runs.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binsbash, jq, sed, grep, head, tail, wc, date, tr, cut
compressionvk97aygk342efd3gcamey4y8ced82rm15contextvk97aygk342efd3gcamey4y8ced82rm15latestvk97cfxedpcev1hk4ypeq93w5nd83csn7memoryvk97aygk342efd3gcamey4y8ced82rm15sessionvk97aygk342efd3gcamey4y8ced82rm15
1.7kdownloads
3stars
37versions
Updated 1mo ago
v3.13.3
MIT-0

Context Compression

Keep conversations within limits. Never lose important context.

After installing, run the interactive setup wizard to generate your config file, then add the suggested cron entry with crontab -e. See Quick Start below for commands.

Quick Start

File location: ClawHub installs this skill to ~/.openclaw/workspace/skills/context-compression/. All scripts are placed here directly. This is the standard OpenClaw skill install path — no manual file placement needed.

# 1. Install and configure (interactive)
bash ~/.openclaw/workspace/skills/context-compression/configure.sh

# 2. Verify config exists
cat ~/.openclaw/workspace/.context-compression-config.json

# 3. Set up crontab (example: every 10 minutes)
*/10 * * * * ~/.openclaw/workspace/skills/context-compression/truncate-sessions-safe.sh

How It Works

Session Truncation (truncate-sessions-safe.sh)

  • Scheduling: System crontab (e.g., */10 * * * *)
  • Action: Reads .jsonl session files under ~/.openclaw/agents/*/sessions/, trims each file to the configured size
  • Safety: Skips files with a matching .lock file (active session)
  • Integrity: Keeps JSONL line boundaries intact — never splits a line
  • Strategy: priority-first scans for important keywords before trimming and preserves matching lines

Fact Identification

  • Keyword-based: identify-facts.sh — scans truncated content for keywords (重要, 决定, TODO, 偏好, deadline, must remember, etc.) and appends findings to memory/YYYY-MM-DD.md
  • AI-assisted: identify-facts-enhanced.sh — calls openclaw agent --agent main --message with the trimmed content to semantically identify important facts. Only used when openclaw CLI is available on PATH.
  • Triggered by: truncate-sessions-safe.sh calls one of these before each truncation cycle

Preference Lifecycle (check-preferences-expiry.sh)

  • Scheduling: Once daily via crontab
  • Mechanism: Reads MEMORY.md preference entries tagged with @YYYY-MM-DD, removes expired ones
  • Tiers: Short-term (1-7 days), Mid-term (1-4 weeks), Long-term (permanent)

Scripts

ScriptPurposeScheduling
truncate-sessions-safe.shTrim session JSONL filescrontab, every 10 min
identify-facts.shKeyword-based fact detectionCalled by truncate script
identify-facts-enhanced.shAI-assisted fact detectionCalled by truncate script
check-preferences-expiry.shRemove expired preferencescrontab, once daily
configure.shInteractive setup wizardManual, one-time
session-start-hook.shLoad context at session startCalled by AGENTS.md
session-end-hook.shSave context at session endCalled by AGENTS.md
check-context-health.shReport current context statusManual / on-demand

Configuration

File: ~/.openclaw/workspace/.context-compression-config.json

{
  "version": "2.3",
  "maxChars": 40000,
  "frequencyMinutes": 10,
  "skipActive": true,
  "strategy": "priority-first",
  "useAiIdentification": false,
  "priorityKeywords": [
    "重要", "决定", "记住", "TODO", "偏好",
    "important", "remember", "must", "deadline"
  ]
}
FieldTypeDefaultDescription
maxCharsnumber40000Max chars to keep per session file
frequencyMinutesnumber10How often crontab runs truncate
skipActivebooleantrueSkip sessions with .lock files
strategystringpriority-firstTruncation strategy
useAiIdentificationbooleanfalseSet true to use AI-assisted fact identification (may send content to remote LLMs)
priorityKeywordsstring[](see above)Keywords to preserve during truncation

Troubleshooting

ProblemSolution
Context still exceededReduce maxChars in config
Memory not persistingCheck that AGENTS.md includes session-start-hook
Crontab not runningVerify PATH in crontab includes node/openclaw binary location

Safety

Data Protection

  • No deletion: Truncation writes the trimmed portion back to the same file. It does not delete files.
  • Backup before trim: truncate-sessions-safe.sh creates a .pre-trim backup of each file before modification. Backups are cleaned up after a successful write.
  • Line integrity: Truncation only cuts at JSONL line boundaries. Partial lines are never written.
  • Active sessions protected: Files with a matching .lock (currently in use) are always skipped, even if oversized.

Safe Defaults

All configuration values have conservative defaults:

  • skipActive: true — never touches a running session
  • maxChars: 40000 — keeps substantial history per session
  • strategy: priority-first — preserves lines matching priority keywords before trimming anything
  • No direct network access from scripts. The optional AI fact identification uses your local openclaw CLI — network activity depends on your OpenClaw configuration.

User Control

  • Crontab: The user creates and manages all scheduled tasks. No script auto-installs crontab entries.
  • Configuration: All settings live in a single JSON file. The configure.sh wizard runs interactively and requires user input.
  • Opt-out: Remove the crontab entry to stop all automated truncation. The skill has no background daemon of its own.
  • Scope: Only reads/writes files under ~/.openclaw/agents/main/ and ~/.openclaw/workspace/memory/. Never touches system files, other agents' data, or other users' data.

Privacy Notice

  • AI-assisted fact identification (identify-facts-enhanced.sh) is disabled by default. It invokes the local openclaw agent CLI, which may send session content to remote LLM services depending on your OpenClaw configuration. Only enable it if you understand and accept this data flow. To enable, set "useAiIdentification": true in the config file.
  • Keyword-based identification (identify-facts.sh) is the default and runs entirely locally with no external data transmission.
  • Unattended cron execution: If you enable cron jobs, the scripts run without interactive consent. Review the scripts and test manually before enabling scheduled runs.

Related

Comments

Loading comments...