
withHuman
ai.withhumanPublished by withhuman.aiOfficial publisherv1.0.0Updated Nov 4, 2026
Set up human approval for your AI agents' tool calls.
Overview
withHuman is an approval layer that lets an assistant route its consequential tool calls to a human for approval, denial or automatic clearance before they run.
- What you can do
- Check agent tool calls against approval rules before they execute
- Approve, deny or hold routine and consequential calls based on tool and arguments
- Route pending requests to reviewers by email, Slack or Discord with escalation by team, level and working hours
- Let reviewers decide in a web app with the exact call arguments in front of them
- Connect coding agents and custom frameworks through adapters and SDKs
- When to use it
- Use it when an assistant should take real actions such as refunds, deployments or code merges, and a person must sign off on the risky ones first. It suits teams that want one place to define which agent actions run automatically, which are blocked and which wait for a reviewer.
- Requirements
- The hosted service is a remote endpoint requiring OAuth sign-in. Self-hosting needs Docker (or Go and Node to run from source), a bootstrap secret, and for anything beyond a local machine: HTTPS behind a proxy, WITHHUMAN_PUBLIC_ORIGIN, WITHHUMAN_TRUSTED_PROXIES, WITHHUMAN_SECRETS_KEY, SMTP settings and data-directory backups. Agents connect via the withhuman CLI or AAP SDKs.
Installation
In SourceWeft
- Open withHuman in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/ai.withhuman%2Fwithhuman/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"withhuman": {
"type": "http",
"url": "https://app.withhuman.ai/api/mcp/v1"
}
}
}README
Approval layer for AI Agents
Put your most consequential agent actions behind human approvals, so your
agents can do real work.
[Latest release] [Release build] [Docker image] [Go version] [License: Elastic 2.0] [Agent Approval Protocol] [Chat on Discord] [Follow @withHumanAI on X]
Website · Docs · Quickstart · Protocol · Discord · Contributing
We want agents to do more than read data and suggest what to do next. They should be able to roll back a deployment, issue a refund, or merge code. Those actions have consequences, and teams need a way to bring a person in before they happen.
withHuman is the approval layer for that moment. It checks an agent's tool call before it runs against rules you define in one place. Routine calls can be approved automatically, disallowed calls can be denied, and consequential ones can wait for the right person to decide. Every agent you connect follows those rules.
[The review page for a pending issue_refund request: its arguments, the agent's explanation, and Deny and Approve buttons] [The review page for a pending issue_refund request: its arguments, the agent's explanation, and Deny and Approve buttons]
How it works
An adapter (a runtime hook or an SDK wrapper) sends each tool call to withHuman before it runs, over the open Agent Approval Protocol.
- Approval pipelines approve, deny or ask a person, based on the tool and its arguments. For example: approve refunds up to $20, ask payments above that.
- Escalation paths choose who is asked and when, by team, level and working hours. Reviewers get email, Slack or Discord and decide in the web app with the exact arguments in front of them.
See How withHuman works for how the pieces fit together.
Quickstart
You need Docker.
Open http://localhost:8080, choose First setup and enter the secret. The welcome page connects your first agent and ends with a test call for you to approve. The quickstart guide covers each step.
To run from source instead, install Go (the version in go.mod)
and Node 25, then run make frontend && go run ./cmd/withhuman. The
secret is in ~/.withhuman/bootstrap-secret.
Connect your agents
-
Coding agents. Claude Code, Codex, OpenClaw, Pi, Hermes and DeepSeek connect with the
withhumanCLI: -
Agents you build. LangGraph, Pydantic AI, the OpenAI Agents SDK, CrewAI, Mastra and other frameworks connect through the AAP SDKs. See the examples.
Explore further
- Agents: agents and their instances.
- Approval pipelines: how a request gets its decision.
- Escalation paths: who reviews a request and when.
- Requests and decisions: what the agent gets back.
- Review queue: where reviewers decide.
Agent skills
Teach your coding agent to connect runtimes and write approval pipelines:
The skills live in skills/.
Deploy
Settings are environment variables, listed in .env.example.
Before you go beyond your own machine:
- Serve it behind HTTPS and set
WITHHUMAN_PUBLIC_ORIGINto that origin. - Set
WITHHUMAN_TRUSTED_PROXIESto your proxy's addresses only. - Set
WITHHUMAN_SECRETS_KEYand keep it safe. - Configure SMTP so invitations and password resets reach people.
- Back up the whole data directory.
- Set
OTEL_EXPORTER_OTLP_ENDPOINTto collect its OpenTelemetry metrics.
Don't want to run it yourself? withhuman.ai hosts it and adds the audit log, the AI judge, the MCP gateway, phone notifications and single sign-on.
Telemetry
Once a day withHuman sends a random installation ID, its version, the
platform and whether it runs as a binary, a container or on Kubernetes.
The answer tells administrators about new releases and security fixes on
the Version settings page. Nothing about your organizations, people,
agents or requests is sent. Set WITHHUMAN_TELEMETRY=off (or
DO_NOT_TRACK=1) to turn it off. See
Updates and telemetry.
Community
- Questions and chat: Discord
- Bugs and ideas: GitHub Issues
- Security vulnerabilities: follow SECURITY.md. Do not open an issue.
- Contributing: CONTRIBUTING.md and the code of conduct
- Updates: @withHumanAI on X
License
withHuman is licensed under the Elastic License 2.0.
Source: README.md at commit 74b8b42
Tools
0Version history
1- v1.0.0LatestOct 14, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.