openidea-server is the OpenIDEA backend without a UI. In a remote window it runs where the project is (an SSH host,
a WSL distribution or a dev container) and does the work the desktop app would do locally: file system, indexing,
language servers, terminals, runs, debugging, build tools and Git. The desktop window only shows the UI and sends
commands to it.
You don’t start it yourself. When you open a remote project (SSH,
Containers), the desktop app installs the server on the host if needed, starts it as
openidea-server --stdio over the SSH connection (or wsl.exe / docker exec) and talks to it over stdin and
stdout. The server serves one desktop window and exits when that window disconnects.
Supported hosts
Each release publishes a server build for:
The desktop app detects the host with
uname -sm. Other platforms, including Windows hosts, are not supported.
Dev containers must be Linux.
How it is installed
On every connection the desktop app checks whether the host already has the server for its own version. If not:- It looks for a server binary for the host’s platform on your machine (see Offline installation).
- Otherwise it downloads the release asset
openidea-server-<os>-<arch>.gzfor its version from GitHub releases, verifies its SHA-256 checksum, and caches it in the desktop’s local data directory underserver/<version>/<os>-<arch>/. - It uploads the binary to the host and removes older builds of the same version.
Files on the host
To free space, delete old version folders under
~/.openidea/server/. After deleting ~/.openidea/data/, OpenIDEA
installs its tools again when they are needed.
Environment
The server reads your login shell’s environment when it starts, because an SSH command otherwise gets a minimal one. SoPATH and other variables from your shell profile apply to terminals, runs and language servers. After changing
them, use File › Reload Environment in the remote window instead of reconnecting.
Offline installation
When the desktop machine can’t reach GitHub, give it the server binary yourself. The desktop app looks for one in this order:- The file named by the
OPENIDEA_SERVER_BINARYenvironment variable, if it is set when OpenIDEA starts. server/<os>-<arch>/openidea-serverin the desktop’s local data directory, for exampleserver/linux-x86_64/openidea-server.- An
openidea-servernext to the OpenIDEA executable, when the host has the same platform as the desktop.
openidea-server-<os>-<arch>.gz from the release that matches your OpenIDEA version, unpack it with
gunzip, and put it in one of these places. Use the same version as the desktop app; the desktop refuses a server
that speaks a different protocol.
If the host already has a build of the current version installed, the desktop uses it when nothing can be downloaded.
Build from source
OPENIDEA_SERVER_BINARY at
target/release/openidea-server (or the target-specific folder when cross-compiling).
Command line
The flags are meant for the desktop app, but--version is handy for checking an installed build.