๐ŸŽ Get the FREE AI Skills Starter Guide โ€” Subscribe โ†’
BytesAgainBytesAgain
๐Ÿฆ€ ClawHub

Session Compact

by @sdc-creator

Intelligent session compression plugin for OpenClaw that automatically manages token consumption and supports unlimited-length conversations. Compresses hist...

Versionv1.2.1
Downloads539
TERMINAL
clawhub install session-compact-skill

๐Ÿ“– About This Skill


name: openclaw-session-compact description: | Intelligent session compression plugin for OpenClaw that automatically manages token consumption and supports unlimited-length conversations. Compresses historical messages into structured summaries to reduce token usage by 85-95%. Provides CLI commands: compact, compact-status, compact-config, sessions, session-info.

OpenClaw Session Compact Plugin v1.2.1

Intelligent session compression plugin for OpenClaw that automatically manages token consumption and supports unlimited-length conversations. By automatically compressing historical messages into structured summaries, it significantly reduces token usage (typically 85-95% savings).

โœจ New in v1.2.1

  • ๐Ÿ› Fixed: Configuration persistence โ€” loadFromOpenClawConfig() correctly reads from plugins.entries..config
  • โœจ Added: 16 comprehensive test cases for OpenClaw config loading (163 total tests)
  • ๐Ÿ“ Improved: README with step-by-step installation guide and troubleshooting
  • ๐Ÿ”ง Updated: Dependencies โ€” openclaw โ†’ 2026.4.9, basic-ftp โ†’ 5.2.2
  • ๐Ÿ”ง Updated: openclaw.build.openclawVersion โ†’ 2026.4.9
  • v1.1.0 Highlights

  • Session Persistence: JSON file-based storage with version tracking
  • Token Usage Tracking: Actual API usage + cache token metrics
  • Rich Message Structure: ContentBlock types (text, tool_use, tool_result)
  • Session Lifecycle Manager: Auto-compaction, state management, events
  • New CLI Commands: sessions, session-info
  • ๐Ÿš€ Quick Start

    Installation

    From ClawHub (recommended):

    clawhub install openclaw-session-compact
    

    Manual installation:

    git clone https://github.com/SDC-creator/openclaw-session-compact.git \
      ~/.openclaw/extensions/openclaw-session-compact
    cd ~/.openclaw/extensions/openclaw-session-compact
    npm install --production
    

    Configuration

    Add to ~/.openclaw/openclaw.json:

    {
      "plugins": {
        "allow": ["openclaw-session-compact"],
        "entries": {
          "openclaw-session-compact": {
            "enabled": true,
            "config": {
              "max_tokens": 10000,
              "preserve_recent": 4,
              "auto_compact": true,
              "model": ""
            }
          }
        }
      }
    }
    

    ้‡่ฆ๏ผš้…็ฝฎๅ‚ๆ•ฐไปŽ OpenClaw ้…็ฝฎ็ณป็ปŸ่ฏปๅ–ใ€‚ไฟฎๆ”น้…็ฝฎๅŽ้œ€่ฆ้‡ๅฏ Gateway๏ผš

    openclaw gateway restart
    

    ๐Ÿ’ก Usage Scenarios

    Scenario 1: CLI Commands

    # Check current session status
    openclaw compact-status

    Manually trigger compression

    openclaw compact

    Force compression (ignores threshold)

    openclaw compact --force

    View configuration

    openclaw compact-config

    Scenario 2: Automatic Compression

    # Start OpenClaw - compression works automatically
    openclaw start

    When conversation history exceeds the threshold, it auto-compresses

    and continues seamlessly without user intervention

    Scenario 3: Long Conversation Handling

    Problem: Conversations exceeding 10,000 tokens cause:

  • Rapid token consumption
  • Slower response times
  • Potential model limits exceeded
  • Solution: Session Compact automatically compresses history:

    Before: 50 messages (1,250 tokens)
            โ†“ [Auto-compress]
    After:  5 messages (360 tokens) - 92% token savings
    

    ๐Ÿ”ง Configuration Options

    | Parameter | Type | Default | Description | Recommended | |-----------|------|---------|-------------|-------------| | max_tokens | number | 10000 | Token threshold for compression | 5000-20000 | | preserve_recent | number | 4 | Number of recent messages to keep | 4-6 | | auto_compact | boolean | true | Enable automatic compression | true | | model | string | '' | Model for summary generation | Global default |

    Configuration Examples

    Conservative Mode (frequent compression, max token savings):

    {
      "max_tokens": 5000,
      "preserve_recent": 6
    }
    

    Aggressive Mode (fewer compressions, more context retained):

    {
      "max_tokens": 20000,
      "preserve_recent": 3
    }
    

    ๐Ÿ“Š How It Works

    Compression Flow

    1. Monitor token usage
       โ†“
    2. Exceeds threshold (90%)?
       โ”œโ”€ No โ†’ Continue conversation
       โ””โ”€ Yes โ†’ Trigger compression
            โ†“
    3. Keep last N messages (default: 4)
       โ†“
    4. Compress old messages into structured summary
       โ”œโ”€ Scope: Statistics
       โ”œโ”€ Recent requests: Last 3 user requests
       โ”œโ”€ Pending work: To-dos
       โ”œโ”€ Key files: Important files
       โ”œโ”€ Tools used: Tools mentioned
       โ””โ”€ Key timeline: Conversation timeline
       โ†“
    5. Replace old messages with System summary
       โ†“
    6. Seamlessly continue conversation
    

    Fallback Mechanism

    When LLM is unavailable, automatically falls back to code extraction mode:

  • Extract timeline directly from message content
  • Use preset templates for summary fields
  • Ensures functionality without LLM dependency
  • ๐Ÿ› ๏ธ Troubleshooting

    Common Issues

    #### 1. Compression Not Triggered

    Cause: Token count below threshold Solution:

    # Check current token usage
    openclaw compact-status

    Lower threshold for testing

    openclaw compact --force

    #### 2. Poor Summary Quality

    Cause: LLM misconfigured or unavailable Solution:

  • Verify model configuration
  • Ensure OpenClaw Gateway is running: openclaw gateway start
  • System auto-falls back to code extraction
  • #### 3. Context Loss After Compression

    Cause: preserve_recent set too low Solution:

    {
      "preserve_recent": 6  // Increase to 6 or more
    }
    

    #### 4. Plugin Not Recognized

    Cause: Missing plugin configuration Solution:

    # Check plugin status
    openclaw plugins list | grep compact

    Ensure plugin is in plugins.allow in openclaw.json

    ๐Ÿ“ˆ Performance Metrics

  • Test Coverage: 82.78% (163 tests passing)
  • Core Function Coverage: 89.76%
  • Average Compression Time: < 1 second (without LLM)
  • Token Savings: Typically 85-95%
  • Memory Usage: Low (no leaks)
  • ๐Ÿงช Testing

    # Run tests
    npm test

    Check coverage (163 tests, 82.78%)

    npm run test:coverage

    ๐Ÿ“š Technical Documentation

    For detailed API documentation and examples, see README.md.

    Core API

    // Compress session
    const result = await compactSession(messages, config);

    // Check if compression is needed const needsCompact = shouldCompact(messages, config);

    // Estimate token count const tokens = estimateTokenCount(messages);

    ๐Ÿค Contributing

    Contributions are welcome! Please submit Issues and Pull Requests.

    1. Fork the project 2. Create a feature branch 3. Commit changes 4. Push to the branch 5. Open a Pull Request

    ๐Ÿ“„ License

    MIT License


    Status: โœ… Stable Release Tests: โœ… 163/163 Passing Coverage: ๐Ÿ“ˆ 82.78% ClawHub (Code Plugin): โœ… Published (openclaw-session-compact@1.2.1) ClawHub (Skill): โœ… Published (session-compact-skill@1.2.1) Version: v1.2.1 Maintainer: SDC-creator

    โš™๏ธ Configuration

    Add to ~/.openclaw/openclaw.json:

    {
      "plugins": {
        "allow": ["openclaw-session-compact"],
        "entries": {
          "openclaw-session-compact": {
            "enabled": true,
            "config": {
              "max_tokens": 10000,
              "preserve_recent": 4,
              "auto_compact": true,
              "model": ""
            }
          }
        }
      }
    }
    

    ้‡่ฆ๏ผš้…็ฝฎๅ‚ๆ•ฐไปŽ OpenClaw ้…็ฝฎ็ณป็ปŸ่ฏปๅ–ใ€‚ไฟฎๆ”น้…็ฝฎๅŽ้œ€่ฆ้‡ๅฏ Gateway๏ผš

    openclaw gateway restart