Claude Code

Claude Code supports pointing at your own gateway. The CLI sets it up so the parts that usually break — the model names it hard-codes, the context window it guesses, the timeouts — are already right.

The short way

npx turboprivate@latest login
npx turboprivate@latest claude

Arguments pass straight through: npx turboprivate@latest claude -p "fix the failing test".

The manual way

export ANTHROPIC_BASE_URL=https://api.turboprivate.ai
export ANTHROPIC_AUTH_TOKEN=tp_live_…
export ANTHROPIC_MODEL=ds-flash
# Claude Code asks for five different models per session — subagents,
# background work and the permission classifier all use hard-coded names.
# Map them, or they arrive here unmapped.
export ANTHROPIC_DEFAULT_SONNET_MODEL=ds-flash
export ANTHROPIC_DEFAULT_HAIKU_MODEL=ds-flash
export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k3
# An id it does not recognise gets an ASSUMED context window and compacts
# your conversation early. Declare the real one.
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=262144
claude
Every unknown model name still resolves — an id we do not serve is mapped to the closest product instead of failing. The exports above make the routing intentional rather than lucky.

End to end, with no plaintext leaving your machine

npx turboprivate@latest claude --private

This opens a private room, verifies its attestation, and proxies Claude Code through it on localhost. Requests are sealed with a fresh post-quantum key before they leave your machine, so the prompt is never readable by us in transit. Same editor, same workflow.