Rivet: A Visual IDE for AI Agents That Puts Graphs Before Code
The open-source visual AI programming environment and TypeScript library
At a glance
- What is it?
- Rivet is an open-source desktop IDE and TypeScript runtime for building AI agents and prompt chains as visual graphs. It targets developers who want to design complex LLM workflows visually and embed them in applications, but its integration model and provider support deserve scrutiny.
- Who is it for?
- Adopt Rivet if you are a TypeScript developer who wants to design AI agent logic visually and embed it in a Node.js application, and if you are comfortable with its current provider set (OpenAI, Anthropic, AssemblyAI, Pinecone) and its graph-centric paradigm. Do not adopt it if you need a fully managed visual workflow service, if your stack is not TypeScript, or if you require production-grade non-LLM integrations beyond embeddings and speech-to-text.
- 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 20 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 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Rivet Actually Solves
Rivet addresses a specific pain: designing AI agents and prompt chains that are too complex to manage as linear scripts. The README describes it as 'the IDE for creating complex AI agents and prompt chaining, and embedding it in your application.' That phrasing matters. Rivet is not a library you call; it is a visual programming environment where you construct graphs, and then you run those graphs from your own code. The target user is a developer who wants to see the branching logic, tool calls, and prompt templates as a diagram, not as a wall of async function calls. It is also for teams that want to hand off prompt design to non-engineers, though the README does not explicitly say that. The split into two components, the desktop application and the core runtime, makes the division of labor clear: the IDE is for authoring, and the runtime is for execution.
The Two-Part Architecture: App and Core
Rivet is deliberately split into two deliverables. The Rivet Application is a desktop program for macOS, Linux, and Windows, with prebuilt binaries available from GitHub releases. That is where you build your AI agent as a graph. The Rivet Core is a TypeScript library, published on npm as @ironclad/rivet-core, that runs those graphs. There is also @ironclad/rivet-node, which the README mentions but does not describe in detail. The architecture means that the graph is the unit of sharing between the IDE and your application. You design in the visual environment, export or save the graph, and then load it in your Node.js or browser code using the core library. The core is what allows Rivet to call into your application's code, and your application to call into the graphs. That bidirectional flow is the key mechanism: your custom functions become nodes in the graph, and the graph becomes a callable function in your code. The README does not specify the graph file format, but the existence of a core runtime implies a serialized representation that both the app and the library understand.
Provider Support: What Is Covered and What Is Missing
The README lists LLM support for OpenAI GPT-3.5 and GPT-4, Anthropic Claude Instant and Claude 2, and Claude 3 Haiku, Sonnet, and Opus. It also lists AssemblyAI's LeMUR framework for voice data and speech-to-text. For embeddings and vector databases, it lists OpenAI Embeddings and Pinecone. That is a narrow set compared to the broader LLM ecosystem in 2025. There is no mention of open-weight models, local inference, or providers like Google Gemini or Mistral. If your project depends on a model outside that list, you cannot use Rivet directly; you would need to wrap it in a custom node, which the README implies is possible but does not document. The absence of a pluggable provider interface in the README is a limitation. You are locked into the providers the project has chosen to support. For a tool that aims to be an 'AI programming environment', that is a real constraint. The README also does not mention support for tool calling or function calling, which is central to modern agent design, though it may exist in the documentation.
Getting Rivet Running: Binaries and Source
The easiest path is to download a prebuilt binary. The README provides direct links for macOS (Rivet.dmg), Linux (Rivet.AppImage), and Windows (Rivet-Setup.exe). There is also a Linux dmg link, which is unusual; that may be a typo in the README, but it is what the repository states. For developers who want to run from source, the README points to CONTRIBUTING.md, which contains build instructions. That file is not included in the provided material, so I cannot give exact commands. The npm packages are the integration path: you install @ironclad/rivet-core or @ironclad/rivet-node using your package manager. The README links to a 'Rivet Integration Getting Started' page and API documentation for the exact usage. The lack of a code sample in the README is a gap. You cannot see how to load a graph or call it without visiting the external documentation. That is a friction point for evaluation. The release cadence is visible: app-v1.11.3 from August 2025 and libraries v1.25.0 from June 2025, which suggests active maintenance, but the README does not show a minimal 'hello world' example.
Where Rivet Is the Wrong Tool
Rivet is not a good fit for several scenarios. If you are building a lightweight chatbot that only needs a single prompt call, the overhead of installing a desktop IDE and designing a graph is unjustified. A simple function call to an API would be simpler. If you need to run your agents in a serverless environment with cold starts, the core library's dependency on the full graph runtime may be too heavy; the README does not provide bundle size or performance data. If your team is not comfortable with visual programming, the graph paradigm will be a source of friction, not clarity. The README also does not mention versioning or migration tooling for graphs. When the core library updates, existing graphs may break, and there is no stated migration path. The troubleshooting section simply tells users to search the issues page and open a new issue if needed. That is a reactive approach, not a proactive compatibility guarantee. For a production system, that uncertainty is a real risk.
Alternatives: How They Differ in Approach
The most direct alternative is LangChain, a framework that composes chains and agents in code. LangChain's approach is programmatic: you define chains, agents, and tools as Python or JavaScript objects, with no visual editor. Rivet's approach is the opposite: you define the flow as a graph in a desktop IDE, and the code is secondary. That difference matters for collaboration. LangChain is easier to version control and test because it is code. Rivet's graphs are likely stored as JSON or a similar format, which is reviewable but not as diff-friendly as code. Another alternative is Microsoft's Semantic Kernel, which also uses code-first orchestration with planners. Neither of those offers a visual canvas. If you need a visual interface, you might consider commercial tools like Flowise or Langflow, which are open-source but have a different focus on drag-and-drop chatflow building with a web UI. Rivet distinguishes itself by being a native desktop application with a TypeScript-first runtime, which may appeal to developers who want a local, offline editing experience. The README does not compare itself to any of these, so this is based on general knowledge.
Maintenance, Licensing, and Upgrade Cost
Rivet is licensed under MIT, which is permissive and allows commercial use, modification, and redistribution, with the requirement to include the original copyright notice. That is a low-license-risk choice for adoption. The repository is not archived, and the last push was August 26, 2026, which is later than the release dates, indicating ongoing development. The release history shows separate versioning for the app and the libraries, which is a double maintenance burden: you must track two version lines. The app releases (v1.11.3) are not synchronized with library releases (v1.25.0), so a graph created in a newer app might require a newer core library. The README does not state a compatibility matrix. Upgrading the core library could introduce breaking changes to the graph runtime, and you would need to test your graphs after each upgrade. The project uses an All Contributors bot, which signals a community-focused maintenance model, but the README does not list a roadmap or a deprecation policy. For a production deployment, you should pin the core library version and test graph execution in a staging environment before upgrading.
The Bottom Line on Rivet
Rivet fills a niche that few open-source tools address: a visual IDE for AI agents that is also a runtime library you can embed. The README is clear about its purpose, but it is thin on technical details. You cannot evaluate the graph model, node types, or tool-calling capabilities from the README alone. The documentation website is the next step, but the lack of a quickstart code sample in the README is a barrier. For a developer evaluating Rivet, the key questions are: does the graph model support the branching and looping logic you need, and can you integrate custom code as nodes? The README says yes to the latter, but it does not show how. The active release cadence and MIT license are positive signals, but the narrow provider list and the absence of a version compatibility policy are concerns. If you are building a voice-driven agent with AssemblyAI and Pinecone, Rivet may be a strong fit. If you are building a generic chatbot with a custom model, you will likely be frustrated.
Editorial conclusion
Adopt Rivet if you are a TypeScript developer who wants to design AI agent logic visually and embed it in a Node.js application, and if you are comfortable with its current provider set (OpenAI, Anthropic, AssemblyAI, Pinecone) and its graph-centric paradigm. Do not adopt it if you need a fully managed visual workflow service, if your stack is not TypeScript, or if you require production-grade non-LLM integrations beyond embeddings and speech-to-text. Before committing, verify that the latest app release (v1.11.3) and library releases (v1.25.0) are compatible with your Node version and that the graph format exported by the IDE matches the version of @ironclad/rivet-core you plan to use. Also check the GitHub issues page for unresolved integration bugs, as the README directs users there for troubleshooting. Rivet is a serious, MIT-licensed tool, but its value depends on whether you accept building your AI logic as graphs rather than code.
Community notes