JetBrains has established itself as a leader in software development by creating integrated development environments (IDEs) that deliver an exceptional coding experience. With the emergence of large language models (LLMs), JetBrains has incorporated AI capabilities directly into its ecosystem to enhance the efficiency of development workflows.
Tools like the JetBrains AI Assistant, Junie, and other third-party coding agents offer seamless integration with JetBrains IDEs, bringing AI capabilities to your familiar workspace. Let's explore how to incorporate these tools into your workflow.
JetBrains AI tools
JetBrains IDEs perform deep, language-aware analysis across many stacks—JVM, Python, JavaScript/TypeScript, Go, Rust, .NET, and others. They build a rich model of your project: symbol relationships, type information, dependency structures, and language-specific behaviors. JetBrains' AI tools extract context from this model, providing the underlying LLMs with more structured and reliable data.
The IDE maintains a detailed project index, so LLMs can work with your codebase using the same analysis the IDE relies on. The tools can also draw on JetBrains IDEs' refactoring and inspection engines to propose and apply structured changes. This includes renames, method extractions, signature updates, multi-file migrations, framework-aware code generation, and project-wide cleanups.
Technically, the AI tools access the IDE via MCP, exposing its own functions (like code navigation, inspections, refactoring, etc.) to the tools.
Coding agents like Junie can also invoke test runs, linters, and build tasks, then gather outputs like test reports and build logs. They then correlate those diagnostics with the code that produced them. These operations usually require explicit user confirmation, keeping you in the loop. The combination of all these capabilities makes JetBrains' AI tools highly effective—though human review and judgment are still essential.
Installation
Both the AI Assistant and Junie are available via plugins that you can install from the marketplace. Just head over to settings in your IDE by clicking Ctrl Alt S and select Plugins:
For the AI Assistant, you can use the JetBrains AI widget or AI Chat window as well:
Once you click Let's go, the plugin will be installed, and the license will be verified automatically (you may need to log in to your JetBrains Account first). The licensing verification process works as follows:
The system automatically verifies and activates valid subscriptions.
Lapsed subscriptions revert to the AI Free tier, though you can upgrade any time.
Holders of the All Products Pack or dotUltimate automatically receive the AI Pro tier.
Accounts with no prior license history get a 30-day trial of the AI Pro tier.
To get the Claude agent, which brings the same capabilities of Claude Code to JetBrains IDEs, just select it from the Chat interface and select "Install". The installation will happen automatically. Using the Agent Client Protocol, you can integrate other agents with the AI Assistant as well:
The AI Assistant, Junie, and the Claude agent all use your JetBrains AI license. If you already have your own key, you can also use it. Your key will always be prioritized above JetBrains models whenever possible. We'll discuss this more in the next sections. For custom agents via ACP, you need to provide your own key.
You can also install the extension in Visual Studio Code and Android Studio.
Setup
You can control key AI Assistant settings from the widget:
Track your usage and top up credits.
Open AI Assistant settings.
Disable the AI Assistant either for the current project or permanently.
Next, you can enable some key AI Assistant settings, such as:
Enable or disable code suggestions (next edit).
Attach the database schema to improve the quality of generated database queries. The plugin will prompt you to allow this every time if you disable this setting.
Change output language.
Message trimming parameters.
You can modify these settings via Settings > Tools > AI Assistant:
To tweak the behavior of inline completion, go to Settings > Editor > General > Inline Completion. Here, you can modify the behavior of the gray ghost text that appears while you code. You might want to enable it only for specific languages or adjust the delay before a suggestion appears.
Data privacy is crucial when you use AI tools. JetBrains and its third-party model providers do not store or use your data to train models. Still, you can choose to share detailed information about your use of AI features to help improve JetBrains AI products. This data is confidential and will not be used to train models. The option is off by default, but you can check the status in Settings > Appearance & Behavior > System Settings > Data Sharing:
However, remember that code snippets, file types, frameworks, and other necessary context are still sent to LLMs to process your requests. To prevent access to specific files or directories, create a .aiignore file and add entries for those files. Neither AI Assistant nor Junie will process files listed in .aiignore or other ignore files like .gitignore and .cursorignore. If you don't want AI features enabled for the entire project, create a .noai file at the project root.
For Junie, it's also helpful to set the project path in Tools > Junie > Project Settings. This ensures that Junie can only access the current project path and requires confirmation to edit files outside it.
Rules, instructions, prompts, and guidelines
You can enforce coding standards and project-specific behaviors using rules. These ensure consistency across sessions and reduce the need to constantly correct the AI Assistant's style. You might configure rules such as:
"Always prefer immutable data structures."
"Use JUnit 6 for all test generation."
"Do not use deprecated libraries."
You add rules from the chat window by clicking + > Rules > New project rules file. Once you provide a name for the file, it will be saved in Markdown format in the .aiassistant/rules directory. You control how the AI Assistant applies rules, such as when referenced via @ mentions, by model decision, file patterns, always, or never:
To avoid typing the same instructions repeatedly, the AI Assistant provides a prompt library (Tools > AI Assistant > Prompt Library):
Here you can:
Add chat instructions and system prompts, included with every message.
Save your most effective prompts as templates.
Customize the behavior of standard actions—if the built-in commit message prompt doesn't suit your workflow, modify it.
Use variables with the
$symbol for dynamic data, like the current Git branch.
For Junie, guidelines replace chat instructions to provide persistent context for the agent. This context is added to every task that Junie works on. You can use the open-format AGENTS.md file or the Junie-specific guidelines.md file. By default, Junie looks for guidelines in .junie/guidelines.md at the root of the project, but you can adjust this location in Settings > Tools > Junie > Project Settings. You can either create this file manually or use the pre-populated prompt in the dedicated Junie interface to create it.
Model management
As with any other AI-powered development tool, JetBrains AI tools depend on LLMs. The model you choose depends on the task at hand. For complex architectural planning or tricky debugging, a model with strong reasoning capabilities might be better, even if it's slower and costs more. On the other hand, a faster and cheaper model would be ideal for generating routine boilerplate code or simple fixes. If you're uploading images, such as for generating code from UI designs or debugging interfaces, you need a multi-modal model.
For the AI Assistant, you can select the model you want to use from the dropdown in the interface:
For Junie, you need to go to Settings > Tools > Junie > Models and select the model you want to use.
As noted earlier, you can also use your own key and even use local models through OpenAI and OpenAI-compatible endpoints like the LiteLLM proxy, Anthropic, LM Studio, JetBrains local completion models, and Ollama. Just head over to Settings > Tools > AI Assistant > Models & API keys:
Conclusion
We have explored the capabilities of JetBrains AI tools. We saw how to install and configure them, and fine-tune their behavior. From adjusting inline completion triggers to selecting the appropriate LLM for your tasks, you now know how to get started using these tools effectively.