56 releases (12 breaking)
Uses new Rust 2024
| 0.13.2 | Aug 16, 2026 |
|---|---|
| 0.12.6 | Aug 11, 2026 |
| 0.12.2 | Jul 31, 2026 |
#366 in Compression
2.5MB
47K
SLoC
llmtrim
llmtrim is a local proxy that compresses your LLM API requests so you pay less, with no change to the answers.
It sits between your AI tools and the provider, strips the wasted tokens out of every request, and forwards it on. Same answers, smaller bill. −31% input and −74% output tokens, measured live across 112 A/B cases, with no change in answer quality.
before: your tool ───── full request ─────▶ OpenAI / Anthropic / …
◀──────── reply ──────────
after: your tool ──▶ llmtrim ──smaller──▶ OpenAI / Anthropic / …
(on your machine)
◀──────── reply ────────── (same answer)
A lot of what your tools send is waste: a 200-line build log where 2 lines are errors, a tool schema resent identically 50 times, a JSON array with 500 near-identical rows. llmtrim removes it before it's sent. Everything runs locally; nothing is ever sent to us.
Important
It can never make your bill bigger or break a request. Every compression step is re-measured with the provider's real tokenizer; if a step doesn't save tokens, it's reverted. If the provider rejects the compressed request, the original is resent verbatim. Worst case is zero savings, never a worse outcome.
Install
cargo install llmtrim # or: cargo binstall llmtrim
llmtrim setup # configure the local interceptor + environment
llmtrim doctor # verify it
Other channels (same binary): brew install fkiene/tap/llmtrim · scoop install llmtrim · npm i -g @llmtrim/cli@latest · docker run ghcr.io/fkiene/llmtrim. See INSTALL.md.
Use it
After llmtrim setup, any tool that honors HTTPS_PROXY routes through it automatically: Claude Code, Codex, Cursor, Aider, Gemini CLI, your own app. (GitHub Copilot pins its certificates and can't be intercepted.)
Or run the compression directly, no proxy:
echo '{"model":"gpt-4o","messages":[...]}' | llmtrim compress --provider openai > out.json
echo '{"model":"gpt-4o","messages":[...]}' | llmtrim send --provider openai # compress, call, print
Zero config needed. The default auto mode inspects each request and picks the right compressors for its shape (tool-heavy → agent, code → code, long context → rag, else aggressive). Force one with LLMTRIM_PRESET=<name>.
Or expose the engine to an MCP client. llmtrim mcp runs a Model Context Protocol server over stdin/stdout with three tools, llmtrim_compress, llmtrim_compress_text, and llmtrim_stats, recording to the same savings ledger as the proxy. Run llmtrim mcp install to register it with Claude Code, or llmtrim mcp install --print to get the config for any other client.
As a library
The compression engine is the llmtrim-core crate (no network, no async), with native bindings for Python, Ruby, Swift and Kotlin (see the project README).
License
MPL-2.0.
Dependencies
~34–50MB
~1M SLoC