Pi

How to point Pi at Aramm using a custom OpenAI-compatible provider.

Pi can load custom providers from ~/.pi/agent/models.json. Since Aramm exposes an OpenAI-compatible /v1/chat/completions endpoint, the simplest path is to register Aramm as an openai-completions provider.

What you need

  • An Aramm API key
  • Pi installed locally
  • A model id such as openai/gpt-4o-mini

Quick setup

Create or edit ~/.pi/agent/models.json:

{
  "providers": {
    "aramm": {
      "baseUrl": "https://api.aramm.pro/v1",
      "api": "openai-completions",
      "apiKey": "$ARAMM_API_KEY",
      "authHeader": true,
      "models": [
        {
          "id": "openai/gpt-4o-mini",
          "input": ["text", "image"],
          "contextWindow": 128000,
          "maxTokens": 16384
        },
        {
          "id": "anthropic/claude-sonnet-4-6",
          "input": ["text", "image"],
          "contextWindow": 200000,
          "maxTokens": 8192
        }
      ]
    }
  }
}

Then export your key:

export ARAMM_API_KEY=sk-arm-v1-...

Reload models in Pi with /model, then switch with:

/model aramm/openai/gpt-4o-mini

You can also cycle models with Ctrl+L.

Model naming

Pi uses the provider/alias format Aramm returns from GET /v1/models. The ids in models.json must match those aliases.

  • openai/gpt-4o-mini
  • anthropic/claude-sonnet-4-6

Verify it works

Open Pi, reload models, and confirm the Aramm provider appears without auth or model errors.

Troubleshooting

  • 401 usually means the API key is missing or invalid.
  • model not found usually means the model id does not match Aramm's alias.
  • If a model rejects the developer role, add "compat": { "supportsDeveloperRole": false } at the provider level.
  • For native Anthropic streaming, add a second provider with "api": "anthropic-messages" and baseUrl: "https://api.aramm.pro".

On this page