Get the FREE Ultimate OpenClaw Setup Guide →

Prompt Compressor

npx machina-cli add skill hackermanishackerman/claude-skills-vault/prompt-compressor --openclaw
Files (1)
SKILL.md
4.6 KB

Prompt Compressor

Compress verbose prompts/context before processing. Saves 40-60% tokens.

When to Use

Invoke when:

  • Input >1500 tokens
  • User pastes entire files (needs only sections)
  • Prompts have redundant phrasing
  • Context includes irrelevant info
  • Commands: /compress-prompt, /cp

Process

  1. Identify core intent - What user actually wants
  2. Extract essential context - Only what's needed
  3. Remove redundant phrases - See rules below
  4. Apply abbreviations - Use token-formatter conventions
  5. Output compressed version - w/ token savings %

Compression Rules

Remove Phrases

RemoveTransform To
"Please help me with"(delete)
"I need you to"(delete)
"Could you please"(delete)
"I would like to"(delete)
"I think", "Maybe", "Perhaps"(delete)
"This might be a dumb question"(delete)
"As I mentioned before"(delete)
"For your reference"(delete)

Transform Patterns

VerboseCompressed
"I want to create a fn that takes X and returns Y"fn(X) → Y
"The error message says..."Error: ...
"In the file located at..."File: ...
"I'm trying to..."Goal: ...
"Here is my code..."Code:
"The problem is that..."Issue: ...

Never Compress (Security)

See references/never_compress.md for full list:

  • Auth headers, tokens, credentials
  • Error stack traces (keep full)
  • Security-related context
  • API keys, secrets
  • Exact error messages
  • File paths in errors

Output Format

## Compressed Prompt

[Compressed content]

---
Original: X tokens | Compressed: Y tokens | Saved: Z%

Examples

Example 1: Verbose Request

Before (847 tokens):

Hello! I hope you're doing well today. I was wondering if you could please
help me with something. I'm trying to build a React application and I need
to create a custom hook that fetches user data from an API. The API is
located at /api/users and it returns a JSON response with the user object.
I would like the hook to handle loading states, error states, and also
cache the response. I think this might need to use useEffect and useState
but I'm not entirely sure about the best approach. Could you please help
me implement this? Here is some context about my project structure...
[500 more tokens of context]

After (156 tokens):

Goal: Create React hook for user data fetching

Requirements:
- Endpoint: /api/users → JSON user obj
- Handle: loading, error states
- Cache response

Stack: React (useEffect, useState)

---
Saved: 82%

Example 2: Error Context

Before:

I'm having a problem with my application. When I try to log in, I get an
error. The error message that appears on the screen says "TypeError: Cannot
read property 'map' of undefined" and it's happening in the UserList.tsx
file on line 42. I think the problem might be related to the API response
but I'm not sure. Here is my entire component file...
[entire 200-line file]

After:

Error: TypeError: Cannot read property 'map' of undefined
File: UserList.tsx:42
Issue: API response may be undefined before .map()

Need: Null check or loading state

Compression Levels

LevelReductionUse When
Light20-30%Keep readability
Medium40-50%Default
Heavy60-70%Max compression

Integration

Works w/ token-formatter skill:

  • Uses same abbreviations (fn, str, num, etc.)
  • Same symbols (&, |, w/, w/o, →)
  • Same "Do NOT Compress" rules

Script Usage

# Compress prompt text
python scripts/compress_prompt.py "your prompt text here"

# Compress from file
python scripts/compress_prompt.py --file prompt.txt

# Set compression level
python scripts/compress_prompt.py --level heavy "text"

Quick Reference

Abbreviations (from token-formatter)

fn=function  str=string  num=number  bool=boolean
arr=array    obj=object  param=parameter
config=configuration     env=environment
auth=authentication      db=database
req=required opt=optional def=default

Symbols

→ = returns/produces    & = and
| = or                  w/ = with
w/o = without           ~ = approximately

Source

git clone https://github.com/hackermanishackerman/claude-skills-vault/blob/main/.claude/skills/prompt-compressor/SKILL.mdView on GitHub

Overview

The Prompt Compressor trims unnecessary fluff from prompts and contexts before LLM processing. It targets prompts over 1500 tokens, redundant phrasing, or irrelevant context, achieving a 40-60% reduction in token count. This accelerates responses and reduces costs while preserving intent.

How This Skill Works

It first identifies the core user intent, then extracts only the essential context. It removes redundant phrases and applies token-formatter abbreviations, finally outputting a compressed version that includes the token savings percentage. The output follows the standard compressed-prompt format and keeps key details intact.

When to Use It

  • Input >1500 tokens
  • User pastes entire files but only sections are needed
  • Prompts have redundant phrasing
  • Context includes irrelevant info
  • Commands: /compress-prompt, /cp

Quick Start

  1. Step 1: Trigger compression with /compress-prompt or /cp on a long prompt
  2. Step 2: Let the tool identify core intent, prune context, and apply abbreviations
  3. Step 3: Use the compressed output and note the reported token savings

Best Practices

  • Identify the core objective before compressing
  • Preserve only context strictly needed to fulfill the task
  • Apply token-formatter abbreviations consistently (fn, Code:, File:, etc.)
  • Avoid compressing security-sensitive content (auth headers, secrets)
  • Review the compressed prompt to ensure no essential detail is lost and note the token savings

Example Use Cases

  • Goal: Create React hook for user data fetching Requirements: - Endpoint: /api/users → JSON user obj - Handle: loading, error states - Cache response Stack: React (useEffect, useState) --- Saved: 82%
  • Error: TypeError: Cannot read property 'map' of undefined File: UserList.tsx:42 Issue: API response may be undefined before .map() Need: Null check or loading state
  • Goal: Generate minimal webpack config for production build Endpoint: N/A Requirements: Set mode to production, enable minification, configure env variables Output: webpack.config.js with core plugins
  • Goal: Create a concise code snippet to fetch data with fetch API Code: const res = await fetch(url); const data = await res.json(); return data;
  • Task: Summarize a long onboarding doc into a quick-start checklist Output: 10-item checklist with only the essential steps

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers