Skip to content

appspiriment/Kolt

Repository files navigation

Kolt Brand Logo

Unified convention Gradle plugins & lightweight runtime libraries for Android & Kotlin Multiplatform

Version Kotlin Gradle AI-Agent Ready License PRs Welcome


πŸ“– Overview

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.

πŸ”‘ Key Features

  • πŸ”Œ 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.

πŸ€– AI-Agent Readiness & Steering

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.

Scaffolding in Downstream Projects

Apply the Kolt Gradle plugins to any target project and run the built-in scaffolding task to generate local steering templates automatically:

./gradlew scaffoldKoltResources

Once generated, attach these templates to your AI session inputs to instantly align models with your codebase configuration.


πŸ“¦ Monorepo Modules

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

πŸš€ Quick Start

1. Configure Version Catalogs

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")
        }
    }
}

2. Apply Convention Plugins

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)
}

3. Add Runtime Dependencies

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")
}

πŸ› οΈ Local Development & Shell Scripts

Build all modules

./gradlew assemble

Build a single library module

./gradlew :libs:compose-utils:assembleDebug

Run plugin integration tests

./gradlew -p build-logic :conventions:test

Publish to Maven Local

To test catalog dependencies in local consumer projects:

./gradlew publishToMavenLocal

Scaffolding CLI Script

Bootstraps 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.project

🀝 Credits & Acknowledgements

Kolt builds on outstanding open-source projects. We are grateful to the creators and maintainers of:


πŸ“„ License

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.

About

A unified, type-safe suite of Gradle convention plugins and lightweight runtime utilities designed to build robust, offline-first applications across Android, iOS, and Desktop.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors