I want to share some thoughts (dare I say a review) of the AI coder agent from JetBrains, Junie.
First, I just want to say, Vibe-Coding is not a term I like. I think it works for low stakes projects or getting an MVP up fast (more on that in a separate post). But for work with more control while still benefiting from a coder agent, something like Junie gives you this while still staying in your favorite IDE.
Here’s how I use it.
With Junie you get the best of both worlds. The most important aspect for me when programming, is that I have complete control, which the IDE traditionally gives me. And now combining JetBrains AI assistant and Junie when I need something more to spar with.
Here’s where I might differ some from most people.
The way I use Junie is mostly not by letting it write tons of code for me (even though I do let it from time to time), but more that I use it to ask questions, help me debug, help me identify patterns quicker. I then combine this, every now and then, with letting JetBrains AI assistant write smaller code snippets for me.
The magic here is me still being in control as a developer, having deep overview over the codebase in my favorite IDE, and not letting an AI agent spiral out of control breaking things, or writing so much code that it becomes hard to review everything.
Just to give a couple of examples how I use the tools in my everyday work.
JetBrains AI assistant, more like a code linter/autocomplete on steroids that helps me write smaller pieces of code. For example, I might need a function and I’m trying to figure out a specific algorithm. So it’s helpful to let AI come up with a suggestion in a few seconds. Or it’s late, I’m tired, and I have a function that is not behaving like I expect, I just let AI assistant give some notes on what it can find, not necessarily writing any code, but just pointing out what I might have missed.
Junie, steps in when I need something more substantial. I see Junie more as a virtual developer sitting next to me that I can tap on the shoulder to ask for some pair programming when it’s helpful. I rarely use Junie to produce code when I’m in the middle of a growing project. It’s an AI agent similar to the other “Vibe Coding” platforms after all, maybe with some additions and tweaks from JetBrains. So the experience, good and bad, is similar. In a bigger project, it can be helpful to let Junie help you debug the codebase, as it can navigate around by itself in a different way than the AI Assistant.

Where it’s more common for me to let Junie actually write more code…
It’s when starting a new project. But I don’t blindly head in and let Junie write code by prompting “create this”. No, I first head in and create a full description for what I want to create. Then, together with Junie, we create a strategy and design. Junie goes ahead and writes documentation. Now requirements are clearer and Junie has more data to reference from when coding.
What’s great is that we can create a guidelines document for Junie to reference from. This can include the project structures, do’s and dont’s, or any other specific information that’s important related to the project. Junie make sure to follow it. And I also need to mention that, when Junie codes, you can always roll back the changes, giving you more confidence in letting Junie do more.
What I’ve learned is that, when I treat Junie like a human consultant developer, I get better results. Meaning that, if I were to hire a consultant, my approach would be the same. Make sure I give the person all the technical context and detailed requirements needed to perform the task.
Using Junie and the AI assistant this way has yielded me great results and an increase in productivity, without compromising my own skills and the quality of the product I’m building. I still stay in control and quality is still maintained.
So with that said, I still do a lot of hands on coding, and delegate when it makes sense.
Any downsides?
Are there any downsides with Junie? Nothing’s perfect. I do think it’s helpful in having Junie available. But following are some things I wish JetBrains would address.
Even though you can use local models with the AI Assistant, unfortunately you can’t with Junie. This might be a problem, or even a deal breaker for some. When you are hooked up to an AI provider like OpenAI or Anthropic, your agent always sends data to that provider and the LLM processing happens on their servers. This can be a security concern for many if you are working on sensitive projects.
And, Junie might be slower than some of its competitors. For me, generally this has not been an issue. However sometimes I feel that some tasks are really dragged out. Some smaller things I might ask Junie to handle can be frustratingly slow at times.
With that said, In my opinion, speed and productivity doesn’t always come from how fast you can write, it’s how well you can debug and how robust your design thinking is when structuring your project. And this comes more from knowing your fundamentals and experience shipping and maintaining projects. So the processing speed is not always an issue for me, but might be for some.
Closing thoughts.
For me, Junie has been great and I use it every day. Currently it’s a great pair programmer I can rely on that doesn’t fall into the overpraising hype train of Vibe-coding. I think Junie deserves much more coverage than it’s getting.