Privacy & Trust

Prefex runs entirely on your machine. Your prompts go directly from Prefex to the upstream API (Anthropic or OpenAI) — nobody else sees them.

What Prefex logs

Every request writes one row to a local SQLite database at ~/.prefex/data/prefex.db. The row contains:

FieldLoggedExample
TimestampYes2026-03-27T14:23:01Z
ChannelYesclaude_code
ModeYeslive
Model usedYesclaude-haiku-4-5-20251001
Input tokensYes1024
Output tokensYes312
Cost (USD)Yes0.0003
Router decisionYesweak
Cache hitYestrue
Latency (ms)Yes72
Prompt textOpt-inOff by default. Stored locally if store_system_prompt_text: true.
Response textNever
System prompt textOpt-inOff by default. Local only, for cache analysis.
API keysNever

Data never leaves your machine

Prefex has no telemetry, no analytics endpoint, no phone-home. The SQLite database is local. The dashboard reads from that database. Nothing is sent to us or any third party.

The only outbound connections Prefex makes are the ones your application already made — to api.anthropic.com or api.openai.com.

Verify with tcpdump

Run this while Prefex is active:

# Capture all TCP traffic from the Prefex container
sudo tcpdump -i any -n "host $(docker inspect -f '{{`{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}`}}' prefex-proxy-1)" 2>/dev/null

# You should see connections to api.anthropic.com only.
# No other outbound destinations.

Binary verification

The Docker image contains only the compiled binary — no source, no shell.

# Confirm the image contains only the binary
docker run --rm promptforce/prefex:latest ls /app
# Output: prefex

What you get

Prefex ships as pre-compiled binaries and Docker images published to Docker Hub. The Go proxy is proprietary. The RouteLLM router sidecar is Apache 2.0 open source.