In order for XIBLE to find installed nodes, a certain structure is required. The structure for containing nodes in a nodepack is described in the following sections.

For nodes, a deeper level contained within nodepacks, checkout the nodes guide.


The directory structure for a nodepack is defined as follows;

  • xible-nodepack-{nodepackname}/
    • package.json
    • {nodepackname}.{nodename1}/
      • structure.json
      • index.js
      • routes/ (optional)
        • flow.js
        • global.js
      • editor/ (optional)
        • index.htm
        • ...
    • {nodepackname}.{nodename2}/
      • ...
    • ...

Refer to the nodes' structure page for more details on the structure for individual nodes.

Also note the publishing page and the xiblepm nodepack publish command line page for more details on the requirements for publishing.

Implementation examples


The following naming requirements apply when you want to publish a flow into the XIBLE registry.

Nodepack name

The name of the nodepack will be the same as the name defined in the package.json. If the name of the nodepack starts with either "xible-nodepack-" or "xible-np-", than this will be stripped. As an example; the NPM package "xible-nodepack-math" is available as "math" in the XIBLE registry.

Node naming conventions

All nodes contained within the nodepack must start with the name of the nodepack followed by a dot, or the node name must equal the nodepack name. For instance, all nodes within the "timing" nodepack start their name with "timing.", such as "timing.delay".

Dashes (-) in the nodepack name are compared as if they were dots. As such the nodepack "xible-flow" (from "xible-nodepack-xible-flow") could contain a node named "xible.flow.delete".

The nodepack may not contain nodes with a name that already exists within another published nodepack.

Bad examples

Given a nodepack named "test-name" (published to NPM as "xible-nodepack-test-name"), the following are incorrect node names;

  • something.test
  • test.something
  • test

Good examples

Given a nodepack named "test-name" (published to NPM as "xible-nodepack-test-name"), the following are correct node names;

  • test.name.something
  • test.name.something.else
  • test.name


A package.json is required when you are ready to publish your nodepack. This package.json is part of the Node Package Manager. It is required to first publish to NPM, before publishing your nodepack to the XIBLE registry.

More information on the package.json setup can be found on the NPM documentation site.