> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opper.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Goose

> Configure Goose to use Opper as its OpenAI-compatible provider

[Goose](https://goose-docs.ai) is an open agent from the Agentic AI Foundation (Apache-2.0, [source](https://github.com/aaif-goose/goose)). It runs as a desktop app or from the terminal, uses your local toolchain, and extends through MCP.

Goose's OpenAI provider takes a custom host, so it points at Opper without needing a dedicated provider.

## Setup

Run the configuration wizard:

```bash theme={null}
goose configure
```

Then choose **Configure Providers → OpenAI**, and supply:

| Prompt        | Value                        |
| ------------- | ---------------------------- |
| **API key**   | Your Opper API key           |
| **Host**      | `https://api.opper.ai`       |
| **Base path** | `v3/compat/chat/completions` |

<Warning>
  Goose splits the endpoint into a host and a path, unlike most apps here. Putting the full `https://api.opper.ai/v3/compat` in the host field and leaving the default base path produces a 404 — the request would go to `https://api.opper.ai/v3/compat/v1/chat/completions`.
</Warning>

The same thing set by environment variable, or in Goose's `config.yaml`:

```yaml theme={null}
OPENAI_API_KEY: your-opper-api-key
OPENAI_HOST: https://api.opper.ai
OPENAI_BASE_PATH: v3/compat/chat/completions
```

## Choosing a model

Goose asks for a model during `goose configure`. Use a full model ID from the [catalog](/capabilities/models), such as `anthropic/claude-sonnet-4-6`.

## Troubleshooting

<AccordionGroup>
  <Accordion title="404 on every request">
    Almost always `OPENAI_BASE_PATH`. It has to be `v3/compat/chat/completions` with the host set to the bare `https://api.opper.ai` — no scheme or path duplicated across the two fields.
  </Accordion>

  <Accordion title="401 Unauthorized">
    `OPENAI_API_KEY` must hold your Opper key. Opper keys start with `op-`.
  </Accordion>

  <Accordion title="Should I use the LiteLLM provider instead?">
    Only if you actually run a LiteLLM proxy in front of Opper. Don't configure both the OpenAI provider and the LiteLLM provider against the same endpoint — pick one. See [LiteLLM](/integrations/frameworks/litellm) for the proxy setup.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Model catalog" icon="list" href="/capabilities/models">
    Browse the catalog for model IDs and capabilities.
  </Card>

  <Card title="All integrations" icon="plug" href="/integrations/overview">
    Every app that runs on Opper.
  </Card>
</CardGroup>
