Library of the Week — Rivet
A weekly teardown of one open-source AI/ML library: what it does, why it stands out, and when to use it.
Rivet — a visual node-based IDE for building and debugging LLM pipelines
GitHub · Language: TypeScript · License: MIT
What it does
Rivet is an open-source visual programming environment for designing, testing, and embedding LLM workflows. Instead of debugging prompt chains buried in code, you build them as a graph of connected nodes — model calls, data transformations, conditionals, subgraphs — and watch data flow through them in real time. It’s aimed at developers who need to iterate quickly on complex, multi-step AI pipelines without losing observability.
Why it stands out
- Live execution tracing — run a graph and each node lights up with its actual inputs, outputs, and token usage; you see exactly where a chain breaks without adding logging code
- Embeddable as a library —
@ironclad/rivet-nodelets you load and run.rivet-projectfiles directly from Node.js, so the same graph you built visually runs in production with no translation step - Subgraphs and reuse — pipelines can call other graphs as nodes, making it practical to build modular, composable workflows rather than a single monolithic chain
- Multi-provider without lock-in — supports OpenAI, Anthropic, and local models side by side in the same graph, useful for cost/quality A-B comparisons
Quick start
import { createProcessor, loadProjectFromFile } from "@ironclad/rivet-node";
const project = await loadProjectFromFile("./my-pipeline.rivet-project");
const { outputs } = await createProcessor(project, {
graph: "Main Graph",
inputs: {
user_message: { type: "string", value: "Summarize the Q3 earnings report." },
},
openAiKey: process.env.OPENAI_API_KEY,
}).run();
console.log(outputs["response"]?.value);
When to use it
- You’re building multi-step pipelines (retrieval → rerank → generate → validate) and need to debug intermediate states without instrumenting every function call
- Your team includes non-engineers who need to inspect or tweak prompt logic without touching source code
- You want to prototype a pipeline visually and ship the same artifact to production via the Node SDK
When to skip it
- Your pipelines are simple single-call wrappers — the visual layer adds setup overhead that isn’t worth it for a one-node graph
- You need Python-native integration; Rivet’s SDK is TypeScript/Node only, so Python shops will hit friction at the production embed step
The verdict
Rivet occupies a genuinely underserved spot: it’s not a no-code toy, and it’s not a code-only framework — it’s a debugging and authoring environment that respects the fact that graph execution needs to be observable to be trustworthy. If you’re maintaining complex LLM chains and finding that tracing failures is slower than fixing them, Rivet is worth an afternoon evaluation.