Podman Desktop 1.26 Release
Podman Desktop 1.26 Release! ๐

Podman Desktop 1.26 is now available. Click here to download it!
This release brings exciting new features and improvements:
- Host certificate sync to Podman VMs: Synchronize local certificates to running Podman VMs through the command palette.
- Extension authentication access control: Extensions now require explicit user permission for authentication access with improved session management.
- Pull image workflow improvements: Image pulling now includes a cancel button and quick action buttons for better workflow management.
- Environment-based filtering: Container, pod, image, volume, and network pages now support filtering by environment.
- Additional managed configuration settings for extensions: Two new managed configuration settings allow administrators to disable custom extension installs and hide the extension catalog.
- Troubleshooting section in Settings: A new troubleshooting entry has been added to the settings menu for quicker access to diagnostics.
- Confirmation dialog for connection deletion: Deleting a provider connection now shows a confirmation dialog to prevent accidental removal.
Release detailsโ
Host certificate sync to Podman VMsโ
Working behind a corporate proxy or pulling from internal registries? You can now sync your local certificates to running Podman VMs directly from the command palette. Open the command palette with F1 and run the Podman: Synchronize certificates to all VMs command.
Extension authentication access controlโ
Extensions can no longer silently access your authentication sessions. When an extension tries to use an existing account or requests a new sign-in, you'll now see a prompt to allow or deny it. This prevents extensions from accessing credentials without your knowledge.


Pull image workflow improvementsโ
Users can now cancel image pulls in progress and take immediate actions after successful pulls. A new cancel button allows stopping long-running pulls, and new 'Open Details' and 'Run...' buttons appear after pulling an image, eliminating the need to navigate to the Images page to find and work with newly pulled images.


Environment-based filteringโ
In Podman Desktop, you can manage different container environments: Docker, Podman, Apple Container for instance. If you are using Podman Desktop in this situation, you will see a new environment combo box on resource management pages, allowing you to filter containers, pods, images, volumes, and networks by their specific environment. If you have only one environment, this filter will be hidden to keep the screen simple.



Additional managed configuration settings for extensionsโ
Building on the managed configuration support introduced in 1.23, administrators can now control extension management through configuration files. Two new settings are available:
- Disable custom extensions: Prevent users from installing custom extensions by setting
extensions.customExtensions.enabledtofalse. - Disable extension catalog: Hide the extension catalog entirely by setting
extensions.catalog.enabledtofalse.
These settings can be deployed organization-wide through the managed configuration file, giving IT teams tighter control over which extensions are available in their deployment.
Troubleshooting section in Settingsโ
A new troubleshooting entry has been added to the settings menu, providing quicker access to diagnostic tools and information. This helps users find and resolve issues without having to search through multiple pages.

Confirmation dialog for connection deletionโ
Deleting a provider connection now displays a confirmation dialog, preventing accidental removal. This safeguard ensures users must explicitly confirm before a connection is removed, reducing the risk of unintended data loss.

Community thank youโ
๐ We'd like to say a big thank you to everyone who helped to make Podman Desktop even better. In this release we received pull requests from the following people:
- GauravR31 in feat: Updated search placeholder text to just say "Search..."
- JustMell0 in fix(renderer): make correct corners' radius, fix(renderer): save previously typed title and description in GitHubFeedback, and more
- fbricon in fix(renderer): hide empty onboarding container when no providers available
- priyanshsao in chore: fix typo in readme file
Community meetingโ
If you would like to discuss any of the new features, issues or other topics, please join us at the monthly community meeting that takes place every 4th Thursday of the month. Here are the meeting details.
Final notesโ
The complete list of issues fixed in this release is available here and here.
Get the latest release from the Downloads section of the website and boost your development journey with Podman Desktop. Additionally, visit the GitHub repository and see how you can help us make Podman Desktop better.
Detailed release changelogโ
featโ
- feat(certificates): add command to palette to sync certificates to podman VMs by @dgolovin #16546
- feat: hide Settings > Kubernetes menu when kubernetes-contexts-manager feature is declared by @simonrey1 #16535
- feat(main/configuration): add telemetry tracking for experimental configuration by @simonrey1 #16499
- feat(renderer/settings): route experimental config updates through dedicated API by @simonrey1 #16480
- feat(renderer): add Cancel button in PullImage by @JustMell0 #16437
- feat(renderer/stores): add registered features store by @simonrey1 #16417
- feat(main): expose IPC to list registered features by @simonrey1 #16401
- feat(main): send features through apiSender event by @simonrey1 #16397
- feat(Dialogs): standardize cancel button types by @priyanshsao #16364
- feat(renderer): add new buttons to PullImage page by @JustMell0 #16281
- feat(renderer): add attributes to Input component by @JustMell0 #16209
- feat(container-env-filter): filter pods and container by environment by @dgolovin #16155
- feat(main): add Zod schema and parse extensions manifest by @simonrey1 #16134
- feat(color-registry): add slate Tailwind 4 colors by @vancura #16107
- feat(color-registry): add the violet Tailwind 4 color by @vancura #16076
- feat(Dashboard): added experimental flag for dashboard enhancement by @gastoner #16066
- feat: added troubleshooting section in settings menu by @MarsKubeX #16027
- feat: added shorcut arrow icon by @MarsKubeX #16026
- feat: troubleshooting fa icon by @MarsKubeX #16021
- feat: Updated search placeholder text to just say "Search..." rather than "Search <topic>..." by @GauravR31 #15964
- feat(authentication): implement extension allowance and session access control by @dgolovin #15829
- feat(storybook): expand Tooltip stories with sizes and contexts by @vancura #15819
- feat(storybook): expand Button stories with sizes and contexts by @vancura #15818
- feat(storybook): expand Spinner stories with sizes and contexts by @vancura #15816
- feat: disable internal Kubernetes Dashboard when extension provides kube dashboard feature by @feloy #15814
- feat(renderer): adding confirmation dialog when deleting connection by @axel7083 #15742
- feat: added icon examples to code guidelines by @gastoner #15673
- feat:
Certificatesview only preference page by @dgolovin #15671
fixโ
- fix(podman-windows-legacy-installer): remove unnecessary extension-api mock by @axel7083 #16635
- fix(renderer): hide empty onboarding container when no providers available by @fbricon #16611
- fix(main): check icon type before converting to base64 in onboarding registry by @simonrey1 #16561
- fix(certificates-view): remove Certificates preference page and related changes by @dgolovin #16545
- fix(configuration-registry): add missing event data by @benoitf #16373
- fix(renderer): make correct corners' radius by @JustMell0 #16338
- fix(ui): changed wording within darwin socket disconnect ui popup by @amcnutt1996 #16315
- fix(renderer): save previously typed title and description in GitHubFeedback by @JustMell0 #16307
- fix(Route): initialize the url field in metadata by @benoitf #16245
- fix(podman): clear reconnect timeout on disconnect by @LouisLau-art #16230
- fix(repository-info): move this util from api to website folder by @benoitf #16195
- fix(renderer): open SearchBar on F1 key only by @JustMell0 #16156
- fix(main/notification-registry): dispose the right notification by @simonrey1 #16100
- fix(Experimental features): disabled feature value udpate by @gastoner #16072
- fix: fixed wrong alignment with left icons in setting menu by @MarsKubeX #16057
- fix: add primary types to buttons by @JustMell0 #16025
- fix(navigation): skipped adding index.html route to navigation history by @gastoner #15983
- fix(ci): use github API for choco release by @cdrage #15897
- fix(renderer/HelpActionsItems): clean up event listener by @simonrey1 #15876
- fix(StatusIcon): fixed icon size in StatusIcon component by @gastoner #15859
- fix(ui/spinner): hide decorative SVG from screen readers by @simonrey1 #15836
- fix(ui/spinner): fix incorrect ARIA and role by @simonrey1 #15832
- fix(plugin): address admzip filename issue on macos by @bmahabirbu #15825
- fix: catalog shouldn't expose incompatible extensions by @deboer-tim #15813
- fix(renderer): add id plus tag identifer for save images by @bmahabirbu #15749
- fix: fixed visibility of task message when being set through API by @gastoner #15725
- fix(libpod#kubeplay): invalid content-type by @axel7083 #15617
choreโ
- chore: added api for enhanced dashboard by @gastoner #16632
- chore: use latest version of electron-builder-squirrel-windows by @benoitf #16583
- chore: update qs to v6.15.0 by @benoitf #16582
- chore: update dompurify to v3.3.3 by @benoitf #16580
- chore: update ajv to recent versions by @benoitf #16578
- chore: update to serialize-javascript v7.0.4 by @benoitf #16571
- chore(rollup): update rollup to v4.59.0 by @benoitf #16570
- chore(deps): fix minimatch dependency by @benoitf #16569
- chore(tray): cleanup tray items on stop by @benoitf #16568
- chore(kubernetes): cleanup resources when stopping by @benoitf #16567
- chore(filesystem-monitoring): cleanup watchers on close by @benoitf #16566
- chore(container-registry): cleanup event on close by @benoitf #16565
- chore(webview-registry): cleanup connections on dispose by @benoitf #16564
- chore(deps-dev): update electron-builder from 26.7.0 to 26.8.2 by @benoitf #16554
- chore(ci): fixing misspelled variable, adding version comments for external actions by @ScrewTSW #16550
- chore: update email label in feedback form by @deboer-tim #16533
- chore: update svgo from 3.3.2 to 3.3.3 by @benoitf #16511
- chore(eslint): disable new recommended rule by @benoitf #16510
- chore(ListOganizer): replace Set by SvelteSet for undef error of eslint by @benoitf #16509
- chore(no-unassigned-vars): remove dead code by @benoitf #16507
- chore(no-useless-assignment): remove useless assignement by @benoitf #16504
- chore(deps): bump eslint plug-ins to recent versions by @benoitf #16501
- chore: update storybook to v10.2.16 by @benoitf #16496
- chore(managed-config): add configuration to disable local extensions by @cdrage #16457
- chore(config): add setting to disable extension catalog by @cdrage #16425
- chore: fix typo in readme file by @priyanshsao #16416
- chore(api): export configuration models Zod schemas by @simonrey1 #16369
- chore(ui): change image page to secondary buttons by @cdrage #16363
- chore(ui): change volume to secondary buttons by @cdrage #16362
- chore(imports): remove (or ignore) relative imports in main package by @benoitf #16337
- chore(alias): add tests alias in main package by @benoitf #16336
- chore(watch): move core-api watcher first by @benoitf #16324
- chore(main): declare command interface with Zod by @simonrey1 #16323
- chore(tsconfig): remove ../api imports by @benoitf #16322
- chore(ci,test): switch navigation dashboard to exact locator by @ScrewTSW #16306
- chore: add extensions.customExtensions.enabled check for install custom extensions button by @SoniaSandler #16296
- chore(main): add zod package by @simonrey1 #16280
- chore(api): declare view info interface with Zod by @simonrey1 #16272
- chore(api): declare theme interface with Zod by @simonrey1 #16271
- chore(api): declare menu interface with Zod by @simonrey1 #16270
- chore(api): declare onboarding interface with Zod by @simonrey1 #16268
- chore(api): add zod dependency by @simonrey1 #16266
- chore(pnpm): remove duplicate tar package by @simonrey1 #16263
- chore(docs): added share feedback section to readme by @rujutashinde #16250
- chore(api): enforce avoiding relative imports in api package by @benoitf #16249
- chore(preload-webview): use nodenext as module(resolution) in tsconfig by @benoitf #16233
- chore(preload-docker-extension): use nodenext resolution in tsconfig by @benoitf #16232
- chore(alias): remove api alias in main,preload & renderer packages by @benoitf #16218
- chore(main): replace relative
../imports by path alias by @benoitf #16216 - chore(renderer): ensure there is no relative
../imports by @benoitf #16215 - chore: try to mock MonacoEditor to see if it changes for a borked test by @benoitf #16213
- chore(ci): fix next build gha repo reference by @amisskii #16202
- chore: build api module as a post-install step by @benoitf #16200
- chore(preload): import api using package rather than alias by @benoitf #16199
- chore(renderer): import api using package rather than alias by @benoitf #16198
- chore(argos): remove mermaid diagram from screenshots by @benoitf #16181
- chore(api): add missing exports by @benoitf #16178
- chore: add imports to core api from other packages by @benoitf #16175
- chore: fixup rules for eslint-plugin-file-progress plug-in by @benoitf #16167
- chore(deps): update electron-builder from v26.0.12 to v26.7.0 by @benoitf #16166
- chore(ui): add Icon to index.ts by @JustMell0 #16164
- chore(dependencies): cleanup root dependencies by @benoitf #16157
- chore: ensure two-way value binding for enum items by @SoniaSandler #16154
- chore(package.json): introduce missing dependencies in packages/* folders by @benoitf #16143
- chore(extension-api): enhance PodInspectInfo by @axel7083 #16139
- chore(watcher): add packages/api into the watcher by @benoitf #16137
- chore: add entries in package.json to build/test/typecheck package/api by @benoitf #16136
- chore: remove some unused exports by @simonrey1 #16116
- chore(deps): update to webpack v5.105.0+ by @benoitf #16115
- chore(renderer/tests): use assert from vitest by @simonrey1 #16114
- chore(deps): update lodash to v4.17.23 by @benoitf #16113
- chore: introduce AGENTS.md file by @benoitf #16098
- chore(deps): update @isaacs/brace-expansion to v5.0.1+ by @benoitf #16096
- chore(renderer): remove unused Kube components by @simonrey1 #16088
- chore(renderer): remove unused empty svelte component by @simonrey1 #16087
- chore(renderer): remove unused field validation by @simonrey1 #16086
- chore(api): remove unused exports by @simonrey1 #16085
- chore(main): remove unused exports by @simonrey1 #16084
- chore(renderer): remove Kubernetes pod page moved warning by @JustMell0 #16082
- chore(extensions): remove unused exports by @simonrey1 #16080
- chore(renderer/webview): remove unused component by @simonrey1 #16078
- chore(renderer/stores): remove unused exports by @simonrey1 #16077
- chore(renderer/context): remove unused exports by @simonrey1 #16074
- chore(website): remove unused exports by @simonrey1 #16073
- chore(StatusBar): switched to enabled by default by @gastoner #16067
- chore(preload): remove unused exports by @simonrey1 #16065
- chore(docs): updated triage manager task in the contributing.md file by @rujutashinde #16028
- chore: fixed navigating over kubernetes submenu by @gastoner #16024
- chore(ci,test): 15985 task extend managed configuration tests to cover mixed scenario by @ScrewTSW #16001
- chore(main): update express major version by @simonrey1 #15991
- chore: fix capitalization of Image to pull by @cdrage #15946
- chore(website): added links to the icons under adopters section by @rujutashinde #15945
- chore: remove kind labels from issue templates by @deboer-tim #15944
- chore(ui): show disabled Create new button with warning by @vzhukovs #15940
- chore: generate files being exported by package.json file by @benoitf #15935
- chore: add the option to adjust the icon button size by @SoniaSandler #15912
- chore: add GOVERNANCE.md by @deboer-tim #15910
- chore(kind): configure provider warnings based on the dependent container connections by @vzhukovs #15909
- chore: add github type to design issues by @deboer-tim #15908
- chore: include author to fix publisher's name on Windows binary by @benoitf #15903
- chore(website): added adopters section to the community page by @rujutashinde #15894
- chore: update SECURITY.md by @deboer-tim #15878
- chore: introduce package.json file in packages/api by @benoitf #15874
- chore: update telemetry link and add privacy link to feedback form by @deboer-tim #15864
- chore: fix pnpm-lock.yaml file by @benoitf #15855
- chore(fix): adding missing permissions compared to flathub repo by @ScrewTSW #15834
- chore(renderer/ProviderResultPage): explicit spinner size in px + self-closing tag by @simonrey1 #15827
- chore(website): added section for learning videos on the community page by @rujutashinde #15822
- chore(api): add tsconfig options by @benoitf #15815
- chore(release): release notes for 1.25 by @MarsKubeX #15781
- chore: fix lock file duplicate entry by @simonrey1 #15777
- chore(api): add index files when we have multiple files in folder by @benoitf #15775
- chore(website): added changes for attend community event section by @rujutashinde #15687
- chore(ui/progress/Spinner): add label property by @simonrey1 #15662
- chore(kind): update kind provider state based on the dependent container connections by @vzhukovs #15637
- chore: check valid registries on registration by @SoniaSandler #15569
- chore: update tooltip component design by @SoniaSandler #14819
testโ
- chore(test,hotfix): disable registries.conf verification for platforms other than linux by @ScrewTSW #16612
- chore(test): refactor runner close method by @cbr7 #16609
- chore(test): extend managed configuration tests for registries by @ScrewTSW #16593
- chore(test): use podman/hello image from ghcr.io by @odockal #16592
- chore(test): make startup sequence be more robust to environment system lag by @cbr7 #16591
- chore(test): enable retry for some e2e test suites by @cbr7 #16589
- test(main): add tests for ExtensionManifestSchema and loadManifest by @simonrey1 #16579
- chore(test): increase timeout for image download completion by @cbr7 #16573
- chore(test): disable fail fast for e2e test matrix by @cbr7 #16572
- chore(test): prolong afterAll hook and runner.close timeout by @odockal #16452
- chore(test): attempting to fix a race condition in e2e tests by @cbr7 #16450
- chore(test): attempts button reclick in case of initial failure by @cbr7 #16440
- chore(test): create new e2e tests for preferred registry repository functionality by @cbr7 #16436
- chore(test): increase test timeout in order to not be flaky in cicd by @cbr7 #16385
- chore(test): create e2e test case for build image with specific target by @cbr7 #16283
- chore(test): handle kubectl download failure by @cbr7 #16206
- chore(test): validate that compose is installed previously by @cbr7 #16180
- chore(test): ensure confirmation dialog is handled by using string comparison for enums by @amisskii #16176
- chore(test): fixing e2e test issues by @cbr7 #16174
- chore(test): ensure registry cleanup on test failure by @cbr7 #16161
- chore(test): fixing some flakyness issues by @cbr7 #16158
- chore(test): explicit wait before moving forward by @cbr7 #16015
- chore(test): Fix k8s e2e tests for kind cluster deletion confirmation dialog by @amisskii #15986
- chore(test): fixes UI stress test failures caused by list scrolling by @serbangeorge-m #15922
- test: update assertion to handle system images by @serbangeorge-m #15904
- chore(test): skip test when usermode networking is enabled by @cbr7 #15888
- chore(test): create replace yaml e2e test case by @cbr7 #15773
refactorโ
- refactor(pull-image.spec.ts): use userEvent and mock missing method by @benoitf #16586
- refactor(main): avoid in-place mutation of extension configuration by @simonrey1 #16562
- refactor(main/extension): use readFile in promise by @simonrey1 #16395
- refactor(api-sender): introduce type checking on channels by @benoitf #16392
- refactor: extract local status and id variables in handleEvents by @thamrx #16387
- refactor(api-sender): introduce index file to export files by @benoitf #16374
- refactor(api-sender): make the data parameter optional by @benoitf #16372
- refactor(Dashboard): changed setup dashboard registry init by @gastoner #16340
- refactor(main+api): declare icon contribution interface with Zod by @simonrey1 #16269
- refactor(compose-details-test): mock Monaco editor component in test by @benoitf #16238
- refactor(renderer): rewrite tests using automatic mocking by @benoitf #16217
- refactor(logtype): move declaration of LogType to api package by @benoitf #16211
- refactor(dd-extension): avoid to use Electron import in renderer part by @benoitf #16210
- refactor(tsconfig): update preload module/moduleResolution by @benoitf #16201
- refactor(api): use ES format rather than CommonJS (cjs) by @benoitf #16196
- refactor(core-api): fix mismatch between package.json and build files by @benoitf #16193
- refactor(compose): fix the original intent of describe methods by @benoitf #16191
- refactor(filesystem-tree): add conditional assignment for optional property by @benoitf #16130
- refactor(SlideToggle): migrate to Svelte 5 by @JustMell0 #16129
- refactor(main/telemetry): merge event types in one object by @simonrey1 #16097
- refactor(renderer): optimize onProxyStateChange iteration and type safety by @vzhukovs #16079
- refactor(extension/podman): make darwin-socket-compatibility.ts use execPodman by @axel7083 #15993
- refactor(extension/podman): mv darwin test to dedicated file by @axel7083 #15987
- refactor(extension/podman): mv LinuxSocketCompatibility to dedicated file by @axel7083 #15981
- refactor: migrated WelcomePage to svelte5 by @gastoner #15978
- refactor(extension/podman): extract DarwinSocketCompatibility to dedicated file by @axel7083 #15951
- refactor(extension/podman): extract abstract SocketCompatibility to dedicated file by @axel7083 #15942
- refactor(extension/podman): mv compatibility-mode.ts by @axel7083 #15941
- refactor(chevronExpander): introduce expandable chevron icon by @jiridostal #15938
- refactor(CopyToClipboard): migrate to Svelte5 by @axel7083 #15934
- refactor: migrated ConnectionStatus component to svelte5 by @gastoner #15933
- refactor: update containers routes to be nested by @SoniaSandler #15930
- refactor: update images routes to be nested by @SoniaSandler #15929
- refactor: update volumes routes to be nested by @SoniaSandler #15928
- refactor: update extensions routes to be nested by @SoniaSandler #15927
- refactor(IconImage): migrated IconImage to svelte5 by @gastoner #15925
- refactor(WelcomePage): migrated to product.name by @gastoner #15924
- refactor: migrated WelcomePage to svelte5 by @gastoner #15923
- refactor(renderer/status-bar): migrate to svelte 5 by @MarsKubeX #15858
- refactor(semver): switches from compare-versions to semver by @gastoner #15857
- refactor(mock): generate @podman-desktop/api mock from its definition by @benoitf #15670
- refactor(renderer): migrated from Fa to Icon component by @gastoner #15659
- refactor(appearance-settings): move to API package by @benoitf #15537
- refactor: updateImage to latest build backend by @bmahabirbu #15363
- refactor(extension-kube-context): reuse global mock for @podman-desktop/api by @benoitf #14950
docsโ
- docs(storybook): update Spinner stories with a11y documentation by @vancura #16454
- docs: modified README to point to a recent image and update the title to add a dash by @rujutashinde #16426
- docs: updated the CLI installation part for kind and minikube by @shipsing #16101
- docs: corrected the procedural workflows for installation by @shipsing #16009
