Text Generator's LLM Provider → Custom takes an endpoint, a key and a model — and its template system means one switch re-points every command, button and recipe in your vault. The catch that trips people up: unlike most clients, it wants the full endpoint path, not a bare base URL (cheapest APIs guide).
Why route Text Generator through DaoXE#
- Template-driven. Frontmatter configs, recipes and custom commands all inherit the provider — configure once.
- One key, many vendors. Point templates at different models per task without separate accounts.
- Runs where your notes are. Summaries, extraction and rewrites stay inside the vault.
Set it up in Text Generator#
- Open provider settings. Obsidian → Settings → Text Generator → LLM Provider → choose Custom.
- Set the FULL endpoint. Enter
https://daoxe.com/v1/chat/completions— this plugin wants the complete path, not a base URL ending at/v1. A base-only value 404s. - Add key and model. Paste your DaoXE key; set the model to an exact ID from
GET /v1/models. - Test with a template. Run any built-in command against a small note; check the response's model field matches what you configured.
Caveats worth knowing
Full path vs base URL: the custom provider's endpoint field is used verbatim — …/v1/chat/completions, not …/v1. This is the opposite convention of most clients and the most common misconfiguration. Templates may hardcode models: frontmatter and recipe files can carry their own model fields, which override your default — check them if results come from the wrong model. Exact IDs only: model IDs are account-scoped; read them from GET /v1/models. 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 client, 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 Text Generator use DaoXE?
Yes — LLM Provider → Custom, endpoint https://daoxe.com/v1/chat/completions (full path), your key, an exact model ID.
Why does my base URL 404?
The plugin appends nothing — it posts to the endpoint exactly as given. Add /chat/completions.
Can different templates use different models?
Yes — template frontmatter can override the default model, which is the point of the plugin.
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.