Download Latest Version Version v0.9.9.3 source code.tar.gz (195.3 kB)
Email in envelope

Get an email when there's a new version of GPTel

Home / v0.9.8.5
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-06-11 14.9 kB
Version v0.9.8.5 source code.tar.gz 2025-06-11 169.3 kB
Version v0.9.8.5 source code.zip 2025-06-11 191.5 kB
Totals: 3 Items   375.8 kB 0

Version 0.9.8.5 adds support for new Gemini, Anthropic and OpenAI models, for AWS Bedrock and other providers, brings better MCP support and a redesigned tools menu, support for "presets" and quick ways to invoke them, context inclusion via Org/Markdown links and better handling of LLM "reasoning" content.

Additionally, the gptel-request pipeline is now fully asynchronous and tweakable, making it easy to add support for RAG steps or other prompt transformations.

Breaking changes

  • gptel-org-branching-context is now a global variable. It was buffer-local by default in past releases.

  • The following models have been removed from the default ChatGPT backend:

    • o1-preview: use o1 instead.
    • gpt-4-turbo-preview: use gpt-4o or gpt-4-turbo instead.
    • gpt-4-32k, gpt-4-0125-preview and gpt-4-1106-preview: use gpt-4o or gpt-4 instead.

    Alternatively, you can add these models back to the backend in your personal configuration:

emacs-lisp (push 'gpt-4-turbo-preview (gptel-backend-models (gptel-get-backend "ChatGPT")))

  • Only relevant if you use gptel-request in your elisp code, interactive gptel usage is unaffected: gptel-request now takes a new, optional :transforms argument. Any prompt modifications (like adding context to requests) must now be specified via this argument. See the definition of gptel-send for an example.

New models and backends

  • Add support for gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o3 and o4-mini.

  • Add support for gemini-2.5-pro-exp-03-25, gemini-2.5-flash-preview-04-17, gemini-2.5-pro-preview-05-06 and gemini-2.5-pro-preview-06-05.

  • Add support for claude-sonnet-4-20250514 and claude-opus-4-20250514.

  • Add support for AWS Bedrock models. You can create an AWS Bedrock gptel backend with gptel-make-bedrock, which see. Please note: AWS Bedrock support requires Curl 8.5.0 or higher.

  • You can now create an xAI backend with gptel-make-xai, which see. (xAI was supported before but the model configuration is now handled for you by this function.)

  • Add support for GitHub Copilot Chat. See the README and gptel-make-gh-copilot. Please note: this is only the chat component of GitHub Copilot. Copilot’s completion-at-point (tab-completion) functionality is not supported by gptel.

  • Add support for Sambanova. This is an OpenAI-compatible API so you can create a backend with gptel-make-openai, see the README for details.

  • Add support for Mistral Le Chat. This is an an OpenAI-compatible API so you can create a backend with gptel-make-openai, see the README for details.

New features and UI changes

  • gptel can access MCP server tools by integrating with the mcp.el package, which is at https://github.com/lizqwerscott/mcp.el. (mcp.el is available on MELPA.) To help with the integration, two new commands are provided: gptel-mcp-connect and gptel-mcp-disconnect. You can use these to start MCP servers selectively and add tools to gptel. These commands are also available from gptel’s tools menu.

These commands are currently not autoloaded by gptel. To access them, require the gptel-integrations feature.

  • Tools now run in the buffer from which the request originates. This can be significant when tools read or manipulate Emacs’ state.

  • The tools menu (gptel-tools) has been redesigned. It now displays tool categories and associated tools in two columns, and it should scale better to any number of tools. As a bonus, the new menu requires half as many keystrokes as before to enable individual tools or toggle categories.

  • You can now define “presets”, which are a bundle of gptel options, such as the backend, model, system message, included tools, temperature and so on. This set of options can be applied together, making it easy to switch between different tasks using gptel. From gptel’s transient menu, you can save the current configuration as a preset or apply another one. Presets can be applied globally, buffer-locally or for the next request only. To persist presets across Emacs sessions, define presets in your configuration using gptel-make-preset.

  • When using gptel-send from anywhere in Emacs, you can now include a “cookie” of the form @preset-name in the prompt text to apply that preset before sending. The preset is applied for that request only. This is an easy way to specify models, tools, system messages (etc) on the fly. In chat buffers the preset cookie is fontified and available for completion via completion-at-point.

  • For scripting purposes, provide a gptel-with-preset macro to create an environment with a preset applied.

  • Links to plain-text files in chat buffers can be followed, and their contents included with the request. Using Org or Markdown links is an easy, intuitive, persistent and buffer-local way to specify context. To enable this behavior, turn on gptel-track-media. This is a pre-existing option that also controls whether image/document links are followed and sent (when the model supports it).

  • The current kill can be added to gptel’s context. To enable this, turn on gptel-expert-commands and use gptel’s transient menu.

  • gptel now supports handling reasoning/thinking blocks in responses from Gemini models. This is controlled by gptel-include-reasoning, in the same way that it handles other APIs.

  • A new hook gptel-prompt-transform-functions is provided for arbitrary transformations of the prompt prior to sending a request. This hook runs in a temporary buffer containing the text to be sent. Any aspect of the request (the text, destination, request parameters, response handling preferences) can be modified buffer-locally here. These hook functions can be asynchronous.

  • The user option gptel-use-curl can now be used to specify a Curl path.

  • The new option gptel-curl-extra-args can be used to specify extra arguments to the Curl command used for the request. This is the global version of the gptel-backend-specific :curl-args slot, which can be used to specify Curl arguments when using a specific backend.

Notable Bug fixes

  • Fix more Org markup conversion edge cases involving nested Markdown delimiters.

What's Changed

New Contributors

Full Changelog: https://github.com/karthink/gptel/compare/v0.9.8...v0.9.8.5

Source: README.md, updated 2025-06-11