gptel
MarkdownEmacs package · OpenAI Chat, Anthropic Messages, Gemini
Full guide
| Format | Where to set it up |
|---|---|
| OpenAI Chat, Anthropic Messages, Gemini | init.el: register a backend with gptel-make-openai (OpenAI Chat), gptel-make-anthropic (Messages), or gptel-make-gemini; each has :host, :endpoint, :key, :stream, :models. Then set gptel-backend and gptel-model. |
Setup
Copy the configuration and replace sk-... with your key from the Ailoot Dashboard. Prefer storing the key in the environment variable AILOOT_API_KEY, if the application supports it.
Before starting, request GET /v1/models with your Ailoot key. Choose an exact model ID whose methods include POST /v1/chat/completions, POST /v1/messages, POST /v1beta/models/{model}:generateContent, then use that ID in the configuration. For agents, also check tool support and the features required by your client version.
(setq gptel-model 'claude-sonnet-5-5
gptel-backend
(gptel-make-openai "Ailoot"
:host "api.ailoot.ai"
:endpoint "/v1/chat/completions"
:stream t
:key (getenv "AILOOT_API_KEY") ; or (gptel-api-key-from-environment "AILOOT_API_KEY")
:models '(claude-sonnet-5-5 gpt-6.1-sol deepseek-v4-pro qwen3.8-max)))
;; Anthropic Messages variant
(gptel-make-anthropic "Ailoot-Claude"
:host "api.ailoot.ai" ; default path /v1/messages
:stream t
:key (getenv "AILOOT_API_KEY")
:models '(claude-sonnet-5-5 claude-opus-5-5))This configuration reads the key from the environment variable AILOOT_API_KEY. Set it before starting the application:
export AILOOT_API_KEY="sk-..." # add to ~/.zshrc or ~/.bashrcsetx AILOOT_API_KEY "sk-..." # then restart the terminalExample model: claude-sonnet-5-5. Choose any other model from the catalog — check that it supports the format you need.
Good to know
Test
- Keep the separate :host and :endpoint values from the example above. The prefix for OpenAI API methods is
https://api.ailoot.ai/v1(or the full path if the application asks for a full URL). - For the Anthropic format, the URL is
https://api.ailoot.aiwithout/v1. - For the Gemini format, the URL is
https://api.ailoot.ai— the API origin. The example above does not show the full setup for this format; consult the client’s documentation for the path to use in the relevant field. The API route prefix is/v1beta. - Ask a short question. If you get an error, check the code and Request ID, then consult Errors and limits.
- 404 immediately after setup almost always means the URL is wrong: an extra or missing
/v1. - 402 — insufficient balance for the reserve. Agents reserve more than chat: why.
Application documentation: https://github.com/karthink/gptel