How it works
Two env vars. Streamed responses pass through unmodified.

Swap BASE_URL. API_KEY stays. Context compresses on the way in.

In Claude Code, Cursor, or Aider, replace the provider host with the proxy and keep your existing key. Promptflint compresses bulky context before the request hits Anthropic or OpenAI — streamed responses pass through unmodified, latency does not change, the bill does.

The setup

Two env vars. Nothing else.

BASE_URL
https://api.promptflint.dev
API_KEY
your provider key

The same OpenAI / Anthropic shape — no SDK swap, no agent-side code, no schema edits.

The diagram

Developer config → Proxy → Provider.

Three hops, no forks. The proxy sits between your editor and the provider, compresses on the way in, forwards on the way out. Your tooling never notices.

  1. Step 01

    Developer config

    Claude Code · Cursor · Aider

    Swap the provider host for the proxy and keep your existing API key. No SDK, no agent-side code — the tool reads the same contract.

  2. Step 02

    Promptflint proxy

    api.promptflint.dev

    Each request is scored and compressed at the edge — prose pruned, tool definitions fingerprinted, JSON / code / IDs bypass byte-exact.

  3. Step 03

    Anthropic · OpenAI

    transparent passthrough

    The compressed request reaches the model. The streamed response flows back untouched — latency stays the same, the bill does not.

Stream:
request → proxy → provider
response → proxy → app
SSE passthrough intact

The contract

A 4-line curl. Same response shape, lower bill.

Hit the proxy the same way you would hit Anthropic or OpenAI directly. The host is the only thing that changes — and your provider key still rides in the request.

curl · POST /v1/messages
curl https://api.promptflint.dev/v1/messages \
  -H "Authorization: Bearer $PROMPTFLINT_KEY" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-4-5","messages":[{"role":"user","content":"hi"}]}'
Point any Anthropic / OpenAI compatible client at api.promptflint.dev — the provider key keeps working, the bill does not.

Tied to the dashboard

Compression, caching, and the kill switch — measured and toggled.

Three primitives that the proxy exposes to the operator UI: what gets compressed, what gets reused, and when to route direct to upstream if a model misbehaves.

Compression

LLMLingua-family pruning

Bulky prose, tool descriptions, and prior turns collapse into a dense, semantic representation — the model keeps the signal, the prompt shrinks.

See it live in the dashboard →

Caching

Fingerprinted Redis at the edge

Compressed artifacts are fingerprinted and held at the edge — a 10,000-token tool definition rendered once serves every subsequent turn in microseconds.

See it live in the dashboard →

Kill switch

Route direct — bypass the proxy

Hit the kill switch and traffic falls back to upstream Anthropic or OpenAI. Used by anomaly teams when an agent starts misbehaving.

See it live in the dashboard →

Plug it in

A BASE_URL swap. That is the entire integration.

No SDK. No agent-side code. Your provider key keeps working against the same Anthropic or OpenAI contract — only now the compression stack is between you and the model.

Inbox

Talk to a human

Questions about fit, rollout, procurement, or a conservative start? Drop a note and we'll route the conversation.

promptflint@polsia.app