Resources for building custom nodes, extending NodeTool, and integrating workflows programmatically.
Quick Start: Custom Nodes
Creating custom nodes in TypeScript:
import { BaseNode, prop } from "@nodetool-ai/node-sdk";
export class UppercaseTextNode extends BaseNode {
static readonly nodeType = "mypackage.text.Upper";
static readonly title = "Uppercase Text";
static readonly description = "Convert text to uppercase.";
static readonly metadataOutputTypes = { output: "str" };
@prop({ type: "str", default: "", title: "Input Text" })
declare inputText: string;
async process(): Promise<Record<string, unknown>> {
return { output: String(this.inputText ?? "").toUpperCase() };
}
}
Export a register(registry) function from your package and NodeTool discovers the node automatically.
-> Full Custom Nodes Guide (TypeScript) – End-to-end walkthrough: packaging, governance, streaming, testing, distribution.
Guides
Custom Node Development (TypeScript)
- Custom Nodes Guide – Start here! End-to-end guide for authoring, packaging, and distributing TypeScript node packs.
- TypeScript DSL Guide – Type-safe workflow definitions with auto-generated factory functions.
Custom Node Reference (TypeScript)
- Node Implementation Quick Reference – Templates and common
@prop/process()patterns. - Node Implementation Patterns – Architectural patterns: multi-output, streaming, stateful, secrets.
Python Nodes
- Node Implementation Examples – Python node examples for the Python bridge.
Advanced
- Suspendable Nodes – Build nodes that can pause and resume workflows.
Programmatic Workflows
- TypeScript DSL Guide – Type-safe workflow definitions with auto-generated factory functions
- Gradio Conversion Guide – Convert NodeTool workflows to Gradio applications
API Integration
- API Reference – REST API endpoints and authentication
- Headless Mode – Run workflows via CLI and HTTP API
- Chat API – OpenAI-compatible chat endpoints
- Workflow API – Execute workflows programmatically
Documentation Development
- Docs README – How to build and serve the documentation site locally
- Theme Guide – Notes on the custom docs theme
Contributing
Contribute to NodeTool on GitHub.
Share Custom Nodes
Options:
- Publish as a separate package
- Contribute to the core node library
- Share workflow examples on Discord