Use DaoXE in gptel

gptel is a free LLM client for Emacs: chat from any buffer, Markdown/Org responses, client-side elisp tools. It speaks the OpenAI wire format, so DaoXE is one backend registration away.

Updated 2026-09-15

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#

  1. 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")).
  2. Keep :host path-free. :host takes DNS only — daoxe.com, no https://, no /v1. The protocol defaults to https; the path lives in :endpoint.
  3. Declare the models. :models is a manual list — gptel does not fetch GET /v1/models. Copy exact IDs; add a plist per model to declare media/tool capabilities.
  4. Pick and send. M-x gptel-menu → choose DaoXE and a model (menu entries carry the backend-name prefix); send from any buffer.
elisp
;; 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…-key

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

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}"

Prove the endpoint outside Emacs, 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#

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.