Skip to content
Gatewerk
Open source · AGPL-3.0 · self hosted

Did a human decide first?

Your agents act for you and your organization: they send the proposals, run the campaigns, handle the invoices, write the replies.

Gatewerk is where human judgment enters the pipeline, exactly where you choose. Review the exact payload, edit it, decide.

One inbox· all your agentsOne logbook· every decisionOne MCP surface· any framework
gatewerk · inbox
AllUrgentRoutineWaiting
Meta ads: Black Friday sale2h
campaign-launchURGENT
Wire transfer to external account3h
financial-transferURGENT
Q4 launch post6h
content-publish
Deploy checkout v2.1440m
code-change-review
Renewal reply to Acme1d
customer-replyWAITING

Meta ads: Black Friday sale

campaign-launch/opened 2h ago/v1
daily_budget$250.00
edited · agent proposed $500.00
audienceLookalike 2% · US videobf_hero_15s.mp4primary_textBlack Friday: 40% off everything through Sunday. Free returns until January. Favorites sell out fast.startNov 27 · 00:00 PST
AAdd a note…
DETAILS
GAgrowth-agent
PriorityHigh
Created2026-11-24
Reversibleno
DECISION
Optional feedback for the agent
Launch campaignRequest changesDon't launch
Works with your whole agent stack
n8n
LgLangGraph
Cursor
Claude
CrewAI
Zapier
Vercel AI SDK
Windsurf
AgAutoGen
Make
LangChain
Google ADK
OaOpenAI Agents SDK
VsVS Code / Copilot
Pydantic AI
PdPipedream
MaMastra
Zed
Dify
Cline
n8n
LgLangGraph
Cursor
Claude
CrewAI
Zapier
Vercel AI SDK
Windsurf
AgAutoGen
Make
LangChain
Google ADK
OaOpenAI Agents SDK
VsVS Code / Copilot
Pydantic AI
PdPipedream
MaMastra
Zed
Dify
Cline
Use cases

Four moments worth a human.

Before sending

Email drafts, support replies, Slack messages, candidate outreach, client proposals.

Before executing

Code deploys, database migrations, transactions, infra changes, third party API calls.

Before publishing

Blog posts, social content, product listings, docs updates, press releases, reports.

Before approving

Expense reports, refunds, access grants, contract terms, insurance claims, POs.

The reviewer can be your team, or a client deciding by link with no account.

Between the moments, agents bring you the judgment calls: classify the edge case, pick the path, resolve the exception. Your answer returns typed, and the process continues.

How it works

One endpoint stands between the agent and the action.

1POST /api/v1/reviews

Your agent submits work for review: a template slug and a payload. Two fields.

2structured form

A human reads the actual payload in a structured form and fixes what needs fixing.

3signed webhook

The decision returns over a signed webhook. The audit row is already written.

AI agent
Gatewerk gatehuman review
Real world action
The always plumbed gate

Leave the gate installed. Open it when you trust the agent, close it when it matters.

Keep the gate installed and flip between auto approve and human review anytime, per template, without touching agent code. Trust it when it earns it; tighten it when it matters. The gate is there whether or not a human is watching. Every decision feeds a queryable feedback memory, so agents learn from what humans changed.

For developers

Integrate in minutes, not weeks.

Protocol first, not framework specific. Your agent already makes HTTP calls or speaks MCP. That is all you need.

TypeScript SDKnpm install gatewerk
Python SDKpip install gatewerk
MCP servernpx @gatewerk/mcp
REST APIany language, any runtime

Machine readable everywhere: llms.txt, OpenAPI, self describing MCP tools.

curl -X POST https://your-gatewerk.example.com/api/v1/reviews \
  -H "Authorization: Bearer $GATEWERK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "email-review",
    "payload": {
      "to": "ceo@acme.com",
      "subject": "Q4 Board Update",
      "body": "Dear Board, attached is the Q4 report..."
    },
    "callback_url": "https://your-agent.example.com/callback",
    "priority": "high"
  }'
Model Context Protocol

Operate the gate from inside your agent.

Gatewerk ships a native MCP server: eleven scoped tools that let an agent open reviews, poll decisions, query feedback, and manage templates without ever opening a dashboard. Chat first, not a nice to have.

Scope based keys: tools outside a key's scope are invisible to the client, never registered.
Product actions, not just reviews: templates, feedback, audit, and stats are all callable.
Both directions: agents open reviews, and you decide from Claude, Cursor, or any chat that speaks MCP.
MCPAgent ↔ ToolA2AAgent ↔ AgentHRPAgent ↔ Human
~/.cursor/mcp.json
{
  "mcpServers": {
    "gatewerk": {
      "command": "npx",
      "args": ["-y", "@gatewerk/mcp"],
      "env": {
        "GATEWERK_URL": "https://your-gatewerk.example.com",
        "GATEWERK_API_KEY": "gwk_live_...",
        "GATEWERK_REVIEWER": "alice@team.com"
      }
    }
  }
}
reviews.createreviews.decidefeedback.querytemplates.list+7 more
The approach

Do one thing well. Compose with everything.

An interrupt pauses one workflow inside one framework. Gatewerk is the review layer across all of them: one inbox, one record, any stack.

01

Primitives, not opinions

Gatewerk fires events and exposes an API. You wire it to Telegram, Slack, or your own service and decide what gets reviewed. A notification channel is a settings entry, not a project. No workflow is baked in.

02

Strength in the substrate

The guarantees hold at the database and worker layer, not by convention. They stay invisible until the moment they save you.

03

Open protocol, your infrastructure

Built on the Human Review Protocol. Self hosted, AGPL, no vendor lock in, no feature behind a sales call.

Built once, properly, so you don't have to build the fourth dashboard.

Architecture

Three layers. One loop.

An open specification at the base, a complete station in the middle, optional managed hosting on top. Every review runs the same four step loop, whichever layer you deploy.

receiveshowdecidereturn
Cloudavailable

Managed hosting, teams, compliance. Everything below, run for you.

Stationopen source

The engine, review UI, SDKs, and integrations. The whole product, self hosted.

APIReview UITS / Python SDKMCPAudit
HRP Protocolopen spec

The Human Review Protocol. How agents request review, how humans respond, how decisions flow back.

Built for production oversight.

Exactly one decision

Two reviewers can race. Exactly one decision lands; everyone else sees it settled. No double approves, no lost edits.

Tamper evident audit

Every decision lands in an HMAC chained log. History cannot be quietly rewritten, not even by whoever holds the database.

Seatless external review

Send a review link to a client or stakeholder. They decide. No account, no seat, no login wall.

Zero feature walls

Self host runs the entire product. No feature behind a sales call.

Escalation, not silence

If a review sits undecided, it escalates on a timer to the next person, and expiry notifies the agent. Silence never strands a workflow.

Replay safe webhooks

Decisions arrive HMAC signed with a replay safe scheme and stable delivery ids. A replayed delivery cannot become a second action.

audit log · one row per decision
{
  "action": "review.decided",
  "actor": "user:usr_7fq2mk",
  "resource_type": "review",
  "resource_id": "gw_rev_01j9qk3v",
  "details": { "decision": "edited", "reviewer": "alice@team.com" },
  "created_at": "2026-08-11T14:32:07.412Z",
  "signature": "hmac_sha256:9f41c8...e2",
  "prev_signature": "hmac_sha256:c07d51...8a"
}

Every row is signed and stores the previous row's signature. Rewrite or delete any row and verification fails from that point on.

The gate is one endpoint.
Install it before you need it.

Get started