Visual flow editor, AI agent nodes, native batch processing via OpenAI & Anthropic — drop it into your app in minutes.
Features
A complete toolkit for building, running, and monitoring workflows — from simple automations to complex AI agent pipelines.
Drag-and-drop workflow builder with real-time execution monitoring powered by React Flow.
Built-in AI agents with iterative tool-calling loops using OpenAI and Anthropic APIs.
Gmail, Slack, GitHub, Google Drive, Linear, Postgres, and more — ready to use.
Describe what you need in plain language — the built-in chat assistant wires up nodes, configs, and connections for you.
Cut AI costs 50% with native OpenAI and Anthropic batch API support.
Works out of the box with SQLite, PostgreSQL, and MySQL via Drizzle ORM.
Quickstart
Add Invect to any Express, NestJS, or Next.js app. The framework-agnostic core means your workflows run everywhere.
The React frontend mounts as a single component — drop it in and get a full flow editor, execution viewer, and credential manager.
Read the full guide →import express from 'express'; import { createInvectRouter } from 'invect/express'; const app = express(); app.use('/invect', createInvectRouter({ databaseUrl: process.env.DATABASE_URL, })); app.listen(3000);
import { Invect } from 'invect/frontend'; import 'invect/frontend/styles'; export default () => ( <Invect apiBaseUrl="http://localhost:3000/invect" /> );
Why Invect
Invect is a real workflow engine — not a chain-of-prompts library with a UI bolted on.
Nodes run in topological order with full dependency resolution. Each node receives the merged outputs of every upstream node — no rigid "input→output" chains.
// Every node sees all upstream outputs // as a single merged object: { "fetch_users": [{ "id": 1, ... }], "get_config": { "env": "prod" }, "api_response": { "status": 200 } } // Use any upstream value in templates: "Process {{ fetch_users.length }} users in {{ get_config.env }}"
Invect isn't a standalone platform you deploy separately. It's a library you mount into your existing app — your admin panel, your backoffice, your internal tool.
<Invect /> component — drop it into any page// Your existing Express app import { createInvectRouter } from 'invect/express'; // Mount alongside your existing routes app.use('/api', yourRouter); app.use('/workflows', createInvectRouter({ databaseUrl: process.env.DATABASE_URL, })); // That's it. Same server, same database, // same deployment.
The visual editor is optional. The core Invect class exposes every operation as a typed method — build flows in the UI, trigger them from your backend code.
core.startFlowRun(flowId, inputs) from any server-side codecreateFlow() and createFlowVersion()import { Invect } from 'invect'; const core = new Invect({ databaseUrl: '...' }); await core.initialize(); // Trigger a flow from a webhook handler app.post('/webhooks/new-order', async (req, res) => { const result = await core.startFlowRun( 'order-processing-flow', { order: req.body } ); res.json({ runId: result.id }); });
Invect is free, open-source, and ready for production. Add it to your project in minutes.