---
title: "goose AI agent with EU-hosted models · Setup guide"
description: "Add inference.eu as a custom OpenAI-compatible provider in the goose desktop app or CLI and run its agents on open-weight models processed in the EU."
canonical: "https://inference.eu/integrations/goose/"
language: "en"
---

Agents · goose

# Use goose with open-source models hosted in the EU

goose is an open-source AI agent for the desktop and the terminal that installs, runs, edits and tests on your behalf. It supports custom OpenAI-compatible providers through a small JSON file or its settings screen. Point it at inference.eu and every agent session runs on open-weight models processed in European data centres.

[Contact sales](https://inference.eu/contact/)[Setup](#setup)

1.  01API format: OpenAI
2.  02EU data centres
3.  03Covered by one DPA

## Set it up in a few minutes

1.  1

    Create an API key in your inference.eu account and export it as `INFERENCE_EU_API_KEY`.

2.  2

    In goose Desktop, open Settings, Models, Configure providers and click Add Custom Provider; in the CLI, run `goose configure` and choose Custom Providers.

3.  3

    Choose OpenAI Compatible, enter `inference.eu` as the name, the inference.eu base URL and your key, and list the models you want.

4.  4

    Or save the JSON file shown here in `~/.config/goose/custom_providers/`.

5.  5

    Start a session with `goose session --provider inference-eu` and select a model.

~/.config/goose/custom\_providers/inference-eu.json

```
{
  "name": "inference-eu",
  "engine": "openai",
  "display_name": "inference.eu",
  "description": "Open-weight models processed in EU data centres",
  "api_key_env": "INFERENCE_EU_API_KEY",
  "base_url": "https://api.inference.eu/v1/chat/completions",
  "models": [
    { "name": "qwen3-coder-480b-a35b-instruct", "context_limit": 262144 },
    { "name": "gpt-oss-120b", "context_limit": 131072 }
  ],
  "supports_streaming": true,
  "requires_auth": true
}
```

## What goose is

goose is an open-source, extensible AI agent, created at Block and now developed in the open under the Agentic AI Foundation. It runs as a desktop app and a CLI, and goes beyond code suggestions: it can install packages, run commands, edit files and test results. Extensions based on the Model Context Protocol connect it to other tools and services.

goose works with many model providers. Custom providers let you add any service that uses the OpenAI, Anthropic or Ollama format, which is how you connect inference.eu with its own name, models and key.

## How the configuration works

A custom provider is a JSON file in `~/.config/goose/custom_providers/`, or `%APPDATA%\Block\goose\config\custom_providers\` on Windows. `engine` selects the API format, `base_url` is the full chat completions URL, `api_key_env` names the environment variable that holds your key, and `models` lists the model ids with their context limits.

The desktop app and `goose configure` write the same file for you and store the key in your system keychain. You can also share the JSON file with your team or check it into a configuration repository, since it contains no secret. For a quick setup without a custom provider, the built-in OpenAI provider also accepts `OPENAI_HOST` for a custom endpoint.

## Which models to choose

goose drives work through tool calls to its extensions, so tool-calling reliability matters more than raw size. `kimi-k3` and `glm-5.3` are strong general agent models that plan multi-step tasks and pick tools sensibly. For work that is mostly code, `qwen3-coder-480b-a35b-instruct` is a good choice.

`gpt-oss-120b` responds quickly and suits lighter automations and the lead and worker pattern, where a stronger model plans and a faster one carries out routine steps. Set `context_limit` for each model so goose can manage long sessions without hitting the limit.

## Troubleshooting

If goose reports a missing key, `INFERENCE_EU_API_KEY` is not set in the environment of the goose process, and no key is in the keychain. A 401 means the key is wrong. A 404 usually means `base_url` is incomplete: in the custom provider file it must be the full URL ending in `/chat/completions`.

"Model not found" means a model name in the file differs from the inference.eu id. If goose answers in text instead of using extensions, switch to a model with reliable tool calling, such as Kimi K3, GLM-5.3 or Qwen3 Coder. `goose configure` cannot enter custom model names for built-in providers; use the custom provider or the desktop app instead.

## Keeping code and data in the EU

goose runs on your machine and sends model requests to the provider you select. With inference.eu as the provider, prompts, files and tool output are processed in EU data centres and never used for training. We sign a data processing agreement under Article 28 GDPR, share our subprocessor list and bill in euros.

Extensions are separate services: an extension that calls a third-party API sends data there, independent of the model. Review which extensions are enabled, and set inference.eu as the default provider so new sessions do not start on another one.

## goose

Category

Agents

Maker

Agentic AI Foundation (created by Block)

API format

OpenAI

Processing

EU data centres

Website

[goose-docs.ai](https://goose-docs.ai/)

Documentation

[goose-docs.ai](https://goose-docs.ai/docs/getting-started/providers/)

## goose: common questions

The questions buyers, developers and legal teams ask us most. Something missing? Ask us directly.

Yes. goose supports custom providers in the OpenAI, Anthropic and Ollama formats. Add one in the desktop app, with \`goose configure\`, or as a JSON file in \`~/.config/goose/custom\_providers/\`, and its models appear in the provider list.

Kimi K3 and GLM-5.3 are strong general agent models, and Qwen3 Coder 480B suits coding work. gpt-oss-120b is fast for lighter tasks. All of them support the tool calls goose relies on to use its extensions.

In your system keychain when you add the provider through the desktop app or \`goose configure\`, or in \`secrets.yaml\` if the keychain is unavailable. You can also export \`INFERENCE\_EU\_API\_KEY\` and reference it with \`api\_key\_env\` in the JSON file.

In custom provider files, goose uses \`base\_url\` as the full request URL, as shown in its documentation. Use the inference.eu base URL followed by \`/chat/completions\`. A shorter URL causes a 404 error.

Yes. The custom provider JSON contains no secret, so you can share it or keep it in a configuration repository. Each team member sets their own \`INFERENCE\_EU\_API\_KEY\` or adds the key through the desktop app.

Model requests go only to the provider you select. Extensions are separate: one that calls an outside API sends data to that service. Review your enabled extensions if everything must stay with inference.eu and EU-based services.

Run \`goose session --provider inference-eu\`, or set inference.eu as the default provider in \`goose configure\`. You can also set \`GOOSE\_PROVIDER\` and \`GOOSE\_MODEL\` in your environment or config.yaml for scripted runs.

The model is answering in text instead of calling tools. Use a model trained for tool use, such as Kimi K3, GLM-5.3 or Qwen3 Coder, and check that the extensions are enabled for the session.

Yes. Set \`OPENAI\_HOST\` to the inference.eu host and \`OPENAI\_API\_KEY\` to your key in the built-in OpenAI provider. A custom provider is the better choice if you also use OpenAI, because each keeps its own name, models and key.

Model requests are processed in EU data centres, never used for training, and covered by an Article 28 GDPR data processing agreement with a published subprocessor list. Combine that with a reviewed set of extensions and goose's permission settings.

[Ask a question](https://inference.eu/contact/)

## Related

[All integrations](https://inference.eu/integrations/)

-   [Hermes AgentRun Nous Research's Hermes Agent on open-weight models processed in EU data centres by setting a custom OpenAI-compatible endpoint in config.yaml.Agents](https://inference.eu/integrations/hermes-agent/)
-   [OpenClawRun the OpenClaw personal assistant on open-weight models processed in EU data centres by adding inference.eu as a custom provider in openclaw.json.Agents](https://inference.eu/integrations/openclaw/)
-   [OpenCodeRun the OpenCode terminal agent on open-weight models processed in EU data centres. Add one provider block to opencode.json and keep your code in Europe.Coding agents](https://inference.eu/integrations/opencode/)

## Move your AI workloads to EU infrastructure

Tell us which models you use and roughly how much traffic you have. We reply within one working day with pricing and next steps.

-   Reply within one working day
-   Pricing for your volume
-   DPA ready to sign
