Goodbye GitHub Copilot, Junie is my new best friend

I have been using GitHub copilot inside of PyCharm for a few years now, and it has been very handy for stuff like creating test skeletons or rubber duck debugging, but it never felt well integrated or very useful.
Then Jetbrains introduced me to Junie, and I’m in love.

Not love in the weird way of stuff you probably hear about people going crazy with ChatGPT. Love in the “Unholy demons of coding power, where have you been all my life!?” way. See, totally normal.

So first things first, let’s introduce you to Junie!

Meet Junie

Junie is what JetBrains calls an AI Coding Agent, which really means it’s a plugin that talks to large language models (LLMs) — like Anthropic’s Claude — to give you coding assistance.

Where it shines is in how JetBrains set up the toolchain to integrate seamlessly with PyCharm and their other IDEs. It’s not just dropping in random suggestions; it becomes an active collaborator inside your project.

For transparency: I’m not being paid or asked to write this. I’ve just found Junie to be a rock-solid helper lately, and I’m hoping others might get the same value from it. I’m just using the time saved by Junie for writing this article instead of coding!

What sets Junie apart?

Both GitHub Copilot and Junie rely on similar underlying LLMs, so you won’t notice a difference in basic code suggestion quality. But Junie does something extra: it doesn’t just have a back-and-forth conversation — it makes a plan.

A good plan.

Then it executes that plan across multiple steps, verifying results as it goes. It feels less like Copilot’s auto-code-complete, and more like a junior developer who can take on small projects for you.

Real-world use case

Recently I had a feature request for my Python module puremagic (a tool you can run from the command line or import as a library to identify file types based on magic numbers). The ask was to help replace an older library that could detect some obscure sound file formats.

There was already sample code showing what I needed — it just required the grunt work of porting and adapting it. So I threw it to Junie.

I prompted it to handle the task, then sat back as it set up an execution plan, created the new files and tests, and ran those tests to verify functionality.

Testing and verifying itself

When a test failed, Junie didn’t just shrug. It examined the failure, adjusted the code, and tried again.

And don’t worry: it doesn’t blindly execute things on your machine. It pauses to show you exactly what it plans to run, and you decide whether to approve it.

Then when it’s all done, it provides you a nice summary of changes, and option right there to commit them to git.

Result Quality

Most importantly: it worked. The code ran correctly, with tests that validated the new functionality.

Was it perfect? Not quite. It left behind a stray debug script and suggested adding it to Git — not ideal. There were also a couple of unused functions left in the final code. Overall, the quality felt like something you’d get from a developer with two or three years of experience: solid, but needing a cleanup pass.

Still, that cleanup was way less effort than writing and testing it all myself.

Best of all? If you already subscribe to JetBrains’ full product pack, Junie is included.

Feedback for JetBrains

The biggest issue I have had with Junie, is when it sometimes stops halfway through the execution plan, and there is no way to resume. There needs to be a way that if an error happens, it could re-load the context and try again.

Second, is how many small steps are taken that eat up time and LLM calls. One of the most annoying is it listing files across many sub directories. There really needs to be a way for the plugin itself to send a directory listing to the LLM, instead of running ls commands again and again. Another case is multiple single line edits.

Also there is a vague notion of credits you can use per month. I haven’t hit that limit yet, but I am not using it daily. It would be really useful to see a count of credits to understand what uses them up faster than other tasks.

Summary

Junie has been extremely helpful to use. It gives good quality results that are testable.

If you’re already deep in the JetBrains ecosystem, this is an obvious next step — Junie is the most helpful AI-powered coding tool I’ve encountered yet.