Open-source visual AI programming environment from Ironclad for building, debugging, and embedding complex LLM agents and prompt-chaining graphs, with a desktop app and a TypeScript library.
by Ironclad · submitted by davion-knight·added 2026-07-09·
Rivet graphs can include nodes that call LLMs, run code, make HTTP requests, and call into your application's functions, so review what a graph and its nodes do before running it, especially graphs from untrusted sources., The desktop app and embedded graphs use the model-provider API keys and integration credentials you configure; scope those credentials to the minimum needed., When embedding Rivet Core in an application, treat graph inputs and node outputs as untrusted, and gate any node that performs writes or external actions., Node types that execute code or make network calls should run with least privilege and appropriate timeouts., Keep production graphs and their permissions narrower than example graphs.
Privacy notes
Running a Rivet graph sends prompts, inputs, and node data to the configured model providers and any integrated services., Nodes that call your application's code, HTTP endpoints, or data sources can pass local or workspace data into the graph and the model., Prompts, node outputs, and debugging traces in the app or your logs can retain data, so apply normal retention and access-control policies., Model-provider and integration credentials live in the app configuration or your application's environment; keep them out of version control.
Author
Ironclad
Submitted by
davion-knight
Claim status
unclaimed
Last verified
2026-07-09
Decision playbook
Review trust signals before you adopt
Signals are present but mixed. Use the checklist below to confirm the source and operational safety for your environment.
Compare context
Selected
0
Current score
78
Baseline
—
Delta
No baseline selected
No major trust-signal divergence detected in the current selection.
Source and provenance checks
Complete
Confirm ownership and provenance before trusting install instructions.
Source link availableRequired
Open the canonical repository and verify ownership.
Done
Source provenance statusRequired
Marked as source-backed.
Done
Metadata reviewed
Registry metadata indicates a reviewed listing.
Done
Safety and privacy checks
Complete
Validate risk disclosures before installation or API wiring.
Safety notes presentRequired
Review the listed safety guidance before running commands.
Done
Privacy notes presentRequired
Review data handling notes before connecting accounts or secrets.
Done
Trust level risk gateRequired
Trust level does not block evaluation.
Done
Package and install checks
Needs review
Check package metadata and artifact integrity signals.
Install payload available
Install or copy payload is available for review.
Done
Package verification flag
No package verification flag provided.
Pending
Checksum metadata
No checksum provided for downloaded artifact.
Pending
Compare-driven decision checks
Needs review
Use compare context to validate trade-offs before adoption.
Compare tray has multiple entries
Add at least one more entry to compare trust differences.
Pending
Baseline comparison available
No baseline peer selected yet.
Pending
Diverging trust signals identified
No major trust-signal divergence found.
Pending
Adoption plan
Balanced adoption plan
Current risk score 16/100. Use staged verification before broader rollout.
Risk 16
Pre-adoption checks
Validate source and review signals before any execution.
Confirm source provenanceRequired
Source URL/provenance metadata is present.
Done
Confirm metadata review state
Listing has review metadata.
Done
Verify install payload
Install/config payload exists and can be inspected.
Done
Security checks
Confirm safety, privacy, and package integrity signals.
Review safety notesRequired
Safety notes are present.
Done
Review privacy notesRequired
Privacy notes are present.
Done
Verify package integrity metadata
No package verification/checksum metadata.
Pending
Rollout
Adopt in controlled steps based on the selected plan.
Run in isolated sandbox firstRequired
Use a constrained sandbox and observe behavior across multiple tasks.
Pending
Roll out graduallyRequired
Roll out to a small cohort before wider usage.
Pending
Set monitoring and fallback
Define rollback path and monitor errors after adoption.
Pending
Evidence readiness
Evidence readiness matrix · balanced
Required evidence gates are covered (5/6 signals complete).
Risk 15
Source provenance
Present
Source repository/provenance is listed.
Required in this preset
Metadata review
Present
Review metadata is present.
Required in this preset
Safety notes
Present
Safety notes are present.
Required in this preset
Privacy notes
Present
Privacy notes are present.
Optional in this preset
Package integrity
Missing
Package integrity metadata is missing.
Optional in this preset
Install payload
Present
Install payload is available.
Required in this preset
Required evidence gates are covered for this preset.
Decision timeline
Decision timeline · balanced
5/6 steps complete with no blocking gaps for this preset.
Risk 14
triage
Confirm source provenanceRequired
Source/provenance metadata is available.
Done
triage
Check metadata review statusRequired
Review metadata is available.
Done
verify
Review safety notesRequired
Safety notes are available.
Done
verify
Review privacy notes
Privacy notes are available.
Done
verify
Validate package integrity metadata
Package integrity metadata is missing.
Pending
rollout
Verify install payload and commandsRequired
Install payload is available.
Done
No required blockers for this timeline preset.
Safety notes
Rivet graphs can include nodes that call LLMs, run code, make HTTP requests, and call into your application's functions, so review what a graph and its nodes do before running it, especially graphs from untrusted sources.
The desktop app and embedded graphs use the model-provider API keys and integration credentials you configure; scope those credentials to the minimum needed.
When embedding Rivet Core in an application, treat graph inputs and node outputs as untrusted, and gate any node that performs writes or external actions.
Node types that execute code or make network calls should run with least privilege and appropriate timeouts.
Keep production graphs and their permissions narrower than example graphs.
Privacy notes
Running a Rivet graph sends prompts, inputs, and node data to the configured model providers and any integrated services.
Nodes that call your application's code, HTTP endpoints, or data sources can pass local or workspace data into the graph and the model.
Prompts, node outputs, and debugging traces in the app or your logs can retain data, so apply normal retention and access-control policies.
Model-provider and integration credentials live in the app configuration or your application's environment; keep them out of version control.
Prerequisites
The Rivet desktop application (for authoring graphs), or Node.js and npm to embed `@ironclad/rivet-core` or `@ironclad/rivet-node` in an application.
Model-provider API keys for the LLM providers a graph uses, plus credentials for any integrations the graph calls.
A clear boundary for which application functions and data sources Rivet graphs may call, and vice versa, before embedding.
A plan for how graphs are versioned, reviewed, and promoted from local authoring to production use.
Observability and retention decisions for prompts, node outputs, and debugging traces.
## Editorial notes
Rivet is useful when Claude-adjacent teams want to build and debug complex LLM agents and prompt chains **visually**, then embed the resulting graphs in application code. The desktop app provides a node-based editor for authoring and debugging graphs, and the TypeScript libraries let those same graphs run inside your own application, with your app and the graph able to call into each other.
This is distinct from existing agent-framework entries. CrewAI, LangGraph, Pydantic AI, Griptape, Marvin, and Atomic Agents are code-first Python or TypeScript frameworks. Rivet's differentiator is a **visual graph editor plus an embeddable TypeScript runtime** (`@ironclad/rivet-core` / `@ironclad/rivet-node`), maintained by Ironclad.
## Source notes
- The official repository describes Rivet as a desktop application for creating complex AI agents and prompt chaining, and embedding it in your application.
- Rivet supports multiple LLM providers and additional integrations for building graphs.
- Rivet Core is a TypeScript library for running graphs created in Rivet; it is used by the Rivet application and can also be embedded in your own applications so Rivet can call into your code and your code can call into Rivet graphs.
- Rivet Core is published on npm as `@ironclad/rivet-core`, and Rivet Node as `@ironclad/rivet-node`, with API documentation on the Rivet website.
- The GitHub repository is `Ironclad/rivet`, is MIT licensed, and is maintained by Ironclad.
## Duplicate check
Checked current `content/tools/`, `content/mcp/`, agents, skills, hooks, rules, commands, guides, open pull requests, and repository-wide content for `Rivet`, `rivet`, `ironclad/rivet`, `rivet.ironcladapp.com`, `@ironclad/rivet-core`, `@ironclad/rivet-node`, and `visual ai programming`. Existing agent-framework entries such as CrewAI, LangGraph, Pydantic AI, Griptape, Marvin, and Atomic Agents cover code-first workflows, but no dedicated Rivet tools entry, Rivet source URL duplicate, or open duplicate PR was found.
## Disclosure
Editorial listing. No paid placement or affiliate link is used.
About this resource
Editorial notes
Rivet is useful when Claude-adjacent teams want to build and debug complex LLM agents and prompt chains visually, then embed the resulting graphs in application code. The desktop app provides a node-based editor for authoring and debugging graphs, and the TypeScript libraries let those same graphs run inside your own application, with your app and the graph able to call into each other.
This is distinct from existing agent-framework entries. CrewAI, LangGraph, Pydantic AI, Griptape, Marvin, and Atomic Agents are code-first Python or TypeScript frameworks. Rivet's differentiator is a visual graph editor plus an embeddable TypeScript runtime (@ironclad/rivet-core / @ironclad/rivet-node), maintained by Ironclad.
Source notes
The official repository describes Rivet as a desktop application for creating complex AI agents and prompt chaining, and embedding it in your application.
Rivet supports multiple LLM providers and additional integrations for building graphs.
Rivet Core is a TypeScript library for running graphs created in Rivet; it is used by the Rivet application and can also be embedded in your own applications so Rivet can call into your code and your code can call into Rivet graphs.
Rivet Core is published on npm as @ironclad/rivet-core, and Rivet Node as @ironclad/rivet-node, with API documentation on the Rivet website.
The GitHub repository is Ironclad/rivet, is MIT licensed, and is maintained by Ironclad.
Duplicate check
Checked current content/tools/, content/mcp/, agents, skills, hooks, rules, commands, guides, open pull requests, and repository-wide content for Rivet, rivet, ironclad/rivet, rivet.ironcladapp.com, @ironclad/rivet-core, @ironclad/rivet-node, and visual ai programming. Existing agent-framework entries such as CrewAI, LangGraph, Pydantic AI, Griptape, Marvin, and Atomic Agents cover code-first workflows, but no dedicated Rivet tools entry, Rivet source URL duplicate, or open duplicate PR was found.
Disclosure
Editorial listing. No paid placement or affiliate link is used.
Open-source visual AI programming environment from Ironclad for building, debugging, and embedding complex LLM agents and prompt-chaining graphs, with a desktop app and a TypeScript library.
Open-source domain-specific language from BoundaryML for writing typed LLM functions with structured inputs and outputs, a VSCode playground, and generated clients you can call from Python, TypeScript, Go, and more.
Python framework from Stanford NLP for programming language-model systems with signatures, modules, tools, metrics, and optimizers instead of hand-written prompts.
✓Rivet graphs can include nodes that call LLMs, run code, make HTTP requests, and call into your application's functions, so review what a graph and its nodes do before running it, especially graphs from untrusted sources.
The desktop app and embedded graphs use the model-provider API keys and integration credentials you configure; scope those credentials to the minimum needed.
When embedding Rivet Core in an application, treat graph inputs and node outputs as untrusted, and gate any node that performs writes or external actions.
Node types that execute code or make network calls should run with least privilege and appropriate timeouts.
Keep production graphs and their permissions narrower than example graphs.
✓Agenta can manage and deploy prompt or configuration changes, so production updates should go through review and rollback controls.
Webhooks and GitHub automations tied to prompt or deployment changes should be scoped to trusted repositories and guarded workflows.
Evaluation and online monitoring results should support, not replace, domain review for high-risk application behavior.
✓BAML functions call LLM providers using the credentials you configure, so scope those provider keys to the minimum needed and keep them out of source control.
BAML generates client code that runs inside your application; review generated clients before shipping, and treat typed outputs as untrusted input for account, billing, data, or infrastructure actions.
Static typing and schema validation reduce parsing errors, but they do not guarantee that a model's answer is correct, complete, or safe.
The BAML CLI and VSCode extension run locally and write generated code into your project; run them in an environment where writing those files is expected.
Keep production usage and permissions narrower than playground or example projects.
✓DSPy changes how language-model systems are constructed and optimized, but it does not prove that a generated answer, optimized prompt, ReAct tool action, retrieved passage, or fine-tuned model is correct or safe.
Optimizers can issue many model calls, generate examples, explore instructions, tune prompts, or fine-tune model weights; set budgets, rate limits, evaluation gates, rollback rules, and review ownership before running them.
ReAct modules, Python interpreter tools, function tools, retrieval tools, and MCP-converted tools can trigger external APIs, local code, file access, or business actions if wired into a program.
Metrics and evaluation datasets can overfit, reward the wrong behavior, or miss safety failures; treat optimizer scores as development signals rather than production approval.
Saved programs, optimized prompts, bootstrapped demonstrations, fine-tuning datasets, and experiment artifacts should be reviewed before sharing because they can encode private data or brittle task assumptions.
Local model servers, provider endpoints, and LiteLLM-compatible routes need normal timeout, retry, budget, abuse, model-selection, and credential-handling controls.
Privacy notes
✓Running a Rivet graph sends prompts, inputs, and node data to the configured model providers and any integrated services.
Nodes that call your application's code, HTTP endpoints, or data sources can pass local or workspace data into the graph and the model.
Prompts, node outputs, and debugging traces in the app or your logs can retain data, so apply normal retention and access-control policies.
Model-provider and integration credentials live in the app configuration or your application's environment; keep them out of version control.
✓Prompt records, variants, test sets, traces, model inputs and outputs, feedback, annotations, and evaluation results may be stored in Agenta.
Hosted Agenta use sends that data to Agenta Cloud; self-hosted deployments still require retention, access-control, and backup policies.
Review Agenta's sensitive-data redaction and retention guidance before sending production, customer, or regulated data.
✓BAML functions send prompts and inputs to the configured model providers, which process that data under their own data-handling terms.
Prompt templates, test inputs, and example data can contain personal or proprietary information, so keep them and provider credentials out of version control.
Generated outputs, and any logging or tracing you add around BAML calls, can retain prompts and results outside the library.
Apply normal retention and access-control policies to BAML source files, generated clients, and test fixtures that include real data.
✓DSPy programs can send prompts, messages, typed inputs, retrieved context, tool arguments, generated outputs, optimizer traces, examples, metrics, and fine-tuning data to configured model providers.
DSPy LM history can retain prompts, messages, call kwargs, responses, outputs, token usage, cost metadata, and related debugging information unless applications define cleanup and access controls.
Caches, saved programs, optimized prompt artifacts, demonstration sets, serialized LM state, experiment logs, and evaluation reports can preserve sensitive task data outside the original source system.
MCP integrations and tool calls can move user data, tool descriptions, tool arguments, and tool results into external servers, agent transcripts, provider logs, and downstream system logs.
Local models reduce third-party provider exposure but can still leave data in process logs, tracing systems, prompt caches, generated artifacts, and shared infrastructure storage.
Prerequisites
The Rivet desktop application (for authoring graphs), or Node.js and npm to embed `@ironclad/rivet-core` or `@ironclad/rivet-node` in an application.
Model-provider API keys for the LLM providers a graph uses, plus credentials for any integrations the graph calls.
A clear boundary for which application functions and data sources Rivet graphs may call, and vice versa, before embedding.
A plan for how graphs are versioned, reviewed, and promoted from local authoring to production use.
LLM application, prompt workflow, or agent workflow whose prompts and configurations need shared management.
Access to Agenta Cloud or a reviewed self-hosted Agenta deployment.
Provider credentials and a release policy for test sets, traces, prompt versions, and production deployment approvals.
A way to install the BAML toolchain (for example the CLI via Homebrew) and, for embedding, the language SDK such as `@boundaryml/baml` for TypeScript or `baml-py` for Python.
Model-provider credentials for the LLM providers your BAML functions call.
Defined input and output types for each BAML function before generating clients.
A build step to regenerate BAML clients when function definitions change, and a place to review the generated code.
Python 3.10 or newer and a dependency manager for installing `dspy` and optional extras for MCP, retrieval, local models, or deployment workflows.
Model provider credentials, local model endpoint, Databricks environment, or LiteLLM-compatible provider configuration for the language models used by the DSPy program.
Training examples, validation examples, metrics, expected outputs, and reviewer ownership before running DSPy optimizers or using optimized programs in production workflows.
Reviewed data sources, retrieval systems, tools, MCP servers, and Python execution paths before connecting DSPy modules to real files, APIs, databases, or account actions.