Skip to content

nodetool-ai/nodetool

Repository files navigation

NodeTool LogoNodeTool - Agentic Workflow Builder

Build, automate, and integrate.

Conda Release Lint and Test Docker CodeQL

NodeTool is an open-source agentic workflow builder thet let's you build powerful tools. Connect your tools, streamline your work.

πŸš€ Why NodeTool?

NodeTool empowers you to build powerful agentic workflows:

  • ☁️ Models: Use local models or connect to OpenAI, Gemini, Anthropic, and more.
  • πŸ€– Advanced Agent Design: Build intelligent multi-agent systems that can plan, reason, and use tools like web browsing and file operations.
  • 🎨 Rapid Prototyping: The fastest way to prototype agentic workflows. Visual editor with no coding required.
  • πŸ’» Integrations: Fetch emails, create posts, access any tool.

NodeTool


βš™οΈ Quickstart Installation

1️⃣ Get Running in Minutes

Note: Requires an Nvidia GPU or Apple Silicon (M1+) and at least 20GB of free disk space for model downloads.

2️⃣ Create Your First AI Workflow

  • Open NodeTool.
  • Choose a prebuilt template or start with a blank canvas.
  • Drag and drop AI nodes and connect them visually.
  • Click Run and watch your local AI workflow execute!

✨ Features

NodeTool empowers you with everything you need to build, automate, and deploy agentic workflows:

  • Visual Workflow Editor: Build workflows with intuitive visual tools. No coding required.
  • Local AI Models: Run powerful open-source models from Hugging Face and Ollama directly on your hardware for complete privacy and offline capability.
  • Cloud AI Integration: Connect to major AI providers like OpenAI, Gemini, Anthropic, Replicate, and Fal.ai.
  • Advanced Vector Storage & RAG:
    • Built-in ChromaDB integration for efficient embedding storage and retrieval.
    • Easily create Retrieval-Augmented Generation (RAG) workflows.
    • Index and query PDFs, documents, and other text sources.
    • Combine vector search with any supported LLM for context-rich responses.
  • Multimodal Capabilities: Process text, images, audio, and video within a single workflow.
  • System Tray Integration: Access workflows quickly via the system tray. Assign global shortcuts, manage clipboard content with AI, and monitor task status.
  • Asset Management: Import, organize, and manage images, audio, video, and other media assets within your workflows.
  • Ready-to-Use Templates: Start quickly with pre-built workflow templates for common AI tasks.
  • Mini-App Builder: Convert workflows into standalone desktop applications with a few clicks.
  • Chat Interface: Build personalized chatbot interfaces tailored to your specific needs.
  • API Access: Integrate NodeTool with external applications and services via APIs.
  • Custom Python Extensions: Extend functionality with custom Python scripts and integrations.
  • Cross-Platform: Build and run workflows on Mac, Windows, and Linux.

πŸ€– NodeTool Agent System

Design sophisticated AI agents capable of handling complex, multi-step tasks using NodeTool's agent framework.

Core Capabilities:

  • Strategic Task Planning: Automatically break down complex objectives into structured, executable plans.
  • Chain of Thought Reasoning: Enable agents to perform step-by-step problem solving with explicit reasoning paths.
  • Tool Integration: Equip agents with tools for web browsing, file operations, API calls, and more.
  • Streaming Results: Get live updates as agents reason and execute tasks.

Ready-to-Use Agent Examples

NodeTool includes several pre-built agent examples:

  • Wikipedia-Style Research Agent: Generates structured documentation via web research.
  • ChromaDB Research Agent: Processes and indexes documents for semantic querying.
  • Social Media Analysis Agents: Tracks and analyzes content from Twitter/X, Instagram, and Reddit.
  • Professional Research Tools: Analyzes the LinkedIn job market and performs advanced Google searches.
  • Utility Agents: Processes emails and integrates web search capabilities.

Find full implementations and more examples in the examples directory of the nodetool-core repository.

✨ Real-World Applications

See how NodeTool streamlines your workflows:

  • πŸ“§ Email Automation: Never miss important emails again. Automatically scan Gmail, extract key information, and create personalized daily summaries.
  • πŸ‰ Creative AI Generator: Turn ideas into unique Pokemon with custom descriptions, images, types, and abilities using AI creativity.
  • πŸ” Smart Document Q&A: Get instant answers from your documents. Upload PDFs and other files, then ask questions and get accurate responses.
  • 🎨 Image Style Transfer: Transform any image with artistic styles while preserving the original structure and composition.

πŸ’‘ Join Our Community

Connect with other NodeTool users and the development team:

Let's build amazing AI workflows together! ✨

πŸš€ Quickstart (Release Info)

Release 0.6 is in pre-release.

πŸ› οΈ Development Setup

Follow these steps to set up a local development environment for the entire NodeTool platform, including the UI, backend services, and the core library (nodetool-core). If you are primarily interested in contributing to the core library itself, please also refer to the nodetool-core repository for its specific development setup using Poetry.

Prerequisites

  • Python 3.11: Required for the backend.
  • Conda: Download and install from miniconda.org.
  • Node.js (Latest LTS): Required for the frontend. Download and install from nodejs.org.

1. Set Up Conda Environment

# Create and activate the Conda environment
conda create -n nodetool python=3.11 -y
conda activate nodetool

# Install essential system dependencies via Conda
conda install -c conda-forge ffmpeg cairo x264 x265 aom libopus libvorbis lame pandoc uv -y

2. Install Core Python Dependencies

These are the essential packages to run NodeTool.

# Install nodetool-core and nodetool-base
# On macOS / Linux / Windows:
pip install git+https://github.com/nodetool-ai/nodetool-core
pip install git+https://github.com/nodetool-ai/nodetool-base

3. Install Optional Node Packs (As Needed)

NodeTool's functionality is extended via packs. Install only the ones you need.

# List available packs (optional)
nodetool package list -a

# Example: Install packs for specific integrations
pip install git+https://github.com/nodetool-ai/nodetool-huggingface --extra-index-url https://download.pytorch.org/whl/cu121 # For HuggingFace models (PyTorch/CUDA)
# ... install other packs like replicate, fal, elevenlabs, etc.
# ... add other relevant packs here

Note: Some packs like nodetool-huggingface may require specific PyTorch versions or CUDA drivers. Use the --extra-index-url when necessary.

4. Configure Environment Variables

Create a .env file inside the web directory (you can copy web/.env.example as a starting point). Set the following variables to match your deployment:

VITE_API_URL=http://localhost:8000            # URL of the NodeTool API server
VITE_SUPABASE_URL=https://your-supabase.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key

These variables are loaded by Vite at build time and allow you to point the UI at a different backend or Supabase project without changing the source code.

5. Run NodeTool Backend & Web UI

Ensure the nodetool Conda environment is active.

Option A: Run Backend with Web UI (for Development)

This command starts the backend server and serves the web UI directly with hot reloading enabled.

# On macOS / Linux / Windows:
nodetool serve

Access the UI in your browser at http://localhost:3000.

Option B: Run with Electron App

This provides the full desktop application experience.

Configure Conda Path: Ensure your settings.yaml file points to your Conda environment path:

  • macOS/Linux: ~/.config/nodetool/settings.yaml
  • Windows: %APPDATA%/nodetool/settings.yaml
CONDA_ENV: /path/to/your/conda/envs/nodetool # e.g., /Users/me/miniconda3/envs/nodetool

Build Frontends: You only need to do this once or when frontend code changes.

# Build the main web UI
cd web
npm install
npm run build
cd ..

# Build the apps UI (if needed)
cd apps
npm install
npm run build
cd ..

Start Electron:

cd electron
npm install
npm start

The Electron app will launch, automatically starting the backend and frontend.

🀝 Contributing

We welcome community contributions!

  1. Fork the repository on GitHub.
  2. Create a new branch for your feature (git checkout -b feature/your-feature-name).
  3. Make your changes and commit them (git commit -am 'Add some amazing feature').
  4. Push your branch to your fork (git push origin feature/your-feature-name).
  5. Open a Pull Request against the main branch of the original repository.

Please follow our contribution guidelines and code of conduct.

πŸ“„ License

AGPL

πŸ“¬ Get in Touch

We'd love to hear from you! Whether you have questions, suggestions, or feedback, feel free to reach out through any of the following channels:

We're excited to collaborate and build amazing AI workflows together! πŸš€βœ¨

πŸ“¦ NodeTool Packs Registry

Extend NodeTool's capabilities with specialized Node Packs. The NodeTool Packs Registry manages discovery, installation, and distribution.

Using Packs (For Users)

Manage packs easily through the NodeTool UI:

  • Browse available packs.
  • Install, uninstall, and update packs (uses pip behind the scenes).
  • View pack details and documentation.

Alternatively, install directly via pip (see Development Setup).

Refer to the NodeTool Registry repository for detailed guidelines on creating and publishing packs.

πŸ“š Documentation

The documentation site is built with Jekyll on GitHub Pages. Markdown files live in the docs/ directory and changes on main are deployed automatically. Start with the Getting Started guide and browse our new Tips and Tricks section for handy workflow shortcuts.