# plantuml4idea: rendering PlantUML diagrams inside IntelliJ IDEA

> This plugin puts a PlantUML preview, a structure view and export actions inside the IntelliJ editor, so a diagram can be written and seen without leaving the IDE. It is a thin integration layer, and it leans on two things you install yourself: a PlantUML jar and, for most diagram types, Graphviz.

**esteinberg/plantuml4idea** — Intellij IDEA plugin for PlantUML

- Repository: https://github.com/esteinberg/plantuml4idea
- Stars: 675 · Forks: 116
- Language: Java
- License: Apache-2.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/esteinberg-plantuml4idea

## A preview panel next to the editor

The plugin is described as integration with the PlantUML diagramming tool, and the feature list makes the shape of it clear. A PlantUML tool window renders the PlantUML source code under the caret in the currently selected editor, so the diagram follows the code you are editing rather than belonging to a separate view you have to switch to.

The rest of the list covers what an IDE user expects. There is a structure view, code navigation between a declaration and its usages, and renaming. The plugin supports multiple sources per file, so one file can contain several diagrams and you get a paginated view with zoom, which matters when a file holds more than one diagram and the preview pane is small.

Output is handled with a copy-to-clipboard action and export as PNG, EPS or SVG, plus ASCII Art. That last option is the interesting one for a developer whose diagrams live next to a terminal-based workflow, and the fact that it is a first-class export rather than a workaround says something about who the plugin is for.

Caching and incremental rendering are also listed, which is the feature that turns the preview from a curiosity into something you can leave open while you work.

## Graphviz is a hard requirement for most diagram types

The Tips section of the README is short and the second item is the one that decides whether the plugin works for you. PlantUML code must be inside `@startuml` and `@enduml` tags to be rendered, and to be able to generate many diagram types you must have Graphviz installed on your machine. The README adds the exception that Graphviz is not needed on Windows, because it is bundled in the PlantUML jar.

That exception explains the shape of the whole plugin. On Windows the jar carries what it needs, on macOS and Linux the Graphviz binaries have to be on the system, and a corporate machine where you cannot install packages will fail to render the diagram types that depend on the Graphviz layout engines. The plugin is not going to help you there, and the failure will look like a rendering error rather than a missing dependency.

The consequence for evaluation is that PlantUML has to be installed separately regardless. The plugin does not bundle PlantUML, and the download link given for the jar is the one on the plantuml.com download page.

## AsciiMath needs JLatexMath jars and a setting change

The README has a dedicated section for AsciiMath installation, because the maths support is the one feature that needs more than the jar. The sequence it gives is:

```
1. Download PlantUML jar - https://plantuml.com/download
2. Download JLatexMath libs - https://jar-download.com/artifacts/org.scilab.forge/jlatexmath -
   use `Download jlatexmath.jar (xxx)` button, unzip `jar_files.zip`
3. Go to setting in IntelliJ for PlantUML
4. Set PlantUML JAR to the folder containing jars you downloaded
```

The fourth step is the one that surprises people. The PlantUML JAR setting does not point at a single file, it points at the folder containing the jars you downloaded, so the plugin can find the maths libraries alongside the PlantUML jar itself.

This is a manual, per-developer setup rather than something a project can configure for you, which is the main friction point of the plugin in a team setting. Anyone joining a project that uses AsciiMath in diagrams has to do this dance on their own machine before the maths renders, and the README gives no alternative path such as a bundled maths library.

## Three branches, and one of them is for the next IntelliJ

The developer notes section is short but it tells you where the project stands. There are three branches. `master` is the current production branch. `2026` is a Gradle build for IntelliJ 2026. And `grammar` holds old experimental syntax support that the README says was never finished, with grammar classes that can be generated using `tools/grammar-gen.sh`, a script that can also be wired to run automatically before the Make step in the Plugin run configuration.

The branch list is the answer to the most common question about IntelliJ plugins, which is what happens when the IDE moves on. The 2026 branch exists because the build for the newest IntelliJ generation is separate from the production line, so anyone running a recent IDE is on a branch rather than on the released plugin.

Two other developer notes are practical. Debug logs can be enabled by adding `#org.plantuml` and `org.plantuml` to the Help menu, in the Debug Log Settings. And the README suggests using the JetBrains Runtime if a normal JDK produces UI bugs, which is a common symptom in IntelliJ plugins that render Swing components.

## A Gradle plugin project, with a wrapper and run configurations

The repository layout says what kind of project this is. There is a `build.gradle.kts` and a `settings.gradle.kts`, a `gradle` directory, and the `gradlew` and `gradlew.bat` wrapper scripts, which is a standard Gradle Java project. The `src` directory holds the plugin sources, `gen` holds generated code, and there is a `.run` directory for IntelliJ run configurations.

That `.run` directory matters more than it looks. The plugin's own development loop is a run configuration inside the IDE, and the README's grammar note refers to adding the generation script as an external tool that runs before the Make step of the Plugin configuration. In other words, the project is built and debugged from the IDE it plugs into, which is the standard arrangement for IntelliJ plugins and means a contributor needs a full IDE rather than a command line.

The presence of `CHANGELOG.md` gives you a history to read, and the licence files are `LICENSE.txt` and `NOTICE.txt`, with the repository identified as Apache-2.0. Apache 2.0 includes a patent grant and a notice requirement, so if you redistribute the plugin in a product, the NOTICE file is the part to keep, and the licence terms themselves are in the LICENSE file.

## The published plugin stopped in 2021 while the repository kept moving

Here is the maintenance picture, and it has two halves. The repository is not archived and the last push was on 2026-09-23, so the code is being worked on. The released versions are much older: 4.1.0 from 2021-01-31, 3.6.2 from 2021-01-23 and 3.5.1 from 2021-01-21.

So the plugin you install from the JetBrains marketplace, whose id is 7017 for the PlantUML integration plugin, is likely a 2021 build, while the master branch carries five years of later work. The badges in the README pull the current plugin version and download count from the JetBrains plugin repository, which is the marketplace rather than this repository, so the version the README shows and the code in the repository are two different things.

That gap is a normal pattern for a plugin that targets a fast-moving IDE, and it is also the reason the branch structure matters. The 2026 branch is what a user on a current IntelliJ needs, and it is a Gradle build maintained separately from the production line.

For an organisation standardising on this plugin, the practical question is not whether the project is alive but which artefact you pin, and the JetBrains plugin repository is where the answer lives, not the tags in this repository.

## Conclusion

plantuml4idea fits a Java or Kotlin developer who writes PlantUML in comments or in .puml files and wants the diagram in a side panel next to the code, with export to image formats, rather than a separate rendering step in a build. It is the wrong choice if your environment has no Graphviz and no control over installed tooling, since most diagram types will not render without it. Verify first which IntelliJ build your version supports, because the Gradle build for IntelliJ 2026 lives on a branch separate from master, and check where the plugin expects your PlantUML jar before you start drawing.

## FAQ

### What does the plantuml4idea plugin do?

It provides PlantUML integration for the IntelliJ platform. The features list covers a tool window that renders the source under the caret, a structure view, code navigation between declarations and usages, renaming, support for multiple sources per file, pagination and zoom, export as PNG, EPS, SVG or ASCII Art, and caching with incremental rendering.

### Does plantuml4idea require Graphviz to be installed?

The README says that to generate many diagram types you must have Graphviz installed on your machine. The exception is Windows, where it is bundled in the PlantUML jar, and the plugin also requires PlantUML code to sit inside @startuml and @enduml tags.

### How do I set up AsciiMath in plantuml4idea?

Download the PlantUML jar and the JLatexMath libs, unzip the jar_files.zip archive, then go to the PlantUML setting in IntelliJ and set the PlantUML JAR option to the folder containing the jars you downloaded, rather than to a single file.

### Which branch should I use for a recent IntelliJ IDEA version?

The README lists master as the current production branch, a 2026 branch containing a Gradle build for IntelliJ 2026, and a grammar branch for old experimental syntax support that was never finished. The plugin itself is published on the JetBrains plugin repository as plugin 7017.

### How do I enable debug logs for the plantuml4idea plugin?

The developer notes say debug logs can be enabled by adding #org.plantuml and org.plantuml in the Help menu under Debug Log Settings. The notes also suggest using the JetBrains Runtime if a normal JDK produces UI bugs.

## Sources

- [esteinberg/plantuml4idea on GitHub](https://github.com/esteinberg/plantuml4idea)
- [Issues](https://github.com/esteinberg/plantuml4idea/issues)
- [License: Apache-2.0](https://github.com/esteinberg/plantuml4idea/blob/master/LICENSE)
- [README](https://github.com/esteinberg/plantuml4idea/blob/master/README.md)
- [Releases](https://github.com/esteinberg/plantuml4idea/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/esteinberg-plantuml4idea
