The Nodetool Packs Registry manages the installation, management, and distribution of node packs within the Nodetool ecosystem. Pack installation is handled by pip, while the Nodetool UI and CLI tools provide interfaces for discovering and managing node packs.
The primary interface for managing packs is through the Nodetool UI, which provides a user-friendly way to:
- Browse available node packs
- Install/uninstall packs (using pip under the hood)
- Update packs
- View pack information and documentation
The CLI tool is available for developers to create and manage Nodetool packs.
Basic commands:
# List installed packs
nodetool list
# List available packs in the registry
nodetool list --available
# Scan current directory for nodes and create metadata
nodetool scan
# Scan with verbose output
nodetool scan --verbose
# Initialize a new Nodetool pack
nodetool init
To create a pack that can be installed in Nodetool:
IMPORTANT: pack name MUST start with nodetool-
-
Create a new folder for your project
-
Run the
nodetool init
command:
$ nodetool init
Project name: nodetool-example
Description: My example Nodetool pack
Author (name <email>): John Smith <[email protected]>
✅ Successfully initialized Nodetool project
Created:
- pyproject.toml
- src/nodetool/nodes/nodetool-example
- src/nodetool/pack_metadata/
- Create your node classes:
from pydantic import Field
from nodetool.workflows.base_node import BaseNode
class MyNode(BaseNode):
"""Example node implementation"""
prompt: str = Field(
default="Build me a website for my business.",
description="Input prompt for the node"
)
async def process(self, context: ProcessingContext) -> str:
# Your node implementation here
return "Node output"
-
Generate pack metadata:
- Run
nodetool scan
in your pack repository - This will create
your_pack.json
file insrc/nodetool/pack_metadata
- Run
-
Commit and publish your project to a Github repository
-
Register your pack in the Nodetool registry:
- Fork this repository
- Add your pack information to index.json
- Submit a pull request
Your pack should:
- Follow Python packaging best practices
- Include clear documentation for each node
- Provide example usage
- Include proper node metadata (generated via
nodetool scan
)
Before submitting to the registry:
- Install your pack locally:
pip install -e .
-
Restart Nodetool UI
-
Verify your nodes appear in the Nodetool UI
The Nodetool packs registry is hosted at nodetool-registry. The registry maintains:
- Pack metadata in
index.json
- Installation instructions
- Version information
- Node documentation
Each pack in the registry includes:
- Name
- Description
- Repository ID (owner/project format)
- Namespaces provided
- Node metadata
This pack management system is part of the Nodetool project. See the main project repository for license information.