The fastest, most lightweight Claude Code integration for IntelliJ IDEA
Kotlin + Compose/Jewel — zero webviews, zero lag, zero compromise.
Installation • Features • Architecture • Build
🇬🇧 English | 🇷🇺 Русский
Most AI plugins for IDEs rely on embedded browsers (JCEF/Chromium), Electron wrappers, or webviews. That means extra memory, slow startup, and micro-lags on every interaction.
Ultimate Claude UI takes a different approach. It's built with Compose Multiplatform + Jewel — JetBrains' native UI toolkit for IDE plugins. The result:
- Instant startup — no browser engine to bootstrap
- Near-zero memory overhead — no hidden Chromium process eating your RAM
- Buttery-smooth UI — declarative Compose rendering with native IDE look & feel
- Feels like a built-in IDE feature, not a bolt-on
No JCEF. No React. No webviews. Just fast, native Compose UI that respects your IDE.
- Multi-tab chat — run several conversations in parallel, rename and close tabs freely
- Streaming responses with real-time elapsed timer
- Extended thinking — collapsible panel to inspect Claude's chain-of-thought reasoning
- Session history — browse, search, and resume past conversations
- Markdown rendering — Jewel Markdown with GFM extensions (tables, strikethrough, autolinks, alerts)
- Welcome screen with quick-start tips for new users
@mentions— reference any project file directly in your prompt- Image attachments — paste screenshots (
Ctrl+V) or drag images for visual context - Inline diff viewer — review proposed changes side-by-side before approving
- Syntax-highlighted code blocks with language auto-detection
- "Send to Claude" action (
Ctrl+Alt+K) — select code in the editor, send it to chat instantly
| Model | ID | Best for |
|---|---|---|
| Sonnet 4.6 | claude-sonnet-4-6 |
Default — fast & capable |
| Opus 4.6 | claude-opus-4-6 |
Newest & most powerful |
| Opus 4.6 1M | claude-opus-4-6 |
Extended conversations |
| Haiku 4.5 | claude-haiku-4-5 |
Quick answers, lowest latency |
Switch models on-the-fly from the input toolbar.
| Mode | Description |
|---|---|
| Default | Manual confirmation for every operation (safest) |
| Plan | Read-only tools; generates an implementation plan for your approval |
| Agent | Auto-accepts file create/edit to reduce friction |
| Auto | Fully automatic — bypasses all permission checks |
Every tool invocation is rendered as an expandable card with status indicators:
- Read / Edit / Write — file operations with path and line-count badges
- Bash — command preview and output
- Search / Glob — search patterns and matched files
- Web Fetch / Web Search — URL and query display
- Grouped tools — multiple reads or edits collapse into a single expandable group
Approval actions (Allow / Always Allow / Deny) are inline — no modal popup interruptions.
Type / in the input field for smart autocomplete:
- Local:
/clear,/new,/reset,/help - SDK: Full set of Claude Code commands loaded from the SDK at startup
- Keyboard navigation with
Up/Downarrows,Enterto select,Escto dismiss
Hit Cmd+/ (macOS) or Ctrl+/ to enhance your prompt before sending. Claude Haiku rewrites your input for clarity and detail, and you choose between the original and enhanced version.
- "Generate Commit Message with Claude" action in the commit dialog
- Analyzes your staged changes and produces a meaningful commit message
Three built-in presets (Default, Dark+, Warm) plus 30+ individually adjustable colors:
- User message bubbles, accent colors, text, surfaces, borders
- Status colors (success / warning / error)
- Code block styling, diff highlighting
- Action buttons (approve / deny)
All changes apply in real-time with live preview. Separate palettes for light and dark IDE themes.
Full English and Russian translations. Follows IDE language by default, or override manually in settings.
┌─────────────────────────────────────────────────┐
│ IntelliJ IDEA │
│ ┌───────────────────────────────────────────┐ │
│ │ Ultimate Claude UI (Compose/Jewel) │ │
│ │ ChatPanel · MessageList · ToolBlocks │ │
│ │ ApprovalPanels · DiffViewer · Themes │ │
│ └──────────────────┬────────────────────────┘ │
│ │ stdin/stdout │
│ ┌──────────────────▼────────────────────────┐ │
│ │ claude-bridge.mjs (Node.js) │ │
│ │ wraps @anthropic-ai/claude-code SDK │ │
│ └──────────────────┬────────────────────────┘ │
│ │ │
│ ┌──────────────────▼────────────────────────┐ │
│ │ Claude Code SDK / API │ │
│ └───────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
Communication protocol: Line-based JSON over stdin/stdout with tagged messages ([CONTENT_DELTA], [TOOL_USE], [PERMISSION_REQUEST], etc.), parsed by SDKMessageParser into a typed Flow<StreamEvent>.
Key design decisions:
- Kotlin sealed classes for all algebraic types (
ContentBlock,StreamEvent) - Coroutines + Flow everywhere — no callbacks, no
CompletableFuture - DynamicBundle i18n with language override support
- Auto-detection of Node.js and Claude CLI (Homebrew, nvm, fnm, volta, manual PATH)
Coming soon
git clone https://github.com/dsudomoin/ultimate-claude-gui.git
cd ultimate-claude-gui
./gradlew buildPluginThe plugin ZIP will be in build/distributions/. Install it via Settings > Plugins > Gear icon > Install Plugin from Disk.
- IntelliJ IDEA 2025.3.3+
- Node.js 18+ (auto-detected or configured in settings)
- Claude CLI (
claude loginmust be run at least once)
./gradlew runIde # Launch sandbox IDE with the plugin
./gradlew build # Full build (compile + package)
./gradlew buildPlugin # Build distribution ZIP
./gradlew test # Run testssrc/main/kotlin/ru/dsudomoin/claudecodegui/
├── ui/
│ ├── compose/
│ │ ├── chat/ # Messages, bubbles, tool blocks, thinking panel
│ │ ├── input/ # Chat input, slash commands, model selector
│ │ ├── approval/ # Inline permission panels (Compose)
│ │ ├── dialog/ # Plan, enhancer, question dialogs
│ │ ├── status/ # Todos, file changes, subagents tabs
│ │ ├── history/ # Session history browser
│ │ ├── common/ # ComposePanelHost, markdown, badges
│ │ ├── theme/ # Compose theme bridge, color extensions
│ │ └── toolwindow/ # ComposeChatContainer, panel factory
│ ├── theme/ # Color system, presets, ThemeManager
│ ├── diff/ # Interactive diff viewer
│ └── toolwindow/ # Tool window factory
├── core/
│ ├── model/ # Message, ContentBlock, StreamEvent
│ └── session/ # Session storage
├── provider/claude/ # ClaudeProvider (bridge lifecycle)
├── bridge/ # BridgeManager, SDKMessageParser
├── service/ # Settings, OAuth, prompt enhancement
├── settings/ # Configuration UI
├── action/ # IDE actions (send selection, commit message)
└── command/ # Slash command registry
| Component | Technology |
|---|---|
| Language | Kotlin 2.3.10, JVM 21 |
| Platform | IntelliJ Platform SDK 2025.3.3 |
| UI | Compose Multiplatform + Jewel |
| Markdown | Jewel Markdown (GFM tables, alerts, strikethrough, autolink) |
| Async | kotlinx-coroutines + Flow |
| Serialization | kotlinx-serialization |
| Bridge | Node.js + @anthropic-ai/claude-code SDK |
| Build | Gradle + IntelliJ Platform Plugin 2.11.0 |
MIT
Built with Compose/Jewel. Because your IDE deserves better than a webview.
