go.bigb.es/claudio

v0.2.0
Doc Versions Source

Variables

var Order = []string{"deepseek", "zai", "minimax", "kimi", "copilot", "nvidia", "openrouter", "ollama", "ollama-cloud", "vkproxy"}

Order defines the display order of providers.

var Registry = map[string]Provider{
	"deepseek": {
		Name:          "DeepSeek",
		Description:   "DeepSeek Reasoner / V3 via Anthropic-compatible API",
		BaseURL:       "https://api.deepseek.com/anthropic",
		Model:         "deepseek-reasoner",
		SmallModel:    "deepseek-chat",
		SonnetModel:   "deepseek-reasoner",
		OpusModel:     "deepseek-reasoner",
		HaikuModel:    "deepseek-chat",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 128_000,
	},
	"zai": {
		Name:          "z.AI",
		Description:   "GLM-5 / GLM-4.7 via z.AI (API or Coding Plan)",
		BaseURL:       "https://api.z.ai/api/anthropic",
		Model:         "GLM-5",
		SmallModel:    "GLM-4.5-Air",
		SonnetModel:   "GLM-5",
		OpusModel:     "GLM-5",
		HaikuModel:    "GLM-4.5-Air",
		TimeoutMS:     "3000000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 205_000,
		Plans: []Plan{
			{Key: "api", Name: "API (pay per token)", Description: "Pay-per-token access", BaseURL: "https://api.z.ai/api/anthropic"},
			{Key: "coding", Name: "Coding Plan (subscription)", Description: "Subscription-based access", BaseURL: "https://api.z.ai/api/coding/anthropic"},
		},
	},
	"minimax": {
		Name:          "MiniMax",
		Description:   "MiniMax-M2.5 via MiniMax Anthropic gateway",
		BaseURL:       "https://api.minimax.io/anthropic",
		Model:         "MiniMax-M2.5",
		SmallModel:    "MiniMax-M2.5",
		SonnetModel:   "MiniMax-M2.5",
		OpusModel:     "MiniMax-M2.5",
		HaikuModel:    "MiniMax-M2.5",
		TimeoutMS:     "3000000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 205_000,
	},
	"kimi": {
		Name:          "Kimi",
		Description:   "Kimi K2.5 / K2 via Moonshot Anthropic gateway",
		BaseURL:       "https://api.moonshot.cn/anthropic/",
		Model:         "kimi-k2.5",
		SmallModel:    "kimi-k2-turbo-preview",
		SonnetModel:   "kimi-k2.5",
		OpusModel:     "kimi-k2.5",
		HaikuModel:    "kimi-k2-turbo-preview",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 256_000,
	},
	"copilot": {
		Name:          "GitHub Copilot",
		Description:   "Claude via GitHub Copilot",
		BaseURL:       "https://api.githubcopilot.com",
		Model:         "claude-sonnet-4.6",
		SmallModel:    "claude-haiku-4.5",
		SonnetModel:   "claude-sonnet-4.6",
		OpusModel:     "claude-opus-4.6",
		HaikuModel:    "claude-haiku-4.5",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		Compat:        "openai",
		ContextWindow: 200_000,
	},
	"nvidia": {
		Name:          "NVIDIA NIM",
		Description:   "Access NVIDIA NIM models via OpenAI-compatible API",
		BaseURL:       "https://integrate.api.nvidia.com/v1",
		Model:         "nvidia/llama-3.1-nemotron-ultra-253b-v1",
		SmallModel:    "nvidia/llama-3.3-nemotron-super-49b-v1.5",
		SonnetModel:   "nvidia/llama-3.1-nemotron-ultra-253b-v1",
		OpusModel:     "nvidia/llama-3.1-nemotron-ultra-253b-v1",
		HaikuModel:    "nvidia/llama-3.3-nemotron-super-49b-v1.5",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		Compat:        "openai",
		ContextWindow: 128_000,
	},
	"openrouter": {
		Name:          "OpenRouter",
		Description:   "Access multiple models via OpenRouter",
		BaseURL:       "https://openrouter.ai/api/v1",
		Model:         "anthropic/claude-sonnet-4.6",
		SmallModel:    "anthropic/claude-haiku-4.5",
		SonnetModel:   "anthropic/claude-sonnet-4.6",
		OpusModel:     "anthropic/claude-opus-4.6",
		HaikuModel:    "anthropic/claude-haiku-4.5",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		Compat:        "openai",
		ContextWindow: 200_000,
	},
	"vkproxy": {
		Name:          "VK LLM Proxy",
		Description:   "Import models from claude-code-config.zip",
		BaseURL:       "https://llm-proxy.vkteam.ru",
		Model:         "deepseek-reasoner",
		SmallModel:    "deepseek-reasoner",
		SonnetModel:   "deepseek-reasoner",
		OpusModel:     "deepseek-reasoner",
		HaikuModel:    "deepseek-reasoner",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 128_000,
	},
	"ollama": {
		Name:          "Ollama (local)",
		Description:   "Local Ollama with native Anthropic-compatible API",
		BaseURL:       "http://localhost:11434",
		Model:         "qwen3-coder",
		SmallModel:    "qwen3-coder",
		SonnetModel:   "qwen3-coder",
		OpusModel:     "qwen3-coder",
		HaikuModel:    "qwen3-coder",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 32_000,
		NoAuth:        true,
	},
	"ollama-cloud": {
		Name:          "Ollama Cloud",
		Description:   "Cloud models via ollama.com API",
		BaseURL:       "https://ollama.com",
		Model:         "qwen3.5:397b",
		SmallModel:    "devstral-small-2:24b",
		SonnetModel:   "devstral-2:123b",
		OpusModel:     "qwen3.5:397b",
		HaikuModel:    "devstral-small-2:24b",
		TimeoutMS:     "600000",
		AuthEnvVar:    "ANTHROPIC_AUTH_TOKEN",
		ContextWindow: 32_000,
	},
}
var StaticModels = map[string][]StaticModel{
	"deepseek": {
		{ID: "deepseek-reasoner", Name: "DeepSeek Reasoner (R1)", Family: "Reasoner"},
		{ID: "deepseek-chat", Name: "DeepSeek Chat (V3)", Family: "Chat"},
	},
	"zai": zaiModels,
	"kimi": {
		{ID: "kimi-k2.5", Name: "Kimi K2.5", Family: "K2.5"},
		{ID: "kimi-k2-turbo-preview", Name: "Kimi K2 Turbo", Family: "K2"},
		{ID: "kimi-k2-thinking", Name: "Kimi K2 Thinking", Family: "K2"},
		{ID: "kimi-k2-0711-preview", Name: "Kimi K2", Family: "K2"},
		{ID: "kimi-latest", Name: "Kimi Latest", Family: "Latest"},
	},
}

StaticModels maps provider keys to their available models.

Types

T type Plan

src
type Plan struct {
	Key         string // e.g. "api", "coding"
	Name        string // display name, e.g. "API (pay per token)"
	Description string
	BaseURL     string
}

Plan describes one billing/access plan for a provider with multiple base URLs.

T type Provider

src
type Provider struct {
	Name        string
	Description string
	BaseURL     string
	Model       string
	SmallModel  string
	SonnetModel string
	OpusModel   string
	HaikuModel  string
	TimeoutMS   string
	// AuthEnvVar is the env var name used for the API key (some use AUTH_TOKEN, some API_KEY).
	AuthEnvVar string
	// Compat is "anthropic" (default) or "openai". When "openai", a local
	// translation proxy is started to convert Anthropic ↔ OpenAI API format.
	Compat string
	// ContextWindow is the model's context window size in tokens.
	// Claude Code assumes 200k by default; when this is smaller,
	// CLAUDE_AUTOCOMPACT_PCT_OVERRIDE is set so compaction triggers before
	// the real limit is hit.
	ContextWindow int
	// NoAuth indicates the provider does not require an API key (e.g. local Ollama).
	NoAuth bool
	// Plans lists alternative billing/access plans with different base URLs.
	// When non-empty, the TUI prompts the user to choose a plan.
	// BaseURL holds the default plan's URL.
	Plans []Plan
}

Provider defines an alternative Claude Code API provider.

T type StaticModel

src
type StaticModel struct {
	ID     string
	Name   string
	Family string
}

StaticModel represents a model available from a provider (no API fetch needed).

Source Files