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 type | What it adds | PJ4 context |
|---|---|---|
| Data loaders | Support for reading additional file formats and sources | PJ4 itself reads CSV, MCAP, Parquet, ULog, LeRobot, MP4, PCD and PLY — loaders extend that list |
| Data streamers | Connections to additional live data sources | Built-in streaming already covers ROS 2, MQTT, ZeroMQ, UDP, WebSocket and WebRTC |
| Message parsers | Understanding of additional message encodings | Built-in encodings include ROS 1/2, Protobuf, JSON, CBOR, BSON, Arrow and MessagePack; OMG IDL (DDS) parsing arrived in the previews |
| Toolboxes | Extra analysis tools and integrations | The 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
- Open PlotJuggler 4 — the Marketplace exists only in PJ4 (4.0.0 or the later 3.999.x previews); PJ3 has no equivalent menu.
- Choose File → Marketplace. This is the documented entry point.
- 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.
- Install the plugin from its Marketplace entry, and use the same entry later to update it when a new version is published.
- 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.
