node-based visual graph editor for ai workflow design
Provides a Tauri-based desktop application with a visual node-and-edge graph editor for designing LLM workflows without code. The editor implements a graph data model where nodes represent computational units (LLM calls, data transforms, control flow) and edges represent data flow between them. Users drag nodes onto a canvas, configure node parameters through UI panels, and connect outputs to inputs. The graph is serialized to JSON for persistence and execution.
Unique: Implements a native desktop graph editor using Tauri (Rust + web UI) rather than web-only, enabling local execution and debugging without cloud dependencies. The graph model supports first-class control flow nodes (conditionals, loops) alongside data nodes, unlike many LLM chain tools that treat control flow as secondary.
vs alternatives: Faster iteration than code-based frameworks (Langchain, LlamaIndex) for non-engineers; more flexible control flow than prompt-chaining tools (Promptflow, Dify) through native loop and conditional support.
graph processor with local and remote execution modes
Executes serialized graph definitions through a graph processor engine that traverses nodes in dependency order, manages execution state, and handles both local (in-process) and remote (debugger-connected) execution. The processor implements a process context that tracks variable bindings, execution history, and node outputs. Local execution runs graphs directly in Node.js or browser; remote execution connects to a debugger for step-through debugging and inspection.
Unique: Separates execution engine (@ironclad/rivet-core) from UI and deployment, enabling the same graph to run in desktop IDE, Node.js server, and browser environments. Implements execution recording that captures all node inputs/outputs for deterministic replay and auditing.
vs alternatives: More transparent execution model than Langchain (which abstracts execution details) — every node's input/output is visible and recordable; supports both interactive debugging and production embedding unlike Promptflow (primarily UI-focused).
prompt designer and template system
Integrated prompt design tool for crafting and testing LLM prompts before using them in graphs. The prompt designer provides a text editor with syntax highlighting, variable interpolation (using {{variable}} syntax), and a preview pane showing how prompts render with sample data. Designed prompts can be exported as graph nodes.
Unique: Integrates prompt design directly into the IDE with live preview and variable interpolation, reducing context switching. Prompts designed in the prompt designer can be directly exported as graph nodes.
vs alternatives: More integrated than external prompt tools (PromptHub, Promptbase) — no context switching; more visual than code-based prompt management (Langchain templates).
cli and server mode for production deployment
Command-line interface and server mode enabling Rivet graphs to run in production environments without the desktop IDE. The CLI can execute graphs directly from the command line, passing inputs via arguments or stdin. Server mode runs Rivet as an HTTP server exposing graphs as REST API endpoints, enabling integration with existing applications.
Unique: Provides both CLI and server modes from the same codebase, enabling graphs to run in multiple deployment scenarios without modification. Server mode exposes graphs as HTTP endpoints without requiring custom API code.
vs alternatives: More flexible than Langchain Serve (which requires Python FastAPI knowledge); more integrated than deploying graphs as custom microservices (no boilerplate code needed).
remote debugging with debugger connection
Enables step-through debugging of graph execution by connecting the desktop IDE to a running graph execution (local or remote). The debugger allows pausing execution at nodes, inspecting variable values, stepping through execution, and modifying execution state. Debugger connection is established via WebSocket or HTTP, allowing debugging of graphs running on remote servers.
Unique: Implements remote debugging at the graph processor level, allowing IDE to connect to any running graph execution (local or remote) via WebSocket. Debugger state is synchronized in real-time between IDE and execution environment.
vs alternatives: More integrated than generic debuggers (gdb, lldb) for graph-based workflows; more visual than logging-based debugging (print statements, log analysis).
embedded execution via @ironclad/rivet-node npm package
Provides a Node.js-specific package (@ironclad/rivet-node) for embedding Rivet graph execution directly into Node.js applications. Applications import the package, load a graph definition, and execute it programmatically with input data. The package provides APIs for graph loading, execution, and result retrieval, enabling Rivet graphs to be used as a library within larger applications.
Unique: Separates core execution engine (@ironclad/rivet-core) from Node.js-specific APIs (@ironclad/rivet-node), enabling the same graphs to run in browser, Node.js, and CLI environments. Provides a clean programmatic API for graph loading and execution.
vs alternatives: More integrated than Langchain (which requires separate chain definitions in code); more flexible than Promptflow (which doesn't provide a clean SDK for embedding).
llm provider abstraction with multi-model support
Abstracts LLM interactions through a provider-agnostic interface supporting OpenAI, Anthropic, and other models. Chat nodes in the graph accept a model identifier and configuration (temperature, max tokens, system prompt) and route calls to the appropriate provider's API. The abstraction handles provider-specific differences in API contracts, token counting, and response formats, normalizing them to a common interface.
Unique: Implements provider abstraction at the node level rather than globally, allowing different nodes in the same graph to use different models and configurations. Integrates with Gentrace for provider-agnostic observability and cost tracking across multiple LLM vendors.
vs alternatives: More flexible than Langchain's LLMChain (which locks in a single model per chain) — supports per-node model selection; simpler than building custom provider switching logic.
control flow nodes for conditionals, loops, and branching
Provides specialized node types for implementing conditional logic (if/else), loops (for, while), and parallel execution within graphs. These nodes evaluate expressions or conditions at runtime and route execution to different downstream nodes based on results. Loop nodes iterate over arrays or ranges, executing a subgraph for each iteration and collecting results. Parallel nodes execute multiple branches concurrently and merge outputs.
Unique: Treats control flow as first-class graph nodes rather than configuration options, making branching logic visually explicit and debuggable. Supports nested subgraphs within loops and conditionals, enabling complex workflows without flattening to a single graph level.
vs alternatives: More visual and explicit than Langchain's conditional routing (which uses Python logic); more flexible than Promptflow's limited branching (which doesn't support nested loops).
+6 more capabilities