Plugins
There are two types of nadi plugins. Compiled plugins (shared libraries) are loaded dynamically from shared libraries, while executable plugins are called as shell commands. Refer to Plugins section of core concepts for more details.
Compiled Plugins
Compiled plugins are shared libraries (.so
in linux, .dll
in windows, and .dylib
on macOS). They can be generated by compiling the nadi plugin in rust, or you can download the correct plugin for your OS and nadi_core
version from the plugin repositories. It is recommended to only use plugins from trusted source.
To setup the nadi-systm to load the compiled plugins you have to place them inside the directory included in the NADI_PLUGIN_DIRS
environmental variable. Refer to your Operating System’s documentation on how to set environemental variables.
The compiled plugins are loaded when NADI is starting up, there is no way to hot load
or reload
the plugins, so you need to reopen the nadi program itself (CLI, IDE, etc) if you want to load new/updated plugin functions.
Once the plugins are loaded, the functions are directly available from the nadi task system, they’ll act similar to the internal plugin functions.
Executable Plugins
Executable plugins are terminal commands, you set it up as you’d set any other terminal programs, by making sure the program is in PATH
and can be executed from terminal. Linux and Mac do them mostly by default, while in Windows you might have to check the box saying something along the lines of “include this in path” during installation, or manually edit the PATH
in “Environment Variables”.
For example, if you want to call python scripts, make sure you can run python --version
in terminal and get a response.
You can also check it using the command
function:
network command("python --version", echo=true)
network command("Rscript --version", echo=true)
network command("julia --version", echo=true)
Results:
$ python --version
Python 3.13.5
$ Rscript --version
Rscript (R) version 4.5.1 (2025-06-13)
$ julia --version
julia version 1.11.6
Here we can see, the commands that ran successfully and returned a version are valid.
To write scripts and run them from nadi refer to Executable Plugins section on Plugin Developer Guide.