Public beta 0.9.0

Build, run and evaluate AI agents and workflows on your own computer, with typed decisions you can inspect, verify and trust.

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

Quick start

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.

The Business flows section of the Templates page: Expense approval (finance), IT help desk routing (IT operations), Refund request handling (customer service) and Sales lead qualification (sales), each with a preview of its graph, what it does, and Ready to run with the TypeSafe API key
Business flows on the Templates page. Each one is ready to run with a TypeSafe API key.

Quick start

One command, then make it yours.

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.

Decisions

echo "TYPESAFE_API_KEY=ts_…" >> .env.local
The FlowAId menu-bar menu: Open FlowAId, Show log, Restart and Quit.
An icon in the menu bar or system tray.

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.

  1. Pick a business flow under Templates and choose Use template.
  2. Run it from the builder’s Run tab. The Output tab tells you how the run ended, and the trace shows every decision’s probabilities and cost.
  3. Make it yours: click the empty canvas to rename it and change its settings, or select a step to edit it.
  4. Publish and deploy a version, then call it from your code, a webhook, a schedule or an MCP client.

The central idea

Decisions are typed data, not prose.

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

Writes

Replies, summaries, code, plans.

Generation nodes (OpenAI, Anthropic, Google Gemini, Ollama, any compatible endpoint).

Jev

Judges

Which option, how severe, yes or no, with probabilities.

Decision nodes bound to versioned decision contracts.

Code

Enforces

Permissions, budgets, exact rules, side effects.

Branches, the expression language, policies, human approvals.

  • Confidence drives automation. Thresholds belong to the consequence of an action, not to the model. Irreversible actions always reach a person.
  • Every run can be inspected and replayed. One event log is the source of truth; receipts record the state, the contract version, the full distribution and the route of every decision.
  • Workflows are checked before they run. A compiler type-checks every connection and emits an immutable, hashed execution plan; the builder runs the same compiler as you edit.
  • Quality is measured, not assumed. Evaluation sets score decisions, branches and outputs, report calibration, and can gate publishing.
  • Nothing is locked in. Your data stays in your PostgreSQL, every AI provider is optional, a flow downloads as a runnable code package, and workflows are served as MCP tools.

Business flows

Four complete workflows for everyday operations.

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

Expense approval

Checks a claim against the spending policy; approves small compliant claims, sends the rest to a manager.

autoApproveLimitreceiptRequiredOver

Sales

Sales lead qualification

Scores an inbound lead 0–100 and routes it to sales, nurture, support or discard, with the next step.

salesScore

IT operations

IT help desk routing

Sets category, priority (P1–P4), team and response time; escalates security incidents to the on-call.

majorIncidentUsers

Customer service

Refund request handling

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.

Expense approval

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.

The Expense approval flow after a run: Expense claim, Check against policy (within policy: yes), Apply the limits, Approve automatically? taking the auto branch to Approved by policy, while Manager approval and its approved, rejected and expired outcomes are skipped

IT help desk routing

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.

The IT help desk routing flow after a run: Help desk ticket, Triage the ticket (P1 urgent), Adjust priority, Team and SLA, Security incident? taking the queue branch to Assign to team queue, with Escalate to security on-call not taken

Refund request handling

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.

The Refund request handling flow after a run: Refund request, Assess the request (eligible: yes), Apply the limits, Decide automatically? taking the refund branch to Refund automatically, with Decline (outside policy), Agent review and its outcomes not taken

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

Screenshots of the running application.

Captured at 2× resolution. Light and dark follow your theme.

Every run, inspectable

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.

A completed run with a decision expanded and the node panel showing the decision, its input and Restart from here

People in the loop

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 human task page with the approval card, the run so far and the external review link

Start here

The Overview guides a new install step by step, then shows runs, success rate, latency, AI cost, human review rate and what needs attention.

The Overview with the getting started checklist and the run metrics

Quality you can measure

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.

An evaluation report with pass rate, latency, cost per case, human review rate, calibration and the list of cases
The calibration chart for a decision: predicted confidence against observed accuracy with ECE 0.013

Triggers, ready to call

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.

A live webhook signed with HMAC SHA-256, with the example curl request expanded

Capabilities

What you get.

Build
Visual builder with an in-browser compiler, undo/redo and autosave; 63 core nodes plus 9 bundled LangChain nodes; loops, subflows and branches; FlowExpr expressions; an AI workflow builder, an AI critic and a cost optimiser.
Guidance
Start here on every page with checks against your workspace; step-by-step creation that ticks off from what you enter, with an All fields view; the Guide, plain-language help with no AI model; Ask FlowAId answers questions about your workspace (with a text model).
Start fast
Business flows for finance, sales, IT and customer service, plus triage, research, retrieval and document templates, each listing what it needs.
Decide
TypeSafe Jev decisions (yes/no, choice, score) with calibrated distributions, versioned decision contracts, consequence-based thresholds and human failover.
Generate
OpenAI, Anthropic, Google Gemini, Ollama and any OpenAI-compatible endpoint, with routing strategies and failover; Cohere and Jina rerank.
Run and observe
Event-sourced runs with live traces, replay, restart from a node, fork onto any version and retry a failed node; metrics, Prometheus and OpenTelemetry export, trace reviews and alerts.
People
Durable approvals, reviews, forms and choices, an inbox with SLAs, single-use external review links.
Quality
Evaluation sets from hand or real runs, scoring of outputs, decisions and branches, calibration, regressions against a baseline, and a publish gate.
Agents and knowledge
Bounded agents with built-in calculator, current-time and web-page tools, your MCP and OpenAPI tools, and workflows as tools; active agents appear by name in Add node; knowledge sources with pgvector hybrid search; PageIndex document intelligence with page-checked citations.
Integrate
REST API and TypeScript SDK, the flowaid CLI, workflows served as MCP tools, MCP servers and OpenAPI documents as tools, signed webhooks, schedules, event triggers, installable node plugins.
Own it
Runs on your computer or your server on PostgreSQL; envelope-encrypted credentials (local key, Vault, Azure Key Vault or GCP KMS); sandboxed code nodes; flows download as runnable TypeScript packages.

How it works

One runtime, several clients.

  1. Clients

    Builder, REST API, SDK, CLI, MCP, webhooks, schedules.

  2. WorkflowDefinition

    Typed JSON. Data flows through bindings, control flows through explicit edges.

  3. Compiler

    Schema, binding, type and guard checks, then diagnostics. The same compiler runs in the browser, API, worker and CLI.

  4. ExecutionPlan

    Immutable, content-hashed, deployed per environment.

  5. Runtime

    A pure reducer over an append-only event log, in the worker.

    • Jev decisions typed answer + distribution → auto / improve / human
    • LLM generation streamed, budgeted, cost-accounted
    • Tools HTTP, MCP, OpenAPI, sandboxed code, plugins
    • Agents bounded tool loops; workflows as tools
    • Knowledge hybrid retrieval over the workspace’s sources
    • Humans approval, review, form, choice; durable suspension
  6. Events

    Traces, metrics, alerts, human tasks, evaluations, code export.

Call your workflows

Every deployed workflow is an HTTP endpoint.

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

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"}'

TypeScript

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

Your computer, or a server other people reach.

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.

On a server

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).

Compose

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

Guides, design and the changelog, on GitHub.

Project

Contributing and license.

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.

Run it on your own computer.

One command. No account. No sign-in. Public beta 0.9.0.