---
description: "Use Verda Inference models as the model provider in coding agents such as OpenCode and Pi Coder."
revision_date: 04.11.2026
---

# Coding Agents

Coding agents that speak the OpenAI Chat Completions or Responses API can use Verda models. The Console gives you a ready-made config for OpenCode and Pi Coder for each model: open the model's page and pick your client in the code sample.

The examples below use [Kimi K3.1 Pro](https://docs.verda.com/inference/models/kimi-k3-1-pro/). They read your key from the `VERDA_INFERENCE_API_KEY` environment variable, so export it first:

```bash
export VERDA_INFERENCE_API_KEY=<your key>
```

## OpenCode

```json
// Save to ~/.config/opencode/opencode.jsonc
// Export VERDA_INFERENCE_API_KEY, then run: opencode service restart
{
  "$schema": "https://opencode.ai/config.json",
  "model": "verda/kimi-k3-1-pro",
  "provider": {
    "verda": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://inference.verda.com/v1",
        "apiKey": "{env:VERDA_INFERENCE_API_KEY}"
      },
      "models": {
        "kimi-k3-1-pro": {
          "modalities": {
            "input": [
              "text",
              "image"
            ],
            "output": [
              "text"
            ]
          }
        }
      }
    }
  }
}
```

## Pi Coder

Save this to `~/.pi/agent/models.json`:

```json
{
  "providers": {
    "verda": {
      "name": "Verda",
      "baseUrl": "https://inference.verda.com/v1",
      "api": "openai-completions",
      "apiKey": "$VERDA_INFERENCE_API_KEY",
      "authHeader": true,
      "models": [
        {
          "id": "kimi-k3-1-pro",
          "name": "Kimi K3.1 Pro",
          "reasoning": true,
          "thinkingLevelMap": {
            "off": null,
            "minimal": null,
            "low": "low",
            "medium": "medium",
            "high": "high",
            "xhigh": "max"
          },
          "compat": {
            "supportsDeveloperRole": false,
            "supportsReasoningEffort": true
          },
          "input": ["text", "image"],
          "contextWindow": 1048576,
          "maxTokens": 32768
        }
      ]
    }
  }
}
```

`thinkingLevelMap` maps Pi's thinking levels to the model's `reasoning_effort` values, so Pi's `xhigh` uses `max`.

## Codex

Codex uses the Responses API. Add this to `~/.codex/config.toml`:

```toml
web_search = "disabled"
model = "kimi-k3-1-pro"
model_provider = "verda"
model_reasoning_effort = "high"

[model_providers.verda]
name = "Verda"
base_url = "https://inference.verda.com/v1"
env_key = "VERDA_INFERENCE_API_KEY"
wire_api = "responses"
```

## Use another model

Copy the config from the model's page in the Console. It already states what the model supports, such as tool calling, image input or reasoning, in the form each client expects.
