Junie: The JetBrains AI Coding Agent Leaves Beta | Try now
Junie
Learn more
Agentic AI<br>JetBrains AI<br>News<br>Junie: The JetBrains AI Coding Agent Leaves Beta
Dmitry Savelev
Read this post in other languages:<br>Deutsch
Junie started as an experiment. We asked, “What if an AI coding agent didn’t just guess at the details of your project, but actually used the same tools you do?” Over the last year, that experiment turned into a product used by developers every day – inside the IDE and the terminal.
Today, the JetBrains AI coding agent is leaving Beta. This isn’t a rename or a repackage. The parts of Junie that matter most are stable, connected, and ready for real work. Junie plans before it codes, debugs with the real debugger, reviews PRs while considering your project’s context, and runs long tasks while you focus on other things.
On the latest run of SWE-Rebench – an independent agent benchmark – Junie placed as the number-one coding agent.
“SWE-Rebench draws fresh tasks each cycle to keep the evaluation honest, so results move from run to run. In this cycle Junie came out as the top model-harness, with 61.6% resolved and a 72.7% pass@5 — placing it ahead of the other agents and competitive with raw frontier models”
Alexander Golubev<br>Research Lead at Nebius
We believe that delegating work to an agent should be something you can afford to do often, not just for heroic one-offs. Thus Junie supports any model, without lock-in – and that’s how you control cost. Use the latest models from frontier labs from day zero, or point Junie at a local runtime. It’s the lever that lets you decide what each task costs. Top-tier reasoning models are powerful but expensive; smaller models are fast and cheap. Junie lets you put each one where it does the most good. Cost efficiency stops being a property of the tool and becomes a dial you hold.
Install Junie
Here’s what comes with the move to general availability:
Advanced Plan mode: The agent thinks before it codes
One of the most common causes of failure in AI coding agents is unwavering confidence when they are totally incorrect – they start implementing before anyone has agreed on what they’re doing. You end up reviewing a PR that solves the wrong problem or burning tokens on a path you would have rejected in the first thirty seconds.
Plan mode fixes that by making the plan a first-class artifact.
Before Junie writes code, it produces a structured document with tabs for product requirements, technical design, delivery stages, and (when requested) testing strategy. You read the doc. You edit it directly in your editor. You approve it. And then Junie implements it.
This approach is superior to “better prompting”, for a few reasons:
The plan is a real document. It lives in .junie/plans. You can commit it, and it becomes living task documentation, not a throwaway chat message.
The agent asks the right questions. When requirements are ambiguous, Junie asks multiple-choice and freeform questions to pin things down, instead of guessing and hoping.
Junie plans before it codes – meaning fewer wasted tokens and fewer broken PRs. Every wasted implementation run is tokens you paid for and a review cycle you’ll have to do anyway. Plan on a strong model; implement on a cheap one. The agent doesn’t wander, so your bill stays low.
Enter Plan mode with Shift+Tab. Open the plan with Ctrl+P. And when you’re ready, hit Confirm to implement the changes.
Agentic debugging: Junie uses the debugger, not println
When something goes wrong, most coding agents add log statements. Junie opens the debugger.
With the GA version, Junie can drive your IDE’s debugger the way you would:
Start or join a debug session. Junie can launch a run configuration, debug a test, or take over an existing session you already have open.
Set breakpoints anywhere that matters , including project code, library code, SDK code – even decompiled .class files and sources inside JARs. If your IDE can step into it, Junie can set a breakpoint in it.
Inspect the real runtime state. Stack frames, thread state, expression evaluation, run-to-line – Junie collects actual evidence instead of theorizing about what your code might be doing.
This allows Junie to use debugging patterns that you previously had to work with manually:
"Debug and figure out why this test fails only on the second iteration." Fully autonomous – Junie drives the whole thing.
"Prepare the debugger, I’ll trigger the UI flow." Junie sets up breakpoints and waits for you.
"Continue my current debug session and tell me why this value becomes null." Hand off routine inspection work while you think about the bigger picture.
Today this works end to end in JetBrains IDEs with an AI subscription.
Remote control: Start a task, and keep an eye on it from anywhere
Some work doesn’t fit in a focused 30-minute session, for example a Spring Boot upgrade, a migration to Java records, or adding test coverage to a legacy service. These are exactly the...