> For the complete documentation index, see [llms.txt](https://docs.tensorx.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tensorx.ai/ai-coding-assistants/opencode.md).

# OpenCode

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

***

## Prerequisites

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

***

## Configuration

### Step 1: Connect the Provider

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

| Field       | Value                |
| ----------- | -------------------- |
| Provider ID | `tensorx`            |
| API Key     | Your TensorX 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": {
    "tensorx": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TensorX",
      "options": {
        "baseURL": "https://api.tensorx.ai/v1",
        "apiKey": "{env:TENSORX_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 TENSORX_API_KEY=your-tensorx-api-key-here
```

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

```
TENSORX_API_KEY=your-tensorx-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 [TensorX model catalog](https://tensorx.ai/models) — use the model ID as the key

## Resources

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.tensorx.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.
