## Installation
Add FileKit to your shared module. For a Compose Multiplatform app, one artifact brings the dialogs, the Compose launchers, and the core file API:
```kotlin
// build.gradle.kts
kotlin {
sourceSets {
commonMain.dependencies {
implementation("io.github.vinceglb:filekit-dialogs-compose:0.17.0")
}
}
}
```
Not using Compose, or targeting Linux native, Windows native, or watchOS? Use `filekit-dialogs`, or `filekit-core` for file operations only. The [platform support matrix](https://filekit.mintlify.app/platform-support#targets-per-module) shows which module runs where.
Most targets need no setup. On Android, call `FileKit.init(activity)` if you use the suspend dialog APIs; the Compose launchers work without it. On JVM desktop and Linux or Windows native, call `FileKit.init(appId)` before using app directories such as `FileKit.filesDir`. The [installation guide](https://filekit.mintlify.app/installation#platform-setup) covers the version catalog, every module, and each platform.
## At a glance
**Pick a file in Compose**
```kotlin
val launcher = rememberFilePickerLauncher(
type = FileKitType.Image,
onError = { failure -> println("Picker failed: ${failure.message}") },
) { image ->
// A PlatformFile, or null if the user cancelled
}
Button(onClick = { launcher.launch() }) {
Text("Pick an image")
}
```
**Pick files from any coroutine**
```kotlin
val files: List