Deterministic Android Scaffolding Engine, Multi-Module Compose Templates, Day-2 Generators & AI MCP Platform
Kickoff is a deterministic developer CLI and AI engineering platform designed to bootstrap and evolve production-grade Android applications and redistributable SDK libraries. It implements Google's Now-in-Android Clean Architecture, Jetpack Compose (Material 3), Hilt, Room, Retrofit, Binary Compatibility Validator, and an integrated static code analysis suite.
Scaffolded projects don't just ship with code—they come equipped with an integrated AI Agent Swarm dynamically synthesized for GitHub Copilot, Claude Code, Cursor, and Antigravity / Generic AI agents, backed by a native Model Context Protocol (MCP) server.
- 📖 Architecture Deep-Dive: Complete module topologies for both App (
now-in-android) and SDK (android-sdk) archetypes. - 🤖 AI Agent Kit & MCP: Catalog of 16 specialized agents, 25 atomic skills, cross-IDE setup, and stdio MCP server.
- 🛡️ Quality Verifier Plugin: Detekt (Compose rules), Spotless (Ktlint), typed Android Lint, Architecture boundary verifier, and Kover.
- 🤝 Contributing Guide & Code of Conduct: How to build, test, and contribute to Kickoff under Contributor Covenant 2.1.
- 🔒 Security Policy: Vulnerability reporting procedures and supported version matrix.
- ♿ Accessibility: CLI and Android Compose accessibility commitments.
Kickoff unifies five mature Android engineering foundations into a single modern monorepo:
Kickoff-V2/
├── kickoff # Root wrapper script for the CLI generator
├── kickoff-cli/ # Standalone CLI & MCP server (Kotlin 2.0.21 + Clikt 5)
├── quality-verifier/ # Standalone Gradle plugin (eu.andrer757.quality-verifier)
├── templates/
│ ├── now-in-android/ # Multi-module App template (Now-in-Android)
│ │ ├── build-logic/ # Gradle convention plugins
│ │ ├── gradle/libs.versions.toml # Centralized version catalog
│ │ ├── app/ # Application entrypoint & navigation
│ │ ├── core/ # Core capabilities (:core:data, :core:testing, :core:model, etc.)
│ │ ├── feature/ # Feature modules (:feature:home)
│ │ ├── .agents/ # Single Source of Truth (SSoT) for AI swarm
│ │ └── scripts/ # Cross-platform AI setup scripts (.sh, .ps1)
│ └── android-sdk/ # Multi-module Android SDK + Sample template
│ ├── build-logic/ # SdkLibrary, SdkCompose, SdkPublish convention plugins
│ ├── sdk-core/ # Headless engine (explicitApi, zero-Hilt, consumer ProGuard)
│ ├── sdk-ui/ # Compose UI components (@Immutable / @Stable)
│ ├── sdk-testing/ # Consumer test fakes & rules (FakeSdkClient)
│ └── sample/ # Showcase Compose application
├── .github/workflows/ # Monorepo CI & automated release workflows
└── .agents/skills/kickoff-scaffold/ # AI Agent skill for invoking Kickoff
- JDK 21 (Eclipse Temurin 21 recommended; JDK 17 cannot build or run Kickoff)
- Android SDK (API 35 SDK installed)
curl -fsSL https://raw.githubusercontent.com/Andrer757/Kickoff-V2/main/install.sh | bashbrew tap Andrer757/kickoff https://github.com/Andrer757/Kickoff-V2.git
brew install kickoffgit clone https://github.com/Andrer757/Kickoff-V2.git
cd Kickoff-V2
./gradlew :kickoff-cli:installDistNote: If running from a monorepo checkout instead of a global binary install, use
./kickoffin place ofkickoff.
kickoff new \
--name "Crypto Tracker" \
--package "com.example.cryptotracker" \
--output "~/projects/crypto-tracker"kickoff new \
--name "Payment SDK" \
--package "com.example.paymentsdk" \
--type sdk \
--output "~/projects/payment-sdk"cd ~/projects/crypto-tracker
./gradlew assembleDebug
./gradlew checkKickoff provides a full suite of commands for Day-1 scaffolding and Day-2 codebase evolution:
Usage: kickoff [<options>] <command> [<args>]...
Commands:
new Scaffold a new Android App or SDK project
add Add new features, modules, or database entities to an existing project
arch-check Sub-100ms static Clean Architecture & SDK boundary verification
doctor Diagnose developer environment, JDK, Android SDK, and AI tools
mcp Run Kickoff as a Model Context Protocol (MCP) stdio server
Options:
-n, --name=<text> Project name (Required, e.g. "Fitness App")
-p, --package=<text> Application package name (Required, e.g. "com.example.fitness")
-o, --output=<text> Target output directory (Defaults to sanitized project name)
--type=<app|sdk> Project archetype: app (Now-in-Android), sdk (Android SDK + Sample) (Default: app)
-t, --template=<text> Path to custom template
--min-sdk=<int> Minimum SDK API level (Default: 26)
--target-sdk=<int> Target SDK API level (Default: 35)
--ai=<text> Target AI environment: copilot, claude, cursor, generic, all, none (Default: all)
--git / --no-git Initialize git repository with initial commit (Default: true)
--json Output result as structured machine-readable JSON
Auto-generates a new feature module and wires it into settings.gradle.kts, app/build.gradle.kts, and MainActivity.kt's NavHost:
kickoff add feature --name settingsScaffolds a :core:<name> module in an App project or :sdk-<name> in an SDK project:
kickoff add module --name analytics --type core
kickoff add module --name telemetry --type sdkScaffolds a domain model, Room @Entity, @Dao, and offline-first repository across :core:model, :core:database, and :core:data:
kickoff add entity --name Article --fields "id:String,title:String,content:String"Validates Clean Architecture module boundaries without needing a Gradle daemon:
kickoff arch-checkDiagnoses JDK, Android SDK, Gradle wrapper, and AI tools:
kickoff doctor [--json]Launches the built-in stdio Model Context Protocol (MCP) server exposing tools directly to Claude Code, Cursor, Antigravity, and Windsurf:
kickoff mcpConfigure in Claude Desktop / Cursor / Antigravity (mcpServers):
{
"mcpServers": {
"kickoff": {
"command": "kickoff",
"args": ["mcp"]
}
}
}(Or specify /path/to/Kickoff-V2/kickoff if running directly from a monorepo checkout).
Scaffolded applications strictly follow Google's official Now in Android Clean Architecture design:
graph TD
App[":app (Root, Navigation, MainActivity)"]
FeatureHome[":feature:home (Screens, ViewModels, UI State)"]
CoreData[":core:data (OfflineFirstUserRepository)"]
CoreTesting[":core:testing (Test Fakes & Rules)"]
CoreStorage[":core:database & :core:datastore"]
CoreNetwork[":core:network (Retrofit, OkHttp)"]
CoreCommon[":core:common (Dispatchers, AppResult)"]
CoreConnectivity[":core:connectivity (NetworkMonitor Flow)"]
CoreAnalytics[":core:analytics (AnalyticsHelper)"]
CorePermissions[":core:permissions (Compose launchers)"]
CoreDesignSystem[":core:designsystem (M3 Theme & Tokens)"]
CoreUI[":core:ui (Shared Compose Layouts)"]
CoreModel[":core:model (Domain Entities)"]
App --> FeatureHome
App --> CoreDesignSystem
FeatureHome --> CoreModel
FeatureHome --> CoreData
FeatureHome --> CoreDesignSystem
FeatureHome --> CoreUI
CoreData --> CoreModel
CoreData --> CoreStorage
CoreData --> CoreNetwork
CoreData --> CoreCommon
CoreTesting --> CoreData
Scaffolded SDK suites provide a redistributable, binary-compatible library setup with an interactive showcase app:
graph TD
SampleApp[":sample (Showcase Application)"]
SdkUi[":sdk-ui (Optional Compose Components, @Immutable)"]
SdkCore[":sdk-core (Headless Engine, explicitApi, Zero-Hilt)"]
SdkTesting[":sdk-testing (Consumer Test Fakes & Rules)"]
SampleApp --> SdkUi
SampleApp --> SdkCore
SdkUi --> SdkCore
SdkTesting --> SdkCore
Kickoff is an open-source project and welcomes contributions from the community! Check out our Contributing Guide for instructions on setting up your local environment, running tests, and opening Pull Requests.
This project is licensed under the MIT License.
