Deliverd compared with HumanLayer
HumanLayer moved to coding agents.
Agent approvals need a new home.
HumanLayer launched in 2024 as a way for agents to ask people for approval or input over Slack, SMS and email, with a decorator or webhooks. Its GitHub repository now says the code there is "pretty much all deprecated" and points to a rebuild aimed at AI coding agents. Teams that built on the approval SDK need somewhere maintained to move it.
Free to start · Approvers never need a seat · No card required
Human-in-the-loop infrastructure for AI agents. An agent asks a person for an approval, a review or an answer, and carries on when they respond. Below is how that compares with HumanLayer, and where the two work together.
Credit where it is due
What HumanLayer got right.
One line around a function
Integrating was a decorator or webhooks in Python or TypeScript, so a function could need approval without restructuring the agent.
A person as a tool
human_as_tool() went into an agent's tool set, so the agent could ask a person a question the way it calls any tool.
Approvals where people talk
Approvals could be answered across Slack, SMS, email and other channels, rather than in the agent's own terminal.
The boundary
Where it stands now.
The approval code is deprecated
The repository's README says the code there is "pretty much all deprecated", and points readers to a rebuild of HumanLayer.
The product has moved
The repository now describes HumanLayer as a way to get AI coding agents to solve hard problems in complex codebases, rather than an approval API for any agent.
Every point above was read from HumanLayer's GitHub repository and HumanLayer's 2024 launch on Y Combinator on 25 October 2026. Products change; if something here is out of date, tell us and we will correct it.
Where Deliverd fits
What Deliverd adds.
Asking for approval, as one call
approve() in the TypeScript and Python SDKs, or request_approval over MCP, asks a named person and returns their decision, including any correction they made to the agent's input.
Asking a person a question, as one call
collect() and request_information ask a person for what the agent is missing and return the answers.
Slack, Teams, email and a phone
Every request goes out by email, browser push, Slack and Teams, and opens on a page built for a phone.
Inside the framework's own pause
Adapters for LangGraph, the OpenAI Agents SDK, the Claude Agent SDK, CrewAI, Pydantic AI and others put the request inside the framework's pause.
Rules, so people see fewer requests
An action declared at a gate is allowed or refused by rules on Business Starter, Business and Enterprise, and goes to a person when no rule settles it.
The record, kept
Every request, question and decision is written to an audit trail that refuses edits, and exports as a signed evidence pack.
Working together
Move one function at a time.
Each Deliverd request can carry your own reference and be found by it, so approvals can move across one function at a time. The SDK's development mode runs the whole loop on your machine, with no key, while you do.
Questions.
Is there a drop-in replacement for the approval decorator?
Not a decorator. Wrap the call with approve(), or declare it with gate(): a few lines that return the decision, in TypeScript or Python.
Does HumanLayer still offer an approval API?
Its repository says the earlier code is deprecated, and the current product is aimed at AI coding agents. Check HumanLayer's own site for what it offers today.
Can we try it without connecting anything?
Yes. The SDK's development mode runs the whole loop on your machine, with no key and no network.
Do approvers need a seat?
No. Being asked never needs a seat, on any plan.
Ask the right person before the agent acts.
Approvals, reviews and requests from any agent, with the record kept. Free to start. No credit card.