Last release today
26 Aug 2026
Ships on a steady schedule
a new release about every 8 days
Rarely documented
notes for 7 of 48 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
2440 releases · first in 2024
Release timeline
2440 releases since 2024Releases
- v0.25.2-0.20260804043556-5d60413f69f24 Aug 2026pre-release
Nothing published for this version
- v0.25.2-0.20260803230347-441a15c6f6983 Aug 2026pre-release
Nothing published for this version
- v0.25.2-0.20260803193209-33890ae1104d3 Aug 2026pre-release
Nothing published for this version
- v0.25.13 Aug 2026
Release notes
Open source →What's Changed
- enhance: add configuration to force DCR by @thedadams in #7438
Full Changelog: v0.25.0...v0.25.1
- v0.25.1-0.20260803181307-a77574a264c23 Aug 2026pre-release
Nothing published for this version
- v0.25.031 Jul 2026
Release notes
Open source →We're excited to announce the v0.25.0 release of the Obot Platform. This release adds tool call enforcement for local AI clients, MCP tunnels for reaching MCP servers on private networks, Agent Auth Scopes, and a new set of Obot editions.
Big Updates
Tool Call Enforcement for Local AI Clients
Obot can now control which tool calls Claude Code, Codex, and Cursor are allowed to run on enrolled devices. Administrators define an allowlist as part of device management and Obot Sentry checks each tool call against it before the client runs the tool. A call runs only when an allow rule matches it.
A rule can cover a broad category, such as all Obot-hosted MCP servers or all built-in agent tools, or it can name a single MCP server by URL, hostname, npm or PyPI package, or connector display name. Enforcement fails closed, so Obot Sentry blocks any call it cannot match or cannot get a decision on. A new Enforcement Decisions view under Device Management records every call that was checked and shows why it was allowed or blocked.
Note: Tool call enforcement is experimental and is not yet recommended for production use, so test your allowlist on non-production devices first. Enforcement is also not supported for Visual Studio Code, because its pre-tool hook does not say which MCP server a tool belongs to. Local tool call auditing for Visual Studio Code continues to work. See #7425 for details.
See the docs for details.
MCP Tunnels
Obot can now reach remote MCP servers that run on a private network and are not routable from the Obot deployment. An
obot tunnelprocess runs on a machine that can reach both Obot and the private MCP server, and it opens an outbound, authenticated WebSocket connection that Obot sends requests through. The machine running the tunnel does not need an inbound port.Tunnels are especially useful if you use Obot Cloud, where we run Obot for you and it sits outside your network. You run the tunnel process inside your network, and you do not have to expose the server to the internet or open a port in your firewall.
Administrators create a tunnel under MCP Management > MCP Tunnels, and each tunnel carries a list of allowed URLs that Obot checks on every request. A remote MCP catalog entry then selects the tunnel by its ID. Tunnels also work across replicas.
See the docs for details.
Agent Auth Scopes
We reworked how you set up access for an autonomous or headless agent, so you can grant an agent only what it needs to do its job. What used to be called API keys are now called Agent Auth Scopes, and the change is the start of a larger effort to extend Obot's authorization model to more agentic workloads. You create a scope and Obot generates an API key that the agent uses instead of signing in through a browser.
A scope can be limited to specific MCP servers or to every server you can reach. On top of that, it can grant access to the Obot API, the LLM proxy, skill downloads, and device scans, and it can carry an expiration date.
The interface moved to match. Users now reach scopes from the top level of the Obot app navigation, and administrators reach them under Auth Management, which was previously called User Management.
See the docs for details.
Obot Community Edition and Usage Limits
Obot is now available in three editions. You can upgrade from one to the next inside the app without changing images or redeploying. The default Obot edition supports up to 100 users and 100 devices, with the GitHub, Google, and Local auth providers. Obot Community keeps the same limits and adds enterprise-grade auth providers such as Entra, Okta, JumpCloud, and Auth0. Obot Enterprise removes the limits and includes enterprise support.
See the docs for details and read the Upgrade Notes below before you upgrade.
Improvements
- Model access policies now accept only LLM models. Non-LLM models are pruned from the default policy, and Obot warns you to remove them from a custom policy.
- The getting started guides now cover device management and MCP filters, and the Obot Sentry guide has more detailed install steps.
- Missing Kubernetes secret bindings are now highlighted when you configure an MCP server.
- The license provider now handles multi-replica deployments better and no longer depends on a single replica.
- Auth provider HTTP calls no longer hold a database transaction open while they run.
- Provider model IDs that contain slashes now resolve correctly.
- OAuth error redirect descriptions are now sanitized before they are returned.
- The local auth provider login form now treats the password as sensitive input.
- Copying a code snippet no longer includes a trailing newline.
- Entries in the MDM download package are now stamped with a modification time.
Upgrade Notes
Obot end user licensing has changed. Starting with v0.25.0, Obot is offered in three editions, which are Obot, Obot Community, and Obot Enterprise. The code remains 100 percent MIT licensed, and parts that were previously closed source, including the enterprise auth providers and model providers, are now open source. Before you upgrade, check how the change affects your deployment:
- If you already have an Enterprise license, nothing changes for you.
- If you run without a license and have more than 100 users or devices, existing users and devices keep working, but you will not be able to add new ones.
- Model providers that previously required an enterprise license are now available at every edition.
- If you run without an enterprise license and use GitHub or Google as your auth provider, you are now subject to the 100 user limit, which did not apply to you before.
Tool call enforcement is not supported for Visual Studio Code. Claude Code, Codex, and Cursor support enforcement. Visual Studio Code does not, because its pre-tool hook does not say which MCP server a tool belongs to. Local tool call auditing for Visual Studio Code continues to work. See #7425 for details.
What's Changed
- fix: make the license provider more HA by @thedadams in #7292
- chore: update vulnerable dependencies by @calvinmclean in #7261
- fix: don't hold a DB transaction across auth provider HTTP calls by @ibuildthecloud in #7228
- chore: update vulnerable UI dependencies by @calvinmclean in #7304
- docs: update example k8s values file by @cloudnautique in #7306
- feat: tool-call enforcement backend for MDM configurations by @g-linville in #7282
- chore: remove Bifrost LLM dispatch by @calvinmclean in #7233
- chore: use CODEOWNERS for dependency reviews by @calvinmclean in #7316
- fix: intialize composite clients upfront by @thedadams in #7315
- feat: add Community Edition enrollment API and UI by @thedadams in #7303
- fix: highlight missing Kubernetes secret bindings by @calvinmclean in #7246
- enhance: admin devices & mcp filters getting started guide by @ivyjeong13 in #7319
- feat(tunnels): add managed MCP WebSocket tunneling by @thedadams in #7311
- fix: always set peer config in helm chart by @thedadams in #7327
- chore: update "getting started" obot sentry guide steps & text by @ivyjeong13 in #7326
- fix: send spec-ful issuer by @thedadams in #7328
- chore: add logging for oauth errors by @thedadams in #7329
- enhance: update My Api Keys -> Agent Auth Scope by @ivyjeong13 in #7323
- fix: remove undesired fields from the tunnels table by @thedadams in #7338
- feat: add support for user limits by @thedadams in #7322
- fix: resolve provider model IDs with slashes by @calvinmclean in #7307
- fix: ui changes for agent auto scope details & text updates by @ivyjeong13 in #7344
- fix(license): validate community email domains by @thedadams in #7342
- fix: prefer tunnel display name to id in errors by @thedadams in #7337
- chore(ui): update MCP tunnels by @thedadams in #7340
- fix: disallow removing in-use allowed URLs for tunnels by @thedadams in #7339
- fix(ui): offer community license from resolve dialog by @thedadams in #7345
- enhance: return user limit and user count in version API by @thedadams in #7349
- fix(ui): show disconnected MCP tunnel status by @thedadams in #7343
- feat: add ui for enforcement and backend tweaks by @g-linville in #7332
- chore: change Community Edition to Obot Community by @thedadams in #7351
- fix: use sensitive input for local auth login by @ivyjeong13 in #7346
- chore: change to forbidden status for too many users by @thedadams in #7360
- fix: disable interaction w/ "getting started" guides & add steps in obot-sentry guide by @ivyjeong13 in #7359
- fix: community edition license ui updates by @ivyjeong13 in #7352
- fix: reject resource URLs without an MCP ID by @thedadams in #7361
- docs: add enforcement by @g-linville in #7362
- fix(ui): avoid duplicate tunnel disconnected status by @thedadams in #7365
- fix: stamp MDM download zip entries with a modification time by @njhale in #7363
- chore: update docs w/ reskin api keys -> agent auth scopes by @ivyjeong13 in #7364
- enhance(devices): add limits similar to users by @thedadams in #7368
- fix: update licensing page & add community logo by @ivyjeong13 in #7370
- fix: strip trailing newline when copying code snippets by @njhale in #7372
- Route OAuth debugger requests through MCP tunnels by @thedadams in #7355
- fix(oauth): sanitize error redirect descriptions by @thedadams in #7369
- fix: ensure backend APIs are not authorized by UI by @thedadams in #7375
- chore: general ui cleanup by @ivyjeong13 in #7358
- docs/architecture diagram image by @cjellick in #7408
- docs: mention Cursor settings for enforcement by @g-linville in #7373
- fix: ensure caches are started before start the server by @thedadams in #7411
- fix: limit models & model access policy to llm/llm-mini by @ivyjeong13 in #7341
- fix: use creatable capabilities constant in agent auth scope details view by @ivyjeong13 in #7416
- fix(docs): disable Codex web search for Azure and Bedrock by @calvinmclean in #7418
- chore: bump obot-sentry default version to v0.1.4 by @njhale in #7421
- fix: set correct tab when linking to /admin/devices by @g-linville in #7419
- fix(ui): more general ui cleanup by @ivyjeong13 in #7422
- chore: update CLAUDE.md by @g-linville in #7415
- chore: enhancement UI: improve table by @g-linville in #7427
- fix: sticky audit log table headers when scrolling by @ivyjeong13 in #7428
- Docs: Explain new license tiers by @cjellick in #7424
- Docs: Cut v0.25.0 docs version by @cjellick in #7429
Full Changelog: v0.24.1...v0.25.0
- v0.25.0-rc1.0.20260731220513-1f6ea1a88c9e31 Jul 2026pre-release
Nothing published for this version
- v0.25.0-rc1.0.20260731205051-82d46beeeb7231 Jul 2026pre-release
Nothing published for this version
- v0.25.0-rc1.0.20260731190921-551f5b712bdc31 Jul 2026pre-release
Nothing published for this version
- v0.25.0-rc1.0.20260731180426-539d72abc6c231 Jul 2026pre-release
Nothing published for this version
- v0.25.0-rc131 Jul 2026pre-release
Release notes
Open source →What's Changed
- fix: make the license provider more HA by @thedadams in #7292
- chore: update vulnerable dependencies by @calvinmclean in #7261
- fix: don't hold a DB transaction across auth provider HTTP calls by @ibuildthecloud in #7228
- chore: update vulnerable UI dependencies by @calvinmclean in #7304
- docs: update example k8s values file by @cloudnautique in #7306
- feat: tool-call enforcement backend for MDM configurations by @g-linville in #7282
- chore: remove Bifrost LLM dispatch by @calvinmclean in #7233
- chore: use CODEOWNERS for dependency reviews by @calvinmclean in #7316
- fix: intialize composite clients upfront by @thedadams in #7315
- feat: add Community Edition enrollment API and UI by @thedadams in #7303
- fix: highlight missing Kubernetes secret bindings by @calvinmclean in #7246
- enhance: admin devices & mcp filters getting started guide by @ivyjeong13 in #7319
- feat(tunnels): add managed MCP WebSocket tunneling by @thedadams in #7311
- fix: always set peer config in helm chart by @thedadams in #7327
- chore: update "getting started" obot sentry guide steps & text by @ivyjeong13 in #7326
- fix: send spec-ful issuer by @thedadams in #7328
- chore: add logging for oauth errors by @thedadams in #7329
- enhance: update My Api Keys -> Agent Auth Scope by @ivyjeong13 in #7323
- fix: remove undesired fields from the tunnels table by @thedadams in #7338
- feat: add support for user limits by @thedadams in #7322
- fix: resolve provider model IDs with slashes by @calvinmclean in #7307
- fix: ui changes for agent auto scope details & text updates by @ivyjeong13 in #7344
- fix(license): validate community email domains by @thedadams in #7342
- fix: prefer tunnel display name to id in errors by @thedadams in #7337
- chore(ui): update MCP tunnels by @thedadams in #7340
- fix: disallow removing in-use allowed URLs for tunnels by @thedadams in #7339
- fix(ui): offer community license from resolve dialog by @thedadams in #7345
- enhance: return user limit and user count in version API by @thedadams in #7349
- fix(ui): show disconnected MCP tunnel status by @thedadams in #7343
- feat: add ui for enforcement and backend tweaks by @g-linville in #7332
- chore: change Community Edition to Obot Community by @thedadams in #7351
- fix: use sensitive input for local auth login by @ivyjeong13 in #7346
- chore: change to forbidden status for too many users by @thedadams in #7360
- fix: disable interaction w/ "getting started" guides & add steps in obot-sentry guide by @ivyjeong13 in #7359
- fix: community edition license ui updates by @ivyjeong13 in #7352
- fix: reject resource URLs without an MCP ID by @thedadams in #7361
- docs: add enforcement by @g-linville in #7362
- fix(ui): avoid duplicate tunnel disconnected status by @thedadams in #7365
- fix: stamp MDM download zip entries with a modification time by @njhale in #7363
- chore: update docs w/ reskin api keys -> agent auth scopes by @ivyjeong13 in #7364
- enhance(devices): add limits similar to users by @thedadams in #7368
- fix: update licensing page & add community logo by @ivyjeong13 in #7370
- fix: strip trailing newline when copying code snippets by @njhale in #7372
- Route OAuth debugger requests through MCP tunnels by @thedadams in #7355
- fix(oauth): sanitize error redirect descriptions by @thedadams in #7369
- fix: ensure backend APIs are not authorized by UI by @thedadams in #7375
- chore: general ui cleanup by @ivyjeong13 in #7358
- docs/architecture diagram image by @cjellick in #7408
- docs: mention Cursor settings for enforcement by @g-linville in #7373
- fix: ensure caches are started before start the server by @thedadams in #7411
- fix: limit models & model access policy to llm/llm-mini by @ivyjeong13 in #7341
- fix: use creatable capabilities constant in agent auth scope details view by @ivyjeong13 in #7416
- fix(docs): disable Codex web search for Azure and Bedrock by @calvinmclean in #7418
- chore: bump obot-sentry default version to v0.1.4 by @njhale in #7421
Full Changelog: v0.24.1...v0.25.0-rc1
- v0.24.226 Aug 2026
Nothing published for this version
- v0.24.2-0.20260731162125-c2f0f094d02931 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260731145701-41f2b3fe8d3e31 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260731135659-f910f588aa5f31 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260731011318-9db722dda1af31 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730224638-d158ed194f2930 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730210801-0eabbf86374e30 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730204546-c9ef71e0da5e30 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730191157-1b0f3e431c7330 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730172911-2dd55bb7e6da30 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730162301-5c7c58f0190930 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730132558-71bfdf87f87730 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260730000406-887fc6af10f030 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729232143-e2a9e164d07f29 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729215911-c842444e832029 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729205625-7b26b7344b5b29 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729183123-97b1228f285329 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729173318-28f457ce479e29 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729143932-47dcd88cc0ff29 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729123533-dade8d5b0df229 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260729003359-f58c4829012429 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260728194609-6cbae56fbb3d28 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260728165542-e57eeebc793f28 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260728152740-e1026a9f0dfb28 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260727224527-e6e600209a5527 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260727200732-576c752ed7a727 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260727171744-525abb51736827 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260727155007-0ab569083fa327 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260724230716-802c81619d1c24 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260724211617-38e966992d8924 Jul 2026pre-release
Nothing published for this version
- v0.24.2-0.20260724193813-c196ace1a1ab24 Jul 2026pre-release
Nothing published for this version
- v0.24.124 Jul 2026
Release notes
Open source →What's Changed
- fix: allow creating MCP servers without URL during setup by @thedadams in #7299
- chore: bump obot sentry assets to v0.1.2 by @njhale in #7300
Full Changelog: v0.24.0...v0.24.1
- v0.24.1-0.20260724175045-9903b2d1861924 Jul 2026pre-release
Nothing published for this version
- v0.24.1-0.20260724142914-30d58887d98a24 Jul 2026pre-release
Nothing published for this version
- v0.24.024 Jul 2026
Release notes
Open source →We're excited to announce the v0.24.0 release of the Obot Platform. This release expands Device Management with AI client audit logging and MDM support, brings full audit logging to the LLM Gateway, and adds AWS Bedrock and Azure support to the LLM Gateway. It also reworks Obot's MCP proxy to substantially reduce its resource footprint.
Big Updates
Enhanced Device Management: AI Client Audit Logging and MDM Support
Obot's Device Management feature expands this release, built around a new companion tool called Obot Sentry. Administrators can define an MDM configuration, issue enrollment keys, and generate per-platform install packages so devices enroll themselves. Enrolled devices authenticate with device-bound keys and submit scans over short-lived signed tokens.
Once installed, either manually or pushed through an MDM, Obot Sentry does two things: it submits periodic device scans, and it installs managed hooks for supported local AI coding tools, currently Claude Code, Codex, Visual Studio Code, and Cursor. Every tool call those tools make is submitted back to Obot and recorded in the MCP Audit Logs, normalized into the same event schema as MCP tool calls so the two appear side by side. See the Upgrade Notes below if you export audit logs today, as the exported format has changed.
We are initially shipping with first-class support for Microsoft Intune, and plan to add other MDM providers such as Jamf in future releases.
Device Management, including MDM enrollment, remains in Beta, and the
obot scanCLI command has been removed in favor of Obot Sentry-based scanning. See #7249 for details.See the docs for details.
LLM Audit Logs
Obot now keeps a full audit trail of LLM Gateway activity. Every request that flows through the gateway is logged with its model, provider, user-agent, token usage, and outcome, and users with the Auditor role can view full request and response bodies. A new Audit Logs page under LLM Gateway supports filtering by provider, model, request path, status, user-agent, and session, along with one-time and scheduled export to S3, GCS, or Azure.
See the docs for details.
New LLM Gateway Model Providers: AWS Bedrock, Azure, and Generic Responses
The LLM Gateway adds three new provider options this release. AWS Bedrock can be configured with either static IAM credentials or a Bedrock API key, and routes Anthropic, OpenAI, and Google model families hosted on Bedrock through AWS inference profiles. Azure can be configured with an API key or an Entra ID service principal, covering both Azure OpenAI and Microsoft Foundry deployments. The Generic Responses provider, now out of experimental, lets Obot call any OpenAI Responses API compatible endpoint such as Ollama or LiteLLM.
If you were already using the previous Bedrock provider, you may need to update your API keys and reselect models, since credentials are scoped differently under the new provider. See the docs for setup details.
Composite MCP Servers: GitOps Support
Composite MCP catalog entries can now be defined through the Git-backed MCP catalog like any other server type. Component servers are referenced by a stable entry key instead of an internal catalog-entry ID, so a composite entry can reference components from its own catalog source or from a different one entirely.
MCP Proxy Rework: A Smaller Footprint
Obot's MCP proxy has been rewritten this release. Previously, remote and composite MCP servers were fronted by a distributed proxy, meaning every remote or composite server required its own Kubernetes pod or Docker container just to proxy traffic to it, consuming significant additional resources across a deployment. That proxy has now been moved entirely into the main Obot server process.
The result is a substantially smaller footprint: Obot now only deploys a pod or container when you choose to actually host an MCP server yourself (via the
npx,uvx, orcontainerizedruntimes), rather than for every remote or composite server it fronts.See the Upgrade Notes below if you run Obot with the Docker backend.
Built-in Local Authentication
Obot now includes a built-in local authentication provider backed by its own database, so users can get up and running quickly when trying out Obot instead of spending time to integrate with an OAuth provider. It's aimed at development and testing and is not suited for production deployments.
Administrators enable the Local provider from Admin > Auth Providers, restrict it to specific email domains (or allow any), and create user accounts from a "Manage Users" dialog, which also handles password resets. Local users cannot change their own password; an admin must reset it, which signs the user out of all existing sessions. Passwords are hashed with Argon2id and are never stored or returned in plaintext.
Local authentication is intended for development and testing, not for production use.
See the docs for setup details.
Getting Started Guides
Obot now includes an in-app guided tour that highlights real interface elements and steps users through common tasks, replacing an older static tour. Separate guide tracks are available for end users, covering connecting to an MCP server and installing skills or the CLI, and for administrators, covering catalog entry creation and MCP access policies.
Guides can be hidden or re-enabled from the profile menu under My Account.
Improvements
- Shared, admin-managed Git credentials can now be reused across Skill Repository and MCP Catalog sources instead of pasting a personal access token into each one.
- SkillRepository sources can now sync from any Git host using a Personal Access Token, not just GitHub.
- MCP config secret bindings can be managed directly from the UI when creating or configuring multi-user MCP servers.
- Client ID Metadata Documents (CIMD) are now supported, letting OAuth clients present a URL-hosted metadata document instead of performing dynamic client registration.
- Administrators can cap CPU and memory maximums for MCP servers with new environment variables, blocking catalog entries and defaults from requesting more.
- Database connection settings (max open and idle connections, connection lifetime) can now be configured separately for the primary database, kinm, and the auth provider.
- Users connecting to an MCP server for the first time from an external client can now supply required configuration inline instead of the connection failing outright.
- Deprecated catalog entries now show a notice in the catalog, connect, and server-management views.
- Administrators can configure an app-wide notification banner, grouped with Branding and License under a new App Management section.
- LLM Gateway usage is now tracked with estimated USD cost per model, based on a new pricing pipeline.
- SSRF protections against loopback, private, and link-local addresses now also apply to Client ID Metadata Document fetching and general OAuth URL fetching.
Upgrade Notes
This release contains several behavior changes and known issues. Review carefully before upgrading.
Helm chart configuration overhaul. Kubernetes installations now separate sensitive settings into a Secret and non-sensitive settings into a ConfigMap. Update your custom values before upgrading:
- Rename
config.existingSecrettosecret.existingSecret. - Move credentials and other sensitive values from
config.*tosecret.*, including database DSNs, API keys, encryption keys, bootstrap tokens, license keys, and artifact-storage credentials. Known sensitive values left underconfignow cause chart rendering to fail. - External Secrets must provide all required sensitive values; bootstrap tokens are generated and preserved only for chart-managed Secrets.
- When combining
secret.existingSecretwithmcpImagePullSecrets, provideOBOT_SERVER_MCPIMAGE_PULL_SECRETSin the external Secret. OBOT_SERVER_MCPBASE_IMAGEno longer receives an automatic chart-version tag, so configure an explicit image tag if you relied on that behavior.
Additional Helm changes in this release:
- A startup probe now gives Obot up to 20 minutes to become healthy.
- Ingress configurations require at least one host when enabled.
- MCP namespaces can be configured with a Kubernetes ResourceQuota.
- Setting
persistence.storageClassto"-"explicitly disables dynamic storage-class selection. - Configuration changes now automatically trigger pod rollouts.
See #7252 for details.
obot scanCLI command removed. Device scanning now happens through Obot Sentry, installed manually or via MDM, instead of the CLI. If you have scripts or automation callingobot scan, they will need to move to Obot Sentry instead. See #7249 for details.Audit log export format has changed. The JSON shape of exported audit logs (S3, GCS, or Azure) has changed completely, replacing the old flat per-log-type shape with a single normalized event envelope shared by MCP and local-agent tool-call events. Anything consuming exported logs downstream will need to be updated to the new shape. See #7174 for details.
Old Slack MCP server deprecated. The original Slack MCP server in Obot's default catalog is now marked deprecated in favor of a new official Slack MCP server. There is no automatic migration; existing users should switch manually. The legacy Slack server will be removed completely by the end of August 2026. See #7173 for details.
Docker-mode users should clean up old shim containers. As part of the MCP proxy rework above, Kubernetes deployments clean up old shim containers automatically, but Docker-mode deployments will not remove them on their own. Remove them with:
docker ps -aq --filter "label=mcp.deployment.id" | xargs docker rm -fKnown issue with Obot Sentry: macOS manual installs create multiple device identities. When Obot Sentry is installed using the macOS standalone binary instructions, audit hooks can use a different device identity from device scans. As a result, hook audit logs and inventory scans appear under different device IDs. See #7298 (#7298) for status and updates.
Behavior Change: Basic users no longer see audit logs or usage for their MCP servers. We found this confused basic users and didn't add much to their experience.
See #7100 for details.
What's Changed
- chore: clean up image builds by @njhale in #6992
- feat: add support for CIMD by @thedadams in #6964
- feat: admin ability to add app notification banner by @ivyjeong13 in #6999
- chore: dependabot, dompurify, & lucide-svelte deprecation by @ivyjeong13 in #7003
- fix: only check for a valid license once per day by @thedadams in #7011
- fix: sort devices initally by scannedAt descending by @ivyjeong13 in #7008
- fix: save sidebar scroll state on navigation for sidebar in Layout by @ivyjeong13 in #7013
- enhance: how to connect ai client updates by @ivyjeong13 in #7000
- chore: migrate mcp audit logs to support local agent audit logs by @g-linville in #6928
- Revert "chore: migrate mcp audit logs to support local agent audit logs by @g-linville in #7030
- feat: add ability to configure MCP server on first connect by @thedadams in #7007
- enhance: make redirect countdown dynamic by @thedadams in #7036
- enhance: more logging around successful license validation by @thedadams in #7037
- docs: fix private IP MCP env var by @thedadams in #7035
- chore: bump images for nanobot stdio fix by @thedadams in #7027
- fix: show partial pat in edit of mcp catalog source url by @ivyjeong13 in #7019
- chore: remove redunant check by @thedadams in #7040
- enhance: disallow loopback, private IP and link-local in more places by @thedadams in #7039
- fix: populate tool preview action should not be visible for basic users by @ivyjeong13 in #7038
- chore: bump nanobot to pick up extra logging by @thedadams in #7048
- enhance: track token burn in usd by @njhale in #7020
- fix: store OAuthMetadata raw-JSON fields as runtime.RawExtension by @zmiievskyi in #7053
- chore: change language when user configuration is required by @thedadams in #7051
- fix: allow users to provide optional configuration by @thedadams in #7054
- fix: displayName for magic link, id for command & no prompt for vscode magic link by @ivyjeong13 in #7043
- fix: stop refreshing invalid MCP tokens by @thedadams in #7057
- chore: add resource requirements to nanobot shims by @g-linville in #7044
- fix: stop showing "close this window" message when redirecting by @thedadams in #7061
- fix: allow composite MCP servers to use private IPs by @thedadams in #7064
- fix: stop blocking private IPs in the shim by @thedadams in #7067
- fix: stop block nanobot private IPs in Kubernetes by @thedadams in #7068
- feat: Manage MCP config secret bindings from the UI by @calvinmclean in #6754
- feat: GitOps for composite MCP servers by @calvinmclean in #7055
- fix: reduce the chance of conflict when configuring MCP server by @thedadams in #7074
- enhance: add OBOT_SERVER_HIDE_K8S_DETAILS toggle for server scheduling UI by @ivyjeong13 in #7069
- fix: do not allow multi-user remote catalog entries by @calvinmclean in #7073
- fix: secret bound config styling inconsistency by @ivyjeong13 in #7071
- chore: revamp chart configuration by @drpebcak in #6693
- chore: migrate MCPAuditLog type to support local tool calls by @g-linville in #7062
- chore: update/remove tag workflows by @drpebcak in #7084
- fix: show env var name in MultiUser launch UI by @calvinmclean in #7079
- fix: launch catalog entry / troubleshooting for debuggability by @ivyjeong13 in #7082
- feat: add env vars for k8s resource maximums by @g-linville in #7012
- feat: add API for local agent audit log submission by @g-linville in #7086
- fix: check access to MCP ID during OAuth by @thedadams in #7104
- chore: drop device scan from cli by @njhale in #7102
- fix: mcp catalog administrative tools & debugging, filter configured servers by owner id by @ivyjeong13 in #7103
- docs: add Slack MCP tutorial by @g-linville in #7091
- fix: hydrate composite multi-user components by @calvinmclean in #7106
- feat: add llm gateway audit log by @calvinmclean in #7089
- fix: short description catalog entry support and populate tool load fix by @ivyjeong13 in #7096
- enhance: show notices for deprecated catalog entries by @g-linville in #7093
- fix: block missing mcp secret bindings by @calvinmclean in #7107
- fix: support MCP servers with empty ToolOverrides and improve docs by @calvinmclean in #7098
- enhance: add device enrollment and device-authenticated scan submission by @njhale in #7087
- chore: allow configuring topologySpreadConstraints in chart by @drpebcak in #7117
- chore: bump dependencies by @thedadams in #7120
- fix: hydrate composite catalog entry refs by @calvinmclean in #7119
- fix: hide entryKey diff by @calvinmclean in #7133
- fix: resolve composite server details components by @calvinmclean in #7134
- chore: add PDB to chart by @g-linville in #7138
- feat: collapse shims into Obot by @thedadams in #7124
- feat: LLM Audit Log API and UI by @calvinmclean in #7105
- chore: bump kinm by @thedadams in #7151
- enhance: update initial configure process when agents disabled and device dashboard layout change by @ivyjeong13 in #7123
- fix: add leader election to local k8s router by @thedadams in #7150
- Docs: drop pgvector requirement by @cjellick in #7153
- fix: start Obot with a SQLite database by @calvinmclean in #7145
- chore: update docusaurus dependencies by @ivyjeong13 in #7152
- fix: enforce max char limit for catalog entry short description (160 chars) by @ivyjeong13 in #7144
- enhance: remove composite MCP containers by @thedadams in #7140
- fix: correctly display, filter, and rename message policy activity in audit logs by @calvinmclean in #7148
- chore: bump nanobot for oauth protected metadata fixes by @thedadams in #7162
- fix: filter out /models requests by default in LLM audit logs by @calvinmclean in #7158
- feat: AWS Bedrock LLM Gateway by @calvinmclean in #7126
- feat: add export feature for LLM Audit Logs by @calvinmclean in #7141
- fix: enforce buttons in form don't trigger submit by @ivyjeong13 in #7167
- feat: first time user tour/getting started guides by @ivyjeong13 in #7159
- fix: update LLM filter options from draft by @calvinmclean in #7164
- feat: add Generic Responses Model Provider to LLM Gateway by @calvinmclean in #7166
- feat: add local agent tool call audit logs by @g-linville in #7136
- fix: AWS Bedrock API Gateway setup and errors by @calvinmclean in #7183
- fix: show model discovery filter status by @calvinmclean in #7179
- fix: correct LLM audit log export filters by @calvinmclean in #7177
- fix(composite): stop using proxy for tool previews by @thedadams in #7180
- fix: address catalog-entry form validation bugs by @ivyjeong13 in #7185
- feat(db): add more fine-grained db connection config by @thedadams in #7189
- feat: Azure compatibility for LLM Gateway by @calvinmclean in #7165
- fix(composite): ensure components are deployed and contactable by @thedadams in #7202
- fix: capture LLM audit session IDs by dialect by @calvinmclean in #7193
- fix: improve auth provider path by @thedadams in #7206
- feat: mdm configuration management and device-config downloads by @njhale in #7139
- fix: remove redundant audit log model column by @calvinmclean in #7194
- fix: identify Claude Code from session header by @calvinmclean in #7205
- fix: improve LLM audit error details by @calvinmclean in #7204
- chore: audit logs: remove target.resolved field by @g-linville in #7208
- fix: fail sooner when command fails by @thedadams in #7211
- fix: alway prompt configuration for composite & composite/remote server details route fix by @ivyjeong13 in #7195
- fix(k8s): restart deployment watch every 5 seconds by @thedadams in #7214
- fix: use 24-hour audit log timestamps by @calvinmclean in #7215
- feat: support SkillRepository from any Git source with PAT by
Note truncated.
- v0.23.414 Jul 2026
Release notes
Open source → - v0.23.4-rc114 Jul 2026pre-release
Release notes
Open source → - v0.23.325 Jun 2026
Release notes
Open source →What's Changed
- chore: bump nanobot to pick up extra logging by @thedadams in #7049
Full Changelog: v0.23.2...v0.23.3
- v0.23.222 Jun 2026
Release notes
Open source →This is a patch release to address a rate-limiting issue with our licensing provider.
Security Advisories and Fixes
As part of this patch release, we’re also publishing 3 security advisories. These were fixed in the v0.23.0 release, so you’re only affected if you’re on a release less than or equal to v0.22.1.
- OAuth Dynamic Client Registration Enables API Token Theft via Audience Confusion (High)
- MCP Registry API readable without authentication (Moderate) (Thanks @hewei-gikaku)
- Server-Side Request Forgery via remote MCP server URL (High)
Full Changelog: v0.23.1...v0.23.2
- v0.23.2-rc122 Jun 2026pre-release
Nothing published for this version
- v0.23.2-0.20260724010045-8766dd064be224 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723234609-a9a1e229334823 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723214514-bc738286722523 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723203806-83c85230e68f23 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723191228-e95cb09cfa5923 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723170404-fb5019b698e423 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723144255-38a42075118723 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723133415-14f79cce016823 Jul 2026pre-release
Nothing published for this version
- v0.23.2-0.20260723070807-0d56fff1f52923 Jul 2026pre-release
Nothing published for this version