Handling Nodes that Require Licensed External Software

Hello everyone,

I’m currently developing custom nodes and am facing a challenge where I could use your experience and best practices.

One of my node functionalities requires the installation of additional software on the system, as it is proprietary and licensed. This means it’s not a freely available npm library that I can simply include as a dependency.

Now I’m wondering: How is this typically handled in the n8n ecosystem? I see several possible approaches:

Option 1: Separate Implementation

Outsource the functionality into a separate, optional node that is only used by users who have installed the corresponding software.

Option 2: Runtime Check

Design the node to check during execution whether the required software is installed, and provide a meaningful error message if not.

Option 3: Documentation + Prerequisites

Clearly communicate the requirements in the node documentation and leave the responsibility for installation to the user.

In your experience, what is the “n8n way”? Are there established patterns or community conventions for such scenarios? I want to build a solution that is both technically sound and user-friendly.

Thank you in advance for your input!

@Jon ‘s answere to this question: “The way we handle it is we make sure the image has anything that is needed for the nodes to work, So for us we include things like GM and Git. If it is a different depedency that is licensed I would probably take the documentation process and add a runtime check as well. Just don’t forget the node you are working on won’t be accepted for n8n cloud.“

Thank you