Use DaoXE in goose

goose is a local-first, extensible open-source agent. Its OpenAI provider accepts any compatible endpoint — point it at DaoXE and one key drives its planner, edits and MCP tool calls across vendors.

Updated 2026-09-15

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/models is 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#

  1. Open provider setup. In goose Desktop use the Models tab; in the CLI run goose configure and choose Configure Providers.
  2. 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.
  3. Set the model. Enter an exact model ID copied from GET /v1/models. Goose won't infer it for you on a custom host.
  4. 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.
bash
# 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
goose

Caveats 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:

bash
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:

bash
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.