Kaeso 0.4.3 lets agents such as Claude Code and Codex connect to an instance's remote MCP server, sign in with OAuth and act under rights that the user and the instance and organization policies allow. A new custom provider now needs only a base URL and a key, because Kaeso detects its format, key style, embeddings, token counting and models. Codex, Claude Code and Grok CLI work with Claude, GPT, Grok and Mistral models in more cases, and Mistral's answers reach Chat Completions apps as plain text. The design tokens package no longer exports brandVersion, the one change that asks integrators to act, and a fresh install starts from the model catalogue's data as of 25 October 2026.
- Breaking: The design tokens package no longer exports
brandVersion, so code that imports it must drop that import. (#467(在新标签页中打开))
Contributors: @dvnold
Full changes: v0.4.2...v0.4.3(在新标签页中打开)
新增
- Adding a custom provider takes only its base URL and key. Kaeso detects the API format, key style, embeddings, token counting and the models the server offers, and the review step lets you change any of it before saving. A trailing or doubled
/v1and a pasted endpoint path are dropped from the base URL when it is saved. (#449(在新标签页中打开)) - Agents such as Claude Code, Codex, Cursor, Gemini CLI and OpenCode can connect to an instance's remote MCP server at
/mcp. They sign in with OAuth 2.1 and PKCE through the console and act with rights the user grants, capped by the instance's and each organization's agent policies. Every tool call is kept for 90 days as the agent's activity, and the console lists each account's agents so they can be renamed or revoked. (#450(在新标签页中打开)) - The documentation site and the UI library's showcase end their sidebars with a legal menu linking to Kaeso's privacy policy and imprint, a theme menu and a language menu. The menus replace the language and theme selects, and the UI library's
ThemeMenucan open upward with itssideandalignprops. (#474(在新标签页中打开)) - Kaeso now has Claude Code and Cursor plugins that connect to an instance's
/mcpaddress and include a skill on using its tools. The console's Agents page also offers one-click connection steps for Claude Code, Cursor and GitHub Copilot, filled in with the instance's own address. (#475(在新标签页中打开))
变更
- The Add models dialog shows models in a table with a checkbox on each row, and models already in the catalogue stay locked. Adding a provider key starts with provider tiles, with connected providers first, and a press on a tile continues to the key step. (#487(在新标签页中打开))
Gateway
- A fresh install starts with the model catalogue snapshot as of 25 October 2026, which holds 555 models and their prices for the providers Kaeso supports. The providers list adds
munitoandmunito-eu. (#489(在新标签页中打开))
移除
UI library
- The design tokens package no longer exports
brandVersion, a second version number in its brand file that could disagree with Kaeso's own. Nothing in the repository read it, and a test now keeps a version field out of the brand file. (#467(在新标签页中打开))
修复
- Refusals to sign up or create an organization, shown on installs that are invitation-only or limit email domains, are now translated in German and Chinese in the console. The check that finds untranslated Platform API messages now covers more of the gateway's services. (#435(在新标签页中打开))
- Toasts, empty states and confirmations in the console are shorter, each says one thing, and they are checked for length in English, German and Chinese. Several German dialog texts are shortened to fit as well. (#440(在新标签页中打开))
- Two refusals about a model's tool choice and thinking settings fit on one line:
autowith the tool named in the prompt, andenabledthinking withbudget_tokens. Their German and Chinese wording follows the new text. (#443(在新标签页中打开)) - The development pages and agent guides now match the code. The update job runs every 60 seconds with a five-minute gap between checks, and the development stack's mock serves xAI and Together AI as well. (#446(在新标签页中打开))
- Buttons in the console start with a verb: the last step after creating a key reads Finish, and the updates page button reads See what's new. The new wording is in English, German and Chinese, and the docs follow it. (#448(在新标签页中打开))
- Overview pages end with a Next steps list. The docs site no longer keeps redirects, and documentation kept in the repository's READMEs, such as the model catalogue sync details, now lives on the docs site. Fixture conventions have their own reference page. (#453(在新标签页中打开))
- The console shows images people sent with a new Thumbnail component from the UI library, which crops them to a square and shows the text alternative when an image cannot load. Every UI library component now exports its variant lists, and the showcase checks that each page declares them. (#455(在新标签页中打开))
- Grok CLI over Chat Completions works with models served in other formats, because the
model_idfield it replays on assistant messages is left out when a request crosses to another format. Chat providers receive that field only in profiles that keep it, which is SpaceX's. (#462(在新标签页中打开)) - Mistral answers over Chat Completions now arrive as plain text, with its thinking in
reasoning_content, so Grok CLI and other Chat apps no longer fail or print raw thinking JSON. Empty stream chunks no longer crash tool-call turns, and reasoning that Chat apps replay reaches the providers that accept it. (#463(在新标签页中打开)) - Codex works with Claude, Grok and Mistral models, and a thread that started on a GPT model can switch to any of them. System and developer messages reach Anthropic in the next user turn, and hosted web search goes to providers with a matching tool and is left out elsewhere. What a provider cannot take is named in the
kaeso-left-outheader of the reply. (#464(在新标签页中打开)) - Mistral accepts requests from apps that send
temperature: 0, such as aider's default, because the Mistral profile sendstop_p: 1with greedy sampling, which changes nothing at that temperature. Error bodies in Mistral's and vLLM's shapes now reach apps with their message, and context window errors are reported as context too long. (#465(在新标签页中打开)) - Claude models work in Chat Completions and Responses apps that replay history. Claude's signed thinking is restored only into the turn it came from, and for the models that check the binding, a block whose conversation changed is dropped instead of failing the request. Carried reasoning is stored under new keys, so a conversation in flight during the upgrade continues without its earlier thinking. (#466(在新标签页中打开))
- Claude Code's tool search works with GPT, Grok and Mistral models. Tools marked for deferred loading stay out of the upstream request until a tool search loads them, then they are sent as ordinary function tools, instead of the first request of each session being refused. (#472(在新标签页中打开))
- Claude Code's WebSearch works with GPT and Grok models, and Mistral answers it without searching instead of failing. Anthropic's web search tool becomes hosted web search on OpenAI Responses and xAI's search on SpaceX, with its domain filters, and search results return to Anthropic apps as search blocks. (#473(在新标签页中打开))
Console
- The invitation page drops an invitation's token from its cache as soon as the person leaves the page, including when the invitation has expired, been revoked or already been used. Before, the token could stay in the cache after the page was left. (#437(在新标签页中打开))
- The console no longer invents a name, key prefix or format list for a provider that the gateway does not list, such as one an old key still points at. It shows the provider's id as the gateway sent it, a plain ellipsis for the prefix, and only the format the model is sent as. (#439(在新标签页中打开), #452(在新标签页中打开))
- Confirmation dialogs in the console open fresh every time, so a removal in progress for one limit or key no longer shows as busy for another item. About twenty dialogs for sessions, organizations, users, providers, keys, members and roles now keep their requests in their own component. (#457(在新标签页中打开))
UI library
- The UI library's showcase examples and tests use Kaeso's placeholder key prefix and gateway address, so the code people copy from the showcase matches the repository's placeholders. (#436(在新标签页中打开))
- Calendar, ToastCapsule, DisplayOptions, ThemeMenu, SelectionBar and CommandPalette now forward a ref to their root element, where before the ref was dropped. ThemeMenu takes
data-forcefor its states page, and SwapText and ThemeMenu gain showcase pages. (#441(在新标签页中打开)) - Every UI library component that renders an element forwards its ref, and the lint check now fails for an exported component that renders without one. Props and behavior are unchanged, and the few components with no root element are listed with their reasons. (#451(在新标签页中打开))
Documentation
- The self-hosting pages name the console's real pages and labels, add
KAESO_TRUSTED_PROXIESto the.envtable, and describe the notice sent when someone changes their email address. The requirements and the 529 response are corrected to match the code. (#444(在新标签页中打开)) - The Platform API, concept and console pages now match the code, including which operations need a recent sign-in, the
PUTandDELETEconventions, the model inputs and outputs, and that Mistral receives developer messages as system messages. (#447(在新标签页中打开))