gptel is an LLM client for Emacs — ask from any buffer, get Markdown/Org back, and give the model elisp tools. The OpenAI-compatible path is gptel-make-openai, so DaoXE is one registration: a host, an endpoint, a key, and the models you declare (cheapest APIs guide).
Why route gptel through DaoXE#
- AI in every buffer. Complete, rewrite and ask from org-mode, code, magit — the response lands where you already work.
- Client-side tools. gptel's elisp tools and MCP integration send function calls over the OpenAI-compatible path — DaoXE models that really do function calling behave as themselves.
- Keys stay inside Emacs. auth-source, environment variables or a key-returning function — the secret never has to sit in a dotfile in plaintext.
Set it up in gptel#
- Register the backend. In
init.el:(gptel-make-openai "DaoXE" :host "daoxe.com" :endpoint "/v1/chat/completions" :key "sk-you…-key" :stream t :models '("YOUR_EXACT_MODEL_ID")). - Keep :host path-free.
:hosttakes DNS only —daoxe.com, nohttps://, no/v1. The protocol defaults to https; the path lives in:endpoint. - Declare the models.
:modelsis a manual list — gptel does not fetchGET /v1/models. Copy exact IDs; add a plist per model to declare media/tool capabilities. - Pick and send.
M-x gptel-menu→ choose DaoXE and a model (menu entries carry the backend-name prefix); send from any buffer.
;; init.el — register DaoXE as an OpenAI-compatible gptel backend
(gptel-make-openai "DaoXE"
:host "daoxe.com" ; DNS only — no scheme, no path
:endpoint "/v1/chat/completions" ; gptel joins protocol://host + endpoint
:key "sk-you…-key" ; or an authinfo entry / a key-returning fn
:stream t ; streaming defaults to nil
:models '("YOUR_EXACT_MODEL_ID")) ; gptel does not fetch /v1/models
;; ~/.authinfo alternative:
;; machine daoxe.com login apikey password sk-you…-keyCaveats worth knowing
The :host rule is inverted: gptel wants DNS only — daoxe.com, no scheme, no path; the /v1/chat/completions part goes in :endpoint (which is also its default, so a minimal config may omit it). Streaming defaults to nil: add :stream t or every answer arrives as one async lump. No /models fetch: :models is exactly what you declared — a typo'd ID fails at the first message, and media/tool-use capabilities come from per-model plists, not auto-detection. Keys: auth-source uses the endpoint's DNS name as HOST with user apikey — machine daoxe.com login apikey password sk-…. 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 Emacs, 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 gptel use DaoXE?
Yes — gptel-make-openai with :host daoxe.com and :endpoint /v1/chat/completions turns DaoXE into a gptel backend.
Why does my backend 404 or refuse to connect?
Usually https:// or a path inside :host. Keep DNS only, https is the default protocol, and the path belongs in :endpoint.
Do tools and reasoning work?
gptel sends tools over the OpenAI-compatible path for models that do function calling; reasoning blocks are read from reasoning/reasoning_content fields and shown per gptel-include-reasoning.
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.