{"id":554848,"date":"2025-04-01T09:59:33","date_gmt":"2025-04-01T08:59:33","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=amper&#038;p=554848"},"modified":"2025-04-10T08:30:31","modified_gmt":"2025-04-10T07:30:31","slug":"amper-update-april-2025","status":"publish","type":"amper","link":"https:\/\/blog.jetbrains.com\/en\/amper\/2025\/04\/amper-update-april-2025","title":{"rendered":"Amper Update April 2025 \u2013 IDE and CLI Feature Drop!"},"content":{"rendered":"\n<p>Amper 0.6.0 is out, with improvements to both the IDE and CLI experience. Read on for all of the details, and see <a href=\"https:\/\/github.com\/JetBrains\/amper\/releases\/tag\/v0.6.0\" target=\"_blank\" rel=\"noopener\">the release notes<\/a> for the full list of changes and bug fixes.<\/p>\n\n\n\n<p><em>To get support for Amper\u2019s latest features, use <\/em><a href=\"https:\/\/www.jetbrains.com\/idea\/nextversion\/\" target=\"_blank\" rel=\"noopener\"><em>IntelliJ IDEA 2025.1 Beta<\/em><\/a><em> (or newer).<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">IDE improvements<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Improved template workflows<\/h3>\n\n\n\n<p>Templates allow you to share common configuration between multiple modules. This release adds new refactoring features to the IDE, making it easier to work with templates.<\/p>\n\n\n\n<p>You can extract configuration from a module to a template using the extract refactoring shortcut or an intention action:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/template-extract.mp4\"><\/video><\/figure>\n\n\n\n<p>You can also inline configuration from a template to the modules where it\u2019s used, with either intention actions or refactoring shortcuts:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/template-inline.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Convenience aliases<\/h3>\n\n\n\n<p>To help you find the settings entries you want to configure, even if you\u2019re not sure what their exact name is, this release adds aliases for certain settings:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/settings-aliases.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Automatic conversion of dependencies<\/h3>\n\n\n\n<p>If you\u2019re copying dependencies specified with Gradle syntax, they are automatically converted into the correct format for Amper on paste:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/paste-gradle-dependencies.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">New project tree design<\/h3>\n\n\n\n<p>The project tree in IntelliJ IDEA has updated icons to represent Amper modules, source sets, and folders that contain nested Amper modules:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"555\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/project-icons.png\" alt=\"\" class=\"wp-image-554894\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">CLI improvements<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">The <code>show<\/code> command group<\/h3>\n\n\n\n<p>This version of Amper introduces several improvements to the CLI experience. The various commands that help you inspect the project are now grouped under the <code>show<\/code> command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Usage: amper show [&lt;options>] &lt;command> [&lt;args>]...\n\n  Shows information about some aspect the project (modules, tasks, effective\n  settings...). See help for details.\n\nCommands:\n  modules   List all modules in the project\n  settings  Print the effective Amper settings of each module\n  tasks     List all tasks in the project and their dependencies<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">New <code>init<\/code> experience<\/h3>\n\n\n\n<p>The <code>amper init<\/code> command for creating new projects now offers interactive selection between available templates, making it easier to get started:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/cli-init.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Cleaner logs<\/h3>\n\n\n\n<p>We\u2019ve reduced the amount of logs that are output by default and introduced coloring to differentiate log levels. See the difference below for a build specifically set to use <code>--log-level=debug<\/code> and then a regular build:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/cli-logs.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Tab completion<\/h3>\n\n\n\n<p>If you\u2019re using <code>bash<\/code>, <code>zsh<\/code>, or <code>fish<\/code>, you can now generate an autocomplete file to source as part of your&nbsp;shell\u2019s configuration. This allows you to get tab completion for Amper commands.<\/p>\n\n\n\n<p>First, generate the completion script, specifying the shell you use:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\/amper generate-completion zsh > ~\/amper-completion.sh<\/pre>\n\n\n\n<p>Then, load the script in your shell (this can be added to .bashrc, .zshrc, or similar configuration files to load it automatically):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">source ~\/amper-completion.sh<\/pre>\n\n\n\n<p>Tab completion should now be available:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/cli-completion.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Updated dependency versions<\/h2>\n\n\n\n<p>Amper now uses Kotlin 2.1.20, including language version 2.1 by default (language version 2.2 is also available to try experimental features). It also includes Compose 1.7.3 and kotlinx.serialization 1.8.0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Update your existing projects<\/h2>\n\n\n\n<p>To update a project using the standalone version of Amper, use the new update command, introduced in the previous release:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\/amper update<\/pre>\n\n\n\n<p>If you\u2019re using a Gradle-based Amper project, update your plugin version to <code>0.6.0<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"kotlin\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">plugins {\n   id(\"org.jetbrains.amper.settings.plugin\").version(\"0.6.0\")\n}<\/pre>\n\n\n\n<p>For Gradle-based Amper projects, the minimum supported Gradle version is now 8.7, and if you&#8217;re using Compose Multiplatform, you must set <code>settings.compose.version<\/code> to <code>1.6.10<\/code> explicitly. See the <a href=\"https:\/\/github.com\/JetBrains\/amper\/releases\/tag\/v0.6.0\" target=\"_blank\" rel=\"noopener\">release notes<\/a> for more details on these version changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Try Amper<\/h2>\n\n\n\n<p>To get started with Amper, take a look at the <a href=\"https:\/\/github.com\/JetBrains\/amper\/tree\/HEAD\/examples-standalone\" target=\"_blank\" rel=\"noopener\">sample projects<\/a> in the repository.<\/p>\n\n\n\n<p>To enjoy full support for the latest Amper features, use <a href=\"https:\/\/www.jetbrains.com\/idea\/nextversion\/\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA 2025.1 Beta<\/a> (or newer).<\/p>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/github.com\/JetBrains\/amper\" class=\"btn\" target=\"\" rel=\"noopener\">Try Amper<\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Share your feedback<\/h2>\n\n\n\n<p>Amper is still experimental and under active development. You can provide feedback about your experience by joining the discussion in the <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/amper\" target=\"_blank\" rel=\"noopener\">Kotlinlang Slack\u2019s #amper channel<\/a> or sharing your suggestions and ideas in a <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/AMPER\" target=\"_blank\" rel=\"noopener\">YouTrack issue<\/a>. Your input and use cases help shape the future of Amper!<\/p>\n","protected":false},"author":1478,"featured_media":555316,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[],"cross-post-tag":[6355],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/amper\/554848"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/amper"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/amper"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1478"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=554848"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/amper\/554848\/revisions"}],"predecessor-version":[{"id":557599,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/amper\/554848\/revisions\/557599"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/555316"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=554848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=554848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=554848"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=554848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}