Official agent skill

Kotlin Tooling Java To Kotlin

by JetBrains in JetBrains/skills

A skill your agent uses when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files…

OfficialApache-2.0Auto-check passedMobile

Install Kotlin Tooling Java To Kotlin

skills CLI
$ npx skills add JetBrains/skills --skill kotlin-tooling-java-to-kotlin -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JetBrains/skills kotlin-tooling-java-to-kotlin --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/kotlin-tooling-java-to-kotlin .claude/skills/kotlin-tooling-java-to-kotlin && rm -rf skills-src

Use ~/.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/

Facts

Skill name
kotlin-tooling-java-to-kotlin
GitHub stars
366
Used in
3 other repos
Token cost
~1.4k tokens
SKILL.md length
438 words
Files
16 (incl. references, assets)
Skills in repo
76
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files…

  • Works in 5 steps: Scan & Detect Frameworks → Convert → Write Output → …
  • Converting Java source files to idiomatic Kotlin
  • SKILL.md covers Workflow, Step 0: Scan & Detect Frameworks, Step 1: Convert and Step 2: Write Output, plus 4 more sections
  • Calls git

What it does

Kotlin Tooling Java To Kotlin is an agent skill from JetBrains/skills, published by the product's own GitHub organization. Use when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files that need to become .kt files. Handles framework-aware conversion for Spring, Lombok, Hibernate, Jackson, Micronaut, Quarkus, Dagger/Hilt, RxJava, JUnit, Guice, Retrofit, and Mockito.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files and assets (for example `assets/checklist.md`, `references/CONVERSION-METHODOLOGY.md` and `references/KNOWN-ISSUES.md`).

It sits in Mobile, covering Android development, Unit testing and ORMs and data access. It works with Kotlin, Java and JUnit. The repository describes itself as: Curated agent skills collection verified by JetBrains. The licence is Apache-2.0.

When your agent uses it

  • Converting Java source files to idiomatic Kotlin
  • User mentions java to kotlin
  • Migrate java to kotlin
  • Working with .java files that need to become .kt files

Example prompts

  • “java to kotlin”
  • “convert java”
  • “migrate java to kotlin”
  • “/kotlin-tooling-java-to-kotlin”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Scan & Detect Frameworks
  2. Convert
  3. Write Output
  4. Preserve Git History
  5. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit e0f258b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Kotlin Tooling Java To Kotlin loads about 1.4k tokens when it runs, and up to ~23k if it reads all its reference files. Until then it costs about 98 tokens; SKILL.md has 438 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~98
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~23k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from JetBrains/skills at commit e0f258b, republished under its Apache-2.0 licence (© JetBrains). 438 words, ~1,420 tokens.

Download SKILL.mdSave it as .claude/skills/kotlin-tooling-java-to-kotlin/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.
name
kotlin-tooling-java-to-kotlin
description
Use when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files that need to become .kt files. Handles framework-aware conversion for Spring, Lombok, Hibernate, Jackson, Micronaut, Quarkus, Dagger/Hilt, RxJava, JUnit, Guice, Retrofit, and Mockito.
license
Apache-2.0
metadata.short-description
Convert Java code to idiomatic Kotlin
metadata.author
JetBrains
metadata.version
1.0.0
metadata.source
https://github.com/Kotlin/kotlin-agent-skills/tree/main/skills/kotlin-tooling-java-to-kotlin

Java to Kotlin Conversion

Convert Java source files to idiomatic Kotlin using a disciplined 4-step conversion methodology with 5 invariants checked at each step. Supports framework-aware conversion that handles annotation site targets, library idioms, and API preservation.

Workflow

dot
digraph j2k_workflow {
  rankdir=TB;
  "User specifies files" -> "Step 0: Scan & Detect";
  "Step 0: Scan & Detect" -> "Load framework guides";
  "Load framework guides" -> "Step 1: Convert";
  "Step 1: Convert" -> "Step 2: Write .kt";
  "Step 2: Write .kt" -> "Step 3: Git rename";
  "Step 3: Git rename" -> "Step 4: Verify";
  "Step 4: Verify" -> "Next file?" [label="pass"];
  "Step 4: Verify" -> "Fix issues" [label="fail"];
  "Fix issues" -> "Step 1: Convert";
  "Next file?" -> "Step 0: Scan & Detect" [label="batch: yes"];
  "Next file?" -> "Done" [label="no more files"];
}

Step 0: Scan & Detect Frameworks

Before converting, scan the Java file's import statements to detect which frameworks are in use. Load ONLY the matching framework reference files to keep context focused.

Framework Detection Table
Import prefixFramework guide
org.springframework.*SPRING.md
lombok.*LOMBOK.md
javax.persistence.*, jakarta.persistence.*, org.hibernate.*HIBERNATE.md
com.fasterxml.jackson.*JACKSON.md
io.micronaut.*MICRONAUT.md
io.quarkus.*, javax.enterprise.*, jakarta.enterprise.*QUARKUS.md
dagger.*, dagger.hilt.*DAGGER-HILT.md
io.reactivex.*, rx.*RXJAVA.md
org.junit.*, org.testng.*JUNIT.md
com.google.inject.*GUICE.md
retrofit2.*, okhttp3.*RETROFIT.md
org.mockito.*MOCKITO.md

If javax.inject.* is detected, check for Dagger/Hilt vs Guice by looking for other imports from those frameworks. If ambiguous, load both guides.

Step 1: Convert

Apply the conversion methodology from CONVERSION-METHODOLOGY.md.

This is a 4-step chain-of-thought process:

  1. Faithful 1:1 translation — exact semantics preserved
  2. Nullability & mutability audit — val/var, nullable types
  3. Collection type conversion — Java mutable → Kotlin types
  4. Idiomatic transformations — properties, string templates, lambdas

Five invariants are checked after each step. If any invariant is violated, revert to the previous step and redo.

Apply any loaded framework-specific guidance during step 4 (idiomatic transformations).

Step 2: Write Output

Write the converted Kotlin code to a .kt file with the same name as the original Java file, in the same directory.

Step 3: Preserve Git History

To preserve git blame history, use a two-phase approach:

bash
# Phase 1: Rename (creates rename tracking)
git mv src/main/java/com/example/Foo.java src/main/kotlin/com/example/Foo.kt
git commit -m "Rename Foo.java to Foo.kt"

# Phase 2: Replace content (tracked as modification, not new file)
# Write the converted Kotlin content to Foo.kt
git commit -m "Convert Foo from Java to Kotlin"

If the project keeps Java and Kotlin in the same source root (e.g., src/main/java/), rename in place:

bash
git mv src/main/java/com/example/Foo.java src/main/java/com/example/Foo.kt

If the project does not use Git, simply write the .kt file and delete the .java file.

Show full SKILL.md (161 more words)Show less

Step 4: Verify

After conversion, verify using checklist.md:

  • Attempt to compile the converted file
  • Run existing tests
  • Check annotation site targets
  • Confirm no behavioral changes

Batch Conversion

When converting multiple files (a directory or package):

  1. List all .java files in the target scope
  2. Sort by dependency order — convert leaf dependencies first (files that don't import other files in the conversion set), then work up to files that depend on them
  3. Convert one file at a time — apply the full workflow (steps 0-4) for each
  4. Track progress — report which files are done, which remain
  5. Handle cross-references — after converting a file, update imports in other Java files if needed (e.g., if a class moved packages)

For large batches, consider converting in packages (bottom-up from leaf packages).

Common Pitfalls

See KNOWN-ISSUES.md for:

  • Kotlin keyword conflicts (when, in, is, object)
  • SAM conversion ambiguity
  • Platform types from Java interop
  • @JvmStatic / @JvmField / @JvmOverloads usage
  • Checked exceptions and @Throws
  • Wildcard generics → Kotlin variance

© JetBrains, 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

Files

SKILL.md and 15 other files (references, assets) in kotlin-tooling-java-to-kotlin of JetBrains/skills.

  • SKILL.md
  • assets/checklist.md
  • references/CONVERSION-METHODOLOGY.md
  • references/KNOWN-ISSUES.md
  • references/frameworks/DAGGER-HILT.md
  • references/frameworks/GUICE.md
  • references/frameworks/HIBERNATE.md
  • references/frameworks/JACKSON.md
  • references/frameworks/JUNIT.md
  • references/frameworks/LOMBOK.md
  • references/frameworks/MICRONAUT.md
  • references/frameworks/MOCKITO.md
  • references/frameworks/QUARKUS.md
  • references/frameworks/RETROFIT.md
  • references/frameworks/RXJAVA.md
  • references/frameworks/SPRING.md

Open the folder on GitHubat commit e0f258b

Used in 3 other repositories

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in JetBrains/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Kotlin Tooling Java To Kotlin 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.

Kotlin Tooling Java To Kotlin compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Kotlin Tooling Java To Kotlin this skillJetBrains/skills3663 repos~1.4kAutomated safety check: PassApache-2.0
Mps TestsJetBrains/MPS1.7k—~3kAutomated safety check: PassApache-2.0
Jvm Helpershepherdjerred/monorepo112—~1.9kAutomated safety check: PassGPL-3.0
Kotestjvm-skills/jvm-skills140—~2.6kAutomated safety check: PassApache-2.0
Writing Tests With Kotlin Testskydoves/android-testing-skills333—~4.2kAutomated safety check: PassApache-2.0
Native Testing Strategybladeofgod/flutter-ai-harness116—~345Automated safety check: PassMIT

Similar skills

  • Mps Tests

    JetBrains/MPS

    Official

    A skill your agent uses when writing or modifying tests inside MPS @tests models — NodesTestCase (typesystem, constraints, scopes, dataflow, generator output), EditorTestCase (intentions, actions…

    1.7k GitHub stars~3k tokensUpdated today
    MobileAuto-check passed
  • Jvm Helper

    shepherdjerred/monorepo

    Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance.

    112 GitHub stars~1.9k tokensUpdated today
    MobileAuto-check passed
  • Kotest

    jvm-skills/jvm-skills

    Write a new Kotlin test, or modernize an existing one, using Kotest matchers and idiomatic Kotlin test style — backticked names, apply/assertSoftly blocks, and existing object mothers and helpers.

    140 GitHub stars~2.6k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Writing Tests With Kotlin Test

    skydoves/android-testing-skills

    A skill your agent uses to write tests with the kotlin.test library — the multiplatform assertion + annotation API that compiles the same in commonTest and on the JVM (JUnit4 or JUnit5), Android…

    333 GitHub stars~4.2k tokensUpdated 4 mo ago
    MobileAuto-check passed
  • Native Testing Strategy

    bladeofgod/flutter-ai-harness

    适用:设计或审查 Kotlin/Swift 原生模块、Bridge Adapter、Host 编译、模拟器/设备和系统能力验证。不适用:纯 Dart/Flutter 测试或用 Fake 代替相机和权限真机验证。触发词:JUnit、XCTest、Robolectric、instrumented test、Swift Testing、Framework Fake、Gradle…

    116 GitHub stars~345 tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Jimmer Orm

    Coooolfan/XiaomiAlbumSyncer

    Jimmer ORM 开发助手(XiaomiAlbumSyncer 服务端),帮助编写实体映射代码、DTO 和 DSL 查询语句。适用于:(1) 定义或修改 Jimmer 实体(使用 @Entity 注解的 interface);(2) 编写 Jimmer DSL 查询代码;(3) 配置实体关联关系(@ManyToOne, @OneToMany, @ManyToMany);(4)…

    420 GitHub stars~702 tokensUpdated 3 days ago
    DatabasesAuto-check passed

More from JetBrains/skills

All 76 skills in this repo
  • Playwright

    JetBrains/skills

    Official

    A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…

    366 GitHub starsUsed in 11 repos~986 tokens
    Auto-check passed
  • Skill Creator

    JetBrains/skills

    Official

    Guide for creating effective skills. An agent skill from JetBrains/skills.

    366 GitHub starsUsed in 122 repos~4.7k tokens
    Auto-check passed
  • Transcribe

    JetBrains/skills

    Official

    Transcribe audio files to text with optional diarization and known-speaker hints.

    366 GitHub starsUsed in 4 repos~776 tokens
    Auto-check passed
  • Imagegen

    JetBrains/skills

    Official

    A skill your agent uses when the user asks to generate or edit images via the OpenAI Image API (for example: generate image, edit/inpaint/mask, background removal or replacement, transparent…

    366 GitHub starsUsed in 3 repos~2.5k tokens
    Auto-check passed
  • Speech

    JetBrains/skills

    Official

    A skill your agent uses when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation via the OpenAI Audio API; run the bundled CLI…

    366 GitHub starsUsed in 3 repos~1.9k tokens
    Auto-check passed
  • Screenshot

    JetBrains/skills

    Official

    A skill your agent uses when the user explicitly asks for a desktop or system screenshot (full screen, specific app or window, or a pixel region), or when tool-specific capture capabilities are…

    366 GitHub starsUsed in 6 repos~2k tokens
    Auto-check passed

Works with

Categories

Questions about Kotlin Tooling Java To Kotlin

What does Kotlin Tooling Java To Kotlin do?

A skill your agent uses when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files…. Kotlin Tooling Java To Kotlin is an agent skill from JetBrains/skills, published by the product's own GitHub organization.kt files.

When should I use Kotlin Tooling Java To Kotlin?

Kotlin Tooling Java To Kotlin fits situations like: converting Java source files to idiomatic Kotlin; user mentions java to kotlin; migrate java to kotlin; working with .java files that need to become .kt files.

How do I install Kotlin Tooling Java To Kotlin in Claude Code?

Run `npx skills add JetBrains/skills --skill kotlin-tooling-java-to-kotlin -a claude-code`. Or copy the skill folder (kotlin-tooling-java-to-kotlin in JetBrains/skills) into .claude/skills/kotlin-tooling-java-to-kotlin in your project. Claude Code loads it when a task matches its description.

How do I install Kotlin Tooling Java To Kotlin in Codex?

Run `npx skills add JetBrains/skills --skill kotlin-tooling-java-to-kotlin -a codex`. Or copy the skill folder (kotlin-tooling-java-to-kotlin in JetBrains/skills) into .agents/skills/kotlin-tooling-java-to-kotlin in your project. Codex loads it when a task matches its description.

Can I use Kotlin Tooling Java To Kotlin in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/skills --skill kotlin-tooling-java-to-kotlin -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-java-to-kotlin, .gemini/skills/kotlin-tooling-java-to-kotlin, .github/skills/kotlin-tooling-java-to-kotlin and .opencode/skills/kotlin-tooling-java-to-kotlin in your project.

What does Kotlin Tooling Java To Kotlin need to run?

Going by SKILL.md and its folder, Kotlin Tooling Java To Kotlin needs the command-line tools its instructions call (git).

Does Kotlin Tooling Java To Kotlin access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Kotlin Tooling Java To Kotlin safe to install?

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. Review the folder before installing.

What licence does Kotlin Tooling Java To Kotlin use?

Kotlin Tooling Java To Kotlin 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.

How many tokens does Kotlin Tooling Java To Kotlin use?

About 1.4k tokens (SKILL.md is roughly 5.7k 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 21k tokens, read only when the agent opens those files.

What are the alternatives to Kotlin Tooling Java To Kotlin?

Skills that share tags, products or a category with Kotlin Tooling Java To Kotlin: Mps Tests (JetBrains/MPS, 1.7k stars), Jvm Helper (shepherdjerred/monorepo, 112 stars), Kotest (jvm-skills/jvm-skills, 140 stars) and Writing Tests With Kotlin Test (skydoves/android-testing-skills, 333 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Kotlin Tooling Java To Kotlin?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/skills, which has 366 GitHub stars. The repository holds 76 skills in this directory. The repository was last updated on June 29, 2026.

Source: JetBrains/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.