A collection of reusable nodes for Nodetool. These nodes implement common functionality for text, audio, video, images and more. They build on the runtime provided by nodetool-core.
Nodetool lets you compose AI workflows as graphs. nodetool-base ships with a rich set of nodes so you can build useful flows out of the box. The nodes are organised into several namespaces under src/nodetool/nodes:
calendly– access to Calendly eventschroma– Chroma vector database operationsgoogle– Google image generationlib– helpers using libraries like BeautifulSoup, LlamaIndex or PyMuPDFnodetool– core utilities such as audio, boolean logic, image processing and moreopenai– wrappers around OpenAI APIs
Example workflows using these nodes can be found in src/nodetool/examples/nodetool-base.
git clone https://github.com/nodetool-ai/nodetool-base.git
cd nodetool-base
poetry installThis installs nodetool-core and other dependencies.
Detailed documentation for each node group lives in the docs/ folder. Start with docs/index.md which lists all available node categories:
- lib.audio - Save audio files to the assets directory.
- nodetool.boolean - Logical operators, comparisons and flow control helpers.
- nodetool.code - Evaluate expressions or run small Python snippets (development use).
- nodetool.constant - Provide constant values like numbers, strings and images.
- nodetool.control - Basic branching with an if node.
- nodetool.date - Utilities for manipulating dates and times.
- nodetool.dictionary - Manipulate key/value data and dictionaries.
- nodetool.group - Group operations such as looping over inputs.
- nodetool.image - Image manipulation including crop, resize and save.
- nodetool.input - Nodes for collecting user input of various types.
- nodetool.json - Parse, query and validate JSON data.
- nodetool.list - List processing utilities.
- nodetool.math - Basic arithmetic and math functions.
- nodetool.os - File system and path helpers.
- nodetool.output - Output nodes to return results to the user.
- nodetool.text - Text processing nodes with regex and templating.
- nodetool.video - Video editing and generation tools.
Refer to the individual markdown files for usage details and examples of each node.
pytest -qMost tests run without network access.
This repository uses pre-commit hooks to ensure code quality and consistency.
Setup:
# Install pre-commit
pip install pre-commit
# Install git hooks
pre-commit installWhat gets checked:
- Ruff linting and formatting
- Trailing whitespace and file endings
- YAML/JSON validation
- Markdown formatting
Running manually:
# Run all hooks on all files
pre-commit run --all-files
# Run on staged files only
pre-commit runHooks run automatically on git commit. If they fail or make changes, stage the changes and commit again.
Contributions are welcome. Feel free to open issues or pull requests on GitHub.