Model or dataset
Ironclad/rivet avatar
Ironclad/rivet

Rivet: draw your AI agent in an IDE, run it inside your own application

The open-source visual AI programming environment and TypeScript library

4,697 stars388 forksTypeScriptMIT

At a glance

What is it?
Rivet is Ironclad's open source, MIT-licensed visual AI programming environment, a desktop IDE for building complex agents and prompt chains plus a TypeScript library that runs the resulting graphs inside your own code. LLM support spans OpenAI GPT-4, Anthropic's Claude families and AssemblyAI's LeMUR for voice, with OpenAI embeddings and Pinecone for retrieval, all distributed across a Yarn workspaces monorepo.
Who is it for?
Choose Rivet when agent and prompt chain logic benefits from being drawn and iterated visually, then embedded in a TypeScript application through rivet-core, since the IDE plus library pairing is built for exactly that handoff. Look elsewhere if the target runtime is not JavaScript or TypeScript, or if a code-first agent framework fits the team better than a graph editor.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 36 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

An IDE for drawing agent graphs

Rivet is a desktop application for creating complex AI agents and prompt chaining, and embedding the result in your application, which makes it a visual programming environment rather than a chat tool or a notebook. The workflow it implies is build the graph of prompts, model calls and control flow in the IDE, debug it there with real model calls, then ship the graph as an artifact your application executes. The project describes itself as the open source visual AI programming environment and TypeScript library, and both halves matter to that promise, the environment where graphs are authored and the library that runs them, released together from one repository under MIT. The tagline embedding it in your application carries weight once you notice the repository layout, this is not a standalone tool with an export button bolted on, the runtime library and the editor are developed side by side in the same tree, on the same release train, by the same team.

GPT-4, the Claude families, and LeMUR for voice

The provider list reads like a snapshot of the period the tool grew up in. LLM support covers OpenAI GPT-3.5 and GPT-4, Anthropic Claude Instant and Claude 2, and the Claude 3 family of Haiku, Sonnet and Opus, spanning the two model vendors around which most agent work concentrated. The distinctive entry is AssemblyAI's LeMUR framework for voice data, extending agents past text into spoken audio understanding, complemented by speech to text from AssemblyAI as an additional integration. On the retrieval side, embedding and vector database support covers OpenAI Embeddings and Pinecone, enough to assemble RAG style chains inside the same graph editor without leaving the tool. For teams already committed to one vendor the breadth matters less than the depth, but for anyone comparing models side by side inside working chains, editing a graph once and pointing its model node at a different provider is the cheaper experiment than rewriting the chain per provider.

The graphs run in your app, not just the IDE

Rivet Core is the half that makes the IDE more than a design tool, a TypeScript library for running graphs created in Rivet, used by the Rivet application itself but equally usable in your own applications. The integration is described bidirectionally, so that Rivet can call into your own application's code, and your application can call into Rivet graphs, custom nodes bridging the graph to your business logic while your code triggers and consumes graph runs. The library ships on NPM as @ironclad/rivet-core, with @ironclad/rivet-node beside it for Node deployments, and an Integration Getting Started page in the API documentation walks the embedding path. That two-sided contract is the architectural claim, graphs are artifacts that live in production code, not diagrams that die in a design tool. The npm split also implies an operations story, rivet-core is the lean dependency for embedding execution, while rivet-node exists for the server side, so an application and a backend service can share graph definitions without dragging desktop oriented code into either.

Three desktops, an AppImage, and a Linux dmg

Prebuilt binaries cover the mainstream platforms, a Rivet.dmg for macOS, a Rivet-Setup.exe for Windows, and Rivet.AppImage for Linux, with the small curiosity that a dmg download for Linux is also listed alongside the AppImage, a quirk of the release packaging rather than a typo in passing. All releases live on the GitHub releases page, and running from source is documented through CONTRIBUTING.md for anyone wanting the development build. The downloads are linked as latest, always pointing at the newest release artifacts, which matters for a tool whose IDE and libraries are versioned separately and updated on different schedules.

Six workspaces under Yarn 4 Plug'n'Play

The repository is a Yarn workspaces monorepo on Yarn 4.6.0 with Plug'n'Play resolution, the .pnp.cjs and .pnp.loader.mjs files at the root marking the no node_modules setup. The build script enumerates the workspace order, rivet-core first, then rivet-node, rivet-app-executor, trivet, rivet-app and rivet-cli, an ordering that reads as the dependency direction, the core graph engine, the Node runner, the executor the app depends on, the trivet package, the application itself and a CLI. Testing routes to rivet-core's suite, lint runs across six workspaces, and separate publish scripts handle packages and documentation. A tsconfig.base.json keeps the TypeScript settings aligned across the packages. Plug'n'Play itself is a statement in a project this size, skipping node_modules entirely for strict dependency resolution, which in a six package workspace catches phantom dependencies before they ship rather than after.

A rivet-project in the root, and an RPG example

Two small artifacts say how the project uses itself. The root contains a rivet.rivet-project file, the tool's own project format checked into its own repository, the dogfooding signal that graphs are treated as versioned source rather than exported assets. The examples directory holds examples/rpg, a role playing game built as a Rivet project, which is both a demonstration of complex stateful chains, character, narrative, memory, and a memorable answer to what a visual agent graph can express beyond the usual summarize this document demos. Together they show the intended lifecycle, author graphs as projects, commit them, and run serious things on them.

All Contributors, Discord, and a 2026 rhythm

Community infrastructure is thorough, bug reports and feature requests through GitHub issues, open discussions for questions and ideas, an active Discord server promoted at the top of the README, and the All Contributors bot recognizing every contribution from code through documentation to user experience feedback, with the contributor table crediting Andy Brenneke, Cai GoGwilt, Teddy Coleman and others by contribution type. Release history shows the two versioning tracks, Rivet IDE app releases with app prefixed tags, v1.11.2 in June 2025 and v1.11.3 in August 2025, and the libraries on their own line reaching v1.25.0 in June 2025. The repository's last push landed 2026-08-26, so work continues past the newest tagged release, under a code of conduct and MIT license. The emoji key attached to the contributor table is the All Contributors convention, each person's icons recording what they actually did, code, review, mentoring, bug reports, a governance signal that non code contributions are tracked with the same seriousness as commits.

Editorial conclusion

Choose Rivet when agent and prompt chain logic benefits from being drawn and iterated visually, then embedded in a TypeScript application through rivet-core, since the IDE plus library pairing is built for exactly that handoff. Look elsewhere if the target runtime is not JavaScript or TypeScript, or if a code-first agent framework fits the team better than a graph editor. Before adopting, check the provider list against the models you need, OpenAI, the Claude families and AssemblyAI for voice with Pinecone for vectors, note the IDE releases and library releases are versioned separately, and verify the desktop build for your platform, macOS, Windows or the Linux AppImage.

Frequently asked questions

What is Rivet the AI tool?

Rivet is Ironclad's open source visual AI programming environment, a desktop IDE for creating complex AI agents and prompt chaining, plus a TypeScript library that runs the resulting graphs inside your own application. It supports OpenAI GPT-4, the Anthropic Claude families, AssemblyAI LeMUR for voice, OpenAI Embeddings and Pinecone.

How do you download the Rivet app?

Prebuilt binaries are on the GitHub releases page, Rivet.dmg for macOS, Rivet-Setup.exe for Windows, and Rivet.AppImage for Linux. Running from source is covered in CONTRIBUTING.md for anyone who needs the development build.

How does Rivet integrate with your own code?

Through Rivet Core, a TypeScript library published as @ironclad/rivet-core with @ironclad/rivet-node for Node, which runs graphs created in the IDE inside your application. The integration is bidirectional, Rivet graphs can call into your application's code and your application can call into Rivet graphs.

Official sources

  1. Ironclad/rivet on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ironclad-rivet.svg)](https://hysenlabs.com/projects/ironclad-rivet)