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
  • AB Download Manager - A Download Manager that speeds up your downloads
  • Edconv - A user-friendly interface that simplifies the power of FFmpeg. It’s designed for fast and efficient conversion of video and audio files.
  • Gluky, Refy, Pandoro, Neutron, and Brownie - Self-hosted applications using FileKit for profile pictures and file uploads
  • Keyguard - Alternative client for the Bitwarden platform and KeePass (KDBX)
  • HowMarket - Cross-platform Point of Sale (PoS) software for small and growing businesses, using FileKit to upload and manage product and user images
  • Authmeister - Multiplatform OTP authenticator supporting TOTP and HOTP, available on Android and iOS
  • Dancing Decibels - Multi-platform app for music festivals and live entertainment experiences, using FileKit for image imports and schedule import/export
  • Kai - OpenClaw alternative in your pocket, using FileKit in production across Android, iOS, desktop, and web

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:

Quick Start

Get started with FileKit in minutes

Installation

Add FileKit to your Kotlin Multiplatform

Core Concepts

Learn about PlatformFile and essential FileKit concepts

Dialogs setup

Pick files, save files, and more with FileKit Dialogs

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.