Guide · Claude Code and Codex in the EU
How do you give a team Claude Code and Codex with EU data residency?
Run the models on Claude in Google Vertex AI's European Union location, in a Google Cloud project your company owns. Anthropic's own API runs inference globally or in the US. Selan is built and hosted in the EU, connects that project once, and serves it to Claude Code and Codex with no provider key on any laptop.
Which providers run Claude Code's model in the EU?
For GDPR, the hop that matters most is the model call, because the provider is where your prompts and code are processed. Each provider answers that differently.
| Provider | Inference in the EU | Through Selan |
|---|---|---|
| Anthropic API | No. The inference_geo setting offers global or US. |
Yes, but not pinned to the EU. |
| OpenAI API | For eligible API projects created with Europe as their region. | No. Selan calls api.openai.com and chatgpt.com, not the European endpoint. |
| Google Vertex AI | Yes. The European Union location keeps requests in EU regions. | Yes, for Claude Code and Codex. |
| Amazon Bedrock | Yes. An EU inference profile keeps requests in EU regions. | No. Selan does not connect Bedrock. |
How do you set it up without a gateway?
Claude Code reaches Vertex by itself. Each developer sets
CLAUDE_CODE_USE_VERTEX=1 and CLOUD_ML_REGION=eu, and signs in
to Google Cloud with gcloud or a service-account key on the laptop.
On Vertex, Claude Code turns off its metrics, error reports and /feedback
uploads by default.
Codex is a second setup: an eligible OpenAI API project created with Europe as its region, and a key from that project on each laptop.
That is two vendors, two credentials per developer and two bills. Why a credential on every laptop is the expensive part is in keeping API keys off laptops.
How does Selan keep the model call in the EU?
An owner connects a Google Cloud project to Selan and picks the European Union location. Google charges a 10% premium for it over global.
Selan holds no key to your Google account. You grant Selan's service account one role,
roles/aiplatform.user, on the project, and Selan mints a short-lived token
for each request. Inference is billed to your own Google invoice.
Developers run selan claude or selan codex and sign in as
themselves. Codex gets Claude and Gemini models from Vertex too, because Selan translates
between the two protocols. An owner adds those models to the Codex picker.
Global is the only Vertex location that carries every current Claude model, so check that the models you want serve on the EU one. The steps are in Google Vertex, and what Codex can run in Codex.
Where does Selan itself run?
Selan is made by Selan UAB, a company registered in Lithuania. Its services and database
run in Google Cloud's europe-central2 region, in Warsaw. The MCP gateway
and the browser extension's command channel run in europe-west1, in
Belgium.
The gateway's own hop is the easy part. The GDPR question is where the model call lands.
The proxy receives the full request body and streams it to the provider. No request body is logged or stored. Selan keeps metadata about each call, such as tokens, model, cost, the user's email and the repository name.
One exception: when a provider refuses a request, up to 2 KB of its reply goes into the request log. The full list is on the Trust page.
With secret scanning on, a key in a prompt is replaced before the body leaves Warsaw. How that works is on the secrets page.
What can still leave the EU?
- A failover. A refused request is sent again on another account you connected, which can be another vendor and another region. If residency is the rule, connect only accounts that serve in the EU.
-
The edge and the sign-in. Cloudflare serves
control.selan.ai,auth.selan.ai,dl.selan.aiandproxy-claude.selan.aifrom its global edge. Sign-in with Google or Microsoft runs in the EU or the US. -
Claude Code's own metrics. Under Selan, Claude Code sends them to
Anthropic and its logging services, as it does on the Claude API. Anthropic says they
never include code, prompts or file paths.
DISABLE_TELEMETRY=1turns them off.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICdoes too, but it also hides your company's models from/model. - Data sharing on some Claude 5 models. Fable 5.1, among others, serves on Vertex only after you accept data sharing with Anthropic. That decision is yours.
Free for up to three seats, and the Free plan needs no card.
The short version
- Anthropic's API runs inference globally or in the US. Vertex AI's European Union location keeps Claude in EU regions.
- Through Selan, Claude Code and Codex both reach Claude on your own Vertex project, with no provider key on a laptop.
- Selan runs in Warsaw and stores no request bodies.
- A failover goes only to accounts you connected, so connect only EU ones if residency is the rule.
Where each provider runs inference is as Anthropic's API docs (data residency), its Claude Code docs (Google Vertex AI and data usage), OpenAI's announcement of data residency in Europe and AWS's Bedrock docs (geographic cross-Region inference) described it on 15 October 2026. What Selan does is its privacy policy, its Trust page, its Vertex and Codex docs and the gateway's code as they stood on the same day.