omni-compression — Claude Code skill: compress prompts by 60–90%
Skill automatically compresses tokens by choosing between RTK for command logs, Caveman for prose, or stacking both. Cuts API spend and speeds up agent responses.
npx skills add cheaper-inference/OmniRoute --skill omni-compression -a claude-codeWhat omni-compression does
omni-compression transparently compresses payload before sending to the provider—no code changes. RTK shrinks terminal output, tests, and git by 60–90%; Caveman rewrites prose and chat history with 46% savings; stacking both gives 78–95%. Requires OMNIROUTE_URL and OMNIROUTE_KEY set once in config.
Includes preview API to test compression before enabling, language packs (pt-BR, es, de, fr, ja), custom rules, and automatic filtering for browser tool results. MCP commands let you switch engines at runtime. Trade-off: needs its own OmniRoute instance with API key.
What it helps with
- cut token spend in long coding sessions
- process large test logs and command output faster
- save on API calls without losing context
- automate compression without code changes
Example prompts for the agent
- Enable RTK compression for my commands and logs, save 60% tokens
- Switch to stacked RTK and Caveman for mixed sessions
- Show me how omni-compression would shrink this text before I turn it on
How to install omni-compression
1Skills CLI (Vercel)
npx skills add cheaper-inference/OmniRoute --skill omni-compression -a claude-code2Manually: put the files in place
~/.claude/skills/omni-compression/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/omni-compression/
1Skills CLI (Vercel)
npx skills add cheaper-inference/OmniRoute --skill omni-compression -a codex2Manually: put the files in place
.agents/skills/omni-compression/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add cheaper-inference/OmniRoute --skill omni-compression -a cursor2Manually: put the files in place
.cursor/skills/omni-compression/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install cheaper-inference/OmniRoute omni-compression2Manually: put the files in place
.github/skills/omni-compression/SKILL.md1Skills CLI (Vercel)
npx skills add cheaper-inference/OmniRoute --skill omni-compression -a gemini-cli2Platform CLI
gemini skills install https://github.com/cheaper-inference/OmniRoute --path skills/omni-compressionManually: put the files in place
.devin/skills/omni-compression/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add cheaper-inference/OmniRoute --skill omni-compression -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set34
The whole set →Similar
Questions about omni-compression
How do I install omni-compression in Claude Code?
Run npx skills add cheaper-inference/OmniRoute --skill omni-compression -a claude-code, then find the config at ~/.claude/skills/omni-compression/SKILL.md. Set OMNIROUTE_URL and OMNIROUTE_KEY.
What does omni-compression do?
Automatically compresses prompts before sending: RTK cuts logs by 60–90%, Caveman rewrites text, stacking both reaches up to 95%. All requests pass through compression transparently.
Should I pick RTK, Caveman, or stacked mode?
RTK works best for coding with tests and commands, Caveman for text chats, stacked if you mix logs and prose. Use the preview command to see savings for your data first.
Source text
SKILL.md · MIT
---
name: omni-compression
description: Configure RTK (command output), Caveman (prose), and stacked compression modes. Manage language packs, custom rules, and test prompt compression reducing tokens by 60–90%.
---
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
## Overview
Configure RTK (command output), Caveman (prose), and stacked compression modes. Manage language packs, custom rules, and test prompt compression reducing tokens by 60–90%.
## Authentication
All requests require a valid Bearer token or session cookie. Obtain a token via `POST /api/auth/login` or configure `REQUIRE_API_KEY=false` for local development.
## Endpoints
### POST /api/compression/preview
Preview compression for a message payload
```bash
curl -X POST http://localhost:20128/api/compression/preview \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
```
### GET /api/compression/language-packs
List Caveman compression language packs
```bash
curl http://localhost:20128/api/compression/language-packs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
```
### GET /api/compression/rules
List Caveman compression rule metadata
```bash
curl http://localhost:20128/api/compression/rules \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
```
### POST /api/compression/compare
POST compression › compare
```bash
curl -X POST http://localhost:20128/api/compression/compare \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
```
### POST /api/compression/compare/verify
POST compression › compare › verify
```bash
curl -X POST http://localhost:20128/api/compression/compare/verify \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
```
### GET /api/compression/engines
GET compression › engines
```bash
curl http://localhost:20128/api/compression/engines \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
```
### POST /api/compression/retrieve
POST compression › retrieve
```bash
curl -X POST http://localhost:20128/api/compression/retrieve \
-H "Authorization: Bearer $OMNIROUTE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
```
## Payloads
See the full OpenAPI specification at `GET /api/openapi/spec` or `docs/openapi.yaml` for detailed request/response schemas.
<!-- skill:custom-start -->
<!-- Migrated from skills/omniroute-compression/SKILL.md (preserved curated content) -->
# OmniRoute — Compression
Requires `OMNIROUTE_URL` and `OMNIROUTE_KEY`. See [entry-point SKILL](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-auth/SKILL.md) for setup.
## Overview
OmniRoute compresses token payloads before forwarding to providers. No code changes required — set it once, it applies to all requests transparently.
| Engine | Best for | Typical savings |
| ------------------------- | ------------------------------------ | --------------- |
| RTK | Terminal / build / test / git output | 60–90% |
| Caveman | Human prose, chat history | 46% input |
| Stacked (`rtk → caveman`) | Mixed coding sessions | 78–95% |
| MCP accessibility filter | Browser/accessibility tool results | 60–80% |
## Get current settings
```bash
curl $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY"
```
## Enable RTK (best for coding agents)
```bash
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{ "mode": "rtk", "enabled": true }'
```
## Enable stacked mode (maximum savings)
```bash
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "stacked",
"enabled": true,
"stackedPipeline": ["rtk", "caveman"]
}'
```
## Enable Caveman (prose / chat)
```bash
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{ "mode": "standard", "enabled": true }'
```
Caveman intensities: `lite` (safe), `standard` (balanced), `aggressive` (long sessions), `ultra` (context recovery).
## Preview compression before enabling
```bash
curl -X POST $OMNIROUTE_URL/api/compression/preview \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "rtk",
"text": "$ npm test\n> jest\n\nPASS src/a.test.ts (2.1s)\nPASS src/b.test.ts (1.8s)\n..."
}'
```
Response includes `compressed`, `original_length`, `compressed_length`, `savings_pct`.
## MCP accessibility-tree filter (browser agent use)
When OmniRoute is used with browser/Playwright MCP tools, it automatically compresses verbose accessibility-tree tool results. Enabled by default; configure thresholds:
```bash
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"mcpAccessibility": {
"enabled": true,
"collapseThreshold": 30,
"maxTextChars": 50000
}
}'
```
`collapseThreshold`: collapse sibling lines when ≥ N repeats (default 30).
`maxTextChars`: hard truncate after N chars with navigation hint (default 50000).
## Language packs (Caveman)
Caveman supports language-aware rules for pt-BR, es, de, fr, ja:
```bash
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "standard",
"cavemanConfig": {
"language": "pt-BR",
"autoDetectLanguage": true
}
}'
```
## Via MCP
```
omniroute_compression_status → current settings + savings analytics
omniroute_compression_configure → update mode/threshold/language
omniroute_set_compression_engine → switch engine at runtime
```
## Disable compression
```bash
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-d '{ "enabled": false }'
```
## Errors
- `400 invalid mode` → use `off`, `lite`, `standard`, `aggressive`, `ultra`, `rtk`, or `stacked`
- `400 invalid stackedPipeline` → array must contain valid engine ids (`rtk`, `caveman`)
<!-- skill:custom-end -->
© cheaper-inference · MIT · cheaper-inference/OmniRoute