Discover Junie for PhpStorm: A Game-Changing AI Coding Agent for PHP Development
With the release of Junie, the AI coding agent by JetBrains, PhpStorm has entered the realm of agentic IDEs. Now, the PhpStorm IDE doesn’t just provide classical developer productivity tools and AI assistance features, but can also do massive amounts of work for PHP developers autonomously.
Unlike other coding agent plugins, Junie is native to PhpStorm, which means it uses PhpStorm’s core features, such as source code navigation, project structure navigation, Search Everywhere, and code inspections to plan and execute multistep tasks and supervise the outcome.
You can install Junie like any other PhpStorm plugin and open it in the IDE by clicking the Junie icon on the right-hand sidebar.

In this blog post, we’ll follow Junie doing its work and see how it fits into your familiar PhpStorm workflow, while kicking off a whole new way of writing code.
Starting with a clean Laravel project
Let’s start with a clean Laravel project. There’s nothing here but the defaults, and what I want to do is add some functionality to it. So my prompt is:
Implement CRUD actions to manage books via web forms, also create and run a seeder to add 10 books into the database, write tests, and execute them. Use the Tailwind CSS form component library.
💡Tip: To avoid follow-up clarifications where possible, provide Junie with detailed guidelines and instructions in the initial prompt. This helps minimize the number of requests sent to LLMs and optimize the token usage, which means you’re left with a higher JetBrains AI quota!
💡Tip: Select the Think More/Smarter checkbox to give Junie extra time to run and deliver deeper, more insightful results.

Watching Junie work
When I run the prompt, Junie starts by creating a plan and then follows the proposed plan step by step, stopping at terminal commands for user confirmation.

As you can see, Junie is pretty transparent with what it does and which files it searches for, opens, or edits, reporting on what exactly is being performed at each step along the way.
While Junie is running, you can open Junie’s terminal to see the CLI command currently executed by the agent and the complete output history. You can even interact with the terminal while Junie is running some of the commands.

When Junie is done, you can double-click the changed or added file to open it in PhpStorm’s diff viewer, locate and open the file itself in the editor, or roll back changes for the edited files.

From here, you can accept all changes, give Junie a follow-up task, or roll everything back if needed.
In our case, Junie created CRUD screens for managing books. It also wrote tests and executed them without any manual interference. There’s a new database seeder, and it was actually run, with 10 test books added to the database.
Exactly as instructed!


The power of Junie guidelines
In the initial prompt, I instructed Junie on which technologies to use. However, for more consistent outcomes, it’d be better to create a .junie/guidelines.md
file in the project root and list all the preferred technologies, naming conventions, and coding standards there. Guidelines can also spare Junie from making irrelevant assumptions and minimize follow-ups or manual intervention.

You can compose the guidelines file yourself, ask Junie to generate project-specific guidelines on an existing project for you, or reuse the guidelines and rules that are specific to your framework or technology stack shared by other developers, for example, Laravel guidelines by David Carr.
💡Tip: Use the .aiignore
file to restrict Junie from accessing specific files and directories.
Allowed terminal commands
Additionally, in the example above, I manually confirmed all terminal commands run by Junie. However, I feel confident in allowing Junie to run any php artisan
command without confirmation. To do so, I’ll add this type of command to the Junie allowlist in the IDE settings via Settings | Tools | Junie | Action Allowlist using the RegEx syntax.
Allowing all php artisan
commands would look as follows:

To enable Junie to run all terminal commands without user confirmation, select the Brave Mode checkbox.
Ask mode
Junie comes with the agentic code mode selected by default. However, you can also chat with Junie in Ask mode, asking questions referencing your project context but without having your code changed.

Using Junie on existing projects
We started with a clean project and let Junie do its thing. But what about existing projects? Junie is optimized for a profound understanding of the project context and working with large-scale repos and complicated tasks. PHP developers can use Junie to:
- Analyze and understand a large legacy codebase and update it to the latest versions of the framework and packages it uses.
- Analyze the commit history to figure out issues in PHP or JavaScript code and fix them.
- Analyze the codebase to detect weak spots and areas for improvement.
- Explore new ways of implementing features or come up with quick proofs of concept.
- Challenge Junie with something creative and investigate new ways of collaboration between human and agent!
Junie is extremely powerful in delivering coding results, but ultimately, what it can do depends on the accuracy of the input it gets and the proficiency of the engineer using it. Do you have any impressive “Junified” use cases to share with us? We’d love to hear about them!
What developers say
Check out what other PHP developers have used Junie for:
- NEW PhpStorm Junie AI VS Cursor: “Usable” Agent from JetBrains? by Povilas Korop
- New AI Editor by JetBrains: Junie by Nuno Maduro
- First impressions of Junie with PhpStorm by Carlos Granados
Junie is already making quite an impression in the PHP and Laravel communities. Here’s what early users say:
Played around with Junie today. Very cool – and it does a particularly great job of showing you what it's doing. https://t.co/sSARLq0YrA pic.twitter.com/huDMG120wA
— Jeffrey Way (@jeffrey_way) May 12, 2025
I'm trying out Junie from @jetbrains in @phpstorm. I'm impressed.
— Mircea Sandu (@mircea_sandu) May 12, 2025
The thing that stood out so far is that I didn't have to give it specific references to the files that need to be updated and it found all of them on its own. And at the end it asked to run the build process to…
Gotta correct myself — Junie isn’t that slow when you consider it’s the best coding assistant I’ve tried so far. The results are insanely good. Amazing work, @jetbrains!
— Patrik Gmitter (@PatrikGmitter) May 25, 2025
Finally got round to giving Junie in @phpstorm a go, it was a great help figuring out and then fixing some N+1 issues I was having in my application!
— Jon Purvis (@JonPurvis_) May 18, 2025