omni-compression
About omni-compression
omni-compression configures OmniRoute token compression for coding output, prose, and mixed sessions. It provides compression previews, engine and language-pack settings, and filtering for verbose accessibility-tree results.
Key features
- 01Configure RTK, Caveman, and stacked modes
- 02Preview and compare compressed payloads
- 03Manage Caveman language packs and rules
- 04Filter verbose MCP accessibility results
Use cases
- 01Reducing terminal and test output tokens
- 02Compressing prose and chat history
- 03Applying stacked compression in coding sessions
- 04Shortening browser accessibility-tree results
MCP support
OmniRoute exposes MCP tools for checking compression status and savings analytics, changing configuration, and switching compression engines at runtime. It can also filter accessibility-tree results from browser and Playwright MCP tools.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ cheaper-inference/ omniroute --skill omni-compressionAfter installing, type/omni-compressionin Claude Code to confirm it loaded.
Details
From the project READMEOverview
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
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
curl http://localhost:20128/api/compression/language-packs \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/compression/rules
List Caveman compression rule metadata
curl http://localhost:20128/api/compression/rules \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/compression/compare
POST compression › compare
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
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
curl http://localhost:20128/api/compression/engines \
-H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/compression/retrieve
POST compression › retrieve
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.
OmniRoute — Compression
Requires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL 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
curl $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY"
Enable RTK (best for coding agents)
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)
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)
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
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:
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:
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
curl -X PUT $OMNIROUTE_URL/api/settings/compression \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-d '{ "enabled": false }'
Errors
400 invalid mode→ useoff,lite,standard,aggressive,ultra,rtk, orstacked400 invalid stackedPipeline→ array must contain valid engine ids (rtk,caveman)