Crush runs agentic coding sessions in the terminal: it edits files, runs commands and reads your project's context files. Its config is a Bash file, and the provider path for non-OpenAI endpoints is the openai-compat type — exactly DaoXE's shape (cheapest APIs guide).
Why route Crush through DaoXE#
- Agent-grade coding, your models. Crush's planner, edits and tool calls all ride the provider you register — one DaoXE key covers hundreds of models from ~25 providers.
- Config is a Bash file. crushrc runs like .bashrc at startup, so keys can come from a password manager instead of sitting in JSON.
- Large and small model slots. A strong model for the main loop and a cheap one for background tasks map straight onto DaoXE's catalogue.
Set it up in Crush#
- Register the provider. In
~/.config/crush/crushrc:provider add daoxe --type openai-compat --base-url "https://daoxe.com/v1" --api-key "${DAOXE_API_KEY:?set DAOXE_API_KEY}"— the docs' own openai-compat example uses a/v1-ending base URL and a shell-expanded key. - Register a model.
model add daoxe/YOUR_EXACT_MODEL_IDwith the exact ID fromGET /v1/models, plus--context-windowand optionally--can-reason/--supports-images— these capability flags decide what Crush asks the model to do. - Fill the model slots.
model large daoxe/YOUR_EXACT_MODEL_IDfor the main loop;model small daoxe/YOUR_SMALL_MODEL_IDfor background work. References are alwaysprovider/model— the form printed bycrush models. - Start a session. Run
crushin your project; the TUI lists the provider's models.crush modelsprints the current large/small selections.
# ~/.config/crush/crushrc — register DaoXE as an openai-compat provider
provider add daoxe \
--type openai-compat \
--base-url "https://daoxe.com/v1" \
--api-key "${DAOXE_API_KEY:?set DAOXE_API_KEY}"
# register a model, then put it in the large (coding) slot
model add daoxe/YOUR_EXACT_MODEL_ID --name "DaoXE primary" --context-window 128000
model large daoxe/YOUR_EXACT_MODEL_IDCaveats worth knowing
Model registration is per-provider: Crush reads a models list and can merge auto-discovered entries — with discover_models on (the default) your explicit entries win over fetched ones, but a provider entry with no registered model still needs one via model add. Context window is your input: the docs' examples always pass --context-window; a wrong value drives Crush's summarization and truncation, not the API. The key is shell-expanded: crushrc is Bash — ${DAOXE_API_KEY:?…} fails loudly when the variable is unset, and an empty --api-key value would be sent as-is, so guard the expansion. Trusted config: Crush runs crushrc with your shell privileges and the docs warn not to launch it in a directory whose config you haven't read — keep DaoXE keys in your own crushrc, not a project's. 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}"Prove the endpoint outside the agent, 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#
Can Crush use DaoXE?
Yes — provider add daoxe --type openai-compat --base-url "https://daoxe.com/v1" plus your key, then model add daoxe/YOUR_EXACT_MODEL_ID.
openai or openai-compat type?
openai-compat — Crush's README says to use it for "non-OpenAI providers that have OpenAI-compatible APIs"; openai is for proxying through OpenAI itself.
Why does Crush not see my model?
Models come from the provider's registered list (merged with discovery when enabled). Register yours with model add daoxe/YOUR_EXACT_MODEL_ID — a provider entry alone registers no models.
What does it cost?
Per-model, account-scoped — 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.