# Use pi with open models
URL: https://docs.munito.ai/pi

The Munito AI package for [pi](https://github.com/earendil-works/pi) adds Munito AI as a model provider with one command.
Create an [API key](https://console.munito.ai/keys), then install the package:

```bash
pi install npm:@munitoai/pi-provider
```

In pi, run `/login`, choose **Munito AI**, and paste the key. pi can also read the key from `MUNITO_API_KEY`.
Then choose a model with `/model`, or start pi with one:

```bash
pi --provider munito --model zai-org/glm-5.3-flash
```

The package adds two providers that use the same key. The EU provider processes each request in the EU, see [Regions](https://docs.munito.ai/regions).

| Provider    | Base URL                                | Region |
| ----------- | --------------------------------------- | ------ |
| `munito`    | `https://api.munito.ai/inference/v1`    | Any    |
| `munito-eu` | `https://api.eu.munito.ai/inference/v1` | EU     |

Each model comes with its context window, its maximum output and its price.
pi then compacts the conversation before the window is full, and shows the cost of a session.

## Reasoning effort [#reasoning-effort]

pi sends its thinking level as `reasoning_effort`, and Munito AI moves each level to the nearest level that the model has.
The level `off` turns reasoning off. A model that always reasons, such as GLM-5.3-Flash, runs its lowest level instead.
See [Reasoning models](https://docs.munito.ai/reasoning).

## Prompt cache [#prompt-cache]

pi sends the session ID in the header `x-session-affinity`, and Munito AI keeps the conversation on its prompt cache.
See [Prompt caching](https://docs.munito.ai/prompt-caching).

The package is open source, in [munitoai/pi-provider](https://github.com/munitoai/pi-provider).
