Questions about EelApi

While splitting a plugin into shared/frontend/backend, I’m bumping into EelApi and related classes.

Is there perhaps an introduction somewhere?

I probably don’t fully understand it yet.
My current understanding is that it’s an abstraction to work with local and remote setups with the same API.

But, for example, I don’t understand why a backend extension still needs to use the EelApi. ShDocumentationProvider of intellij-community is implemented that way.
This provider is in a backend class. I assumed that it’s already executed on the remote machine and thus could use local paths (i.e. local paths of the remote machine).
Is it possible that the backend part of an IDE is not running on the same host/machine/setup as the project files?

Apologies for all the questions, splitting a non-trivial plugin project is difficult and I’d like to understand the added complexity.

Hi! EelApi is mostly used to cover WSL2 and mounted Docker scenarios for IDEs running on host. It is not really about remote development but rather about mounted file systems.

Since 2025.3 release, java.io.File and java.nio.file.* APIs already run with EEL inside thanks to JetBrains Runtime SPIs. It means even if you do not do anything about it a plugin will access WSL2 folders via EEL.

It is not automatic for process runs unfortunately. And we still need public documentation for EEL to cover it