
Integrates multiple LLM providers with tool calling, structured JSON output, cold streaming, event-driven multi-agent coordination, per-provider modules, tracing, and realtime voice with VAD and barge-in.
A modern LLM integration framework for Kotlin Multiplatform (KMP) targeting JVM servers, JVM desktop applications, and Android — with the same library, same API, and same semantics on both targets.
Mojentic provides a clean abstraction over multiple LLM providers with tool
support, structured output, streaming, an event-driven agent system, and
realtime voice — all built natively on Kotlin coroutines and Flow.
Status: Phase 0 — skeleton. This repository currently contains only the Kotlin Multiplatform project scaffolding (Gradle build, target configuration, quality gates, smoke test). The actual LLM features land in Phase 1+ — see
KOTLIN.mdin themojentic-unifymonorepo for the full plan, roadmap, and parity-target rationale.
suspend + Flow end to end; structured concurrency
throughout; cooperative cancellation@Serializable-derived JSON SchemaFlow<StreamEvent> with full recursive tool executionMutableSharedFlow of TracerEvent,
correlation IDs threaded through nested broker / tool callsWebSockets with
server / manual VAD and barge-inmojentic-core, mojentic-ollama,
mojentic-openai, mojentic-anthropic, mojentic-realtime-openai — apps
pull only what they useUuid, current KMP
target shape)compileSdk 37 or later (Ktor 3.6 brings OkHttp 5.5, which
requires it), minimum API 24 (Android 7.0). The build uses AGP 9.4.The Gradle wrapper is committed (gradle/wrapper/gradle-wrapper.jar +
gradlew / gradlew.bat), so a fresh clone is immediately buildable:
./gradlew build # compile + test all targets the host can build
./gradlew :mojentic-core:jvmTest # JVM smoke test
./gradlew ktlintCheck detekt # lint gateCI runs the full quality-gate matrix on every push — see
.github/workflows/build.yml.
Not yet published. Targeted for the Phase 0 → Phase 1 transition.
Once published to Maven Central:
// build.gradle.kts
dependencies {
implementation("com.vetzal.mojentic:mojentic-core:<version>")
// Add gateways as they ship:
// implementation("com.vetzal.mojentic:mojentic-ollama:<version>")
// implementation("com.vetzal.mojentic:mojentic-openai:<version>")
}Dokka HTML output will be published to GitHub Pages on every v* tag.
Handwritten use-case guides will live under docs/use-cases/.
MIT — see LICENSE.
A modern LLM integration framework for Kotlin Multiplatform (KMP) targeting JVM servers, JVM desktop applications, and Android — with the same library, same API, and same semantics on both targets.
Mojentic provides a clean abstraction over multiple LLM providers with tool
support, structured output, streaming, an event-driven agent system, and
realtime voice — all built natively on Kotlin coroutines and Flow.
Status: Phase 0 — skeleton. This repository currently contains only the Kotlin Multiplatform project scaffolding (Gradle build, target configuration, quality gates, smoke test). The actual LLM features land in Phase 1+ — see
KOTLIN.mdin themojentic-unifymonorepo for the full plan, roadmap, and parity-target rationale.
suspend + Flow end to end; structured concurrency
throughout; cooperative cancellation@Serializable-derived JSON SchemaFlow<StreamEvent> with full recursive tool executionMutableSharedFlow of TracerEvent,
correlation IDs threaded through nested broker / tool callsWebSockets with
server / manual VAD and barge-inmojentic-core, mojentic-ollama,
mojentic-openai, mojentic-anthropic, mojentic-realtime-openai — apps
pull only what they useUuid, current KMP
target shape)compileSdk 37 or later (Ktor 3.6 brings OkHttp 5.5, which
requires it), minimum API 24 (Android 7.0). The build uses AGP 9.4.The Gradle wrapper is committed (gradle/wrapper/gradle-wrapper.jar +
gradlew / gradlew.bat), so a fresh clone is immediately buildable:
./gradlew build # compile + test all targets the host can build
./gradlew :mojentic-core:jvmTest # JVM smoke test
./gradlew ktlintCheck detekt # lint gateCI runs the full quality-gate matrix on every push — see
.github/workflows/build.yml.
Not yet published. Targeted for the Phase 0 → Phase 1 transition.
Once published to Maven Central:
// build.gradle.kts
dependencies {
implementation("com.vetzal.mojentic:mojentic-core:<version>")
// Add gateways as they ship:
// implementation("com.vetzal.mojentic:mojentic-ollama:<version>")
// implementation("com.vetzal.mojentic:mojentic-openai:<version>")
}Dokka HTML output will be published to GitHub Pages on every v* tag.
Handwritten use-case guides will live under docs/use-cases/.
MIT — see LICENSE.