Unified convention Gradle plugins & lightweight runtime libraries for Android & Kotlin Multiplatform
Kolt (published under group io.github.appspiriment.kolt) is a consolidated Gradle composite build monorepo merging plugin configurations and cross-platform runtime assets. It provides a structured, modern build toolchain and a lightweight toolkit for teams building client applications.
By applying opinionated convention plugins, Kolt eliminates Gradle configuration boilerplate, enforces modular boundaries, and injects runtime utilities for UI components, state management, offline database persistence, local logging, and location APIs.
- π 12 Gradle Convention Plugins: Ready-to-use plugins for Android Apps, Android Libraries, and KMP Libraries (with optional bundles for Hilt, Koin, Compose, and SQLDelight).
- π§± Stateless UI Design System: Custom Compose Multiplatform components and token systems featuring HSL-curated themes and G2 curvature continuous card corners.
- π¦ Modular Runtime Utilities: Dedicated libraries for cross-platform string formatting, timezone geocoding, App Startup logging, and Play Store in-app updates.
- π€ AI-Agent Steering: Structured codebase context models designed specifically to align LLMs (Gemini, Claude, Cursor) on architectural patterns.
- π οΈ Developer Scaffolding CLI: Interactive scripts and Android Studio tools to create new apps or scaffold configuration guides instantly.
Large Kotlin Multiplatform codebases can confuse AI code generators, leading to compilation issues, build service clashes, and incorrect platform imports. Kolt is AI-Agent-Ready by design, featuring standard context templates that guide coding assistants:
- π
AGENTS.md: Authoritative guide enforcing monorepo rules, composite included builds, and dependency structures. - β‘
CLAUDE.md: Provides primary compile commands, testing commands, and syntax formatting rules for rapid coding cycles. - π οΈ
KOLT.md: Detailed table referencing convention plugin IDs, DSL options (AppspirimentExtension), and target rules. - π¨
CODING_STANDARDS.md,ARCHITECTURE.md,TESTING.md: Hard constraints definingexpect/actual models, coroutine handlers, state flows, fakes, and Turbine testing.
Apply the Kolt Gradle plugins to any target project and run the built-in scaffolding task to generate local steering templates automatically:
./gradlew scaffoldKoltResourcesOnce generated, attach these templates to your AI session inputs to instantly align models with your codebase configuration.
| Directory | Type | Artifact ID | Description |
|---|---|---|---|
build-logic/ |
Conventions | Included Build | Android & KMP convention Gradle plugins, catalog generation, publish tasks |
libs/utils |
Library (KMP) | utils |
Pure-Kotlin utilities: UiText, AsyncState, string formatting, time, and timezone utilities |
libs/logutils |
Library (KMP) | logutils |
expect/actual logging; silences output automatically in production builds |
libs/compose-utils |
Library (Android) | compose-utils |
100+ Material3 Compose elements, form fields, wizards, and ViewModel helpers |
libs/compose-kmp |
Library (KMP) | compose-kmp |
Core cross-platform Compose UI components and HSL token structures |
libs/update-utils |
Library (Android) | update-utils |
Firebase-steered Play Store in-app update sheets |
libs/location |
Library (KMP) | location |
Location geolocator wrappers and reverse-geocoding systems |
intellij-plugin/ |
IDE Plugin | Plugin | Project creation wizards, version bumping, and publishing tools for Android Studio |
In your target project's settings.gradle.kts, pull the latest catalogs from Maven Central:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
versionCatalogs {
create("koltlibs") {
from("io.github.appspiriment.kolt:kolt-catalog:0.1.6")
}
create("kmplibs") {
from("io.github.appspiriment.kolt:kmp-catalog:0.1.6")
}
}
}Apply plugins in your module-level build.gradle.kts files to receive instant build configurations:
// Android application module
plugins {
alias(koltlibs.plugins.kolt.application)
}
// Android library module with Compose & Hilt
plugins {
alias(koltlibs.plugins.kolt.library.hilt.compose)
}
// Kotlin Multiplatform library module
plugins {
alias(kmplibs.plugins.kolt.kmp.library)
}To use runtime utilities directly in your modules without convention plugins, apply the Kolt Bill of Materials (BOM):
dependencies {
implementation(platform("io.github.appspiriment.kolt:kolt-bom:2026.06.4"))
implementation("io.github.appspiriment.kolt:utils")
implementation("io.github.appspiriment.kolt:logutils")
implementation("io.github.appspiriment.kolt:compose-kmp")
}./gradlew assemble./gradlew :libs:compose-utils:assembleDebug./gradlew -p build-logic :conventions:testTo test catalog dependencies in local consumer projects:
./gradlew publishToMavenLocalBootstraps a fresh Android/KMP project with the composite Gradle build structure and AI steering configs:
# Start the interactive wizard
./scripts/new-project.sh
# Non-interactive CLI flags (CI/Automations)
./scripts/new-project.sh --type kmp --name MyProject --package com.example.projectKolt builds on outstanding open-source projects. We are grateful to the creators and maintainers of:
- Kotlin Multiplatform: The multiplatform core enabling shared logic.
- Jetpack Compose / Compose Multiplatform: Enforcing elegant declarative UI engineering.
- Vanniktech Gradle Maven Publish Plugin: Isolating publishing workflows.
- Dokka: Powering our standard KDoc API documentation engine.
Copyright 2026 Appspiriment
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
See the full LICENSE file for details.