Amper 0.9.0 Update, November 2025 – Scalability Preview | Amper Blog
# Amper 0.9.0 — Extensibility Prototype and Major Improvements
[Amper 0.9.0](https://github.com/JetBrains/amper/releases/tag/v0.9.0) is now available, featuring the **first version of our extensibility prototype**.
Read on for the **key highlights** and see the [full release notes](https://github.com/JetBrains/amper/releases/tag/v0.9.0) for all updates and bug fixes.
> **To use the latest Amper features**, install [IntelliJ IDEA 2025.3 Beta](https://www.jetbrains.com/idea/nextversion/) or newer.
---
## New Amper Website
We’ve launched **a fully redesigned documentation site** for easier navigation, better structure, and powerful search.
Visit → [https://amper.org](https://amper.org)

---
## Extensibility — Preview Release
The **first preview** of Amper's extensibility is here.
### Why It Matters
While Amper covers most standard workflows out-of-the-box, some projects have unique needs beyond built-in functions. This release enables you to:
- **Build custom tasks** in Kotlin.
- **Expose tasks via plugins**.
- **Integrate tasks directly into modules**.
> **Note:** Only **local plugins** are supported for now; publishing and sharing will come later.
### How It Works
- Create modules using the new `jvm/amper-plugin` product type.
- Implement tasks in Kotlin.
- Register tasks with a `plugin.yaml` containing **inputs** and **outputs**.
---
### Kotlin + YAML — A Strong Pair
Combining **Kotlin’s logic and type safety** with **YAML’s clean configuration** delivers:
- **Readable declarative setup**.
- **Precise diagnostics** for wiring mistakes.
- Smooth **IDE navigation** between code and config.
Task system highlights:
- **Automatic dependency inference** from inputs/outputs.
- **Task avoidance** enabled by default.
- Inputs: scalar values, files, or classpaths (`Classpath` type).
- Outputs: files, generated sources, or resources.
**Learn more:**
📘 [Plugin Quick-Start Guide](https://amper.org/0.9/user-guide/plugins/quick-start)
💬 [Slack Channel](https://slack-chats.kotlinlang.org/c/amper)
🐛 [File a Bug](https://youtrack.jetbrains.com/newIssue?project=AMPER&c=Type+Bug&c=tag+amper-plugins-report)
---
### Planned Features for Extensibility
Future releases will add:
- **Plugin publishing & sharing**.
- **Templates** for consumer module configuration.
- **Less boilerplate** for single-module tasks.
- **Common libraries/services** for task authoring.
- More **IDE quick-fixes & intentions**.
🔗 Check the full [plugin documentation](https://amper.org/0.9/user-guide/plugins/overview).
---
## Dependency Resolution — Faster Caching
Previous bottleneck: **dependency graph construction** during IDE import/sync.
**Improvement:**
- Dependency graph is **cached and reused** when dependencies haven’t changed.
- Hot caches save **tens of seconds**.
More enhancements planned for future versions.
---
## Incremental Java Compilation
### Problem
- Large modules with many files were **fully recompiled** after changes to a single file.
### Solution
- **Incremental compilation** now recompiles only changed parts.
- Task avoidance still skips unchanged modules entirely.
**Enable it in `module.yaml`:**java:
incremental: true
---
## Maven-like Layout Support
Transitioning from Maven/Gradle? Keep existing file locations intact:
Enable in `module.yaml`:layout: maven-like
> **Note:** Available for `jvm/app` and `jvm/lib` product types only.

---
## Library Catalog in Project Root
You can now place `libs.versions.toml` in the **project root** instead of `gradle/`.
**Remember:** Only one catalog per project.
---
## IDE Improvements
### Automatic Configuration Sync
- Configuration file changes trigger **auto-sync** — no more manual “Sync” clicks.
- Progress indicator appears if dependency downloads are needed.
**Settings:**
- Current project → `Settings | Build Tools | Build, Execution, Deployment`
- Default for new projects → `Settings | Advanced Settings | Build Tools. Amper`
---
### Sync Process Insights
- **Build tool window** shows detailed sync stages plus errors/warnings.


---
### Assistance for Setting Main Class
- Code completion for `settings.jvm.mainClass` lists eligible classes with `main` functions.
- Double invocation includes classes from dependencies.
- IDE warns about missing `Kt` suffix for Kotlin-generated main classes.
---
### Quick-Fix for Overridden Catalog Versions
When dependency versions differ due to conflicts:
- **Option 1:** Replace catalog reference with explicit version in module.
- **Option 2:** Update version in the catalog.


---
### Dedicated Color Theme Settings
Custom color scheme for Amper YAML in:File → Settings → Editor → Color Scheme → Amper

---
## Updated Default Versions
- **Kotlin** → 2.2.21
- **Compose Hot Reload** → 1.0.0-rc01
- **KSP** → 2.3.0
- **JUnit Platform** → 6.0.1
- `settings.jvm.release` default → **21**
---
## Try Amper 0.9.0
Update existing project:./amper update
Get started: [**Amper Getting Started Guide**](https://jb.gg/amper/get-started)
---
## Share Your Feedback
Amper is **experimental** — your insights shape its future.
📢 Participate:
- [Kotlinlang Slack #amper](https://slack-chats.kotlinlang.org/c/amper)
- [YouTrack Suggestions & Bugs](https://youtrack.jetbrains.com/issues/AMPER)
---
**Previous Post:** [Scaling Kotlin Adoption Across Your Organization](https://blog.jetbrains.com/kotlin/2025/11/scaling-kotlin-adoption-across-your-organization/)