description: How to connect Privyx to providers, SDKs, frameworks, and coding tools. One rule covers most of them: set the client's base URL.¶
Integrations¶
Privyx works with anything that lets you set the address of its AI provider. The client keeps its code and its key; it talks to Privyx, and Privyx talks to the provider.
Two base URLs cover most clients:
| The client speaks | Base URL | Start Privyx with |
|---|---|---|
| OpenAI format (Chat Completions, Responses) | http://localhost:8000/v1 |
privyx proxy --upstream https://api.openai.com |
| Anthropic format (Messages) | http://localhost:8000 |
privyx proxy --upstream https://api.anthropic.com |
Coding tools¶
| Tool | How | More |
|---|---|---|
| Claude Code | privyx run claude |
Coding agents |
| Codex | privyx run codex |
Coding agents |
| aider | privyx run aider |
Coding agents |
| Any tool with a base-URL variable | privyx run --env-var NAME -u URL -- tool |
privyx run |
SDKs and frameworks¶
| Client | Setting | Page |
|---|---|---|
| OpenAI SDK (Python, Node) | base_url / baseURL, or OPENAI_BASE_URL |
An app on the OpenAI or Anthropic SDK |
| Anthropic SDK (Python, Node) | base_url / baseURL, or ANTHROPIC_BASE_URL |
An app on the OpenAI or Anthropic SDK |
| LangChain | base_url on ChatOpenAI / ChatAnthropic |
LangChain |
| LlamaIndex | api_base on OpenAI, base_url on Anthropic |
LlamaIndex |
| LiteLLM | api_base |
LiteLLM |
| Vercel AI SDK | baseURL on createOpenAI / createAnthropic |
Vercel AI SDK |
curl and plain HTTP |
The URL | Examples |
Providers¶
| Provider | Mode | Needs | Page |
|---|---|---|---|
| OpenAI | transparent | nothing | OpenAI |
| Anthropic | transparent | nothing | Anthropic |
| Google Gemini | transparent or gateway | a route for its OpenAI-compatible path | Google Gemini |
| Azure OpenAI | transparent | a route per path | Azure OpenAI |
| OpenRouter | transparent | a route | OpenRouter |
| DeepSeek | transparent, or gateway for Claude Code | a route for its Anthropic format | DeepSeek |
| Ollama and local servers | transparent | nothing | Ollama and local servers |
| Anything else compatible | either | see the page | Any other endpoint |
"A route" means a line in proxy.routes that tells Privyx to mask a path it
does not know by default. Without it, that path is forwarded unmasked; see
Routes.
What is covered everywhere¶
Whatever the client, Privyx masks chat requests in the three formats it knows and restores their replies, streamed or not, including tool-call arguments. It does not mask embeddings, images, or other API paths; see Limitations.
Check an integration¶
After the first request through a new client, look at the audit trail:
privyx audit tail --no-follow
A masked request shows a proxy.request line with schema=openai,
schema=anthropic, or schema=responses. If that line is missing, the client
did not go through Privyx; if it shows schema=null, the path has no route
and was forwarded as sent.