goose talks to any OpenAI-compatible endpoint through its OpenAI provider (or the custom-provider flow in goose configure), so DaoXE is a base-URL-and-key change. The payoff is role-splitting the goose way: plan on a frontier model, run tool-heavy steps on a cheaper one, cheapest APIs guide.
Why route goose through DaoXE#
- One key across the catalogue. Switch the agent's model without separate vendor accounts —
GET /v1/modelsis the live list. - Role-split by cost. Expensive reasoning for planning, cheap models for repetitive tool steps.
- Extensions cost tokens. Every connected MCP server is per-turn context — a flat balance makes tuning that painless.
Set it up in goose#
- Open provider setup. In goose Desktop use the Models tab; in the CLI run
goose configureand choose Configure Providers. - Choose the OpenAI provider. Paste your DaoXE key, and when asked for the host / base path enter
https://daoxe.com/v1— end it at/v1. - Set the model. Enter an exact model ID copied from
GET /v1/models. Goose won't infer it for you on a custom host. - Run a real task. Send a small edit request and watch the tool calls — that's the check that both routing and capabilities are right.
# CLI: env-based setup for the OpenAI provider
cat >> ~/.config/goose/config/.env <<'EOF'
OPENAI_HOST=https://daoxe.com/v1
OPENAI_API_KEY=sk-you…-key
EOF
gooseCaveats worth knowing
Tool calling is mandatory — goose drives everything through it, and its own docs exclude tool-incapable models; pick a model with real function calling. Prompt caching caveat: goose adds cache_control markers automatically only on its Anthropic, Bedrock, Databricks, OpenRouter and LiteLLM providers — on the generic OpenAI-compatible path there is no automatic caching, so long sessions bill as plain input. Base URL ends at /v1; model IDs are account-scoped. More clients: client setup notes.
Verify you actually get the model#
Prove the endpoint works before blaming the client — if this fails, no setting will fix it:
export DAOXE_API_KEY="your_api_key"
# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/models \
-H "Authorization: Bearer ${DAOXE_API_KEY}"An OpenAI-shaped endpoint that never marks cache breakpoints is exactly the kind of thing to check — prove connectivity, then diff a hard prompt against the official API at temperature 0:
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/chat/completions \
-H "Authorization: Bearer ${DAOXE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_EXACT_MODEL_ID",
"max_tokens": 64,
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}'Verify us — don't trust us
Point the open benchmark at DaoXE and at the official API and compare at temperature 0. Then learn to detect model swapping so a cheaper endpoint can't quietly swap you to a smaller model.
Frequently asked questions#
Does goose work with DaoXE?
Yes — goose's OpenAI provider takes a custom host. Set it to https://daoxe.com/v1 with your key and an exact model ID.
Why does my session stall or error on tool calls?
The selected model lacks usable function calling. Switch to a tool-capable model ID from GET /v1/models.
Does Claude through goose get prompt caching?
Not automatically — goose's automatic cache markers only apply on its Anthropic/Bedrock/OpenRouter/LiteLLM providers, not the generic OpenAI-compatible path. Expect plain-input billing.
What does it cost?
Per-model and account-scoped — see live pricing; top-up is a flat 1 RMB = $1 of credit on every payment method.
Try DaoXE — and benchmark it yourself
One key for GPT, Claude, Gemini, DeepSeek and more. Point the open benchmark at us and compare — don't take our word for it.