Quick start — Local
Run the gateway in a single Docker container. Storage stays local, there is no hosted billing surface, and there is no prxy.monster telemetry. Provider calls still go to whichever provider you configure.
Local mode is free forever. Most production modules run locally with the same request shapes. Cloud-only surfaces such as billing, API-key management, team controls, and MPP payments are not available in local mode.
Run the container
docker run -d \
--name prxy \
-p 3099:3099 \
-v ~/.prxy:/data \
-e ANTHROPIC_API_KEY=sk-ant-xxx \
prxymonster/local:latestThat’s it. The container is stateless — all data lives in the host volume at ~/.prxy/.
Point your app at it
export ANTHROPIC_BASE_URL=http://localhost:3099
export ANTHROPIC_API_KEY=prxy_local_anythingIn local mode, the gateway accepts any token. Auth + tier + billing are bypassed because you already paid for your own infra by running it.
Make a call
curl http://localhost:3099/v1/messages \
-H "Authorization: Bearer prxy_local_anything" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"messages": [{"role": "user", "content": "hi"}]
}'Same wire shape as cloud. Same modules. Just runs on your box.
What’s stored where
~/.prxy/
├── state.db ← Local database. Patterns, cache, sessions, embeddings.
├── blob/ ← Local blob store (compressed conversation archives).
└── config.yaml ← Optional pipeline config (overrides PRXY_PIPE).
That’s the whole thing. No phone-home. No telemetry. No background sync. Delete the volume to delete local retained state.
Set your provider keys
The gateway needs at least one provider configured. Pass any of:
-e ANTHROPIC_API_KEY=sk-ant-xxx
-e OPENAI_API_KEY=sk-xxx
-e GOOGLE_API_KEY=xxx
-e GROQ_API_KEY=gsk_xxx
Check what’s wired:
curl http://localhost:3099/health
Customize the pipeline
Two ways:
Env var
docker run -d \
-p 3099:3099 \
-v ~/.prxy:/data \
-e ANTHROPIC_API_KEY=sk-ant-xxx \
-e PRXY_PIPE='exact-cache,semantic-cache,patterns,ipc' \
prxymonster/local:latestPrivacy hardening
The planned airgap module will enforce zero outbound network calls except to your chosen provider:
-e PRXY_PIPE='airgap,ipc,patterns,semantic-cache'
Until that module ships, enforce the same policy at the network layer. See Local mode privacy.
Upgrade path
When the cloud features start to make sense (sync across devices, managed billing, team sharing), you can upgrade without losing anything. See Local mode → Upgrading.
Next steps
- Local mode docs — full container reference.
- Pipeline customization — pick which modules run.
- Modules — what each one does.