Skip to main content

Custom Model Configuration

This guide explains how to configure OpenAI-compatible custom models in CoStrict CLI. When documentation is incomplete, proper configuration often requires some exploration.


Obtain Base URL and API Key​

Base URL​

Contact your administrator to obtain the base URL and API key. Note that the base URL may differ from the website address:

Given URLActual Base URL
https://api.example.comhttps://api.example.com/v1
https://company.com/oneapihttps://company.com/oneapi/v1
tip

Confirm the exact base URL with your administrator rather than assuming the website address is the API endpoint.

API Key​

The API key is typically a string in the following format:

sk-1f2JOTQ1tzFYIU6VXoKCiT68EmhhYr3f67CtPIF3xHTQgNX6

Verify Base URL and Retrieve Model List​

This step serves two purposes: confirming the base URL is correct and obtaining the available model names.

Execute Verification Script​

Run the following PowerShell script to retrieve the model list:

# 1. Set the API key (enclose in quotes)
$key = "sk-xxx"

# 2. Set the base URL (enclose in quotes)
$baseurl = "https://api.example.com/v1"

# 3. Build request headers
$headers = @{
"x-api-key" = $key
"Content-Type" = "application/json"
}

# 4. Send GET request and handle response
try {
$response = Invoke-RestMethod -Uri "$baseurl/models" -Method GET -Headers $headers -ErrorAction Stop
$response | ConvertTo-Json -Depth 100
}
catch {
Write-Host "Request failed:" -ForegroundColor Red
Write-Host "Status code: $($_.Exception.Response.StatusCode)" -ForegroundColor Yellow
Write-Host "Error details: $($_.Exception.Message)" -ForegroundColor Yellow
}

Sample Response​

{
"id": "claude-sonnet-4-6",
"object": "model",
"created": 1626777600,
"owned_by": "custom",
"supported_endpoint_types": [
"anthropic",
"openai"
]
}
note
  • supported_endpoint_types indicates the compatible protocol type. Typically, configure using the OpenAI-compatible protocol.
  • The id field (e.g., claude-sonnet-4-6) is critical and will be used in subsequent configuration.

Test Chat Completion​

Verify chat functionality with a test request:

Invoke-RestMethod -Uri "$baseurl/messages" -Method POST -Headers @{"Authorization"="Bearer $key";"Content-Type"="application/json"} -Body "{`"model`":`"gemini-3.1-pro-preview`",`"messages`":[{`"role`":`"user`",`"content`":`"Who are you?`"}]}"

Locate Configuration File​

The CoStrict CLI configuration file location varies by operating system:

PlatformPath
WindowsC:\Users\<username>\.config\costrict\costrict.json
macOS/Linux~/.config/costrict/costrict.json

Create the file if it does not exist.


Edit Configuration File​

Add the custom provider configuration to costrict.json:

costrict.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"w-cmp-claude": {
"models": {
"claude-sonnet-4-6": {},
"claude-opus-4-6": {},
"gpt-5.4-xhigh-openai-compact": {},
"gpt-5.4-xhigh": {},
"gemini-3.1-pro-preview": {}
},
"options": {
"baseURL": "https://api.example.com/v1"
}
}
}
}

Configuration Notes:

  • Provider name (w-cmp-claude): A custom identifier for the provider, used for selection during connection.
  • Model names: Use the id values obtained from the model list endpoint.
  • baseURL: The base URL confirmed in the verification step.

If the configuration file already contains other settings, merge the new provider configuration into the existing provider object.


Connect in CoStrict CLI​

  1. Launch CoStrict CLI by running cs
  2. Type /connect and select the provider name configured earlier (e.g., w-cmp-claude)
  3. Enter your API key when prompted and press Enter
  4. Select the desired model from the model selection interface (e.g., claude-sonnet-4-6) and press Enter

The custom model is now configured and ready for use.