
Kotlin Multiplatform
This is specifically built for the Amethyst KMP project but the patterns are solid for any Kotlin Multiplatform codebase. It walks through the abstraction decision tree (should this be commonMain, jvmAndroid, or expect/actual?) with real examples from crypto, JSON parsing, and navigation. The jvmAndroid pattern is interesting: it's a custom source set that shares JVM libraries like Jackson between Android and Desktop, which saves duplication but won't work for iOS or web. Most useful when you're staring at code wondering if it belongs in the common module or needs platform splits. The decision tree alone is worth keeping around.
- skills.sh installs
- 1.6K
- GitHub stars
- 1.6K
- last updated
- Aug 21, 2026
Install
$ npx -y skills add vitorpamplona/amethyst --skill kotlin-multiplatform --agent claude-codeInstalls into .claude/skills of the current project.
Files
Kotlin Multiplatform and Gradle in Amethyst
Module roles, the "share vs keep native" rule and the CLI-safe boundary are in
AGENTS.md (Architecture, Feature Workflow). Package placement inside commons /
commonsUI is in commons/ARCHITECTURE.md ("Where does my code go?", "Source sets")
and commonsUI/ARCHITECTURE.md ("Platform slots"). Read those first; this skill
adds the source-set mechanics and the build traps.
Modules
settings.gradle.kts includes 13: amethyst, nappletHost, benchmark,
baselineprofile, geode, commons, commonsUI, nestsClient,
marmotQuic, desktopApp, cli, relayBench, marmotBench. Quartz is the
external libs.quartz (vitorpamplona/quartz) and QUIC the external libs.quic
(vitorpamplona/quic-kmp); -PquartzDir=../quartz / -PquicKmpDir=../quic-kmp build a
local checkout instead (an included build, so quic's own quartz dependency follows).
Source sets
Sponsors
Details
- Repository
- github.com/vitorpamplona/amethyst
- Categories
- DevOps & CI/CD, Productivity & Planning, Rust, Mobile Development, Java & JVM
- First seen
- May 16, 2026