Unary · Runner Configurations
Creates a new LLM integration for a runner.
Use this method to:
- Configure LLM access
- Set up LLM integrations
- Enable LLM usage
Endpoint
POST /api/gitpod.v1.RunnerConfigurationService/CreateLLMIntegration
https://app.ona.com with that domain.
Request example
export ONA_HOST=https://app.ona.com
export ONA_API_KEY=<your-token>
curl --request POST \
--url "$ONA_HOST/api/gitpod.v1.RunnerConfigurationService/CreateLLMIntegration" \
--header "Authorization: Bearer $ONA_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"runnerId": "<runner-id>"
}'
import gitpod.v1.runner_configuration_pb2 as runner_configuration_pb2
from ona_sdk import create_client_from_env
ona = create_client_from_env()
request = runner_configuration_pb2.CreateLLMIntegrationRequest(
runner_id="<runner-id>",
)
response = ona.services.runner_configuration.create_llm_integration(request)
print(response)
import { create } from "@bufbuild/protobuf";
import { createClientFromEnv } from "@gitpod/sdk";
import { CreateLLMIntegrationRequestSchema } from "@gitpod/sdk/gitpod/v1/runner_configuration_pb";
async function main() {
const ona = createClientFromEnv();
const request = create(CreateLLMIntegrationRequestSchema, {
runnerId: "<runner-id>",
});
const response = await ona.services.runnerConfiguration.createLLMIntegration(request);
console.log(response);
}
main().catch(console.error);
package main
import (
"context"
"fmt"
"log"
"connectrpc.com/connect"
"github.com/gitpod-io/gitpod-sdk-go/sdk"
gitpodpb "github.com/gitpod-io/gitpod-sdk-go/v1"
)
func main() {
ona, err := sdk.NewFromEnv()
if err != nil {
log.Fatal(err)
}
request := connect.NewRequest(&gitpodpb.CreateLLMIntegrationRequest{
RunnerId: "<runner-id>",
})
response, err := ona.Services.RunnerConfiguration.CreateLLMIntegration(context.Background(), request)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Msg)
}
{
"runnerId": "<runner-id>"
}
Request
gitpod.v1.CreateLLMIntegrationRequest
| Field | Type | Required | Description |
|---|---|---|---|
runnerId | string | No | Constraints: string.uuid=true. |
models | array of SupportedModel | No | models represents the LLM models this integration supports Constraints: repeated.items.enum.defined_only=true, repeated.min_items=1. |
endpoint | string | No | |
apiKey | string | No | api_key is the LLM provider’s API key. |
maxTokens | 64-bit integer string | No | max_tokens is the maximum number of tokens to generate before stopping. If set to 0, the model’s default will be used. |
Response
gitpod.v1.CreateLLMIntegrationResponse
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | id is a uniquely generated identifier for the LLM integration Constraints: string.uuid=true. |
Related types
SupportedModel
SupportedModel
SupportedModel enumerates the LLM models available for agent executions
| Value | Number | Description |
|---|---|---|
SUPPORTED_MODEL_UNSPECIFIED | 0 | |
SUPPORTED_MODEL_SONNET_3_5 | 1 | |
SUPPORTED_MODEL_SONNET_3_7 | 2 | |
SUPPORTED_MODEL_SONNET_3_7_EXTENDED | 3 | |
SUPPORTED_MODEL_SONNET_4 | 4 | |
SUPPORTED_MODEL_SONNET_4_EXTENDED | 5 | |
SUPPORTED_MODEL_SONNET_4_5 | 8 | |
SUPPORTED_MODEL_SONNET_4_5_EXTENDED | 9 | |
SUPPORTED_MODEL_SONNET_4_6 | 18 | |
SUPPORTED_MODEL_SONNET_4_6_EXTENDED | 19 | |
SUPPORTED_MODEL_SONNET_5 | 32 | |
SUPPORTED_MODEL_OPUS_4 | 6 | |
SUPPORTED_MODEL_OPUS_4_EXTENDED | 7 | |
SUPPORTED_MODEL_OPUS_4_5 | 14 | |
SUPPORTED_MODEL_OPUS_4_5_EXTENDED | 15 | |
SUPPORTED_MODEL_OPUS_4_6 | 16 | |
SUPPORTED_MODEL_OPUS_4_6_EXTENDED | 17 | |
SUPPORTED_MODEL_OPUS_4_7 | 22 | |
SUPPORTED_MODEL_OPUS_4_8 | 31 | |
SUPPORTED_MODEL_HAIKU_4_5 | 21 | |
SUPPORTED_MODEL_OPENAI_4O | 10 | |
SUPPORTED_MODEL_OPENAI_4O_MINI | 11 | |
SUPPORTED_MODEL_OPENAI_O1 | 12 | |
SUPPORTED_MODEL_OPENAI_O1_MINI | 13 | |
SUPPORTED_MODEL_OPENAI_AUTO | 23 | SUPPORTED_MODEL_OPENAI_AUTO flags a request as OpenAI-bound without encoding a specific model slug. The actual model is chosen by the client (today: native Codex via ~/.codex/config.toml) and captured from the upstream Responses-API response.model field for metering and rate-card lookup. This keeps the proto stable across OpenAI model-catalog churn. Reserved numbers 24-30 are intentionally left free for future OpenAI routing sentinels if we ever need to distinguish sub-families. |