# The best HumanLayer alternative for human-in-the-loop AI agents

> HumanLayer now builds a coding agent IDE and calls its old repo deprecated. If you need agent approvals over Slack, SMS or voice, here is what to use instead.

Source: https://blog.blueprintd.co/posts/humanlayer-alternative/
Type: Comparison
Published: 3 October 2026

> **Disclosure:** We make redphonr. HumanLayer facts below come from humanlayer.dev and the public humanlayer/humanlayer GitHub repository as of October 2026.

HumanLayer was one of the first products built for human-in-the-loop AI agents. Its SDK let a function be wrapped with an approval decorator so that, when an agent called it, a person was asked in Slack or by email before it ran. Plenty of teams built on that idea.

In 2026 the company changed direction. Its website now sells a multiplayer coding agent IDE and cloud, and the README of its original GitHub repository says the code there is "pretty much all deprecated". If you came looking for agent approvals, you need another option.

## What HumanLayer did

- Wrapped functions so they required approval before an agent could run them.
- Let an agent ask a person a free-form question ("human as a tool").
- Delivered requests over Slack, email and other chat channels, and returned the answer to the agent.

Those are still exactly the right primitives. The question is who provides them now.

## The closest replacement: redphonr

[redphonr](https://www.redphonr.com/?utm_source=blog&utm_medium=post&utm_campaign=humanlayer-alternative) covers the same ground and adds what HumanLayer users often asked for.

| | HumanLayer (original SDK) | redphonr |
|---|---|---|
| Current focus | Coding agent IDE | Human approvals for agents |
| Integration | Python and TypeScript SDK decorators | Native MCP server, plus HTTP API |
| Approve or deny | Yes | Yes (`request_approval`) |
| Ask a question | Yes | Yes (`ask_human`, `collect_input`) |
| Review output before sending | Build it | Yes (`verify_output`) |
| Channels | Slack, email, chat | Slack, SMS, WhatsApp, Telegram, Discord, email, voice |
| Escalation | Not in its current docs | Ladders, on-call and backup, weekly rotation |
| Timeout default | Not in its current docs | Deny by default |

The biggest change is the integration model. Instead of decorating functions in one SDK, redphonr is an MCP server, so any MCP-capable agent (Claude, Cursor, the OpenAI Agents SDK, LangChain, CrewAI, Mastra) can call it without a library.

## Migrating a require_approval function

Before, with a decorator:

```python
@hl.require_approval()
def send_invoice_reminders(customer_ids: list[str]) -> str:
    ...
```

After, with an explicit gate:

```python
async def send_invoice_reminders(session, customer_ids: list[str]) -> str:
    result = await session.call_tool("request_approval", {
        "message": f"Send payment reminders to {len(customer_ids)} customers?",
        "timeout_seconds": 3600,
        "default": "deny",
    })
    if result["decision"] != "approved":
        return f"Not sent: {result.get('note') or 'not approved'}"
    ...
```

Or, if your agent already speaks MCP, add the server and let the model decide when to ask, guided by your system prompt. The [5-minute tutorial](https://blog.blueprintd.co/posts/add-human-approval-to-claude-agent-with-mcp/) shows the prompt.

## Other alternatives

- **gotoHuman** if your approvals are mostly reviewing AI drafts in a web inbox. See [redphonr vs gotoHuman](https://blog.blueprintd.co/posts/redphonr-vs-gotohuman/).
- **Your framework's own pause** (LangGraph `interrupt()`, OpenAI Agents SDK `needs_approval`) if the approver is already in your app's UI.
- The full field is in [the 10 best human-in-the-loop tools for AI agents](https://blog.blueprintd.co/posts/best-human-in-the-loop-tools-for-ai-agents/).

**[Move your approvals to redphonr](https://www.redphonr.com/?utm_source=blog&utm_medium=post&utm_campaign=humanlayer-alternative)**

## Frequently asked questions

### Is HumanLayer deprecated?

As of October 2026, the README of the public humanlayer/humanlayer GitHub repository says the code there is pretty much all deprecated and points to a rebuild, and humanlayer.dev markets a multiplayer coding agent IDE and cloud. Check with HumanLayer directly before relying on its original approval SDK.

### What is the best alternative to HumanLayer?

For the original use case, letting an agent ask a person for approval over chat, SMS or email and wait for the answer, redphonr is a close match. It runs as an MCP server, adds SMS, WhatsApp and voice calls, and escalates through an on-call rota.

### How do I migrate from HumanLayer's require_approval to redphonr?

Replace the decorator with an explicit call to redphonr's request_approval tool before the function runs, return early if the decision is not approved, and set the timeout default to deny. If your agent uses MCP, add the redphonr server and the model can call the tool itself.
