# Jetbrains Dev

Use when building, running, or debugging the JetBrains plugin, Gradle build/typecheck...

- Repository: https://github.com/Kilo-Org/kilocode (27829 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Kilo-Org/kilocode --skill jetbrains-dev -g -a claude-code -y`
Codex: `npx skills add Kilo-Org/kilocode --skill jetbrains-dev -g -a codex -y`
Cursor: `npx skills add Kilo-Org/kilocode --skill jetbrains-dev -g -a cursor -y`
Gemini CLI: `npx skills add Kilo-Org/kilocode --skill jetbrains-dev -g -a gemini-cli -y`

## Description

Use when building, running, or debugging the JetBrains plugin, Gradle build/typecheck tasks, sandbox runIde* modes and recovery, stopping sandbox runs, dev storage isolation, debug/chat logging, CLI pin modes and pin bumping.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# JetBrains Plugin Build, Run, and Debug

Detailed reference for building, running, and debugging `packages/kilo-jetbrains/`. See `packages/kilo-jetbrains/AGENTS.md` for the always-on restrictions and key command summary; this skill covers the full workflow.

## CLI Integration

- CLI process spawning, download, extraction, and lifecycle belong in `backend`.
- By default, the plugin does not bundle CLI binaries. At connect time the backend downloads the GitHub Release asset for the version pinned in `packages/kilo-jetbrains/package.json`; `backend` resources include `kilo.properties` with `cli.version` and `cli.pinned` for split-mode RPC and runtime use.
- Bundled release builds pass `-Pkilo.cli.bundled=true` while keeping `kilo.cli.pinned=true`. This build-only flag stages all pinned CLI release assets into `kilo-cli.zip`; runtime detects that resource and extracts only the current platform instead of downloading. Do not add a `cli.bundled` key to `kilo.properties` or repurpose `kilo.cli.pinned=false` for public bundled releases.
- For release questions, use the `/release-jetbrains` command; it verifies the CLI pin before creating immutable `jetbrains/v*` tags.
- For OS and environment checks, prefer IntelliJ Platform classes over raw JVM APIs such as `System.getProperty(...)` or `System.getenv(...)`.
- Detect architecture with `com.intellij.util.system.CpuArch.CURRENT`, not `System.getProperty("os.arch")`.
- Detect OS with `com.intellij.openapi.util.SystemInfo.isMac` / `isLinux` / `isWindows`.
- Read environment variables with `com.intellij.util.EnvironmentUtil.getValue(...)` or `getEnvironmentMap()` when platform-aware environment handling matters.
- Resolve IDE paths with `com.intellij.openapi.application.PathManager` rather than inferring paths from process working directories.
- For packaging/build plumbing, see `script/build.ts` and `backend/build.gradle.kts`.

### CLI Pinning, Unpinning, and Bumping

The rest: https://github.com/Kilo-Org/kilocode/blob/HEAD/.kilo/skills/jetbrains-dev/SKILL.md
