winget install --id Apple.Pkl
About Pkl
Pkl — pronounced Pickle — is an embeddable configuration language which provides rich support for data templating and validation. It can be used from the command line, integrated in a build pipeline, or embedded in a program. Pkl scales from small to large, simple to complex, ad-hoc to repetitive configuration tasks.
What's new in 0.31.1
Pkl 0.31 was released on February 26th, 2026. The latest bugfix release is 0.31.1. (All Versions) The next release (0.32) is scheduled for July 2026. To see what’s coming in the future, follow the Pkl Roadmap. Please send feedback and questions to GitHub Discussions, or submit an issue on GitHub. Pkl is hosted on GitHub. To get started, follow Installation.
Version history
| Version | Updated | Notes |
|---|---|---|
| 0.31.1 | Unknown | Pkl 0.31 was released on February 26th, 2026. The latest bugfix release is 0.31.1. (All Versions) The next release (0.32) is scheduled for July 2026. To see what’s coming in the future, follow the Pkl Roadmap. Please sen... |
| 0.31.0 | Unknown | Pkl 0.31 was released on February 26th, 2026. The latest bugfix release is 0.31.0. (All Versions) The next release (0.32) is scheduled for July 2026. To see what’s coming in the future, follow the Pkl Roadmap. Please sen... |
| 0.30.2 | Unknown | Pkl 0.30 was released on November 3rd, 2025. The latest bugfix release is 0.30.2. (All Versions) This release introduces a code formatter, and an in-language API for producing pkl-binary output. The next release (0.31) i... |
| 0.30.1 | Unknown | Pkl 0.30 was released on November 3rd, 2025. The latest bugfix release is 0.30.1. (All Versions) This release introduces a code formatter, and an in-language API for producing pkl-binary output. The next release (0.31) i... |
| 0.30.0 | Unknown | Release notes |
| 0.29.1 | Unknown | Fixes - Fixes an issue where autocompletion in Bash and ZSH do noes not suggest filenames (#1161). - Fixes an issue where pkldoc throws a runtime error about failing to load class path resources (#1174). - Fixes an issue... |
| 0.29.0 | Unknown | Release notes |
| 0.28.2 | Unknown | Fixes - Adds an optimization when object bodies with generators produce no members (#1013). - Fixes a runtime crash when --output-path points to a directory (#1038). - Fixes a bug that sometimes causes pkl-doc to crash (... |
| 0.28.1 | Unknown | Fixes - Fixes an issue where Pkl Gradle tasks can possibly fail with java.lang.UnsatisfiedLinkError (#995). - Fixes an issue where the artifacts pkl-tools and pkl-config-java-all fail with java.lang.ClassFormatError (#99... |
| 0.28.0 | Unknown | Release notes |
| 0.27.2 | Unknown | Fixes - Fixes issues where server mode message decoding might result in null pointer exceptions (#853, #882). - Fixes an issue where the test report outputs decimal numbers using local-specific decimals (#868). - Fixes a... |
| 0.27.1 | Unknown | Fixes - Fixes a broken "number literals" link in the 0.27 release notes (#784). - Fixes a possible deadlock during external reader process close (#786). - Fixes counting elements with computed indices multiple times in l... |
| 0.27.0 | Unknown | Release notes |
| 0.26.3 | Unknown | Fixes - Fixes an issue where CLI argument --property foo="" is effectively parsed as --property foo="true". This is now parsed as an empty string (#596). - Fixes a regression where amending a globbed import or globbed re... |