Generative LLM
Writes
Replies, summaries, code, plans.
Generation nodes (OpenAI, Anthropic, Google Gemini, Ollama, any compatible endpoint).
Public beta 0.9.0
FlowAId is an open-source platform for building, running and evaluating AI agents and workflows. It runs on your own computer with one command, with no account and no sign-in, and the same stack deploys to a server with Docker Compose.
Local-first No sign-in Apache 2.0 Node.js 24+ TypeScript strict
git clone https://github.com/MoRohn/flowaid.git && cd flowaid
./flowaid # Windows: flowaid
You need Node.js 24+, pnpm 12 (corepack enable), Docker (for the database) and Git, on macOS, Windows or Linux. FlowAId installs what it needs, starts PostgreSQL with pgvector in Docker, builds and starts the API, worker and web app, and opens http://flowaid.localhost:3000 in its own window, with an icon in the menu bar or system tray. There is no account to create.
Quick start
Add a TypeSafe API key to .env.local to enable decisions. OpenAI, Anthropic or a local Ollama (OPENAI_API_KEY, ANTHROPIC_API_KEY, OLLAMA_HOST) enable generation; everything else runs without any key.
echo "TYPESAFE_API_KEY=ts_…" >> .env.local
The Overview’s Get started checklist walks you through each step. Every page opens with a short Start here that checks what it needs, and Guide in the top bar explains the page you are on. Options, the desktop app and troubleshooting are in Running FlowAId on your computer.
The central idea
Routing, classification, risk scoring and approval gates run on TypeSafe AI’s Jev, which returns a constrained answer with a calibrated probability distribution. Confidence then decides what happens next: act automatically, gather more evidence, or ask a person. Generative models write; code enforces the rules.
Every workflow is a typed document that is compiled, versioned and executed over an append-only event log. The visual builder, REST API, TypeScript SDK, CLI and MCP server are all clients of that one runtime.
Generative LLM
Replies, summaries, code, plans.
Generation nodes (OpenAI, Anthropic, Google Gemini, Ollama, any compatible endpoint).
Jev
Which option, how severe, yes or no, with probabilities.
Decision nodes bound to versioned decision contracts.
Code
Permissions, budgets, exact rules, side effects.
Branches, the expression language, policies, human approvals.
Business flows
They run end to end as soon as you create them, with only the TypeSafe key: an input form, one TypeSafe call that answers several questions at once, plain rules, a person when one is needed, and a clear outcome.
Finance
Checks a claim against the spending policy; approves small compliant claims, sends the rest to a manager.
autoApproveLimitreceiptRequiredOver
Sales
Scores an inbound lead 0–100 and routes it to sales, nurture, support or discard, with the next step.
salesScore
IT operations
Sets category, priority (P1–P4), team and response time; escalates security incidents to the on-call.
majorIncidentUsers
Customer service
Checks the refund policy and fraud risk; refunds, declines or sends to an agent, with the reply for the customer.
autoRefundLimitreturnWindowDays
What you create is yours: click the empty canvas to rename it and edit its settings (limits, windows, scores) with validation next to each field, and select any step to change its options, rules or replies.
Each screenshot below is a real run, captured in the builder: the decision’s answer and probability on the canvas, the branch that was taken in green, and the paths that were not taken dimmed. Sales lead qualification is the fourth card in the Templates screenshot above; its inputs, decision and outcomes are in the business flows guide.
A $38.50 taxi claim is within policy, low risk and under the auto-approve limit, so it is approved without a manager; larger or riskier claims wait for the Manager approval step.
A VPN outage affecting 30 people is triaged P1 urgent, the priority and response time are set, and it is not a security incident, so it goes to the Network team’s queue.
A cracked mug is eligible under the refund policy, low risk and under the refund limit, so it is refunded automatically with the reply to the customer; other requests are declined by policy or go to Agent review.
More templates cover a message triage starter that needs only the TypeSafe key, support triage with safety checks, GitHub issue triage over MCP (with or without a knowledge base), a LangChain knowledge assistant, a bounded research agent, and PageIndex document Q&A, comparison and agents.
Product tour
Captured at 2× resolution. Light and dark follow your theme.
The trace viewer has a timeline, the graph, the event log, output, logs and cost. A decision expands into the full distribution; any run can be replayed, forked onto another version or restarted from a node.
Runs pause durably for approvals, reviews, forms and choices. Reviewers see why they were asked and the run so far, answer with a keystroke, and can hand a single-use link to someone outside the workspace.
The Overview guides a new install step by step, then shows runs, success rate, latency, AI cost, human review rate and what needs attention.
Evaluation sets built by hand or from real runs: pass rate, branch correctness, latency, cost, human review rate, calibration per decision and regressions against a baseline, with a publish gate.
Webhooks and schedules go live with a deployment. Each webhook shows its URL, its signature scheme and a request you can paste into a terminal.
Capabilities
flowaid CLI, workflows served as MCP tools, MCP servers and OpenAPI documents as tools, signed webhooks, schedules, event triggers, installable node plugins.How it works
Builder, REST API, SDK, CLI, MCP, webhooks, schedules.
Typed JSON. Data flows through bindings, control flows through explicit edges.
Schema, binding, type and guard checks, then diagnostics. The same compiler runs in the browser, API, worker and CLI.
Immutable, content-hashed, deployed per environment.
A pure reducer over an append-only event log, in the worker.
Traces, metrics, alerts, human tasks, evaluations, code export.
Call your workflows
Create an API key under Settings → API keys and limit it to that environment (a key that is not limited must send environmentId with each run).
curl -X POST http://flowaid.localhost:3001/v1/workflows/<workflow-id>/run \
-H "Authorization: Bearer fa_live_…" -H "Content-Type: application/json" \
-d '{"input": {"message": "I was charged twice for order 1182"}, "mode": "sync"}'
import { Flowaid } from "@flowaid/workflow-sdk";
const fa = new Flowaid({
baseUrl: "http://flowaid.localhost:3001",
apiKey: process.env.FLOWAID_API_KEY,
});
const run = await fa.workflows.run(workflowId, { message: "Refund please" });
console.log(await run.output());
The CLI, MCP tools, webhooks, schedules and events are covered in Calling workflows; the packages also work on their own (Using the libraries).
Deploy
FlowAId is local-first by design: it runs for one person on their own computer without accounts, so team identity (single sign-on, invitations, MFA) is deliberately out of scope.
./flowaid is all you need. It opens http://flowaid.localhost:3000. There is no account to create.
./flowaid
Docker Compose with password sign-in. Set the passwords, FLOWAID_ADMIN_EMAIL and your provider keys. It answers on http://flowaid.localhost:3000 on that machine (WEB_PORT in .env changes the port; compose does not move to a free one).
cp .env.example .env
docker compose up -d
To open it from other devices, set the network address and URLs in .env as Open it from other devices shows. Published release images, TLS, backups and scaling are in Deploying FlowAId and the operations runbook.
Documentation
Project
Contributions are welcome. Start with CONTRIBUTING.md and the Code of Conduct. Report security issues privately as described in SECURITY.md.
Apache License 2.0; see LICENSE and NOTICE. The bundled fonts are under the SIL Open Font License.
One command. No account. No sign-in. Public beta 0.9.0.