Podman Desktop 1.27 Release
Podman Desktop 1.27 Release! ๐

Podman Desktop 1.27 is now available. Click here to download it!
This release brings exciting new features and improvements:
- High contrast and accent colors support: High contrast themes (light and dark) and accent colors have been added throughout the application for improved accessibility, visibility, and a uniform color palette.
- Navigation history with back and forward controls: Added navigation history dropdown to the back/forward navigation buttons accessible through long-press.
- Extension development JSON schema: A JSON schema is now available for the development and validation of Podman Desktop extensions'
package.jsonfiles. - Security updates: Multiple CVE vulnerabilities resolved in Podman Desktop and its extensions to ensure a safer work environment.
Release detailsโ
High contrast theme supportโ
Podman Desktop now includes two new high contrast themes that provide maximum contrast for better visual accessibility. The hc-light theme features white backgrounds with dark borders and text, while hc-dark uses black backgrounds with light elements. Both themes have been integrated throughout the app and its UI components to ensure better visibility and readability.


The app colors have also been updated to use accent colors instead of hardcoded colors to make it easier to manage custom color palettes and support consistent coloring throughout the UI.
Navigation history with back and forward controlsโ
Following the introduction of the back and forward navigation controls in 1.25, Podman Desktop now also includes a navigation history dropdown when long-pressing the navigation controls. Users can quickly browse their navigation history using the dropdown, making it easier to navigate across multiple sections.

Extension development JSON schemaโ
JSON schema for Podman Desktop extensions is now available in the SchemaStore website or directly at https://raw.githubusercontent.com/podman-desktop/podman-desktop/main/schemas/extension-schema.json. This takes away the guesswork and provides autocomplete for available properties while editing the file, streamlining extension development.
Add "$schema": "https://raw.githubusercontent.com/podman-desktop/podman-desktop/main/schemas/extension-schema.json" to your extension's package.json file to see all available fields and values.
NOTE: If you are using VSCode, you might need to add https://raw.githubusercontent.com/podman-desktop/podman-desktop/main/schemas/extension-schema.json to the JSON โบ Schema Download: Trusted Domains list for it to work.
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:
- sheikhlimon in fix(container-registry): handle provider failures gracefully in podmanListImages
- Bingtagui404 in chore(package.json): remove deprecated @types/tar package
- LavenderDuskGlow in fix(test): Typo: misspelled variable name in PullImage.spec.ts #16741
- generalexception in fix(tray): fix pixelated tray icon on Windows HiDPI displays
- shri3016 in fix: add bottom spacing to resources page
- Zhey-on in fix(ui): stop carousel wheel swipes from navigating history
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.
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(extension-api): added optional error property by @gastoner #17115
- feat(agents): add AI skill for scaffolding new Podman Desktop extensions by @simonrey1 #17071
- feat(main): add schema generation script and CI sync for extension JSON schema by @simonrey1 #17053
- feat(ui): redesign LinearProgress component with semantic color tokens and improved accessibility by @vancura #17010
- feat: added navigation entries by @gastoner #17006
- feat(renderer): add SearchTermParser for filtered search inputs by @simonrey1 #17002
- feat(renderer): use SearchTermParser in extension catalog by @simonrey1 #16993
- feat(ui): redesign button component with semantic color tokens and improved accessibility by @vancura #16966
- feat: expose urlProtocol from product.json through extension-api/env module by @dgolovin #16965
- feat(color-registry): add default-text-link and default-item-hover tokens by @vancura #16932
- feat(storybook): add high contrast light and dark theme options by @vancura #16923
- feat(storybook): auto-regenerate themes.css on color-registry changes by @vancura #16919
- feat(ui): add prefers-reduced-motion support to Spinner by @simonrey1 #16888
- feat(renderer): replace CSS border spinner with Spinner component in ProviderWidgetStatus by @simonrey1 #16875
- feat: add hc-light theme color overrides to ColorRegistry by @vzhukovs #16842
- feat(extension-api): add detached option to exec by @simonrey1 #16841
- feat(ci): add E2E workflow for testing flatpak bundles by @ScrewTSW #16838
- feat: add hc-dark theme color overrides to ColorRegistry by @vzhukovs #16825
- feat: support danger message boxes in extension API and internal utilities by @JustMell0 #16822
- feat(main): implement pd accent colors as default theme values by @vancura #16749
- feat(alert): remove custom aria-label in DeployPodToKube.svelte by @priyanshsao #16724
- feat: handle high contrast themes in appearance init and isDark store by @vzhukovs #16721
- feat(ui): replace spinner with 8-tick activity indicator by @vancura #16718
- feat(telemetry): add telemetry tracking when rootful switch was changed by @JustMell0 #16664
- feat(main): add JSON Schema generation for extension manifest by @simonrey1 #16637
- feat: added system overview backend by @gastoner #16634
- feat(alert): remove aria-label in WarningMessage.svelte by @priyanshsao #16615
- feat: add high contrast theme support to ColorRegistry and ColorBuilder by @vzhukovs #16536
- feat(Dropdown): added support for longpressing by @gastoner #16512
- feat(spinner): replace CSS spinner with Spinner component by @priyanshsao #16486
- feat(renderer): add support for danger styling in MessageBox by @JustMell0 #16423
- feat(tray-icons): add full color icons by @vancura #16081
- feat: added navigation history dropdown when long pressing by @gastoner #15567
fixโ
- fix: resolve GHSA-39q2-94rc-95cp in dompurify by @benoitf #17159
- fix: resolve GHSA-r4q5-vmmm-2653 in follow-redirects by @benoitf #17156
- fix: resolve CVE-2026-34043 in serialize-javascript by @benoitf #17150
- fix: resolve advisory GHSA-v3rj-xjv7-4jmq in smol-toml by @benoitf #17149
- fix(ui): remove space before ellipsis in loading and action button labels by @vancura #17142
- fix(troubleshooting): remove malformed leading ellipsis from waiting-for-response strings by @vancura #17141
- fix: resolve CVE-2026-34601 in @xmldom/xmldom by @benoitf #17130
- fix: resolve CVE-2026-41242 in protobufjs by @benoitf #17125
- fix(ui): stop carousel wheel swipes from navigating history by @Zhey-on #17116
- fix(compose): show error step when CLI version fetch fails during onboarding by @simonrey1 #17106
- fix(compose): sync provider version on CLI tool install/uninstall by @simonrey1 #17094
- fix(kubectl-cli): sync provider version on CLI tool install/uninstall by @simonrey1 #17093
- fix(kind): sync provider version on CLI tool install/uninstall by @simonrey1 #17089
- fix(renderer): preserve original casing of terms in SearchTermParser by @simonrey1 #17052
- fix(installer): hyperv only podman install now passes by @bmahabirbu #17028
- fix(renderer): deduplicate aria-labels in troubleshooting components by @vancura #17023
- fix(renderer): hide update button when provider has no installed version by @simonrey1 #17012
- fix(kubectl-cli): show kubectl updates on Resources page by @simonrey1 #16992
- fix(compose): show compose updates on Resources page by @simonrey1 #16987
- fix: flaky ExtensionDetailsReadme.svelte component test by @dgolovin #16973
- fix(kind): use shared temp directory for image push in Flatpak by @vzhukovs #16970
- fix: load protocol name from product.json urlProtocol attribute by @dgolovin #16964
- fix(main): remove
Manage Dockerfeature card when docker-compat disabled by @JustMell0 #16962 - fix: change order of 'Allow' and 'Deny' button in confirmation dialog by @dgolovin #16961
- fix: update unit test project names by @SoniaSandler #16954
- fix: show default app version in statusbar for any auto updater error by @SoniaSandler #16953
- fix(extension/podman): use detached mode for machine autoStart by @simonrey1 #16936
- fix(Roseta): fixed Roseta enablement on macOS Tahoe with Podman 5.6+ by @gastoner #16924
- fix: recalculate accent1 and accent2 color ramps for better vibrancy by @vancura #16921
- fix: openExternal command to use security handler by @dgolovin #16896
- fix: refine high contrast theme color definitions by @vancura #16889
- fix(kind): avoid FileHandle GC error in image-handler tests by @sAchin-680 #16863
- fix: use predefined color instead of hex value for hc dark theme by @vzhukovs #16844
- fix(webview): bind on localhost the server by @benoitf #16799
- fix(settings): scope feedback dialog preferences to its own section by @JustMell0 #16798
- fix(telemetry): rename and rate limit handleContainerEventsFailure by @JustMell0 #16789
- fix(svelte): migrate HMR configuration for Svelte 5 compatibility by @fbricon #16753
- fix(renderer): respect hidden property in ExperimentalPage by @simonrey1 #16687
- fix(frontend): remove async from getImage which is not async by @feloy #16667
- fix: pass options when listing images with Docker API fallback by @sheikhlimon #16599
- fix(container-registry): handle provider failures gracefully in podmanListImages by @sheikhlimon #16404
- fix(tray): fix pixelated tray icon on Windows HiDPI displays by @generalexception #16378
- fix(preferences): prevent loss of manual proxy settings on page navigation by @vzhukovs #16117
- fix: add bottom spacing to resources page by @shri3016 #15747
choreโ
- chore(fix): fixing compose e2e tests to handle new flow by @cbr7 #17165
- chore(main): prefer-import-in-mock by @axel7083 #17133
- chore(renderer): prefer-import-in-mock by @axel7083 #17132
- chore: resolve CVE-2026-4800 in lodash by @benoitf #17131
- chore(deps): update stream-json to v2.1.0 by @benoitf #17129
- chore(preload*): prefer-import-in-mock by @axel7083 #17128
- chore: update electron app name to be from product.json and use correct logs files paths by @SoniaSandler #17107
- chore(registry-setup): writing
auth.jsonfile should have proper permissions by @axel7083 #17103 - chore(dependencies): updates node-forge to 1.4.0 by @cdrage #17100
- chore(fix): ensure reconnection to terminal after container restart by @cbr7 #17076
- chore: hide GitHub feedback forms if there are no GitHub feedback links by @SoniaSandler #17062
- chore(renderer): add search-string package by @simonrey1 #17026
- chore: added lifecycle booleans to provider/connection info types by @gastoner #17020
- chore(website): remove 3M downloads celebration banner by @JustMell0 #17011
- chore(pr-check): use default types for pull-request trigger by @benoitf #16946
- chore: remove labeler PR by @benoitf #16945
- chore: update documentation links to be used from product.json by @SoniaSandler #16912
- chore(e2e): remove unreliable xterm log validation/modify test skip condition by @amisskii #16890
- chore(claude): fix symbolic link by @benoitf #16887
- chore(extension/podman): prefer-import-in-mock by @axel7083 #16884
- chore(extension/kubectl-cli): prefer-import-in-mock by @axel7083 #16883
- chore(extension/kind): prefer-import-in-mock by @axel7083 #16882
- chore(extension/docker): prefer-import-in-mock by @axel7083 #16881
- chore(extensions/compose): prefer-import-in-mock by @axel7083 #16880
- chore(podman/tsconfig): switch to bundler for moduleResolution in extension by @benoitf #16876
- chore(deps): update to inversify v8 by @benoitf #16872
- chore(fix): ensure correct locator is used in the assert by @cbr7 #16853
- chore(deps): update picomatch dependencies by @benoitf #16843
- chore(CODEOWNERS): remove the file as it's managed by a GitHub app by @benoitf #16837
- chore(main): replace function reference with Symbol for inversify v8 by @benoitf #16834
- chore: updated the contributing.md to use new domain labels and user-reported label by @rujutashinde #16791
- chore: update SendFeedback to svelte 5 by @SoniaSandler #16770
- chore: prevent feedback form from closing when clicking on a non-submission link in the form by @SoniaSandler #16769
- chore: remove capitalization in explore-features.json by @priyanshsao #16726
- chore(package.json): remove deprecated
@types/tarpackage by @Bingtagui404 #16722 - chore: use product.json command palette search entries by @SoniaSandler #16708
- chore(fix): fix provider dropdown height when adding a new provider by @cbr7 #16705
- chore(main): hide experimental enhanced dashboard setting by @simonrey1 #16688
- chore(System overview API): updated definitions by @gastoner #16675
- chore(release): release notes for 1.26 by @bmahabirbu #16645
- chore: use product name for title bar text by @SoniaSandler #16644
- chore: added status background colors by @gastoner #16633
- chore: setup eslint no-sync rule and document all sync FS usages by @sAchin-680 #15251
refactorโ
- refactor: extracted duplicated code to function by @gastoner #17154
- refactor(registry-setup): modernise node:fs usage by @axel7083 #17101
- refactor(api): unify DialogType definition in @podman-desktop/core-api by @JustMell0 #17055
- refactor(Onboarding): migrated Onboarding component to svelte5 by @gastoner #17036
- refactor(renderer): replace hardcoded Tailwind colors in micromark with color-registry tokens by @vancura #17003
- refactor(main): extract global timeout utility by @sheikhlimon #16950
- refactor: migrated ContainerConnectionSummary to svelte5 by @gastoner #16916
- refactor(main): make Exec.exec async by @simonrey1 #16911
- refactor: moved connection resource usage to separate file by @gastoner #16908
- refactor(website): vi.mock imports by @axel7083 #16885
- refactor: simplify troubleshooting zip export by @axel7083 #16878
- refactor(ui): replace SMIL animateTransform with CSS @keyframes in Spinner by @simonrey1 #16877
- refactor(podman-download): fix the condition logic by @benoitf #16874
testโ
- test(e2e): add managed-configuration tests for extensions catalog and local extensions by @ScrewTSW #17090
- chore(test): refactoring of runner factory class by @cbr7 #17045
- chore(test): fixing flaky unit test failing on windows runner by @cbr7 #17042
- chore(test): ensure app process is terminated after closing by @cbr7 #17037
- chore(test): remove duplicate aria labels by @cbr7 #17022
- chore(test): increase build timeout to handle cicd lag by @cbr7 #17009
- chore(test): added new search bar test suite and POM elements by @cbr7 #17007
- fix(tests): use SetupServer interface instead of SetupServerApi class by @simonrey1 #17001
- chore(test): replace testing farm npm targets dropdown by @amisskii #16969
- test(e2e): add network smoke tests for container network integration by @amisskii #16968
- chore(test): Light and dark modes e2e test suite by @cbr7 #16917
- chore(test): increase assert timeout to better handle laggy network conditions in cicd by @cbr7 #16907
- feat(test): implement a Chrome Devtools protocol test runner by @odockal #16905
- feat(test): add text check in PodCreateFromContainers.spec.ts by @priyanshsao #16904
- chore(test): refactor filepicker methods and add save/load image e2e test by @cbr7 #16886
- chore(test): update playwright trace analysis skill by @cbr7 #16856
- chore(test): add advanced navigation history e2e test spec by @odockal #16820
- chore(test): new e2e tests for tasks page by @cbr7 #16797
- chore(test): update testing skill to better conform to project standards and requirements by @cbr7 #16793
- chore(test): cleanup github runner native images before test start by @cbr7 #16788
- feat(test): created skill to be used when analyzing playwright trace files by @cbr7 #16773
- chore(test): create macos sanity test suite for pr check by @cbr7 #16772
- fix(test): Typo: misspelled variable name in PullImage.spec.ts #16741 by @LavenderDuskGlow #16771
- chore(test): added new elements to POM and some new e2e tests by @cbr7 #16758
- chore(test): add navigation smoke e2e test spec by @odockal #16757
- chore(test): include specific AGENTS.md doc under tests/playwright by @odockal #16743
- chore(test): enhancing trace naming with workerIndex to distinguish between files with the same name by @cbr7 #16727
- chore(tests): managed configuration tests for proxy by @ScrewTSW #16706
- chore(test): fixing broken symlink by @cbr7 #16643
- feat(test): adding playwright testing claude skill to repository by @cbr7 #16639
- chore(test): enhance port forwarding e2e test to cover multiple pods by @JustMell0 #16526
docsโ
- docs: add skill to investigate specific gh run by @serbangeorge-m #16833
