PlotJuggler Extensions Marketplace: Installing Plugins in PJ4

PlotJuggler has always been extensible — PJ3’s C++ plugins added data loaders, streamers, message parsers and toolboxes — but finding and installing those plugins was a manual, expert-only exercise. PlotJuggler 4 gives the ecosystem a front door: the Extensions Marketplace, built into the application (File → Marketplace), backed by a public plugin registry and a plugin SDK. This guide explains how the model works, using only what the project documents. Hub: PlotJuggler 4; downloads: Download page.

What the Marketplace is

The Extensions Marketplace is PJ4’s in-app channel for discovering, installing and updating plugins. It first appeared in the 3.999.3 preview (20 July 2026) and ships in 4.0.0. Behind the interface sits a registry: the project maintains a public repository, pj-plugin-registry, which is the catalogue the Marketplace draws from, alongside an official-plugins repository (pj-official-plugins). The architectural point matters more than the mechanics: PJ4 plugins are no longer things you hunt across the internet — they are published to a registry the application itself can read, which is what makes one-click-style installation and, just as importantly, updates possible.

The four plugin types you will meet

Plugin typeWhat it addsPJ4 context
Data loadersSupport for reading additional file formats and sourcesPJ4 itself reads CSV, MCAP, Parquet, ULog, LeRobot, MP4, PCD and PLY — loaders extend that list
Data streamersConnections to additional live data sourcesBuilt-in streaming already covers ROS 2, MQTT, ZeroMQ, UDP, WebSocket and WebRTC
Message parsersUnderstanding of additional message encodingsBuilt-in encodings include ROS 1/2, Protobuf, JSON, CBOR, BSON, Arrow and MessagePack; OMG IDL (DDS) parsing arrived in the previews
ToolboxesExtra analysis tools and integrationsThe Mosaico cloud-download integration, for example, is delivered as the ToolboxMosaico plugin

These four categories are the same plugin families the project has used since PJ3 (which also had state publishers in its plugin set) — PJ4’s novelty is not the idea of plugins but their distribution.

Installing a plugin, step by step

  1. Open PlotJuggler 4 — the Marketplace exists only in PJ4 (4.0.0 or the later 3.999.x previews); PJ3 has no equivalent menu.
  2. Choose File → Marketplace. This is the documented entry point.
  3. Browse or search the registry catalogue by what you need — a loader for a format, a streamer for a source, a parser for an encoding, or a toolbox.
  4. Install the plugin from its Marketplace entry, and use the same entry later to update it when a new version is published.
  5. Use it where its type belongs: an installed loader shows up in the file-open flow, a streamer among the live sources, a parser where encodings are chosen, a toolbox among the tools.

Because we only publish what the project documents, two cautions belong here. First, this guide deliberately names no third-party plugins and no prices: the registry is young and growing, and the Marketplace inside your copy of PJ4 is the authoritative, current catalogue — check names, authors and descriptions there before installing anything. Second, treat plugins with the normal care you would give any extension: prefer entries from the official registry and known authors, especially in work environments.

Building your own: the plugin SDK

For authors, PJ4 ships a dedicated SDK: the plotjuggler_sdk repository, described by the project as the “SDK to create PlotJuggler 4 plugins”, and actively maintained alongside the official plugins. That continues a deliberate project tradition — PJ3’s MPL-2.0 licensing was explicitly noted as allowing closed-source plugins, and a sample-plugins repository existed for PJ3 authors — while giving PJ4 developers a proper, current toolkit and a registry to publish into. If you maintain a PJ3 plugin, the SDK plus the registry are where your PJ4 port begins; the migration guide covers the user side of that transition.

Why this matters for PlotJuggler’s future

A marketplace changes what a small core team has to build. Niche file formats, vendor-specific streamers and specialised toolboxes can be contributed — and kept updated — by the people who need them, without waiting for a core release; users get discovery and updates in one place instead of forum attachments. It is one of the clearest signals that PJ4 is designed as a platform rather than a single-purpose app, alongside the multimodal views in Video and 3D Visualisation and the dual-language scripting in Python Scripting. The full picture is in What’s New in PlotJuggler 4.0.

Similar Posts