Podman Desktop 1.29 Release
Podman Desktop 1.29 Release! π

Podman Desktop 1.29 is now available. Click here to download it!
This release brings exciting new features and improvements:
- Podman 6.0 support: Full integration with the new Podman engine, bringing VM config parity, unified machine listing, built-in CA cert syncing, and krunkit as the default CLI engine.
- Secrets management: A new Secrets page lets you create, inspect, and manage container secrets directly from the UI, with support for mounting them as files or environment variables when running containers.
- Onboarding skip confirmation dialog: A confirmation modal now appears when users attempt to skip the onboarding wizard.
- Disable app updates setting: A new preference allows users to turn off automatic application update checks.
- Extension navigation history integration: Extensions can now push entries to Podman Desktop's global back/forward navigation stack.
Release detailsβ
Podman 6.0 supportβ
Podman Desktop 1.29 brings full integration with Podman 6.0. This is a major milestone for the project. The Podman team has delivered a significant engine upgrade, and we have integrated those new capabilities directly into your workflow. For a complete overview of what's new in Podman 6.0, see the Podman 6.0 release notes.
With Podman 6, the command-line interface defaults to using krunkit, as the desktop does. The upgrade also brings AMD GPU support for hardware-accelerated containerized workloads, improving performance for AI, machine learning, and graphics-intensive tasks. Quadlet improvements refine systemd service file generation for more stable management of containerized services. Be sure to check out the Quadlet extension for the best experience.
Local VM configuration parityβ
Modifying containers.conf on macOS or Windows now aligns with your Podman Machine configuration. Previously, local configuration changes might not reflect inside the virtual machine. With Podman 6, this connection is tightened so your settings apply consistently across host and VM.
Unified machine listingβ
Running podman machine list CLI command now displays all machines across different providers in a single, unified list. Whether you are using applehv, krunkit, hyper-v, or wsl, one command gives you the full picture. On the Podman Desktop side, machine listing is also faster because it now uses a single API call instead of separate requests per provider.
CA certificate syncingβ
CA certificate synchronization is now built into the Podman 6 machine creation flow using the native --import-native-ca flag. This replaces the former built-in Podman Desktop sync command that was needed in previous versions. Users behind SSL-inspecting proxies no longer need to manually run sync commands after creating a machine. Podman Desktop automatically appends the flag during podman machine init.
Podman Desktop handles the --import-native-ca flag automatically. However, if you create machines from the command line or through custom scripts, you must explicitly include it:
podman machine init --import-native-ca
Without this flag, you may encounter SSL errors when pulling images or accessing registries.
Upgrading from podman 5 to podman 6β
When migrating from Podman 5.x to Podman 6, we recommend removing all existing data and recreating your environment from scratch. A Podman 5.x configuration can block image pulls on a Podman 6 engine, so a clean slate is the safest approach.
Before upgrading, always stop any running Podman machines first. Podman Desktop provides an automated workflow that will prompt you to delete all data (including containers, volumes, networks, and Podman machines) when the upgrade is detected.
If you are using Hyper-V based Podman machines (not WSL), the automated cleanup may not fully reset your environment. After stopping your machines, run the following command from the CLI before upgrading:
podman machine reset
This ensures all Hyper-V machine state is properly cleared before creating new Podman 6 machines.
Intel macOS supportβ
Podman 6.0 is optimized for Apple Silicon and is available on ARM-based Macs only. If you are running an Intel Mac, Podman Desktop 1.29 continues to work on your machine, but the engine remains pinned to the Podman 5.x line. Clear in-app messaging will keep you informed about which engine version you are running.
Your Podman engine will stay on the 5.x line. Podman Desktop itself is fully supported on Intel Macs with all its features. Only the bundled Podman engine version differs from Apple Silicon systems.
Secrets managementβ
Podman Desktop now includes a dedicated Secrets page where you can create, inspect, and remove container secrets directly from the UI. When running a container, you can mount secrets as files or as environment variables through the run image dialog. This feature is available exclusively with the Podman engine and provides a secure way to inject sensitive data into containers without hardcoding credentials.

Other improvementsβ
- Onboarding skip confirmation: A confirmation dialog now appears when you try to skip the onboarding wizard, explaining that your container environment will not be fully configured. You can choose to continue skipping or return to complete the setup.
- Disable app updates setting: A new preference in Settings lets you turn off automatic application update checks entirely, giving you full control over when to update.
- Table state persistence: Expanded and collapsed states for tables are now preserved across page navigations, so you no longer lose your view when switching between sections.
- Learning center guide rotation: The learning center on the dashboard now rotates guides hourly, surfacing different content each time you visit.
- Extension navigation history: Extensions with single-page application navigation can now push entries onto Podman Desktop's global back/forward navigation stack, providing a seamless navigation experience across extensions and the main application.
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:
- oikonomopo in docs: align kubectl set-cluster placeholders with upstream
- nightcityblade in fix: use sentence case for secret and network titles
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(navigation): let extensions push entries onto global history by @gastoner #18434
- feat(SecretsList): adding key and label prop to Table component by @axel7083 #18420
- feat(ci): add branch input to Testing Farm workflow by @amisskii #18396
- feat(ci): add e2e-prerelease workflow and release_tag for report-portal by @amisskii #18391
- feat(extension-api): expose navigateToImageRun by @axel7083 #18359
- feat(RunImage): support mounting secret by @axel7083 #18275
- feat(api): added severity for failed check by @gastoner #18267
- feat(secret): add MenuContext entry by @axel7083 #18213
- feat(renderer): add container secret details page by @simonrey1 #18196
- feat: disable manual cert sync when podman 6 is installed by @dgolovin #18183
- feat(renderer): adding SecretsList page by @axel7083 #18168
- feat(preload): add IPC for container secret by @axel7083 #18167
- feat(container-registry): create, inspect, remove and list secrets by @axel7083 #18164
- feat(dockerode): add removeSecret method by @axel7083 #18151
- feat(ui): persist table expanded/collapsed state across remounts by @gastoner #18124
- feat(main): rotate learning center guides hourly by @gastoner #18123
- feat(certificate-sync): sync local CA certs when creating podman vm by @dgolovin #18114
- feat(ui): add
ariaHiddenprop to Icon component by @vancura #18089 - feat(renderer): add onboarding skip confirmation dialog by @simonrey1 #18067
- feat(updating): add support for supplying a generic update server by @cdrage #17939
- feat(podman): add error property support by @JustMell0 #17919
- feat: add create-github-issue skill by @gastoner #17867
- feat(renderer): add onboarding wizard shell foundation by @simonrey1 #17709
- feat(updating): add setting to disable app updates by @cdrage #17682
- feat(ci): automate SchemaStore sync for extension schema by @simonrey1 #17589
- feat(main): persist authentication extension allowances to disk by @dgolovin #17511
- feat(extensions): expose repository and homepage metadata end to end by @simonrey1 #17299
- feat(podman): stop calling podman machine list per-provider on Podman >= 6.0 by @sAchin-680 #17290
fixβ
- fix: resolve GHSA-r28c-9q8g-f849 in postcss by @benoitf #18447
- fix: resolve GHSA-p2f4-r6v6-j797 in builder-util-runtime by @benoitf #18441
- fix: resolve GHSA-v422-hmwv-36x6 in body-parser by @benoitf #18440
- fix: resolve GHSA-f5vj-f2hx-8m93 in webpack-dev-server by @benoitf #18439
- fix(onboarding): correct wizard checkmark and hc-dark slider colors by @vancura #18438
- fix: resolve GHSA-v2hh-gcrm-f6hx in fast-uri by @benoitf #18437
- fix: resolve GHSA-2p49-hgcm-8545 in svgo by @benoitf #18430
- fix(renderer): right-align cancel/primary action buttons instead of splitting 50/50 by @vancura #18428
- fix: resolve GHSA-395f-4hp3-45gv in shell-quote by @benoitf #18426
- fix: resolve CVE-2026-59877 in protobufjs by @rujutashinde #18422
- fix: resolve GHSA-52cp-r559-cp3m in js-yaml by @benoitf #18419
- fix(extensions): fix typos in extension code by @benoitf #18416
- fix(renderer): fix typos in renderer code by @benoitf #18415
- fix(main): fix typos in main process code by @benoitf #18414
- fix: fix typos in top-level markdown files by @benoitf #18413
- fix(website): fix typos in documentation by @benoitf #18412
- fix: use sentence case for secret and network titles by @nightcityblade #18400
- fix(ui): set release notes image to full height of parent by @0xKalasi #18384
- fix(ui): change incorrect/misleading proxy settings update dialog message + add test coverage by @0xKalasi #18357
- fix(container-registry): remove legacy listImages by @axel7083 #18333
- fix(ui): capitalize first letter in username placeholder by @0xKalasi #18313
- fix(ui): erase button for container logs is displayed above Tasks modal window by @0xKalasi #18305
- fix(ui): flickering of Typeahead when selecting images by @0xKalasi #18277
- fix(renderer): fix command palette navigation to untagged images by @simonrey1 #18247
- fix(e2e): temporarily skip insecure registry tests blocking e2e-main by @ScrewTSW #18210
- fix(renderer): prevent duplicate mapped port key collisions by @simonrey1 #18205
- fix(ci): replace deprecated publish-release action with gh CLI by @JustMell0 #18185
- fix(images): include digests when listing images by @bmahabirbu #18182
- fix(renderer): change alignment and button type in PullImage.svelte by @priyanshsao #18181
- fix(main): correct status definition in libpod-dockerode.ts by @priyanshsao #18149
- fix(renderer): fix registries table column misalignment by @JustMell0 #18117
- fix: dashboard provider status update on Linux by @dgolovin #18113
- fix: update pods page on unpause/pause events by @priyanshsao #18094
- fix(ui): add proper aria attributes to tooltip by @vancura #18090
- fix: resolve CVE-2026-53550 in js-yaml by @benoitf #18070
- fix(cli): include path in convertToCliToolInfo by @jeffmaury #18044
- fix: add bottom spacing for main view content by @JustMell0 #18007
- fix(renderer): show disabled update button while provider is starting by @JustMell0 #17995
- fix(renderer): mark retagged images as in-use by matching on ImageID by @JustMell0 #17990
- fix(extensions): keep summary card in horizontal layout at all times by @simonrey1 #17976
- fix(extensions): align local extensions tab layout with installed tab by @vancura #17974
- fix: resolve CVE-2026-55602 in http-proxy-middleware by @benoitf #17964
- fix: resolve CVE-2026-49356 in @babel/core by @benoitf #17963
- fix: expanded system overview by default by @danivilla9 #17960
- fix: resolve CVE-2026-9595 in webpack-dev-server by @benoitf #17947
- fix: resolve CVE-2026-53632 in launch-editor by @benoitf #17943
- fix(renderer): reduce z-index in SystemOverviewProviderCardCompact.svelte by @priyanshsao #17940
- fix: resolve CVE-2026-48988 in markdown-it by @benoitf #17938
- fix: resolve CVE-2026-48038 in joi by @benoitf #17935
- fix: resolve CVE-2026-48712 in protobufjs by @benoitf #17934
- fix: resolve CVE-2026-12143 in form-data by @benoitf #17925
- fix: resolve GHSA-gv7w-rqvm-qjhr in esbuild by @benoitf #17922
- fix: resolve CVE-2026-49982 in tmp by @benoitf #17916
- fix: resolve CVE-2026-48068 in @grpc/grpc-js by @benoitf #17908
- fix(extensions): align local extensions tab background with installed tab by @vancura #17902
- fix(renderer): remove overflow-hidden from nav to unclip accounts dropdown by @vancura #17900
- fix(ui): fix update dialog - button text wrapping and modal width by @vancura #17871
- fix(statusbar): force dark theme context for all statusbar content by @vancura #17868
- fix: update UI on pause and unpause container events by @priyanshsao #17866
- fix(renderer): align text in PreferencesCliTool.svelte by @priyanshsao #17857
- fix(extension/podman): update Podman GitHub org references by @simonrey1 #17847
- fix(extension/kind): incorrect polyfill of node-fetch by @axel7083 #17820
- fix(extensions): fallback to default docker config when unset by @simonrey1 #17746
- fix(Markdown): sanitize unsafe HTML content by @axel7083 #17718
- fix(ci): update podman org in TF install script by @amisskii #17708
- fix(renderer): resolve custom theme isDark detection for scrollbar color by @cdrage #17653
- fix(renderer): decouple details page redirect from DOM lifecycle by @vzhukovs #17472
- fix(podman): skip setup notification when remote connections exist by @JustMell0 #17314
- fix(installer): hyperv failure logs werent showing for onboarding by @bmahabirbu #17029
choreβ
- chore: use caret range for svelte by @benoitf #18466
- chore: update electron-builder to v26.15.3 by @benoitf #18465
- chore: suggest users to wipe data for all major updates of podman by @benoitf #18409
- chore: embed podman 6 installers by @benoitf #18408
- chore: update pnpm to v1.15.1 by @benoitf #18362
- chore: add svg image support to convertImages by @SoniaSandler #18352
- chore: remove podman-desktop.io link from kubernetes empty page by @SoniaSandler #18351
- chore(renderer/stores/test): uniformize renderer store tests by @sAchin-680 #18206
- chore: fix lock file by @benoitf #18165
- chore(deps): migrate js-yaml to v5 by @sAchin-680 #18146
- chore: remove duplicate autoprefixer entry from lock file by @benoitf #18125
- chore: make the extension development documentation link configurable by @SoniaSandler #18122
- chore: add product.json file to Compose extension by @SoniaSandler #18121
- chore: remove ssh2 & cpu-features from built dependencies by @axel7083 #18116
- chore: fix lock file by @benoitf #18115
- chore: fix/ignore new sonarjs lint rules from 4.1.0 upgrade by @benoitf #18099
- chore: update to bundler the node imports by @benoitf #18093
- chore: remove override by @benoitf #18092
- chore(deps): override gray-matter with @11ty/gray-matter to fix CVE by @benoitf #18069
- chore: replace electron-builder-notarize with built-in notarization by @benoitf #18059
- chore: use lowercase for 'Podman Kube Play' by @priyanshsao #18037
- chore: add update e2e tests with reminder never settings by @odockal #18020
- chore(container-creation): remove scrolling + update buttons. by @cdrage #18011
- chore(tsconfig): remove baseUrl deprecated in Typescript 6 by @simonrey1 #17992
- chore(renderer): migrate CreateVolume component to Svelte 5 runes by @amisskii #17977
- chore(lint): activate unicorn/no-array-sort eslint rule by @simonrey1 #17958
- chore(index): make the variable protected by @benoitf #17956
- chore(argos-website): update concurrency group by @axel7083 #17944
- chore: use GitHub auth for Octokit instances by @SoniaSandler #17927
- chore(argos.yaml): rename worflow name and job by @axel7083 #17915
- chore(dompurify): update overrides to 3.4.10 by @axel7083 #17913
- chore: add can't find Podman machine on Windows Podman Desktop troubleshooting by @SoniaSandler #17910
- chore(ci): use .nvmrc for Node.js version in all workflows by @benoitf #17907
- chore(website-argos): specify build-name argument by @axel7083 #17906
- chore(argos.yaml): set concurrency by @axel7083 #17905
- chore: add product.json file to kind extension by @SoniaSandler #17885
- chore(docker-modem): remove unnecessary patch by @axel7083 #17875
- chore(pnpm): set minimumReleaseAge by @axel7083 #17830
- chore(ci): add airgap asset validation to daily testing build by @ScrewTSW #17827
- chore(ci): pin anchore/sbom-action to commit SHA by @ScrewTSW #17818
- chore(ci): extract reusable managed configuration workflow by @ScrewTSW #17816
- chore(deps): remove eslint-plugin-etc by @simonrey1 #17795
- chore: add and update registries from the UI in registries.conf file by @SoniaSandler #17451
- chore(fix): prevent horizontal scrollbar in preferences with long navigation labels by @Zhey-on #17056
refactorβ
- refactor(ProviderInstallationButton.svelteβ): migrated component to svelte5 by @gastoner #18436
- refactor(container-registry): remove unnecessary podman prefix by @axel7083 #18393
- refactor(container-registry): use Promise.withResolvers in pull image by @axel7083 #18346
- refactor(navigation): make image run and image details consistent by @axel7083 #18331
- refactor(renderer): store PodInfoUI instead of PodInfo by @simonrey1 #18319
- refactor(api): move InferredNavigationRequest type to shared API package by @simonrey1 #18227
- refactor(RunImage): factorise options by @axel7083 #18208
- refactor(RunImage): derived properties by @axel7083 #18204
- refactor(deps): remove unnecessary @rollup plugins by @axel7083 #18136
- refactor(renderer): replace
bg-black/4 dark:bg-white/4with color-registry token inTroubleshootingDevToolsConsoleLogsby @vancura #17975 - refactor(main): return value instead of index in MessageBoxReturnValue by @JustMell0 #17918
- refactor(renderer): migrate Webview.svelte to Svelte 5 by @gastoner #17912
- refactor(agents): rewrite mcp-testing skill with operation references and single-agent architecture by @amisskii #17901
- refactor(renderer): migrate NavItem component to Svelte 5 runes by @gastoner #17869
- refactor(ui): migrate markdown to Svelte 5 by @axel7083 #17779
- refactor(main): use constants for message box button indices in auth by @JustMell0 #17427
testβ
- fix(tests): fix typos in E2E tests by @benoitf #18417
- chore(test): update pod e2e test to check from terminal instead of api call by @cbr7 #18358
- chore(test): add e2e test case for sha digest installation by @cbr7 #18283
- chore(test): add e2e tests for filtering images and containers by @cbr7 #18242
- chore(test): try to fix broken e2e test by @cbr7 #18221
- chore(test): update broken e2e test by @cbr7 #18219
- test(e2e): update serial declaration - part 2 by @danivilla9 #18211
- chore(test): add e2e test for update tools from resource page by @cbr7 #18184
- test(e2e): update serial declaration - part 1 by @danivilla9 #18155
- chore(test): refactoring some tests for better performance by @cbr7 #18150
- test: install Playwright Chromium via globalSetup by @serbangeorge-m #18140
- chore(test): attempt to fix flakyness on wsl cicd workflow by @cbr7 #18095
- test(e2e): revert update serial declaration (#18006) by @danivilla9 #18091
- chore(test): increase docker e2e test robustness by @cbr7 #18058
- chore(test): ensuring wait for podman method works with new dashboard by @cbr7 #18049
- test(e2e): update serial declaration by @danivilla9 #18006
- refactor(tests): apply guideline improvements to plugin index.spec by @benoitf #18001
- chore(test): add SHA256 checksum verification to airgap asset validation by @ScrewTSW #17988
- chore(test): switch using testing images ghcr.io by @odockal #17972
- chore(tests/main): centralize electron mocking to a single place by @benoitf #17970
- chore(test): remove pw from postinstall script by @cbr7 #17959
- chore(test): better handling in case electron app hangup during e2e execution by @cbr7 #17955
- chore(test): increase podman machine start timeouts by @cbr7 #17952
- test(e2e): skip cross-arch and docker tests on RHEL in CI by @amisskii #17924
- test(visual-testing): logic scaffold by @axel7083 #17903
- chore(test): increase robustness of some validations in e2e tests by @cbr7 #17890
- test(e2e): fix ui stress tests on linux by @danivilla9 #17805
- test(e2e): create podman machine from enhanced dashboard by @danivilla9 #17780
- fix(test): reduce registry E2E flakiness with dialog wait and timeout increases by @ScrewTSW #17519
- chore(test,ci): create script for insecure signed registry setup and teardown, add tests by @ScrewTSW #17384
