# Jetbrains UI

Use when writing or reviewing UI code in packages/kilo-jetbrains/, Swing layout...

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

## Install

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

## Description

Use when writing or reviewing UI code in packages/kilo-jetbrains/, Swing layout, platform components, UiStyle tokens, theme colors/fonts/borders, Stack/Align layouts, tool windows/dialogs/popups/notifications, settings pages, and the pre-return UI checklist.

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

# JetBrains Plugin UI Guidelines

Detailed UI reference for `packages/kilo-jetbrains/`. See `packages/kilo-jetbrains/AGENTS.md` for the hard restrictions (no Compose/DSL/JCEF) and the reuse-first index; this skill covers the how.

## Technology Choices

**Do not use Kotlin UI DSL v2 (`com.intellij.ui.dsl.builder`) in this plugin.** Use standard Swing with IntelliJ Platform components for all UI layout. The JetBrains modular template and some older sections of the codebase reference the DSL, but Kilo should not introduce it.

**Do not use Kotlin Compose or `intellij.platform.compose` in this plugin.** The JetBrains modular template uses Compose for its demo tool window, but Kilo should use standard Swing with IntelliJ Platform components only. Keep all plugin UI in the existing Swing-based stack.

**Do not use JCEF (`JBCefBrowser`) in this plugin.** JCEF does not work in JetBrains remote development (split mode): the frontend process runs on the client machine but JCEF requires a display on the host, making it effectively unusable for remote users. Use standard Swing with IntelliJ Platform components for all UI.

| Need | API |
|---|---|
| Any layout, forms, panels | Standard Swing with IntelliJ Platform component replacements |
| Tool windows | `SimpleToolWindowPanel` + `ToolWindow.contentManager` |
| Menus and toolbars | [Action System](https://plugins.jetbrains.com/docs/intellij/action-system.html) |
| Dialogs | Extend `DialogWrapper` |

## Style Tokens

**`UiStyle`** (`frontend/src/main/kotlin/ai/kilocode/client/ui/UiStyle.kt`) is the single source of truth for reusable UI constants in this plugin.

Before introducing any new reusable color, spacing value, border, size, font, or helper:

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