AI providers
CraftGPT 2.0 uses named provider profiles. You can define as many as you like under providers.profiles, pick one as the server default with providers.default, and give individual mobs a different one with /cg model <profile>.
Provider types
type |
What it is | Tested live for this beta | Notes |
|---|---|---|---|
openai |
OpenAI | Yes (gpt-6-luna, with tools) |
The default profile |
openai-compatible |
Any OpenAI-style server: vLLM, LM Studio, Ollama’s /v1… |
Yes (via Ollama /v1, with tools) |
base-url is required, and so is a non-blank api-key (any placeholder works if your server ignores it). Sends no reasoning effort, so “thinking” models are slow here |
anthropic |
Anthropic | Yes (claude-haiku-5-5, with tools) |
Temperature max 1 |
google |
Google Gemini | No: request-format tests and a code review | |
ollama |
A native Ollama server | Yes (qwen3:8b, with tools) |
Needs no API key. Use reasoning-effort: none for thinking models |
claude-cli |
Experimental. A logged-in Claude Code command-line tool on the server | Earlier build only | For personal or test servers; check the provider’s terms first |
codex-cli |
Experimental. A logged-in Codex command-line tool on the server | Earlier build only | Same as above |
API keys
Set api-key to the key itself, or (recommended) to "${ENV_VAR}", which reads it from the server process’s environment. If you use ${ENV_VAR} and the variable isn’t set, the plugin switches itself off at startup. Keys are never logged.
Reasoning effort
reasoning-effort accepts default, none, minimal, low, medium, high or xhigh; which ones work depends on the model.
Keep
nonefor the default model. Withgpt-6-luna, anything other thannonemakes every chat that offers tools fail.
Profile settings
The shipped value column shows the openai profile in the default config.
| Key | Shipped value | What it does |
|---|---|---|
type |
openai |
One of the types above |
api-key |
"" |
The key, or "${ENV_VAR}". Ignored for CLI types |
model |
gpt-6-luna |
Model name. Required: a profile without one is a config error |
base-url |
"" |
Blank = the provider’s default. Required for openai-compatible |
max-output-tokens |
1024 |
Longest reply, in tokens. Ignored by CLI types |
reasoning-effort |
none |
See above. A profile that leaves it out gets default, which breaks tool chats on gpt-6-luna, so always set it |
temperature |
default |
default, or a number from 0 to 2 (0 to 1 for Anthropic). Ignored by CLI types |
timeout-seconds |
60 |
Time limit for one call |
cli-command |
claude / codex |
CLI types only: the program name or full path |
Example profiles
The default config ships these as comments, ready to uncomment:
anthropic:
type: anthropic
api-key: "${ANTHROPIC_API_KEY}"
model: claude-haiku-5-5
temperature: default # Claude 5.x models advise against setting temperature
google:
type: google
api-key: "${GOOGLE_API_KEY}"
model: gemini-3.5-flash-lite
reasoning-effort: default # Gemini 3 can't turn thinking off; use default or minimal, not none
local:
type: ollama
base-url: "http://localhost:11434"
model: qwen3:8b # about 5 GB, supports tools
reasoning-effort: none # otherwise qwen3 thinks before every reply (much slower)
It also includes two commented CLI profiles, claude-subscription (claude-cli, claude-haiku-5-5) and codex-subscription (codex-cli, gpt-6-luna).
CLI providers (experimental)
claude-cli and codex-cli run a command-line AI tool that’s already logged in on the server, instead of calling an API.
- The system user that runs the server must be logged in to the tool, with the program on its
PATHor given as a full path incli-command. - They ignore
api-key,base-url,temperatureandmax-output-tokens. - CraftGPT removes API-key environment variables from the tool’s environment so it uses the login.
- For Claude,
noneandminimaleffort becomelow(with a warning);defaultsends no effort.