Installation
This guide covers adding Kodio to your Kotlin Multiplatform project.
Requirements
- Kotlin
2.4.0 or later
- Gradle
8.0 or later
- Android
minSdk 24 (Android 7.0)
- iOS
13.0 or later
Add the dependency
Using Gradle Version Catalog
Add the version and library to your gradle/libs.versions.toml:
[versions]
kodio = "0.2.0"
[libraries]
kodio-core = { module = "space.kodio:core", version.ref = "kodio" }
kodio-compose = { module = "space.kodio.extensions:compose", version.ref = "kodio" }
kodio-compose-material3 = { module = "space.kodio.extensions:compose-material3", version.ref = "kodio" }
kodio-transcription = { module = "space.kodio.extensions:transcription", version.ref = "kodio" }
kodio-ktor = { module = "space.kodio.extensions:ktor", version.ref = "kodio" }
Add the dependency to your build.gradle.kts:
kotlin {
sourceSets {
commonMain.dependencies {
implementation(libs.kodio.core)
}
}
}
Add directly to your build.gradle.kts:
kotlin {
sourceSets {
commonMain.dependencies {
implementation("space.kodio:core:0.2.0")
}
}
}
Optional modules
Kodio provides additional modules for Compose integration:
commonMain.dependencies {
// Core (required)
implementation(libs.kodio.core)
// Compose state holders + AudioWaveform
implementation(libs.kodio.compose)
// Material 3 UI components
implementation(libs.kodio.compose.material3)
// Audio transcription (OpenAI Whisper)
implementation(libs.kodio.transcription)
// Ktor WebSocket streaming for AudioFlow
implementation(libs.kodio.ktor)
}
commonMain.dependencies {
// Core (required)
implementation("space.kodio:core:0.2.0")
// Compose state holders + AudioWaveform
implementation("space.kodio.extensions:compose:0.2.0")
// Material 3 UI components
implementation("space.kodio.extensions:compose-material3:0.2.0")
// Audio transcription (OpenAI Whisper)
implementation("space.kodio.extensions:transcription:0.2.0")
// Ktor WebSocket streaming for AudioFlow
implementation("space.kodio.extensions:ktor:0.2.0")
}
Module overview
Module | Contents | When to use |
|---|
core
| Recording, playback, file I/O | Always required |
compose
| rememberRecorderState, rememberPlayerState, AudioWaveform
| Compose Multiplatform apps |
compose-material3
| RecordAudioButton, PlayAudioButton, ErrorDialog
| Quick Material 3 UIs |
transcription
| OpenAIWhisperEngine, AudioFlow.transcribe()
| Speech-to-text transcription |
ktor
| sendOverWebSocket, receiveAudioFlowFromWebSocket
| Stream AudioFlow over WebSockets |
Verify installation
After syncing Gradle, verify the installation by importing Kodio:
import space.kodio.core.Kodio
import space.kodio.core.AudioQuality
suspend fun test() {
// If this compiles, you're good!
val recording = Kodio.record(duration = 1.seconds)
}
Last modified: 03 July 2026