Skip to main content
FileKit Logo - File picker and utilities for Kotlin Multiplatform KMP, Compose Multiplatform CMP
FileKit is a lightweight yet powerful library that simplifies file operations across multiple platforms using Kotlin Multiplatform. Whether you need to pick files, save documents, access photos, or manage directories, FileKit provides a consistent API that works seamlessly on Android, iOS, macOS, JVM (Windows, macOS, Linux), JS, and WASM.
// Pick an image file
val imageFile = FileKit.openFilePicker(type = FileKitType.Image)

// Pick multiple files
val files = FileKit.openFilePicker(mode = FileKitMode.Multiple())

// Pick a directory
val directory = FileKit.openDirectoryPicker()

// Save a file
PlatformFile(directory, "image.png").write(imageFile)

Why Choose FileKit?

Cross-Platform

One API for all platforms: Android, iOS, macOS, JVM, JS, and WASM

Native experience

Uses platform-native file pickers for the best user experience

Lightweight

Minimal dependencies to keep your app fast and lean

Integrations

Seamless integration with Compose Multiplatform, Coroutines, kotlinx-io, Coil…

Who’s Using FileKit

FileKit is trusted by developers building amazing cross-platform applications:
  • Heron - KMP Bluesky client using FileKit for image preview when uploading images or videos
  • Rush - Lyrics search app like Spotify
  • Composables SVG to Compose - Web tool to convert SVG to Compose code in seconds
  • Twine - A multiplatform RSS reader built using Kotlin and Compose
  • Butler - AI Chat App supporting image uploads across iOS, Android, Desktop, and WasmJS
  • PixelSafe - Free steganography tool for PNG images
  • AndroidToolKit - Desktop tools applicable to Android development, supporting Windows, Mac and Linux
  • Splital - Easily track and manage your shared expenses, quickly, simply, and hassle-free on Android and iOS
  • Tracker - Manager for Bluesky - Track and manage your Bluesky followers, unfollowers, blockers, and post analytics — all in real time! On Android and iOS.
  • Parrot Workout Tracker - The ultimate fitness log and exercise tracker to crush your goals on Android and iOS.
  • Ashampoo Photo Organizer - Photo management software for organizing and searching large photo collections

Key Features

FileKit offers a comprehensive suite of tools for handling files across platforms:
FileKit illustration

File Operations

  • File & Media Pickers: Open files, images, videos, or any document type with platform-native pickers
  • Directory Selection: Access directories easily with native folder pickers
  • File Saving: Save files to user-selected locations
  • Cross-Platform API: Write once, run everywhere with consistent behavior

Integration & Utilities

  • Compose Multiplatform Support: Seamless integration with Compose UI
  • Coroutines Support: Asynchronous file operations with Kotlin coroutines
  • Platform File Abstraction: Work with files consistently across platforms
  • Coil Integration: Display images from files easily in your Compose UI

Getting Started

Get up and running with FileKit in minutes with our comprehensive guides:

Modular Structure

FileKit is designed to be modular, allowing you to include only what you need:
  • FileKit Core: Basic file operations and the PlatformFile abstraction
  • FileKit Dialogs: File pickers and save dialogs without UI dependencies
  • FileKit Dialogs Compose: Compose Multiplatform integration for file operations
  • FileKit Coil: Integration with Coil for image loading
Check out our sample projects to see FileKit in action across different platforms.
I