skie

Configure SKIE Gradle plugin to restore Swift enums and async support in Kotlin Multiplatform.

Updated Jul 20, 2026
One-click install
npx skills add https://github.com/trancee/MeshLink-template --skill skie
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: skie
Source: https://github.com/trancee/MeshLink-template/tree/main/.agents/skills/skie
Command: npx skills add https://github.com/trancee/MeshLink-template --skill skie

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

SKIE bridges the gap between Kotlin and Swift by restoring language features lost during the standard Kotlin-to-Objective-C-to-Swift compilation process, such as exhaustive enums and proper async support.

Core Features & Use Cases

  • Swift Interop Restoration: Enables exhaustive switching for enums, sealed classes, and proper Swift async/await for Kotlin suspend functions.
  • Flow Integration: Converts Kotlin Flows into native Swift AsyncSequence types with two-way cancellation support.
  • Use Case: Use this skill to configure your KMP project so that your iOS team can consume Kotlin-defined sealed classes as native Swift enums, significantly improving type safety and developer experience.

Quick Start

Use the skie skill to generate the necessary configuration for enabling Swift async support and Flow interop in my Kotlin Multiplatform project.

Frequently Asked Questions about skie

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enable exhaustive enums for Kotlin Multiplatform Swift interop?

To enable exhaustive enums for Kotlin Multiplatform Swift interop, you configure the SKIE Gradle plugin to modify the generated Xcode Framework, restoring this language feature lost during standard compilation for iOS and macOS workflows.

Can I use Kotlin suspend functions with native Swift async/await in a KMP project?

Yes, you can bridge Kotlin suspend functions to native Swift async/await by applying the SKIE compiler plugin and specific configuration annotations, enabling proper Swift concurrency support in your iOS and macOS applications.

How do I convert Kotlin Flows to Swift AsyncSequence in KMP?

Converting Kotlin Flows to Swift AsyncSequence requires configuring the SKIE plugin in your KMP project, which translates Flows into native Swift sequences and provides two-way cancellation support.

Why do my Kotlin sealed classes lose type safety when consumed by Swift in KMP?

Kotlin sealed classes lose type safety because the standard compilation translates them to Objective-C headers. SKIE restores this by modifying the Xcode Framework so iOS teams can consume them as native Swift enums.

Do I need the SKIE Gradle plugin to bridge Kotlin coroutines and Swift concurrency?

Yes, the SKIE Gradle plugin is required to bridge Kotlin coroutines and Swift concurrency models, as it handles the necessary modifications to the generated Xcode Framework for proper async support.

What are the limitations of using a compiler plugin to restore Swift interop in Kotlin Multiplatform?

Using a compiler plugin to restore Swift interop targets iOS and macOS development workflows where Kotlin code is consumed by Swift applications, requiring specific configuration annotations for successful bridging.