Currently org.graalvm.visualvm.lib.jfluid.heap module can be used as standalone library in head-less environment just fine. The only code, which uses java.swing, is used by progress. So if one wants to use HeapProgress, this must be done from UI - this way it is used by VisualVM. It would be useful to allow progress usage in head-less environment (command-line utilities, web server application).