"An IDE-first AI copilot for IntelliJ IDEA with chat, diagnostics, and project-aware insights."
UltraCodeAI is an IntelliJ IDEA plugin that embeds an AI coding copilot directly in the IDE:
- Multi-model chat with streaming responses
- Real‑time Diagnostics tab powered by IntelliJ inspections
- Project‑aware Insights (RAG-ready structure)
- One clean, native, tabbed tool window: Chat • Diagnostics • Insights
It works with both local models (privacy-first) and cloud models (frontier capabilities), and is built 100% in Java for deep IntelliJ integration.
- 🤖 Chat tab with streaming responses (token-by-token)
- 🔍 Diagnostics tab with live IntelliJ error/warning highlights
- 💡 Insights tab scaffold for project-aware guidance (RAG-ready)
- 🧩 Local + Cloud model support via a unified execution service
- 🧭 Native tool window (right dock), theme-aware, keyboard-friendly
- 🧱 Pluggable services (execution strategies, RAG/indexer, MCP/logs)
- 🧰 Context controls: add files/snippets/directories from project view
- Tool Window UI: com.devoxx.genie.ui.window.UltraCodeAIToolWindowFactory
- Prompt Pipeline: com.devoxx.genie.service.prompt.PromptExecutionService
- Streaming Interface: com.devoxx.genie.service.prompt.response.ResponseListener
- Diagnostics Listener: com.devoxx.genie.service.diagnostics.UltraCodeAIDiagnosticsService
- Settings Panels: multiple projectConfigurable entries in plugin.xml
- Optional Panels: MCP Logs (bottom tool window), Appearance, Costs, Web Search
- Extensibility: RAG indexer, providers, threading, cancellation, memory
Folder hints (typical layout): ---bash---
UltraCodeAI/src/main/java/com/ ├─ ui/ │ ├─ window/ # Tool windows (UltraCodeAI, MCP logs) │ ├─ panel/ # Prompt/response panels (if present) │ └─ settings/ # Settings pages ├─ service/ │ ├─ prompt/ # Execution, memory, threading, strategies │ ├─ diagnostics/ # Live analyzer listener (Diagnostics tab) │ ├─ rag/ # Indexer & retrieval (optional, pluggable) │ └─ mcp/ # MCP execution/logging (optional) └─ chatmodel/ # Local & cloud provider services ---bash---
From source: bash git clone https://github.com/vishnupriyanpr/UltraCodeAI.git cd UltraCodeAI ./gradlew buildPlugin
text
Install into IDE:
- Open IntelliJ → Settings → Plugins → Install from Disk
- Select zip from build/distributions/
Dev run: bash ./gradlew runIde
Requirements:
- IntelliJ IDEA 2023.3.4+ recommended
- Java 17+
Open Settings → UltraCodeAI:
- Select provider (local or cloud)
- Optionally set API keys for cloud providers
- Adjust appearance, cost estimation, context window preferences
- Enable/disable MCP, Web Search, RAG (if available in your build)
Tool window:
- View → Tool Windows → UltraCodeAI (right side)
Chat:
- Open UltraCodeAI tool window
- Type a prompt (optionally include code context)
- Watch streamed response in real time
Add context:
- Right‑click code editor/project files → “Add To Conversation”
- Add directory or calculate tokens for large context
Diagnostics:
- Open Diagnostics tab
- Edit code; issues auto‑populate from IntelliJ analyzer
- (Optional) Click entries to navigate (if wired in your build)
Insights:
- Open Insights tab
- See contextual recommendations (when connected to your RAG/provider flow)
- UltraCodeAIToolWindowFactory
- Builds the 3-tab UI
- Hooks Chat send-button to PromptExecutionService.executePrompt(...)
- PromptExecutionService
- Primary pipeline: command processing → strategy selection → execution → cancellation → cleanup
- Overload provided for simple String + ResponseListener Chat integration
- ResponseListener
- Minimal interface: onTokenReceived, onComplete
- UltraCodeAIDiagnosticsService
- Listens to IntelliJ daemon analyzer completion
- Feeds current file highlights to Diagnostics tab UI callback
- Providers: add your own local/cloud services under chatmodel/
- Strategies: register new PromptExecutionStrategy variants
- RAG: wire your indexer/retriever to enrich Insights tab
- WebView: swap JTextArea for JCEF/HTML+Prism for rich rendering
- Actions: add editor/project view actions to push context to chat
- For streaming UIs, append tokens on EDT using SwingUtilities.invokeLater(...)
- For large projects, avoid blocking EDT; use background tasks
- Prefer project services (project.getService(...)) for scoped lifecycles
- Keep plugin.xml single source of truth for factories, services, actions
- Click-to-navigate diagnostics entries (offset → line → OpenFileDescriptor)
- AI fix suggestions inline in Diagnostics (one-click apply where safe)
- Rich chat rendering via JCEF + Markdown + code highlight
- Provider presets and smart model recommendations by task
- Full RAG wiring with local embeddings + retrieval panel
PRs welcome! Suggested flow:
- Fork and branch: feature/
- Code + tests
- ./gradlew buildPlugin
- Open PR with a clear description and screenshots/GIFs for UI changes
MitLicense-2.0 (see LICENSE in the repo)
Vishnupriyan P R.
Vivek K K.
Akshaya K.
Sanjit M.
Crafted by the MeshMinds. Inspired by modern agentic IDE workflows and built with the IntelliJ Platform SDK + Java.
