Yaji 0.71.0
New
- You can pinch on a touchpad or a touch screen to zoom in on the area under the pointer, as in Chrome. This works in the main window, in chat windows and in browser tabs. Diagrams, canvases and the image viewer keep their own pinch zoom. While an agent works in a browser tab, that tab does not zoom.
Improved
- A new hosted server can start on a virtual server that OpenBot rents from Leaseweb, when one is free at the purchase. Such a server runs all the time: it does not stop after the last use, and it has 25, 75 or 150 GB for your files on Starter, Standard or Pro. When none is free, the server starts in a boat sandbox, as before. The privacy notice names the two locations (Amsterdam, and near Washington, D.C. for a purchase in US dollars or Brazilian reais).
- A message that you send while an Antigravity agent works now goes into the running turn, as it does for Claude, Codex and Grok. It does not wait in the queue until the turn ends. This needs Antigravity CLI 1.5.0 or later. While the agent waits for your approval or answer, the message stays in the queue. On a joined server, the server must also be on this version.
- You can buy a Starter hosted server again. It costs €30, $36, 120 zł or R$180 a month, and it has 25 GB of storage. A Starter server that you bought before keeps its price.
- On the Canvas, you can drag a note, free text, a shape or a step by its text. A click on a step's text puts the caret where you clicked. A click on a note, free text or a shape that is not selected only selects it; a second click or a double-click puts the caret where you clicked. While a text field is open for edits, a drag in it selects text. A click on the empty Canvas closes the open text field.
Removed
- Remove MongoDB Atlas from the Apps catalog. MongoDB lets only the AI clients that it registered sign in, and OpenBot is not one of them. Before, Sign in opened a MongoDB page that said "This Authorization request is invalid", and the app never connected.
Fixed
- When the remote desktop of a server did not start because of an unexpected error, the app showed only "Request failed." The app now says that the remote desktop did not start on the server, and the server writes the reason to its remote desktop log. The server must also be on the new version.
- The payment page for a license or a server shows the "I'm purchasing as a business" checkbox from the start, and the checkbox opens the business name and the tax ID (for example, a Polish NIP). Before, the checkbox stayed hidden until you typed a business name, so you could not find the tax ID field. The page also no longer asks for a full billing address when the payment does not need it.
- The agent browser no longer replaces the language header that a site sets on its own requests, so the Oracle Cloud console loads its lists after sign-in.
- When many Pi agents started at the same time on a busy computer, a message could fail with "Pi request timed out: switch_session" before the agent started its turn, and you had to send it again. OpenBot now gives a new Pi process more time to start.
- When a second or later account of a provider, such as a ChatGPT account, was no longer signed in, its row stayed "Connected" and the agent stopped with "ChatGPT did not return an authenticated account." The app now shows the account as signed out, says "This ChatGPT account is signed out. Sign in again.", and the account menu has "Sign in again". On a joined server, the server must also be on the new version.
- When a reply was read aloud at a speed above 1×, the voice could stop for some seconds near the start of the reply and then continue. The app now prepares shorter parts at these speeds, so the next part is ready sooner. Readings at 1× and 0.75× do not change.
- Say "The server did not accept that sign-in." when an MCP server refuses a sign-in at its last step. Before, Supabase's refusal showed "The server answered 404. Check the URL", but the address was correct.
- When a chat with a local model does not fit in the model's context window, the chat now tells you to load the model with a larger context length in Ollama or LM Studio, or to choose a larger model. Before, the first message to an agent could fail with only "The compaction request cannot be reduced further without losing the latest exchange or checkpoint" or "Nothing to compact yet".
- When Gemini (Antigravity) cannot open the settings file of an account, the account now says so and tells you what to do: remove the account and add it again, or, for your first Gemini account, quit the other apps that use Gemini and open OpenBot again. Before, the account said that it was signed out, and "Sign in again" could not repair it.
- When your ChatGPT plan limit is used but your account has credits, the chat now shows "Using credits" with the time that the plan limit resets. Before, it showed "Usage limit reached" while Codex kept working on your credits. The model picker no longer marks the model as stopped in this case. Members of a joined server see the same, when the server runs this version.
- A browser tab that you do not see and that no agent uses now slows down, as a background tab in Chrome does. Before, its videos and animations played all the time, and one page with many videos could use more than two CPU cores. After a restart, it started again by itself.
- An agent on Grok could get "Tool not found" when it asked you to take over a browser tab for a sign-in or a CAPTCHA. No sign-in card showed, and the agent said that it was blocked. The agent now gets the correct name for these tools.
- When an MCP server asks for something that OpenBot does not show, such as a sign-in on a web page, the notice now names the server and tells you what to do next. When Codex asks you to reconnect an app on ChatGPT, the notice names the app. Before, the notice said only that a local plugin asked for an unsupported security hand-off. The notice now also shows in your language.
- In the OpenBot browser, a part of a page that comes from a different site, such as a Google file or video picker, could stay empty, because the browser refused its request to use its own cookies. The browser now permits this request, as Chrome does.
- When a sign-in field is in a frame from another address of the same site, as the Apple sign-in in App Store Connect is, an agent now learns that the field is in a frame and asks you to sign in with browser takeover. Before, the agent got "Element is no longer attached to the document" and tried other ways to fill the saved Vault login first.
- An agent at Workspace only said that auto-approve was on, although it asks before each action outside its workspace. The agent now reads its correct permission level, so it can tell you why it asks.
- Remote desktop of a self-hosted server or a Docker server showed an "×" in the center of an empty white screen, so it looked like the connection failed. The screen now shows a normal arrow pointer.
- When an agent tries to change or delete a memory that is already gone, it now learns that the memory no longer exists and reads its memories again. Before, it was told that the memory belonged to a different agent, so it could not correct the memory and reported a problem that did not exist.
- The model picker shows the models of the new version after OpenBot updates a provider's program, such as Claude Code, while OpenBot is open. Before, when the first read of the model list failed after the update, the picker kept the old list until you started OpenBot again: for example, it showed Claude Fable 5.1 and not Claude Fable 5.2. OpenBot now reads the list again after some seconds.
- While an agent works, the moving light on its activity line uses less CPU. Before, the app redrew the text of the line many times each second for the full turn, also during a long command, so the fan ran and the battery drained. The light looks the same.
- An agent that repeated the same failed step, such as an OpenCode web search with no search text, went on until you stopped it and used many tokens. OpenBot now stops the turn after 5 identical failures, and tells you to send the message again or choose another model.
- When a local model could not summarize a long chat for OpenCode, each later message in that chat failed with "Compaction summary did not match the required template". Now OpenBot starts a new OpenCode session with the chat history and sends the message again. When it cannot send the message again, the chat tells you to try again or to select a stronger model.
- An OpenCode chat no longer stops working after a model refuses an image or a file that it cannot read, for example a custom provider model that accepts text only. OpenBot now starts a new session with the chat history and tells you to send the message again without the file, or to clear Images at Accepts for a custom provider model. Before, some endpoints showed only their own error text, and each new message failed again until you chose a different model.
- An agent can now read the text of a page that it showed before in a chat, for example a daily digest, so it does not repeat the same items. Before, the agent got only the title of the page from its chat history. For an agent on a server, the server must also be on this version.
- Show why a channel request waits. Before, a request stayed queued with no reason when its agent worked in another channel, or when the channel already ran 2 tasks. Now the channel says which channel the agent works in, or that the agent starts when a running task ends. This also shows on a joined server and in the web client when the server is on this version.
- Stop a routine run from the Routines canvas. While the run of the routine in focus works, Stop takes the place of Run now in the top bar, and it also shows in the routine details panel. Stop works for a routine that runs in the agent's chat and for one that runs in its own thread. The run ends as Cancelled, and the agents after it in the routine do not start. Before, the canvas had no Stop, and Run now could start a second run. Members of a joined server get Stop when the server runs this version.
- An agent can now finish quietly when a teammate answers a request that a scheduled, script or webhook routine run sent, and the routine has nothing to tell you. Before, OpenBot refused the agent's "nothing to report" call, and the agent wrote a message in its chat with a notification. A Test run still shows the answer. A joined server must also be on the new version.
- In the Natural response style, an agent chat shows the answer a few seconds after the turn ends, even when the chat did not get the final copy of the answer. Before, the chat could keep the answer hidden until you sent another message (#5847).
- Connect YNAB in Marketplace > Apps opens the YNAB sign-in page again. Before, it stopped with "Redirect URI is not an allowed MCP client". When a sign-in server does not accept OpenBot at all, the dialog now says so in plain words. On a joined server, the server must also be on this version.
- "Delete history" in the channel settings now also deletes the copy of the channel messages that each member keeps in its own channel work. Before, the channel became empty and the members forgot it, but these copies stayed in OpenBot. The members, their agents and the channel setup do not change. On a joined server, the server must also be on this version.
- Open the Claude sign-in page on Windows when you connect Claude or add a Claude account. Before, on some computers no browser page opened, and the sign-in waited for 10 minutes and then failed.
- You can sign in to an MCP server whose sign-in address moves to the same site with
www.in front, for example Lunch Flow. Before, the sign-in stopped with "The OAuth endpoint redirected to …, so the credentials were not forwarded." A sign-in that moves to a different site still stops. On a joined server, the server must also be on this version. - In a voice conversation, the words that you say after a short pause are no longer lost. Before, a pause sent what you said, and the microphone stayed off until that part was sent, so the start of your next words, or all of them, did not reach the agent. Now the microphone keeps listening, and your next words go in the next message.
- An agent no longer writes a note path from a notes app, such as Obsidian, as a file link. Such a link opened nothing and showed "Nothing exists at … in the agent workspace".
- Show an image that you add to a message on a joined server as soon as its upload ends. Before, the message box waited for the app to download the same image back from the server, which took seconds for a large picture.
- A Gemini agent whose earlier session the Gemini CLI can no longer read now starts a new session with its chat history and answers. Before, each message in that chat failed with "Failed to read session …; retry, or load it with session/load". An agent on a joined server gets the fix when the server is also on this version.
- You can resize the right side panel when no pane is open in it: drag the left edge of the panel. Before, the panel showed only the list of panes, and its edge did not move.
- The model picker shows a model that you add in GitHub Copilot's own settings, such as a model with your own key, within about 10 minutes. A model that you remove there also goes away. Before, while agents used GitHub Copilot, the list stayed the same until OpenBot or the server restarted.
- In a thread, when a ChatGPT agent got a teammate's result and then ended its turn with no answer, the thread failed with "ChatGPT ended the turn with no answer". The agent now tries once more by itself, as it already did in its main chat. The thread shows the error only when the second try also gives no answer.
- A ChatGPT (Codex) agent no longer offers to install a Codex plugin or to connect a ChatGPT app, such as Outlook Calendar, with a prompt that OpenBot cannot show. Before, the agent said that a connection prompt was in the chat, but the chat showed nothing. This is now also true when your own Codex settings turn these suggestions on. Apps that you already connected in ChatGPT keep working.
- A video or audio file of up to 64 MB from a joined server plays in the desktop app chat, also after you move the slider. Before, the player could stop with an error or go back to the start, because the app sent the whole file when the player asked for a part of it.
- When an agent cannot finish or stops a request from a WhatsApp contact or group on your personal number, OpenBot no longer sends "OpenBot could not finish this request." or "Stopped." to that chat in your name. The message still gets a reaction, and you see the failure in OpenBot. Your "Message yourself" chat and a number only for OpenBot still get the text. The server must also be on the new version.
- In a voice conversation, a noise that continues, such as running water or dishes, no longer keeps the agent's spoken reply paused. After about two seconds with no words, the reply plays on. A sound that is transcribed with no letters or numbers is not sent as a message.
- After you install a server on another computer with the install command, the server now shows in the server list in a few seconds. Before, the install card and the install dialog could stay at "Waiting for the command to run on your server…" until you restarted OpenBot.
- Let you change the provider of an agent on a joined server while the agent works. The change waits for the next turn and the header shows "After this turn", as on this computer. Before, the server refused the change. The server must also be on this version.
- A provider whose CLI starts slowly from a cold disk now starts. Before, the CLI had 10 s to show its version, and after 3 tries OpenBot stopped starting the provider until you refreshed the providers. Now, after one slow try, OpenBot gives that CLI up to 2 minutes. On a joined server, the server must also be on the new version.
- When Google has no free capacity for a Gemini model, the chat now says that the model is busy and that your plan's quota is not the cause. Before, it said that a rate limit or the plan's quota was reached. On a joined server, the server must also be on the new version.
- With an OpenRouter key, models with very long answers, such as Gemini 4 Carbon and Muse Wonder, now work with a balance of a few dollars. Before, OpenBot asked OpenRouter for up to about 944,000 answer tokens, OpenRouter refused the request, and the chat said that the account had no balance. A reply can now have up to 128,000 tokens. When the account still does not have enough credit for a reply, the message says so and tells you to add credit or select a different model. On a joined server, the server must also be on the new version.
- An agent can save a skill from its own skill folder to the shared skill library. Before, the skill was saved but the agent reported that the installation failed, and each retry failed again. When an installation fails for another reason, the agent now gives that reason.
- In a WhatsApp, Slack, Telegram or Discord conversation, an agent asked a teammate and got the result. When the agent then ended its turn with no answer, the result did not go back to the conversation. The agent now tries once more by itself, as it does in its own chat, and the conversation gets the answer. The conversation shows that the request failed only when the second try also gives no answer. On a server, the server must also be on this version.
- When Kimi's server does not accept your saved Kimi sign-in, the chat now tells you to sign in with Kimi Code. When the server refuses a sign-in that has not expired, Providers also shows Kimi as signed out, with its sign-in button. Before, Kimi still showed as signed in, and each message ended with "Kimi ended the turn with no answer". A new chat without a saved sign-in also showed "RequestError: Authentication required" (#8555). On a joined server, the server must also be on this version.
- Use a ClinePass subscription with Cline agents. The model menu now shows the ClinePass models, and they run on the subscription. Before, every Cline model used Cline Credits and failed when the credit balance was empty.
- The automatic memory review now saves an agent's memories in the language that you write to the agent. Before, it often saved them in English, and then the agent started to answer you in English.
- When OpenCode cannot read the reasoning of a model at a high effort, the chat now tells you to select a lower effort or another model. Before, the chat showed only "Internal error: reasoning start before end". This occurred with some Vercel AI Gateway models in turns with more than one tool step.
- Compact context in a channel's settings compacts the members that can compact on request, such as Codex members, also after a restart or after some minutes with no answer. Before, it failed with "No member of this channel can compact its context now" in every channel. When no member can compact, the message now says why: no member has a conversation in the channel yet, or the members compact their context automatically. On a joined server, the server must also be on this version.
- An agent that creates or changes a channel can now see the channel instructions when it lists the channels. Before, the list did not show them, so the agent told you that the instructions were not saved, but they were. When an agent sends a channel setting that the channel tools do not take, the error now tells the agent which settings it can use, so it can try again correctly.
- On Windows, an OpenCode agent can attach files from its folder and the Shared folder to its answer. Before, the attachment often failed with "ENOENT from lstat", also when the file was there. If a path is still wrong, the error now tells the agent how to write it again.
- A quiet routine run that has nothing to report no longer ends with "Grok stopped responding" after a 5-minute wait. When the agent sends nothing for 30 seconds after it reports no update, OpenBot ends the run as succeeded and shows no error.
- A Gemini agent that waits for a long command now continues by itself when the command ends. Its next steps and their approval requests show in the chat. Before, the agent stopped with no message. About 5 minutes later, OpenBot stopped the Gemini process, and that cancelled the work. You had to send another message to get the result. On a joined server, the server must also have this version.
- In a website editor, an agent's click on a link or button could go to the item next to it, and the click still showed as done. This happened when the page moved its text as the pointer came near, for example to show a block toolbar. Now OpenBot stops that click before the page gets it, finds the item again, and clicks it. On a joined server, the server must also have this version.
- When a Kimi model in OpenCode could not read a PDF that the agent opened, each later message in that chat failed with "contains an invalid part type: file". Now OpenBot starts a new OpenCode session with the chat history and tells you to send the message again without the file, or to choose a model that can read files.
- A ChatGPT agent's helpers can now use OpenBot actions, such as sending a message to another agent. The action runs as the agent that started the helper, and shows in that agent's chat. Before, it failed with "The sending OpenBot agent is unknown." On a joined server, this works when the server runs this version.
- When another agent, a routine or an outside chat starts an agent's turn, and that agent cannot change a workflow, it now asks you to send the request as a new message. Before, it could ask you a question, try the change again after your answer, and fail again, so you had to write the same request again.
- When an agent or you save a new password in the Vault for one subdomain, such as billing.example.com, OpenBot now adds a new login. The login of another subdomain with the same username, such as status.example.com, keeps its password. Before, OpenBot replaced the password of that login, and the old password was lost. On a joined server, the server must also be on this version.
- When an agent saved a new skill whose name differed from a saved skill only in its non-Latin text, such as "da Vinci 投放工作手册" and "da Vinci 回复格式与语气", OpenBot refused it with "A local skill with this name already exists. Revise it instead." That text was wrong, and revising would replace the other skill. Now the message names the saved skill and says to change the Latin letters or digits in the new name.
- Keep a site signed in on a server after you sign in to it on your own computer, also when the site keeps the sign-in in the page storage and not in a cookie. Before, OpenBot sent only the cookies, so some sites stayed signed out in the server's browser, and the request showed as done. The server must also be on this version.
- An agent can now give another agent a Pi model whose name has an
@, such as an OpenRouter preset, as its model or as a backup model. Before, OpenBot said that the model was not available, also when the model picker showed it. - When you ask an agent to delete a memory that you set yourself, the agent now tells you to delete it in its Memories settings. Before, the agent tried other memory tools and then said that the memory could not be deleted.
- Voice model downloads, for replies read aloud and for dictation, now use the proxy settings of your computer, as the built-in browser does. Before, OpenBot ignored these settings. On a network that opens huggingface.co only through a proxy, the download showed "Could not download the voice model. Try again." each time, but your browser could get the same files.
- Dictation on the desktop now uses a model that knows your language before you choose one in Settings > Voice. Before, it always used Parakeet, which knows only 25 European languages, so speech in Korean, Japanese, Chinese, Arabic and other languages came out as wrong words. When the app or the computer uses one of these languages, dictation now uses Whisper large-v3 turbo. The first dictation downloads it (about 1 GB), also when Parakeet is already on the computer. To keep Parakeet, select it in Settings > Voice. A model that you selected before stays as it is.
- A ChatGPT (Codex) agent no longer shows a red notice that
multi_agentis deprecated when the Codex settings file has that setting. The agent works as before. - An agent can click a video player button or another web page control that shows its icon through a slot of a web component. Before, the click failed with "Target is covered by svg".
- A Codex agent can now start a subagent that gets the context of the run in a routine run, as it can in a chat. Before, the subagent did not start, and the routine run showed a "no rollout found" error. On a joined server, the server must also be on this version.
- When OpenBot cannot read Bitwarden, agents still see your saved logins from the OpenBot Vault, 1Password and Proton Pass, and they tell you that Bitwarden could not be read. Before, one password manager that could not be read hid all saved logins from the agent, with no reason. The Bitwarden page now also shows the problem and what to do, next to "Connected". On a server, OpenBot unlocks Bitwarden again at the next sign-in.
- In your own WhatsApp chat ("Message yourself"), each message from an agent no longer ends with one to three empty lines.
- When you ask a channel's lead a question while it waits for the sub-tasks that it gave to other members, your question now starts as soon as a running task ends. Before, it waited until every queued sub-task had started, so the lead seemed to ignore you. While one person's message already runs in the channel, the other work starts in its usual order, so sub-tasks still go on when people keep writing. A routine's request and a message that an agent sends keep their place in the queue. A joined server must also be on this version.
- When an agent continued its plan by itself after a new tool was added, it sometimes forgot your request and asked you to send it again. Now the agent gets your request again when it continues.
- OpenCode no longer gets a new empty session each time OpenBot reads its model list. These sessions showed in the OpenCode app with only "model switched" lines. This needs OpenCode 2.0 or later. Sessions from before this fix stay; you can delete them in OpenCode.
- When an agent's browser tab was not used for some time, OpenBot unloaded its page to free memory and loaded it again on the next use, but did not tell the agent. The address stayed the same, so the agent did not know that its scripts and page state were gone, and its browser tests failed with errors it could not explain. The agent now gets a note that the page was loaded again.
- An agent that tests an MCP server, such as Gmail or Google Drive, no longer shows a Sign in card that cannot work. When the sign-in server of the service does not accept OpenBot, the agent tells you so and does not ask you to sign in again.
- A ChatGPT agent that writes its last words as a short note and then ends its turn with an empty answer now shows that note as its answer. Before, the chat or thread showed no answer (#8837). A joined server needs this version too.
- When an agent cannot stop work that it gave to a teammate, OpenBot now also cancels that agent's requests that still wait in the teammate's queue, so they do not start later. When the user or a different agent also sent a message to that work, the agent now gets the correct reason: only you can stop it, with Stop agent in the teammate's chat.
- When we moved a hosted server to a new machine, files in folders outside the home folder, such as Obsidian vaults in
/srv, did not move with it. Now a move finds these folders first and does not start until they are copied too. - A channel now routes messages when its lead uses a Pi model from a Pi extension, such as
claude-code/claude-opus-5-5. Before, each message failed with "Routing failed. Choose a member or try again." Channel summaries, memory reviews and profile texts with such a model work again too. - A ChatGPT (Codex) agent in a channel can post its task result again. Before, on a busy computer or server, the channel sometimes refused the result with "The channel assignment is no longer active.", and the task stayed on running with no result.
- A tool of an MCP server that you signed in to no longer fails with "OpenBot could not reach the server" when one new connection to the server fails, for example on a VPN. OpenBot now tries to connect once more. It does not send a request again when the server could have received it.
- A Grok agent answers again after its workspace moves, for example after a move to a new server with a different home folder. Before, each message failed with "Path not found.: No such file or directory (os error 2)". Now, when Grok does not have the saved session in the new folder, the agent starts a new Grok session and keeps its chat.
- When an agent gives a wrong id for a saved login, OpenBot no longer says that the login has no password. The agent now gets the correct reason and uses the id that the login list shows.
- A routine whose task says to stop when the work is done now pauses itself when the work is done. Before, each run said that it could not change the routine and sent the same report again, until you paused the routine yourself. The routine stays in your list, so you can turn it on again. A Test run does not pause the routine. On a joined server, the server must also be on this version.
- Scripts, MCP servers and provider settings that read a Vault API key from the shared key folder work again. Before, version 0.70.0 deleted the files in that folder when OpenBot started, and these tools stopped with no message. The folder again has each Vault key that is for all agents. A key that you give only to some agents is not in it.
- A ChatGPT agent no longer compacts its context again and again without progress. Before, when each compaction left the chat too full, ChatGPT compacted after every step, and one chat compacted 559 times until OpenBot restarted. Now OpenBot stops the turn after the third such compaction and says what to change. On a joined server, the server must also be on this version.
- Kimi agents can use an MCP app, such as Tavily, that you connected before OpenBot restarted. Before, the agent continued its old Kimi session, knew the names of the new tools and could not call them.
- When Claude stopped a turn with "You've hit your monthly spend limit", an agent with backup models stopped and did not move to the next model. OpenBot now knows this message as a usage limit, so the agent continues on its next backup model.
- An agent can now send a file or an image alone to a WhatsApp, Telegram, Slack or Discord chat, with no text. Before, the post failed when it had no text, and agents added a "." message to send the file. On a joined server, the server must also be on this version.
- Agents can now use a Proton Pass login on every page of the saved site, as Proton Pass does. For example, a login saved for
cloudflare.comnow also signs in ondash.cloudflare.com. - A Slack workspace or a Telegram chat that sends its messages to a different OpenBot server no longer shows as connected. It now says that it is not linked to this server, and Reconnect links it again. This can happen after you copy the settings to a new server. A joined server must also be on this version.
- A chat no longer stops working when a model behind OpenCode refuses it with "This request has more images than the limit of …". OpenBot now starts a new session with the chat history, as it does for other image limits, and tells you that the chat has too many images. Before, each new message failed again with the same error.
- On a cloud server or a self-hosted server, each turn of a Claude agent with "Workspace only" failed with "Workspace only needs the Claude sandbox, which Claude cannot start on this computer" when the machine had no
socat. The server now installssocatwith its other packages. The server must also be on the new version. - The image viewer shows a small screenshot sharp when the display scale is above 100%, such as 125% or 150% on Windows. Before, the viewer made the image larger than its pixels and the text was blurry. The zoom level now counts screen pixels, so 100% shows the image as an image app does.
- When an agent reads a video that has captions, such as a YouTube video, it now gets the full transcript from the captions. Before, agents got no transcript for videos longer than about 100 minutes, and only the first 30 minutes of shorter videos. When the agent asks only for the text, OpenBot no longer downloads the video. For a long video without captions, the agent is told that the video is too long, not that it has no sound.
- A Claude agent now keeps the model in its profile. Before, an agent on the model that Claude Code showed as its default, such as Opus 5.5, changed to another model, such as Fable 5.1, when Claude Code changed its default after a usage limit. The profile still showed the first model. For an agent on a server, the server must also be on the new version.
- Scripts and routines that read an API key for one agent at its old path,
agent-api-keys/<agent>/<NAME>, work again after an update from 0.69 or earlier. Before, 0.70.0 moved these keys into the Vault and deleted the files, so these scripts stopped with a missing key. The path now links to the agent's copy of the Vault key, and comes back at the next start for agents that are already on 0.70.0. A server must also be on the new version. - The yearly price on the hosted server plans no longer breaks onto two lines in USD and BRL.
- On a cloud server or a self-hosted server with Ubuntu 26.04, each command of a Claude agent with "Workspace only" failed with "apply-seccomp: ... caller must provide CAP_SYS_ADMIN". The server now adds one AppArmor rule for
bwrap, andopenbot uninstallremoves it. The server must also be on the new version. - When you ask an agent to change the color of an agent's avatar, the agent now changes the color of the generated bot face. Before, it could replace the face with a one-color image.
- A channel member that keeps working after a background command, such as a test run, now shows its progress and its answer under its task in the channel. Before, the task closed when the member's turn ended, and the work after the command showed only in the agent's own chat, so the member looked stuck. On a joined server, the server must also run this version.
- Show when a Discord server moves to another OpenBot server. When you connect the same Discord server on a second OpenBot server, the first one stops answering there. Before, the first server still showed "Connected", and its agents got the error "unknown_guild". Now it shows "Needs attention" and tells you to select Reconnect to link the Discord server to it again. Agents get a plain message.
Security
- Say in the Vault that every agent can read the API key files of the other agents, because all agents run as the same system user. The choice of agents for a key, and "Only this agent", control which agents OpenBot gives the key to. Before, the Vault said that agents read API keys from a private file, which was not true.