FileKit is the file layer for Kotlin Multiplatform. Open native file, photo, directory, and camera pickers, save and share files, and read or write them through a single PlatformFile type. The same code runs on Android, iOS, macOS, desktop JVM (Windows, macOS, Linux), Linux and Windows native, JS, and Wasm, and FileKit Core also runs on watchOS.
FileKit in 30 seconds
Let the user pick a photo, then show it or read its bytes.Try it in your browser
Run the FileKit sample app live, with no install.
Run it in two minutes
Add one dependency, do the per-platform setup, and pick your first file.
What you can build
Photo and file uploads
Open the native file picker or the Android and iOS photo picker, then read the bytes to upload them.
Export and save documents
Ask the user where to save a file, then write text, bytes, or a stream to it.
Work with project folders
Let users pick a folder, then list, walk, and copy its contents. Keep access across launches with bookmarks.
Camera capture and photo processing
Take a photo, compress or resize it, and save it to the user’s gallery.
Share and open files
Send a file to the system share sheet or open it in the default app.
Local app storage
Store files in the app’s files, cache, and databases directories. The same paths work with DataStore or Room.
Platforms
Every target with
filekit-dialogs uses the platform’s native dialogs (watchOS has FileKit Core only). Some features are platform-specific: the camera and share sheet are mobile-only, the file saver is not available in browsers, and Compose and Coil support follows Compose Multiplatform’s targets. See the platform support matrix for a feature-by-feature breakdown.
Modules
Add only the modules you need. Each module pulls in the ones it builds on.Next steps
Quickstart
Pick and read your first file.
Installation
Dependencies and per-platform setup.
Platform support
See which features each platform supports.
Use FileKit with AI assistants
Give your coding assistant the FileKit docs through MCP,
llms.txt, or Markdown.