RE: difference between sidebar, plugins and nodes

Yes. The Palette Manager only displays the two types of modules that can be installed via NR. It's either a node, a plugin, or both. The sidebar can be registered by either a node or a plugin. It's not possible any other way.

Your tarball module doesn't contain a plugin entry in the package.json file, so NR won't lookup for a plugin. However, NodeDev does have an entry, but since you're not registering a plugin, it considers it to be zero. A plugin file can contain multiple plugins; it's the same principle as for nodes.

Hiding the amount isn't an option because you're skipping the plugin registration. You can use a resource instead if you don't want to register a plugin.

I think the question remains: why do I need to call registerPlugin for something that has a sidebar and is working as a sidebar?

What is the difference between sidebar and plugin?

But that seems to be static content which I'm not loading. I'm loading a sidebar definition which also needs to be executed at startup. Hence the plugin in the package.json - to ensure it gets called.

Taking a step back, I agree that having it say 0 plugins looks odd and inconsistent to the end user. It should only report non-zero counts.

You load the resource from one of your nodes. Note that plugins are loaded before nodes, which may have an impact on the task to be accomplished.

By definition, a plugin is supposed to add something to the editor.

I don't see what's wrong with wanting to declare a plugin with a modest task.

There is nothing wrong with it but I don't understand why I should do it if nothing is broken - for me (i.e. my sidebars are there and working).

Is there some documentation for this?

But perhaps it's the reason why when I reload the editor, the sidebar isn't showing my sidebar if it's not an inbuilt?

Screen Recording 2026-06-13 at 13.41.38

Here I switch between having a configuration sidebar, my introspection sidebar and the context sidebar on the top and reload the browser each time.

A configuration of panels that only includes the built in ones is "remembered" between reloads while if I use a sidebar defined by me, it's not.

The plugin concept was introduced to put a bit more structure around modules that wanted to add stuff to the runtime/editor without being associated directly with a node.

It provides a way to have standard 'types' of plugin - such as custom themes.

It is something that needs documentation writing for.

But if what you're doing works, there's no pressure to change.

So something is broken?

I think the docs are pretty clear that to add custom "stuff" to Node-RED you use nodes or/and plugins.

That you are able to add the sidebar without them is luck rather than design I suspect.

No I use "plugins" directive in package.json but don't call registerPlugin - far from luck, more bending spoons.

I've never had much luck bending spoons! :rofl:`

Use lead and have warm hands ....