Home/Product/ApprovalML
Open Source & Self-Hostable

Approval workflows,defined as code.

ApprovalML is the open workflow definition language and runtime underneath Aptiwise. Steps, routing, forms, and SLAs compile down to portable YAML: reviewable in a pull request like any other config file, and it runs on your own infrastructure if you want it to.

The Problem

Approval logic shouldn't be a black box you can't audit or run yourself.

Workflow logic locked in a vendor's UI

Most approval tools store routing logic in a proprietary database you can't diff, review, or move: there's no way to see what changed or roll it back.

Compliance-sensitive data can't leave your network

Regulated teams need the approval engine running on their own infrastructure, not a hard dependency on someone else's cloud.

AI agents can act with no human checkpoint

Autonomous agents given tool access can create, overwrite, or delete, with no gate in front of the sensitive calls and no audit trail of what was requested.

How ApprovalML Works

The same engine that powers Aptiwise, on your terms

Workflows compile to data, not code, so they're portable, diffable, and safe to hand to a human or an AI agent.

Workflows as Code

Steps, routing, forms, and SLAs, all defined as data

Every workflow compiles to portable, version-controllable ApprovalML YAML. Review a routing change in a pull request the same way you'd review any other config: no proprietary format, no black-box UI required to understand what will happen.

  • Human decision steps, notifications, and conditional routing
  • Parallel approvals and child-workflow spawning for fan-out
  • Asset registry with JSON record storage in PostgreSQL
Gated MCP

A human checkpoint in front of any AI agent

An agent requests approval over MCP; a human approves or rejects by email, no login required. The agent's tool call only proceeds once a human signs off, routed through the identical engine as every other ApprovalML workflow.

  • Email approve/reject, no login required
  • The agent's tool call only executes after approval
  • Full details in the AI Governance use case
Self-Hosted, No Cloud Dependency

Run the same engine that powers Aptiwise, on your own infrastructure

One Docker command stands up the full open-source approval engine and email approvals, with no external cloud dependency required. Start self-hosted, and move to Aptiwise Cloud later without rewriting a single workflow.

docker run -p 8080:8080 approvalml/approvalml

The open-source runtime covers the full approval engine and email approvals. AI-powered workflow generation, the admin UI, and multi-tenant management are part of Aptiwise Cloud.

MCP Server Wrapping

Wrap any MCP server, including ones you didn't build

One command spawns any existing stdio MCP server as a child process and re-exposes it with sensitive tools gated behind human approval: no changes to the upstream server, no per-server integration work.

approvalml -- npx -y @modelcontextprotocol/server-github

Self-Host or Go Managed

One engine, two ways to run it

ApprovalML (Open Source)

  • Full approval engine & email approvals
  • REST API and MCP server access
  • Deploys with Docker on your own infrastructure

Aptiwise Cloud

  • Everything in ApprovalML, fully managed
  • AI-powered workflow generation & admin UI
  • Multi-tenant, multi-company management

ApprovalML

Run it yourself,
or let us run it for you.

Self-host the open-source runtime today, or start on Aptiwise Cloud and get the full AI-powered platform on top of the same engine.