← All posts

Configure opencode to use TritonAI Developer API at UC San Diego

opencode is a terminal-based AI coding agent that supports any OpenAI-compatible API as a provider. If you don’t have it installed yet, see the installation instructions. UC San Diego’s TritonAI Developer API is exactly that: a secure, centralized LLM gateway that provides access to both commercial cloud models and self-hosted open-source models running on SDSC infrastructure.

This tutorial walks through the full setup: requesting access, discovering available models, adding TritonAI as an opencode provider, and testing that everything works.

Diagram showing opencode connecting to the TritonAI gateway, which routes to five self-hosted models on SDSC infrastructure.

Request API access

Before you can use the TritonAI Developer API, you need to request access through the Kuali Build form. You will need:

  • Your UC San Diego credentials
  • Department and project information
  • An intended use case description
  • A chart string for billing (only for usage beyond free credits)

Review timing depends on the use case and any required project-specific review. Once approved, you receive an API key and a monthly credit allocation for self-hosted models.

::: {.callout-important title=“Limited free credits”} UCSD affiliates receive a monthly credit allocation for self-hosted models by default. This is designed for experimentation, coursework, and light prototyping. If you need more capacity or access to cloud-hosted commercial models (GPT-4, Claude, Gemini), you can request extended access with a chart string for billing. Allocations and rates can change; check the Model Hub for current details. :::

Store your API key

Once you receive your API key, store it as an environment variable. Add this line to your ~/.bashrc or ~/.zshrc:

export TRITONGPTKEY='your-api-key-here'

Then reload your shell:

source ~/.bashrc

Discover available models

The TritonAI API exposes a standard OpenAI-compatible /v1/models endpoint. Query it with your API key to see what is available:

curl -s "https://tritonai-api.ucsd.edu/v1/models" \
  -H "Authorization: Bearer $TRITONGPTKEY" | python3 -m json.tool

At the time of writing, the API returns the following models:

Model IDTypeMax context
api-gpt-oss-120bChat (reasoning)128k
api-glm-5.2Chat (reasoning)320k
api-gemma-4-26bChat (reasoning)128k
api-gemma-4-31bChat (reasoning)256k
api-deepseek-v4-flashChat (reasoning)1M
api-cohere-transcribeAudio transcription—
api-lightonocr-1bOCR8k
api-tgpt-embeddingsEmbeddings32k

The UC-hosted models run on UC San Diego infrastructure at the San Diego Supercomputer Center. Restricted or health information requires a separately approved service path — see the Developer FAQ for details.

Add TritonAI as an opencode provider

opencode stores its configuration in ~/.config/opencode/opencode.json. The config uses the @ai-sdk/openai-compatible npm package for any OpenAI-compatible provider.

Here is a complete minimal config file that adds TritonAI as a provider with all five chat models:

{
  "$schema": "https://opencode.ai/config.json",
  "permission": "allow",
  "provider": {
    "tritonai": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TritonAI UCSD",
      "options": {
        "baseURL": "https://tritonai-api.ucsd.edu/v1",
        "apiKey": "YOUR_TRITONGPTKEY"
      },
      "models": {
        "gpt-oss-120b": { "name": "GPT-OSS 120B" },
        "glm-5.2": { "name": "GLM 5.2" },
        "gemma-4-26b": { "name": "Gemma 4 26B" },
        "gemma-4-31b": { "name": "Gemma 4 31B" },
        "deepseek-v4-flash": { "name": "DeepSeek V4 Flash" }
      }
    }
  }
}

::: {.callout-warning title=“Keep your API key private”} Replace YOUR_TRITONGPTKEY with your actual API key. Never commit your API key to version control or share it publicly. :::

How the config maps to opencode model names

opencode references models using the pattern provider/model-id. With the config above, you get:

  • tritonai/gpt-oss-120b
  • tritonai/glm-5.2
  • tritonai/gemma-4-26b
  • tritonai/gemma-4-31b
  • tritonai/deepseek-v4-flash

You can switch between them in the opencode interface or set a default model in the config with the "model" field at the top level.

Run opencode with TritonAI

Once your config is in place, start opencode from any project directory:

opencode

Inside the opencode TUI, use /models to list all configured models and select tritonai/deepseek-v4-flash (or any other). You can also set a default model in opencode.json:

"model": "tritonai/deepseek-v4-flash"

Example session

$ opencode

> What does the function calculate_alignment in src/alignment.py do?

tritonai/deepseek-v4-flash:
The function `calculate_alignment` takes two sequences as input and returns
the optimal alignment score using a dynamic programming approach. It builds
a scoring matrix where each cell represents the best alignment up to that
point, then backtracks to reconstruct the aligned sequences.

Key steps:
1. Initialize a matrix of size (len(seq1)+1) x (len(seq2)+1)
2. Fill the matrix using match/mismatch/gap penalties
3. Backtrack from the bottom-right cell to find the alignment path

> Can you add type hints and a docstring to it?

tritonai/deepseek-v4-flash:
[edits src/alignment.py]

::: {.callout-tip title=“Choose the right model for the task”}

  • deepseek-v4-flash — fastest, best for quick questions and simple edits
  • gpt-oss-120b — strong reasoning, good for complex refactors
  • gemma-4-31b — large context window, good for reviewing long files
  • glm-5.2 — balanced reasoning and speed, largest context at 320k :::

Combining TritonAI with other providers

One of the strengths of opencode is that you can configure multiple providers side by side. For example, you might use TritonAI for self-hosted models (keeping sensitive data on campus) and a commercial provider for frontier model capabilities. Simply add additional blocks under the "provider" key.

Summary

UC San Diego’s TritonAI Developer API provides a secure, OpenAI-compatible gateway to both self-hosted and cloud-hosted LLMs. By adding it as a provider in opencode, you get a terminal-based AI coding agent backed by campus infrastructure. The monthly free credit allocation is sufficient for experimentation and light prototyping with the self-hosted models.

For more information, see the TritonAI Developer API documentation, the Get Started page, and the FAQs.