Opinionated Claude Code setup for Kotlin Multiplatform Mobile — shared module with MVVM + Clean Architecture in commonMain, Ktor Client + kotlinx.serialization, Koin DI, shared ViewModels over StateFlow, SQLDelight, multiplatform-settings. Ships skills, agents, and slash commands including /init-kmm-app to scaffold a new shared module end-to-end.
Add a SQLDelight schema migration (.sqm file) with a verifyMigrations gradle task + test.
Add a use case in commonMain under an existing feature, plus a commonTest test.
Add a shared ViewModel in commonMain with StateFlow<UiState> + UiEvent Channel + sealed Action.
1. Run the targeted tests:
Scaffold a fresh Kotlin Multiplatform Mobile project — :shared with commonMain/androidMain/iosMain, :androidApp (Compose), iosApp/ (SwiftUI), Ktor Client, kotlinx.serialization, Koin DI, StateFlow + Channel view models, optional SQLDelight.
Use PROACTIVELY after any change that affects user-visible strings, domain models flowing into UI, or per-platform UI in `:androidApp` / `iosApp/`. Reviews both platforms' UI for accessibility regressions and confirms the shared layer doesn't undermine either (e.g., locale-insensitive formatting, color-only status enums). Read-only; does not modify code.
Use PROACTIVELY for architectural decisions in a Kotlin Multiplatform Mobile project — which source set a piece of code belongs in, when to use `expect`/`actual` vs. interface-injection, how to shape a feature so it's Swift-friendly, module / target configuration, and when to share ViewModels vs. keep them native. Not for writing implementations or tests.
Use PROACTIVELY for any Gradle, Kotlin Multiplatform plugin, build, or iOS distribution issue. Covers `build.gradle.kts` for the shared module, target configuration (androidTarget, iosArm64, iosSimulatorArm64, iosX64), source-set hierarchy, the version catalog (`libs.versions.toml`), CocoaPods / SPM / XCFramework distribution, and build-performance tuning for KMP.
Use PROACTIVELY for writing shared Kotlin code in `commonMain` — repositories, use cases, mappers, ViewModels, Ktor API clients, Koin modules. Trigger on any request to add or modify business logic that should run on both Android and iOS. Not for native UI work (that's the sibling `android/` and `ios/` setups).
Use PROACTIVELY when performance regresses on one or both platforms consuming `:shared`, when the XCFramework bloats, or when Kotlin/Native compile times climb. Proposes a measurement plan per platform (Macrobenchmark + Perfetto on Android, Instruments on iOS) and looks for shared-layer causes. Read-only.
Authoritative blueprint for scaffolding a brand-new Kotlin Multiplatform Mobile project with this project's conventions. Used by /init-kmm-app. Contains every file template, placeholder list, feature-flag block, and the procedure to emit runnable splash screens on Android (Compose) and iOS (SwiftUI).
How MVVM + Clean Architecture is applied in this Kotlin Multiplatform codebase — source-set placement, `expect`/`actual` vs. interface injection, layer boundaries inside `commonMain`, and how ViewModels reach both Android and iOS. Load when designing a feature, deciding where code belongs, or reviewing layer boundaries in the shared module.
How the shared Kotlin module is consumed from Swift in the iOS app — what API shapes translate well, what to avoid, how to wrap `StateFlow` and `Flow` for SwiftUI, how to bridge suspend functions and sealed hierarchies, and how to make the framework pleasant to use. Load whenever writing or reviewing a public API that iOS will call.
Testing patterns for the shared Kotlin Multiplatform module — `kotlin.test` + `kotlinx-coroutines-test`. Covers use cases, ViewModels, Ktor repositories (with MockEngine), and how to keep tests running on both JVM and iOS simulator targets.
How Koin is wired up and used in this KMM project — common modules, platform-specific modules, ViewModel binding for both Android and iOS, and testing. Load when adding a new injectable, creating a Koin module, wiring a repository, writing DI-aware tests, or debugging a Koin error.
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This folder holds per-stack Claude Code configurations. Each subfolder is a self-contained setup you can drop into (or start from, inside) a project of that stack.
android/ — Kotlin + Jetpack Compose, MVVM + Clean Architecture, Hilt, Retrofit.ios/ — Swift + SwiftUI, MVVM + Clean Architecture, @Observable, URLSession.kmm/ — Kotlin Multiplatform shared module (Ktor + Koin + shared ViewModels) consumed by native Compose/SwiftUI apps.flutter/ — Dart + Flutter, Clean Architecture, flutter_bloc + bloc_concurrency, freezed + fpdart (Either<Failure, T>), typed go_router, get_it, dio + OpenAPI client, drift + sqlcipher. Includes /init-flutter-app for scaffolding a new app end-to-end.<stack>/
├── CLAUDE.md # Project context & conventions (stack-specific)
├── README.md # Overview of the stack's setup
└── .claude/
├── settings.json # Permissions, env
├── agents/ # Specialist subagents
├── skills/ # Domain knowledge packs (one per topic)
└── commands/ # Slash commands
Claude Code picks up CLAUDE.md and everything under .claude/ automatically when you open the folder.
Alongside the stack folders, the repo also ships a Claude Code plugin for each stack under plugins/ and a marketplace manifest at .claude-plugin/marketplace.json. See Distribution via marketplace.
Option A — install the plugin (recommended for teams). Each stack ships as a Claude Code plugin via the cc-mobile marketplace. See Distribution via marketplace below. This gives you the skills, agents, and slash commands (including /init-<stack>-app) without copying files around.
Option B — start a project here. Initialize the project inside the corresponding subfolder, then open that subfolder in Claude Code. /init-<stack>-app will scaffold the whole app (folders, manifests, core/ base classes, routing, tests) with a few clarifying questions.
Option C — bring your own project. Copy the subfolder's CLAUDE.md and .claude/ into the root of your existing project.
This repo is itself a Claude Code plugin marketplace. .claude-plugin/marketplace.json at the repo root advertises the four stack plugins in plugins/.
Coworkers install once:
/plugin marketplace add <git-url-of-this-repo>
/plugin install cc-mobile-android@cc-mobile
/plugin install cc-mobile-ios@cc-mobile
/plugin install cc-mobile-kmm@cc-mobile
/plugin install cc-mobile-flutter@cc-mobile
Installing just the stacks they work with is fine — they're independent.
KMM is the one stack that needs three plugins together: cc-mobile-kmm covers the shared module only, while the native UI lives in androidApp/ (Compose) and iosApp/ (SwiftUI). Install all three:
/plugin install cc-mobile-kmm@cc-mobile
/plugin install cc-mobile-android@cc-mobile
/plugin install cc-mobile-ios@cc-mobile
A few things to know:
plugins/cc-mobile-kmm/CLAUDE.md to your project root — it already references the androidApp/ + iosApp/ layout. The android and ios plugin CLAUDE.md files assume a standalone single-stack repo and will mislead the agent./new-feature, /add-usecase, /add-migration, /fix-tests, /upgrade-deps). When invoked unprefixed, Claude Code may pick any of the three. To target a specific stack, use the prefixed form: /cc-mobile-kmm:new-feature, /cc-mobile-android:add-screen, /cc-mobile-ios:add-view.:app isn't a gradle module (it expects KMM's :androidApp). The ios plugin's hook skips itself when there's no Package.swift / .xcodeproj / .xcworkspace at the repo root. The kmm plugin's hook is the only one that runs in a KMM repo, gating commits on :shared:allTests and :androidApp:lintDebug.kmm-reviewer, android-ui-engineer, ios-tester). Pick the one that matches the file you're working on.Getting updates:
/plugin marketplace update cc-mobile
Re-running install on an updated plugin refreshes its skills, agents, and commands. The stack's CLAUDE.md is shipped inside the plugin; if a coworker has dropped a copy into their project root, they should re-copy it when the template evolves (see each plugin's README for the copy step).
Publishing a new version:
npx claudepluginhub dimitriremoiville/cc-mobile --plugin cc-mobile-kmmOpinionated Claude Code setup for iOS apps — Swift + SwiftUI, MVVM + Clean Architecture, @Observable state holders, URLSession + Codable, SwiftData + Keychain, NavigationStack typed routes. Ships skills, agents, and slash commands including /init-ios-app to scaffold a new app end-to-end.
Opinionated Claude Code setup for Android apps — Kotlin + Jetpack Compose, MVVM + Clean Architecture, Hilt DI, Retrofit + OkHttp + kotlinx.serialization, Room + DataStore. Ships skills, agents, and slash commands including /init-android-app to scaffold a new app end-to-end.
Opinionated Claude Code setup for Flutter apps — Clean Architecture, flutter_bloc + bloc_concurrency, freezed + fpdart (Either<Failure, T>), typed go_router, get_it, dio + OpenAPI client, drift + sqlcipher. Ships skills, agents, and slash commands including /init-flutter-app to scaffold a new app end-to-end.
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.
TypeScript/JavaScript full-stack development with NestJS, React, and React Native
Complete AI coding workflow system. Self-correcting memory + persistent FTS5-indexed research wikis + auto-research loop + multi-LLM council on a single SQLite store. 33 skills, 8 agents, 22 commands, 37 hook scripts across 24 events. Cross-agent via SkillKit.
Open-source, local-first Claude Code plugin for token reduction, context compression, and cost optimization using hybrid RAG retrieval (BM25 + vector search), reranking, AST-aware chunking, and compact context packets.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.