One line in Claude Code settings. That's it.
Prefex is a local proxy built for Claude Code and the Anthropic API. Intelligent optimization that works invisibly — your workflow doesn't change.
curl -fsSL https://prefex.vercel.app/install.sh -o install.sh
less install.sh
review
bash install.sh
macOS & Linux · Docker or binary · read before you run
One command. Then change one setting in your existing API client.
curl -fsSL https://prefex.vercel.app/install.sh -o install.sh && less install.sh
bash install.sh --docker
cd ~/.prefex && docker compose up -d
open http://localhost:8019/dashboard
~/.claude/settings.json to route Claude Code through Prefex:{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:8019" } }
Requires Docker with Compose V2. The proxy image is ~15MB; the optimizer sidecar is ~2GB (pulled once, cached forever).
curl -fsSL https://prefex.vercel.app/install.sh -o install.sh && less install.sh
bash install.sh --binary
curl -fsSL https://prefex.vercel.app/start.sh | bash
open http://localhost:8019/dashboard
~/.claude/settings.json to route Claude Code through Prefex:{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:8019" } }
Binary mode includes core optimizations. Use Docker for the full stack.
curl -fsSL https://prefex.vercel.app/install.sh -o install.sh && less install.sh
bash install.sh --binary
curl -fsSL https://prefex.vercel.app/start.sh | bash
open http://localhost:8019/dashboard
~/.claude/settings.json to route Claude Code through Prefex:{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:8019" } }
iwr https://prefex.vercel.app/install.ps1 -OutFile install.ps1
Get-Content install.ps1 | more
.\install.ps1
Start-Process http://localhost:8019/dashboard
%USERPROFILE%\.claude\settings.json to route Claude Code through Prefex:{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:8019" } }
cd $env:USERPROFILE\.prefex; docker compose down (Docker) or .\stop.ps1 (binary).Real numbers from Claude Code usage over a typical 8-hour dev session.
| Scenario | Without Prefex | With Prefex | Saving |
|---|---|---|---|
| Claude Code — daily session | ~$4.20 | ~$1.40 | $2.80 / day |
| Claude Code — heavy refactoring day | ~$12.00 | ~$4.80 | $7.20 / day |
| Claude agent — 100 runs/day | ~$80 | ~$30 | $50 / day |
| Claude API — batch processing 10k docs | ~$200 | ~$90 | $110 / run |
5 code-review questions on public code, run twice — cold then warm. Costs ~$0.02–0.05 total.
curl -fsSL https://prefex.vercel.app/prefex-bench.sh -o prefex-bench.sh && less prefex-bench.sh
claude CLI, python3. Backs up settings, runs benchmark, restores on exit.bash prefex-bench.sh
iwr https://prefex.vercel.app/prefex-bench.ps1 -OutFile prefex-bench.ps1
Get-Content prefex-bench.ps1 | more
claude CLI. Backs up settings, runs benchmark, restores on exit..\prefex-bench.ps1
| Round | Requests | Total input tokens | Cached tokens | Actual cost | Saved | % saved |
|---|---|---|---|---|---|---|
| Round 1 — cold | 5 | ~37 000 | 0 | ~$0.042 | — | — |
| Round 2 — warm | 5 | ~37 000 | ~34 000 | ~$0.005 | ~$0.037 | ~88% |
Costs are read from Anthropic's own billing fields in the SSE stream — not computed by Prefex. Corpus: karpathy/nanoGPT@3adf61e (public, deterministic).
Change one value. Everything else stays the same.
# ~/.claude/settings.json { "env": { "ANTHROPIC_BASE_URL": "http://localhost:8019" ← add this } }
import anthropic client = anthropic.Anthropic( api_key="sk-ant-...", base_url="http://localhost:8019", ← add this )
import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({ apiKey: "sk-ant-...", baseURL: "http://localhost:8019", // ← add this });
curl http://localhost:8019/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-6","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'
Prefex runs entirely on localhost. There is no telemetry, no analytics, no external logging service. If any internal component fails — requests pass through to the upstream API unchanged. Prefex never blocks a request because of its own failure.
Verify it yourself with tcpdump:
# All outbound traffic from Prefex should go only to api.anthropic.com sudo tcpdump -i any -n 'dst port 443' 2>/dev/null | grep -v api.anthropic.comFull privacy and data handling details →
Download, review, run. Savings from the first request.
curl -fsSL https://prefex.vercel.app/install.sh -o install.sh
less install.sh
review
bash install.sh
Stop Prefex and point Claude Code back to Anthropic directly.
macOS / Linux — one command:
curl -fsSL https://prefex.vercel.app/uninstall.sh | bash
Add --purge to also delete ~/.prefex (logs, cache, config).
Windows (PowerShell):
iwr https://prefex.vercel.app/uninstall.ps1 -OutFile uninstall.ps1; .\uninstall.ps1
Add -purge to also delete %USERPROFILE%\.prefex (logs, cache, config).
Manually restore ~/.claude/settings.json:
Remove or change the ANTHROPIC_BASE_URL entry back to
https://api.anthropic.com:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.anthropic.com"
}
}
Then restart Claude Code. If you had no settings.json before installing Prefex, you can delete the file entirely.
Full cleanup (remove all Prefex data):
curl -fsSL https://prefex.vercel.app/uninstall.sh | bash -s -- --purge
Windows: .\uninstall.ps1 -purge
Stops containers, removes the binary, restores settings, and deletes ~/.prefex.