Runcrate
Runcrate inference provider using the OpenAI-compatible Chat Completions API. Runcrate serves open models such as DeepSeek, GLM, Qwen, gpt-oss and Kimi.
Setup
bash
go get github.com/zendev-sh/goai@latestgo
import "github.com/zendev-sh/goai/provider/runcrate"Set the RUNCRATE_API_KEY environment variable, or pass WithAPIKey() directly.
Models
deepseek-ai/DeepSeek-V4.1-Flashdeepseek-ai/DeepSeek-V4-Prozai-org/GLM-5.3zai-org/GLM-5.3-FlashQwen/Qwen3-Coder-480B-A35B-Instruct-Turboopenai/gpt-oss-120bmoonshotai/Kimi-K2.6
Model IDs use the org/model prefix format and are case-sensitive. GET https://api.runcrate.ai/v1/models lists the full catalog and needs no API key.
Tested Models
Unit tested (mock HTTP server, 2026-10-27): deepseek-ai/DeepSeek-V4.1-Flash, zai-org/GLM-5.3
Live tested (real API, 2026-10-24): deepseek-ai/DeepSeek-V4.1-Flash (GenerateText), zai-org/GLM-5.3-Flash (StreamText)
Usage
go
model := runcrate.Chat("deepseek-ai/DeepSeek-V4.1-Flash")
result, err := goai.GenerateText(ctx, model, goai.WithPrompt("Hello"))
if err != nil {
log.Fatal(err)
}
fmt.Println(result.Text)Options
| Option | Type | Description |
|---|---|---|
WithAPIKey(key) | string | Set a static API key |
WithTokenSource(ts) | provider.TokenSource | Set a dynamic token source |
WithBaseURL(url) | string | Override the default https://api.runcrate.ai/v1 endpoint |
WithHeaders(h) | map[string]string | Set additional HTTP headers |
WithHTTPClient(c) | *http.Client | Set a custom *http.Client |
Notes
- Declares text-only chat capability with tool calling.
- Reasoning from earlier assistant turns is sent back as
reasoning_content, and streaming requests setstream_options.include_usageso the final chunk carries token usage. - The package provides
Chatonly. The catalog also lists image, video, speech and embedding models, which this provider does not wrap. - Environment variable
RUNCRATE_BASE_URLcan override the default endpoint.