Expo Brownfield Integration
mweinbach/agent-coworker
Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.
Diagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-native-build-performance --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kotlin-tooling-native-build-performance .claude/skills/kotlin-tooling-native-build-performance && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "kotlin-tooling-native-build-performance" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performance into .claude/skills/kotlin-tooling-native-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-native-build-performance", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performanceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-native-build-performance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/kotlin-tooling-native-build-performance .agents/skills/kotlin-tooling-native-build-performance && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "kotlin-tooling-native-build-performance" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performance into .agents/skills/kotlin-tooling-native-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-native-build-performance", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-native-build-performance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/kotlin-tooling-native-build-performance .cursor/skills/kotlin-tooling-native-build-performance && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "kotlin-tooling-native-build-performance" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performance into .cursor/skills/kotlin-tooling-native-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-native-build-performance", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Kotlin/kotlin-agent-skills.git --path skills/kotlin-tooling-native-build-performance--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-native-build-performance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/kotlin-tooling-native-build-performance .gemini/skills/kotlin-tooling-native-build-performance && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "kotlin-tooling-native-build-performance" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performance into .gemini/skills/kotlin-tooling-native-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-native-build-performance", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-native-build-performanceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/kotlin-tooling-native-build-performance .github/skills/kotlin-tooling-native-build-performance && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "kotlin-tooling-native-build-performance" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performance into .github/skills/kotlin-tooling-native-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-native-build-performance", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Kotlin/kotlin-agent-skills kotlin-tooling-native-build-performance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kotlin/kotlin-agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/kotlin-tooling-native-build-performance .opencode/skills/kotlin-tooling-native-build-performance && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "kotlin-tooling-native-build-performance" agent skill from https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-native-build-performance into .opencode/skills/kotlin-tooling-native-build-performance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kotlin-tooling-native-build-performance", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
kotlin-tooling-native-build-performanceDiagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS.
Kotlin Tooling Native Build Performance is an agent skill from Kotlin/kotlin-agent-skills. Diagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS. Use when the user reports slow iOS or shared-framework builds, long linkDebug/linkRelease or XCFramework tasks, cold CI builds that re-download the Kotlin/Native toolchain, KSP or other generated code on the native path, transitiveExport usage, or asks for a local-development versus CI build performance plan.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts and reference files (for example `evals/EVALUATION.md`, `references/artifacts-and-targets.md` and `references/caching-and-gradle.md`).
It sits in Mobile, covering Android development and Cross-platform mobile apps. It works with Kotlin, iOS and Gradle. The repository describes itself as: A collection of AI agent skills useful for projects using Kotlin language. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c2f9069. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
kotlinlang.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Kotlin Tooling Native Build Performance loads about 2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 116 tokens; SKILL.md has 769 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Kotlin/kotlin-agent-skills at commit c2f9069, republished under its Apache-2.0 licence (© Kotlin). 769 words, ~1,985 tokens.
.claude/skills/kotlin-tooling-native-build-performance/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Turn "the iOS build is slow" into a measured diagnosis and a small set of safe fixes. Two rules apply throughout:
Establish four facts before editing anything: where (local or CI), what (debug feedback loop or release/distribution artifact), state (first build, clean, warm, or no-op), and phase (which tasks dominate the log). Then match the dominant symptom:
| Symptom in the build log | Likely cause | Read |
|---|---|---|
linkRelease* or *ReleaseXCFramework tasks in a local development loop | Building distribution artifacts for development | artifacts-and-targets |
| Kotlin/Native compiler distribution downloaded on every CI run | ~/.konan not preserved between runs | caching-and-gradle |
| Long pause before the first task starts | Configuration phase, no configuration cache | caching-and-gradle |
| All iOS targets build when only one simulator is needed | Broad task (build, assemble, assemble*XCFramework) or unused targets | artifacts-and-targets |
ksp* tasks ahead of compileKotlinIos* | Generated-code work on the native path | exports-and-generated-code |
| Small source edit recompiles and relinks everything | Compiler caches disabled, or missing incrementality | caching-and-gradle, experimental |
Machine overloaded while several link* tasks run at once | Parallel native linking | caching-and-gradle, worker-limit caveat |
Run the static audit from the project root:
scripts/audit-native-build.sh /path/to/projectIt is read-only and prints file:line findings (disabled caches, broad
local tasks, transitiveExport, broad KSP configuration, missing CI
.konan cache), each pointing at the reference file with the fix.
Findings are leads, not verdicts — confirm each against project policy.
Find the command the user actually waits for: a script, a CI step, or the Gradle invocation inside an Xcode build phase. Optimize that command, not a task you picked yourself.
Run it twice when practical. The first build downloads Kotlin/Native components and fills caches; only the second and later runs are representative. Attribute time per task before blaming the compiler:
kotlin.build.report.output=file # writes build/reports/kotlin-build/Gradle's --scan or --profile work too.
If you cannot run the build (no macOS host, no Xcode), analyze logs, build scans, or checked-in metrics instead — and state explicitly that the conclusion is static.
Apply fixes one at a time, re-measuring as you go:
~/.konan warm in CI, update
Kotlin: references/caching-and-gradle.mdtransitiveExport, narrow
export(...), scope KSP work to the native compilations that need it:
references/exports-and-generated-code.mdA developer on an Apple Silicon Mac complains that "every shared-module
change costs 12 minutes". Their loop runs ./gradlew :shared:assembleXCFramework.
A build scan of the second (warm) run shows:
:shared:linkReleaseFrameworkIosArm64 348s
:shared:linkReleaseFrameworkIosX64 341s
:shared:compileKotlinIosX64 96s
:shared:linkDebugFrameworkIosSimulatorArm64 41s
:shared:compileKotlinIosSimulatorArm64 38s
configuration phase 64sReasoning chain:
linkRelease* —
release linking is an order of magnitude slower than debug and only CI
needs it. Replace the local command with
:shared:linkDebugFrameworkIosSimulatorArm64 (or the Xcode embed task if
Xcode drives the build). (artifacts-and-targets)iosX64 work serves Intel simulators; ask whether the team still
supports them before removing the target. (artifacts-and-targets)org.gradle.configuration-cache=true once trialed. (caching-and-gradle)assembleXCFramework untouched; note that explicitly in the
report.linkRelease*,
*ReleaseXCFramework, or removed generator tasks.scripts/audit-native-build.sh reports no findings you have not
consciously accepted and documented.Close with a short performance note:
| Topic | Link |
|---|---|
| Improving Kotlin/Native compilation time | https://kotlinlang.org/docs/native-improving-compilation-time.html |
| Kotlin Gradle plugin compilation and caches | https://kotlinlang.org/docs/gradle-compilation-and-caches.html |
| iOS integration methods | https://kotlinlang.org/docs/multiplatform-ios-integration-overview.html |
| Direct integration with Xcode | https://kotlinlang.org/docs/multiplatform/multiplatform-direct-integration.html |
| Building final native binaries and XCFrameworks | https://kotlinlang.org/docs/multiplatform/multiplatform-build-native-binaries.html |
| Kotlin/Native binary options | https://kotlinlang.org/docs/native-binary-options.html |
| KSP with Kotlin Multiplatform | https://kotlinlang.org/docs/ksp-multiplatform.html |
© Kotlin, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (scripts, references) in skills/kotlin-tooling-native-build-performance of Kotlin/kotlin-agent-skills.
Open the folder on GitHubat commit c2f9069
Kotlin Tooling Native Build Performance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Kotlin Tooling Native Build Performance this skillKotlin/kotlin-agent-skills | 1.1k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Expo Brownfield Integrationmweinbach/agent-coworker | 156 | 2 repos | ~900 | Automated safety check: Notes | Custom licence | |
| Upgrade React NativeShopify/flash-list | 7.2k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Claude Android NinjaDrjacky/claude-android-ninja | 124 | — | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Simulator Audio E2Ehyochan/react-native-nitro-sound | 961 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Ksafeioannisa/KSafe | 332 | — | ~17k | Automated safety check: Pass | Apache-2.0 |
mweinbach/agent-coworker
Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.
Shopify/flash-list
Upgrade the React Native fixture app to a new version. An agent skill from Shopify/flash-list.
Drjacky/claude-android-ninja
Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.
hyochan/react-native-nitro-sound
Build and run repeatable react-native-nitro-sound recorder/player regression tests on an iOS Simulator or Android emulator, with explicit virtual-device selection, microphone permission, Maestro…
ioannisa/KSafe
Required before any reply that touches KSafe (by ksafe(...), ksafe.get/put, :ksafe-compose, :ksafe-biometrics), even a 'can KSafe do X?' question or a one-line change that looks like plain Kotlin.
CosminMihuMDC/KtorMonitor
KtorMonitor is a Kotlin Multiplatform library for real-time HTTP traffic monitoring.
Kotlin/kotlin-agent-skills
Migrate Kotlin (and Java) code from kotlinx.collections.immutable 0.3.x / 0.4.x to the latest 0.5.x.
Kotlin/kotlin-agent-skills
Load when porting, converting, or reimplementing a single Gradle plugin as a Kotlin Toolchain local plugin, or when mapping Gradle plugin concepts (Task, Extension, project.version, dependsOn, -P…
Kotlin/kotlin-agent-skills
Load when building, running, testing, packaging, linting, or configuring a Kotlin/Java project with the Kotlin Toolchain (JetBrains' unified CLI, formerly Amper), when scaffolding a new or…
Kotlin/kotlin-agent-skills
Load when authoring, writing, or designing a Kotlin Toolchain local plugin to extend the declarative build with code generation, build-time processing, custom verification, or packaging that…
Kotlin/kotlin-agent-skills
Load when migrating or converting an entire Gradle Kotlin project (build.gradle(.kts), wrapper, libs.versions.toml, buildSrc) to the Kotlin Toolchain, including rewriting CI and replacing Gradle…
Categories
Diagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS. Kotlin Tooling Native Build Performance is an agent skill from Kotlin/kotlin-agent-skills. Diagnoses and fixes slow Kotlin/Native compilation and linking in Kotlin Multiplatform projects that target iOS.
Kotlin Tooling Native Build Performance fits situations like: the user reports slow iOS; shared-framework builds; long linkDebug/linkRelease; XCFramework tasks.
Run `npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a claude-code`. Or copy the skill folder (skills/kotlin-tooling-native-build-performance in Kotlin/kotlin-agent-skills) into .claude/skills/kotlin-tooling-native-build-performance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a codex`. Or copy the skill folder (skills/kotlin-tooling-native-build-performance in Kotlin/kotlin-agent-skills) into .agents/skills/kotlin-tooling-native-build-performance in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Kotlin/kotlin-agent-skills --skill kotlin-tooling-native-build-performance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kotlin-tooling-native-build-performance, .gemini/skills/kotlin-tooling-native-build-performance, .github/skills/kotlin-tooling-native-build-performance and .opencode/skills/kotlin-tooling-native-build-performance in your project.
Going by SKILL.md and its folder, Kotlin Tooling Native Build Performance needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md names 1 domain. As links in the text: kotlinlang.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Kotlin Tooling Native Build Performance is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Kotlin Tooling Native Build Performance: Expo Brownfield Integration (mweinbach/agent-coworker, 156 stars), Upgrade React Native (Shopify/flash-list, 7.2k stars), Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars) and Simulator Audio E2E (hyochan/react-native-nitro-sound, 961 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Kotlin (a GitHub organization) maintains it in Kotlin/kotlin-agent-skills, which has 1,074 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.
Source: Kotlin/kotlin-agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.