About this project

Intrakill (InternalStorageOverkill) is a local, encrypted media storage application written in Kotlin Multiplatform. It targets JVM desktop and Android; iOS is not supported. The author notes it is best suited to grouped media attachments such as manga and comics. Data model and storage - Storage is a list of entries; each entry has a name, attachments and tags. - The database is a SQLCipher-encrypted SQLite file named secured.db. - Desktop path: ~/.Intrakill/databases/secured.db (Windows: c:\Users\%username%\.Intrakill\databases\secured.db). - Android path: context.getDatabasePath("secured.db"), managed by the OS. - The app is intended mainly for images and video. Import/export - A desktop instance can export its storage over the local network. - The importer supplies the origin device's IP and password; after import, the same password unlocks the storage on the importing device. - The design deliberately avoids cloud sharing. Password behavior - There is no password reset. Forgetting the password means losing the storage; brute force feasibility depends on password strength. - There is no dedicated feature to recreate a storage; deleting the database file or reinstalling the app is suggested. Build and run - Android debug build: ./gradlew :composeApp:assembleDebug (or gradlew.bat on Windows). - Desktop run: ./gradlew :composeApp:run (or gradlew.bat on Windows). - IDE run configurations are also supported. Implementation notes - The UI/state architecture is built around the Decompose library, which the author credits with making state handling straightforward. - The author states AI assistants influenced parts of the implementation and that Kotlin Multiplatform had a steep learning curve compared to Flutter and React. Contributions are welcome via issues or pull requests.