# OpenCode

Use Tensorix models with [OpenCode](https://opencode.ai), the open-source terminal-based AI coding agent.

***

## Prerequisites

* [OpenCode](https://opencode.ai) installed
* A Tensorix API key from [app.tensorix.ai](https://app.tensorix.ai)

***

## Configuration

### Step 1: Connect the Provider

Run `/connect` in OpenCode, select **Other**, and enter:

| Field       | Value                 |
| ----------- | --------------------- |
| Provider ID | `tensorix`            |
| API Key     | Your Tensorix API key |

### Step 2: Configure opencode.json

Add the following to your project's `opencode.json` (or `~/.opencode/opencode.json` for global config):

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tensorix": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Tensorix",
      "options": {
        "baseURL": "https://api.tensorix.ai/v1",
        "apiKey": "{env:TENSORIX_API_KEY}"
      },
      "models": {
        "z-ai/glm-5.1": {
          "name": "GLM 5.1",
          "limit": {
            "context": 131072,
            "output": 16384
          }
        },
        "moonshotai/kimi-k2.5": {
          "name": "Kimi K2.5",
          "limit": {
            "context": 131072,
            "output": 16384
          }
        },
        "deepseek/deepseek-r1-0528": {
          "name": "DeepSeek R1",
          "limit": {
            "context": 131072,
            "output": 16384
          }
        }
      }
    }
  }
}
```

### Step 3: Set API Key

Set your API key as an environment variable:

```bash
export TENSORIX_API_KEY=your-tensorix-api-key-here
```

Or add to `~/.opencode/.env`:

```
TENSORIX_API_KEY=your-tensorix-api-key-here
```

***

## Vision / Image Support

{% hint style="warning" %}
**Important:** To use vision-capable models (e.g. Kimi K2.5, Qwen 3 VL) with image attachments, you **must** add `modalities` to the model config. Without this, OpenCode will strip images before sending them.
{% endhint %}

```json
"moonshotai/kimi-k2.5": {
  "name": "Kimi K2.5",
  "modalities": {
    "input": ["text", "image"],
    "output": ["text"]
  }
},
"qwen/qwen3-vl-235b-a22b-instruct": {
  "name": "Qwen 3 VL",
  "modalities": {
    "input": ["text", "image"],
    "output": ["text"]
  }
}
```

***

## Available Models

| Model       | ID                                 | Best For           |
| ----------- | ---------------------------------- | ------------------ |
| GLM 5.1     | `z-ai/glm-5.1`                     | General, Tool Use  |
| Kimi K2.5   | `moonshotai/kimi-k2.5`             | Reasoning, Vision  |
| Qwen 3 VL   | `qwen/qwen3-vl-235b-a22b-instruct` | Vision, Multimodal |
| DeepSeek R1 | `deepseek/deepseek-r1-0528`        | Reasoning, Code    |
| MiniMax M2  | `minimax/minimax-m2`               | Long Context       |

***

## Tips

* **GLM 5.1** is recommended for tool-heavy coding workflows
* For vision tasks, remember to add the `modalities` config shown above
* You can add any model from the [Tensorix model catalog](https://tensorix.ai/models) — use the model ID as the key

## Resources

* [OpenCode Documentation](https://opencode.ai)
* [Tensorix API Reference](https://docs.tensorix.ai)
* [Tensorix Model Catalog](https://tensorix.ai/models)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tensorix.ai/ai-coding-assistants/opencode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
