An IntelliJ IDEA plugin that generates opinionated, production-ready Kotlin Multiplatform (KMP) projects for Android, Desktop, and iOS — straight from File → New → Project. Website: kmpwizard.oreshkov.app.
Every generated project is a complete, buildable KMP app:
- Compose Multiplatform — shared UI across Android, Desktop (JVM), and iOS.
- Navigation 3 — adaptive shell (bottom bar / rail / drawer via
NavigationSuiteScaffold) with independent per-section back stacks. - Room 3 — local SQLite database with multiplatform support.
- Settings & DataStore — a Settings screen with Light/Dark/System theme, persisted with DataStore Preferences.
- Koin Annotations — lightweight, compile-time checked dependency injection.
- Clean architecture — modular
core:*/feature:*layout with api/impl splits and domain, data, and UI layers. - Convention plugins — centralized, maintainable Gradle build logic.
- API guarding — binary-compatibility-validator with committed API dumps.
| Tier | What it includes |
|---|---|
| Free | Full project generation — everything listed above, for any combination of Android, Desktop, and iOS. |
| Pro | Additionally scaffolds an AI agent config (CLAUDE.md, .claude/ review agents, skills, and hooks) and CI workflows (.github/) into the generated project. Requires a paid license via JetBrains Marketplace. |
Install from JetBrains Marketplace: Settings → Plugins → Marketplace → search "KMP Project Wizard".
Requires IntelliJ IDEA 2026.1 or newer.
- Select File → New → Project.
- Choose KMP Project from the generators list.
- Configure the package name, feature name, data field name, test value, and target platforms (plus the Pro options if licensed).
- Click Create — the project is generated and Gradle sync starts automatically.
The plugin's internal templates are not hand-written — they are generated at
build time from a pinned release of
kmp-ledger, a real, working KMP
reference app (ledgerVersion in gradle.properties). Concrete names in the
ledger's sources are replaced with placeholders, and the wizard substitutes
them back with your values, so generated projects always match a public,
tagged state of the reference app.
To change what generated projects look like, contribute to kmp-ledger; this repo only contains the wizard itself. See CONTRIBUTING.md for details.
JDK 21 is required. The first build downloads the pinned kmp-ledger release
archive from GitHub; afterwards it is served from the Gradle cache and
--offline works.
./gradlew build # compile + test
./gradlew runIde # launch a sandbox IDE with the plugin loadedVersions follow the CHANGELOG (Keep a Changelog format) and are published to JetBrains Marketplace, with Marketplace change notes generated from the changelog at build time.
Bug reports, feature requests, and pull requests are welcome — see CONTRIBUTING.md and use the issue templates when filing bugs. This project follows a Code of Conduct. Please report security issues privately as described in SECURITY.md.
The source code in this repository is licensed under the MIT License.
The plugin as distributed on JetBrains Marketplace (Free and Pro tiers) is governed by its own End User License Agreement; Pro features require a paid license key via the Marketplace.
