{
  "data": {
    "a": {
      "slug": "hatchet",
      "name": "Hatchet",
      "vendor": "Hatchet Technologies, Inc.",
      "vendorUrl": "https://hatchet.run",
      "kind": "platform",
      "category": "human-in-the-loop",
      "summary": "Hatchet is an open-source (MIT) platform for durable tasks, queues and workflows, sold as Hatchet Cloud or self-hosted. A durable task can pause until an event arrives, which is its building block for human approval steps.",
      "url": "https://www.anchorterminal.com/tools/hatchet",
      "markdownUrl": "https://www.anchorterminal.com/tools/hatchet.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/hatchet.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/hatchet.json",
      "repo": "https://github.com/hatchet-dev/hatchet",
      "license": "MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://cloud.hatchet.run",
      "packages": [
        {
          "registry": "pypi",
          "name": "hatchet-sdk"
        },
        {
          "registry": "npm",
          "name": "@hatchet-dev/typescript-sdk"
        },
        {
          "registry": "go",
          "name": "github.com/hatchet-dev/hatchet"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. A person signs up at cloud.hatchet.run and creates an API token in Settings, scoped to one tenant with a configurable expiry. SDK clients, workers and the REST API send it as a Bearer token. The MCP server reads tokens from CLI profiles the user granted. Embedded mode runs a local engine with no token.",
      "pricing": "freemium",
      "pricingNotes": "Hatchet Cloud is pay as you go from $0, and the plan without a card includes 1 million runs and 1 million events a month, capped at 2,000 of each a day, so an agent's owner can start without a contract. Beyond that, $30 per million runs and $5 per million events. Enterprise is priced by sales. Self-hosting is free under MIT (https://hatchet.run/pricing).",
      "priceSummary": "$0.03 / 1k calls",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the OpenAPI file or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 7,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.hatchet.run/v1/durable-event-waits",
      "llmsTxt": "https://docs.hatchet.run/llms.txt",
      "openapi": "https://github.com/hatchet-dev/hatchet/blob/main/api-contracts/openapi/openapi.yaml",
      "capabilities": [
        "hitl.approve",
        "hitl.ask",
        "agent.durable",
        "automation.workflows",
        "automation.code"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "open-source",
        "freemium",
        "free-tier",
        "mcp",
        "openapi",
        "llms-txt",
        "python",
        "typescript",
        "go",
        "durable",
        "webhooks",
        "idempotency",
        "hipaa"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.3,
        "grade": "B",
        "agentReady": false,
        "rank": 225,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 90,
          "payments": 40,
          "reliability": 66,
          "schema": 85,
          "security": 62,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "Published 4 September 2026, -2. GHSA-992g-9cr3-vm5x (CVE-2026-88978), Moderate, CVSS 3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N. The `DurableTask` worker status path looked up durable event log entries by a caller-supplied task UUID with no tenant filter, so a holder of any tenant's token who knew another tenant's task UUID could read its entries. The advisory names Hatchet Cloud as affected and calls exploitation very unlikely because the IDs are random UUIDs. Fixed in 0.106.1. It is the event log this listing is graded on, so 2 points for a fixed path. https://github.com/hatchet-dev/hatchet/security/advisories/GHSA-992g-9cr3-vm5x (read through https://api.osv.dev/v1/vulns/GHSA-992g-9cr3-vm5x)",
          "Not deducted. GHSA-hf2m-86fv-rjw5, fixed in v0.110.5 on 5 October 2026, enforced payload visibility restrictions on endpoints that had returned payload data. The OSV mirror answered 404 for it, so its severity was not read. https://github.com/hatchet-dev/hatchet/blob/main/CHANGELOG.md"
        ],
        "verdict": "A durable task waits for a keyed event without holding a worker slot, and resumes from its event log after a restart, in Python, TypeScript, Go or Ruby. Hatchet supplies only the pause and resume. It has no approver inbox, notification channel or record of who answered, and its MCP server cannot push the event.",
        "bestFor": "It suits a team already running background jobs or agent loops on Hatchet that wants an approval pause inside the same durable task, in Python, TypeScript, Go or Ruby.",
        "strengths": [
          "A durable task waiting on an event is evicted from its worker slot and resumes from the durable event log after a restart or crash",
          "Events can be filtered with a CEL expression, and a scope with a lookback window catches an answer pushed before the wait began",
          "MIT licence, self-hostable, with SDKs for Python (1.41.1), TypeScript (1.36.0), Go and Ruby (0.9.0)",
          "Pay-as-you-go cloud plan starts at $0 without a card, with 1 million runs and 1 million events a month included, per the pricing page",
          "Platform release v0.110.19 on 8 October 2026, with dated changelogs for the platform and each SDK"
        ],
        "weaknesses": [
          "No approver inbox, Slack or email channel, routing or reminder. The owner builds the request and the way the answer is pushed",
          "An event wait has no timeout of its own. A deadline needs a sleep condition in the same or group",
          "API tokens are scoped to a tenant with an expiry, with no narrower scopes, and the role and payload restrictions do not apply to them",
          "Audit logs are for Business plans and above, kept 30 days, and the documented actions do not include event pushes",
          "The seven MCP tools trigger, inspect and replay runs. None pushes an event, and none sets a read-only or destructive annotation",
          "The standard terms the cloud agreement incorporates forbid security or vulnerability tests of the product. This matters before any probe is run"
        ],
        "agentNotes": [
          "Put the approval wait in a durable task, and keep API calls, database reads and random values in child tasks, because the code between checkpoints is replayed",
          "Add a sleep condition in the same or group as the event condition to set a deadline, and treat the sleep firing first as a timeout",
          "Give the event a scope and the wait a lookback window when the answer can arrive before the wait starts. Both must be set together",
          "Filter with a CEL expression such as `input.user_id == '1234'` so one approval key cannot resume another request's task",
          "Push the answer with the SDK's event push or `POST /api/v1/tenants/{tenant}/events`. The MCP server has no tool for it",
          "Grant the MCP server one profile with `hatchet mcp auth --grant \u003cprofile\u003e`. It refuses profiles that were not granted"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.3
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 90,
          "payments": 40,
          "reliability": 66,
          "schema": 85,
          "security": 62,
          "transparency": 69
        },
        "provenanceScore": 72
      },
      "connect": {
        "install": "pip install hatchet-sdk",
        "claudeCode": "hatchet mcp install --target claude-code",
        "config": {
          "mcpServers": {
            "hatchet": {
              "args": [
                "mcp",
                "serve"
              ],
              "command": "hatchet"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/hitl.approve",
        "tool": "https://letme.dev/hatchet"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Task runs after the first 1 million a month",
          "unit": "1k-calls",
          "usd": 0.03,
          "note": "$30 per million runs. A failed run is billed, retries are not"
        },
        {
          "item": "Events after the first 1 million a month",
          "unit": "1k-calls",
          "usd": 0.005,
          "note": "$5 per million events"
        },
        {
          "item": "Extra user beyond 50 (card on file)",
          "unit": "seat-month",
          "usd": 10
        }
      ],
      "provenance": {
        "legalEntity": "Hatchet Technologies, Inc.",
        "domain": "hatchet.run",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://hatchet.run/policies/terms",
        "privacy": "https://hatchet.run/policies/privacy",
        "statusPage": "https://status.hatchet.run",
        "changelog": "https://docs.hatchet.run/reference/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms page is a Common Paper Cloud Service Agreement cover page for Hatchet Technologies, Inc., last updated 17 July 2025, governed by Delaware law, incorporating Standard Terms Version 2.1 at commonpaper.com.",
          "The privacy policy was last updated 18 August 2026, covers workflow data and API usage data, and names an EU representative in Ireland.",
          "hatchet.run/.well-known/security.txt answered 404. SECURITY.md in the repository takes reports through private GitHub advisories or security@hatchet.run and says there is no bug bounty.",
          "The dashboard and API are at cloud.hatchet.run. The webhook docs show incoming webhook URLs on cloud.onhatchet.run, a second domain.",
          "status.hatchet.run runs on Better Stack with three components. Its robots.txt answered 200 with an empty body.",
          "The repository's licence file is MIT, copyright 2023 to present Hatchet Technologies Inc.",
          "The domain's registration date was not looked up."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/hatchet.json",
      "live": {
        "slug": "hatchet",
        "probe": {
          "target": "https://cloud.hatchet.run",
          "method": "get",
          "lastAt": "2026-10-10T01:37:53.57343996Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 654,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 687,
          "p95ms24h": 1647,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.hatchet.run",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:40.047363861Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "hatchet-dev/hatchet",
            "version": "v0.110.5",
            "released": "2026-10-06",
            "seenAt": "2026-10-09T16:57:30.943852136Z"
          },
          {
            "registry": "npm",
            "name": "@hatchet-dev/typescript-sdk",
            "version": "1.36.0",
            "seenAt": "2026-10-09T16:57:29.775672491Z"
          },
          {
            "registry": "pypi",
            "name": "hatchet-sdk",
            "version": "1.41.1",
            "released": "2026-09-24",
            "seenAt": "2026-10-09T16:57:29.581369924Z"
          }
        ],
        "githubStars": 8088,
        "npmWeekly": 300149,
        "pypiWeekly": 392095,
        "pages": [
          {
            "url": "https://docs.hatchet.run/reference/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:37:27.789775482Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f6e9eec278c6"
          },
          {
            "url": "https://hatchet.run/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:07.756761277Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3096d0aaa49f"
          },
          {
            "url": "https://hatchet.run/policies/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:03.629481363Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1926d0170834"
          },
          {
            "url": "https://hatchet.run/policies/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:40:05.775842594Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "22e8ffadb15d"
          }
        ],
        "updatedAt": "2026-10-10T01:37:53.57343996Z"
      }
    },
    "answer": "Hatchet scores 68.3 (B) on agent readiness against withHuman's 51.8 (D), and leads in 6 of 7 scored categories. withHuman leads on security \u0026 auth.",
    "b": {
      "slug": "withhuman",
      "name": "withHuman",
      "vendor": "Metoro Inc",
      "vendorUrl": "https://withhuman.ai",
      "kind": "http-api",
      "category": "human-in-the-loop",
      "summary": "withHuman is a hosted approval service for AI agents from Metoro Inc. It holds an agent's tool calls for a person to approve or deny through the Agent Approval Protocol API, coding-agent hooks, an MCP gateway and an MCP server.",
      "url": "https://www.anchorterminal.com/tools/withhuman",
      "markdownUrl": "https://www.anchorterminal.com/tools/withhuman.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/withhuman.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/withhuman.json",
      "license": "Proprietary hosted service under Metoro Inc's terms. The site describes an open-source edition, but the repository it links to returned 404 on 8 October 2026",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://app.withhuman.ai",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Five credentials, all sent as `Authorization: Bearer`. An agent credential (`whc_`) is bound to one agent instance and can only create approval requests and wait for decisions. A provisioner token (`whp_`) can only create and manage instances of its agent. A personal API key (`whk_`) follows its owner's permissions, can be narrowed to chosen actions and expires after 90 days by default. An organisation API key (`who_`, Scale plan and above) carries its own permission policies and cannot decide requests. The MCP server at `/api/mcp/v1` signs in with OAuth (authorisation code with PKCE and dynamic client registration) or takes an API key as a bearer token. A person signs up in the browser and connects the first agent.",
      "pricing": "freemium",
      "pricingNotes": "Free hosted plan at $0 for up to 5 members, with unlimited agents and approval requests, email, Slack and Discord, the audit log and the MCP gateway. Scale is $20 per user a month and adds the phone apps, organisation and scoped API keys, single sign-on and directory sync. Enterprise is a custom annual contract. New organisations start on a trial and move to Free without a subscription. Monthly allowances for gateway tool calls and phone messages exist but their numbers aren't on the pricing page (https://withhuman.ai/pricing, checked 2026-10-08).",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI document or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://withhuman.ai/docs",
      "llmsTxt": "https://withhuman.ai/llms.txt",
      "openapi": "https://withhuman.ai/openapi.yaml",
      "capabilities": [
        "hitl.approve",
        "hitl.channels",
        "hitl.audit"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "enterprise",
        "early-access"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 51.8,
        "grade": "D",
        "agentReady": false,
        "rank": 746,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 49,
          "payments": 30,
          "reliability": 16,
          "schema": 81,
          "security": 73,
          "transparency": 53
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -2,
        "negativeNotes": [
          "8 October 2026. The home page and pricing page describe an open-source, self-hostable edition and link https://github.com/withHumanAI/withHuman, which returned 404. The withHumanAI organisation listed no public repositories and the protocol repository https://github.com/agentapprovalprotocol/agentapprovalprotocol also returned 404. Counted as a claim the public cannot verify today (-2). Sources https://withhuman.ai/pricing and https://github.com/withHumanAI"
        ],
        "verdict": "The approval API is small and carefully specified, with a public OpenAPI 3.1 document, mandatory idempotency keys and agent credentials that can never approve. The service is in early access under its own terms, with no status page, published rate limits or changelog, and the open-source repository the site links to returned 404 on 8 October 2026.",
        "bestFor": "Teams that want tool calls from coding agents or their own agents held for approval by rules, with escalation and an audit log, and no review UI to build.",
        "strengths": [
          "Public OpenAPI 3.1 document with 116 operations and 148 schemas, plus llms.txt and a Markdown copy of every docs page",
          "`Idempotency-Key` is required on request creation, instance creation and decisions, and a reused key with changed input answers 409",
          "An agent credential can only create requests and wait for decisions. Approving or denying needs a signed-in person or a personal key",
          "The MCP server signs in with OAuth, PKCE and dynamic client registration, across 35 scopes, with access lasting 90 days or until revoked",
          "Free hosted plan at $0 for up to 5 members with unlimited agents and approval requests, per the pricing page"
        ],
        "weaknesses": [
          "The terms say the service is in early access, and the API document is version 0.1.0",
          "No status page, published request rate limits, SLA outside an enterprise contract, or changelog found",
          "The GitHub repository the site links as its open-source edition returned 404 on 8 October 2026, and the organisation lists no public repositories",
          "No SDK found on npm or PyPI. Integration is the HTTP API, the CLI hooks or the MCP gateway",
          "The site footer says SOC 2 Type II with no report, auditor or trust page, and neither host serves a security.txt"
        ],
        "agentNotes": [
          "Send an `Idempotency-Key` header on `POST /api/aap/v1/requests`. The call answers 400 without one",
          "Read the decision with `GET /api/aap/v1/requests/{id}?wait=30s` and repeat while `status` is `pending`. `wait` is capped at 30 seconds",
          "Set `timeout` between one second and seven days, and treat `expired` and `cancelled` as a refusal",
          "Start an approved call within five minutes of `decided_at`, because the decision carries an `expires_at`",
          "Cancel a request when you stop waiting, so reviewers stop seeing it"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 51.8
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 49,
          "payments": 30,
          "reliability": 16,
          "schema": 81,
          "security": 73,
          "transparency": 52
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "curl -fsSL https://downloads.withhuman.ai/install.sh | sh -s -- onboard",
        "http": "curl -X POST \"https://app.withhuman.ai/api/aap/v1/requests\" \\\n  -H \"Authorization: Bearer $WITHHUMAN_TOKEN\" \\\n  -H \"Idempotency-Key: 4f1c9a2e-7b3d-4e8f-a1c5-2d6b8e0f9a31\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"tool\": \"Bash\", \"arguments\": { \"command\": \"rm -rf build\" }, \"timeout\": \"30m\" }'",
        "claudeCode": "claude mcp add --transport http --scope user withhuman https://app.withhuman.ai/api/mcp/v1",
        "config": {
          "mcpServers": {
            "withhuman": {
              "url": "https://app.withhuman.ai/api/mcp/v1"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/hitl.approve",
        "tool": "https://letme.dev/withhuman"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Scale plan",
          "unit": "seat-month",
          "usd": 20,
          "note": "Free plan covers up to 5 members"
        }
      ],
      "provenance": {
        "legalEntity": "Metoro Inc",
        "domain": "withhuman.ai",
        "domainRegistered": "2026-07-13",
        "endpointOnVendorDomain": true,
        "terms": "https://withhuman.ai/terms",
        "privacy": "https://withhuman.ai/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms (effective 4 September 2026) are between the user and Metoro Inc, which operates withHuman, and cover the hosted service, the iPhone app and the website. Delaware law governs.",
          "The privacy policy (effective 4 September 2026) calls Metoro Inc a Delaware corporation and covers approval requests, decisions and audit records as well as the website.",
          "RDAP for withhuman.ai gives a registration date of 2026-07-13.",
          "https://withhuman.ai/.well-known/security.txt and https://app.withhuman.ai/.well-known/security.txt both returned 404 on 2026-10-08.",
          "No status page is linked from the site, the docs or the support page, and status.withhuman.ai did not connect. No changelog was found, and the blog says coming soon.",
          "The API and the MCP server answer at app.withhuman.ai, and the CLI downloads from downloads.withhuman.ai."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/withhuman.json",
      "live": {
        "slug": "withhuman",
        "probe": {
          "target": "https://app.withhuman.ai",
          "method": "get",
          "lastAt": "2026-10-10T01:38:13.679251538Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 220,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 129,
          "p95ms24h": 1108,
          "samples24h": 250,
          "samples30d": 317,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "securityTxt": {
          "url": "https://withhuman.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:23.129628306Z"
        },
        "llmsTxt": {
          "url": "https://withhuman.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:03:01.096968417Z"
        },
        "pages": [
          {
            "url": "https://withhuman.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:28.949677128Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3fc74df9ca26"
          },
          {
            "url": "https://withhuman.ai/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:31.211846063Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "145dc42f414e"
          },
          {
            "url": "https://withhuman.ai/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:47:33.121904352Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1811f615c26a"
          }
        ],
        "updatedAt": "2026-10-10T01:38:13.679251538Z"
      }
    },
    "facts": [
      {
        "a": "Model platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Hatchet Technologies, Inc.",
        "b": "Metoro Inc",
        "name": "Vendor"
      },
      {
        "a": "https://cloud.hatchet.run",
        "b": "https://app.withhuman.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary hosted service under Metoro Inc's terms. The site describes an open-source edition, but the repository it links to returned 404 on 8 October 2026",
        "name": "Licence"
      },
      {
        "a": "7",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-08",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "2025-07-17",
        "b": "2026-09-04",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-18",
        "b": "2026-09-04",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Hatchet scores 68.3 (B) on agent readiness against withHuman's 51.8 (D), and leads in 6 of 7 scored categories. withHuman leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Hatchet or withHuman?"
      },
      {
        "answer": "Yes. Hatchet has a hosted endpoint at https://cloud.hatchet.run and withHuman at https://app.withhuman.ai.",
        "question": "Can an agent call Hatchet and withHuman without installing anything?"
      },
      {
        "answer": "Hatchet is open source (MIT). No open-source release is listed for withHuman.",
        "question": "Are Hatchet and withHuman open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 66 against 16",
          "Agent ergonomics, 82 against 74",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 90 against 49",
          "Transparency \u0026 trust, 71 against 53"
        ],
        "also": [
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "It suits a team already running background jobs or agent loops on Hatchet that wants an approval pause inside the same durable task, in Python, TypeScript, Go or Ruby.",
        "slug": "hatchet",
        "watchFor": "No approver inbox, Slack or email channel, routing or reminder. The owner builds the request and the way the answer is pushed"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 73 against 62"
        ],
        "also": null,
        "goodFor": "Teams that want tool calls from coding agents or their own agents held for approval by rules, with escalation and an audit log, and no review UI to build.",
        "slug": "withhuman",
        "watchFor": "The terms say the service is in early access, and the API document is version 0.1.0"
      }
    ],
    "job": {
      "capability": "hitl.approve",
      "name": "Human approval"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/gotohuman-vs-hatchet.json",
        "title": "gotoHuman vs Hatchet",
        "url": "https://www.anchorterminal.com/compare/gotohuman-vs-hatchet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gotohuman-vs-withhuman.json",
        "title": "gotoHuman vs withHuman",
        "url": "https://www.anchorterminal.com/compare/gotohuman-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-inngest.json",
        "title": "Hatchet vs Inngest",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-inngest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.json",
        "title": "Hatchet vs Orkes Conductor Human tasks",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-permit-mcp-gateway.json",
        "title": "Hatchet vs Permit MCP Gateway",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-permit-mcp-gateway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-pushary.json",
        "title": "Hatchet vs Pushary",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-pushary"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-restate.json",
        "title": "Hatchet vs Restate",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-restate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-temporal.json",
        "title": "Hatchet vs Temporal",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-temporal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hatchet-vs-trigger-dev.json",
        "title": "Hatchet vs Trigger.dev",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-trigger-dev"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inngest-vs-withhuman.json",
        "title": "Inngest vs withHuman",
        "url": "https://www.anchorterminal.com/compare/inngest-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orkes-conductor-vs-withhuman.json",
        "title": "Orkes Conductor Human tasks vs withHuman",
        "url": "https://www.anchorterminal.com/compare/orkes-conductor-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/permit-mcp-gateway-vs-withhuman.json",
        "title": "Permit MCP Gateway vs withHuman",
        "url": "https://www.anchorterminal.com/compare/permit-mcp-gateway-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pushary-vs-withhuman.json",
        "title": "Pushary vs withHuman",
        "url": "https://www.anchorterminal.com/compare/pushary-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/restate-vs-withhuman.json",
        "title": "Restate vs withHuman",
        "url": "https://www.anchorterminal.com/compare/restate-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/temporal-vs-withhuman.json",
        "title": "Temporal vs withHuman",
        "url": "https://www.anchorterminal.com/compare/temporal-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/trigger-dev-vs-withhuman.json",
        "title": "Trigger.dev vs withHuman",
        "url": "https://www.anchorterminal.com/compare/trigger-dev-vs-withhuman"
      }
    ],
    "scores": [
      {
        "by": 50,
        "edge": "hatchet",
        "hatchet": 66,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "withhuman": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "hatchet",
        "hatchet": 85,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "withhuman": 81
      },
      {
        "by": 8,
        "edge": "hatchet",
        "hatchet": 82,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "withhuman": 74
      },
      {
        "by": 11,
        "edge": "withhuman",
        "hatchet": 62,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "withhuman": 73
      },
      {
        "by": 10,
        "edge": "hatchet",
        "hatchet": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "withhuman": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 41,
        "edge": "hatchet",
        "hatchet": 90,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "withhuman": 49
      },
      {
        "by": 18,
        "edge": "hatchet",
        "hatchet": 71,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "withhuman": 53
      }
    ],
    "summary": "Hatchet scores 68.3 (B) on agent readiness against withHuman's 51.8 (D), and leads in 6 of 7 scored categories. withHuman leads on security \u0026 auth. Both do human approval.",
    "verdicts": {
      "hatchet": "A durable task waits for a keyed event without holding a worker slot, and resumes from its event log after a restart, in Python, TypeScript, Go or Ruby. Hatchet supplies only the pause and resume. It has no approver inbox, notification channel or record of who answered, and its MCP server cannot push the event.",
      "withhuman": "The approval API is small and carefully specified, with a public OpenAPI 3.1 document, mandatory idempotency keys and agent credentials that can never approve. The service is in early access under its own terms, with no status page, published rate limits or changelog, and the open-source repository the site links to returned 404 on 8 October 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/hatchet-vs-withhuman",
    "json": "https://www.anchorterminal.com/compare/hatchet-vs-withhuman.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/hatchet-vs-withhuman.md",
    "slim": "https://www.anchorterminal.com/compare/hatchet-vs-withhuman.min.md"
  },
  "markdown": "Hatchet scores 68.3 (B) on agent readiness against withHuman's 51.8 (D), and leads in 6 of 7 scored categories. withHuman leads on security \u0026 auth. Both do human approval.\n\n- Hatchet: grade B, 68.3/100, rank #225 of 950. Markdown https://www.anchorterminal.com/tools/hatchet.md · JSON https://www.anchorterminal.com/api/v1/tools/hatchet.json\n- withHuman: grade D, 51.8/100, rank #746 of 950. Markdown https://www.anchorterminal.com/tools/withhuman.md · JSON https://www.anchorterminal.com/api/v1/tools/withhuman.json\n- Best human approval and handoff for AI agents: https://www.anchorterminal.com/best/human-in-the-loop/index.md\n- All 45 human approval comparisons: https://www.anchorterminal.com/compare/human-in-the-loop/index.md\n\n## Which one, for what\n\n### Hatchet (B)\n\nGood for: It suits a team already running background jobs or agent loops on Hatchet that wants an approval pause inside the same durable task, in Python, TypeScript, Go or Ruby.\n\nAhead on:\n- Reliability, 66 against 16\n- Agent ergonomics, 82 against 74\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 90 against 49\n- Transparency \u0026 trust, 71 against 53\n\nAlso in its favour:\n- Runs on your own machine\n- Open source\n\nWatch for: No approver inbox, Slack or email channel, routing or reminder. The owner builds the request and the way the answer is pushed\n\n### withHuman (D)\n\nGood for: Teams that want tool calls from coding agents or their own agents held for approval by rules, with escalation and an audit log, and no review UI to build.\n\nAhead on:\n- Security \u0026 auth, 73 against 62\n\nWatch for: The terms say the service is in early access, and the API document is version 0.1.0\n\n\n## Score by category\n\n| Category | Weight | Hatchet | withHuman | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 66 | 16 | Hatchet +50 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 81 | Hatchet +4 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 74 | Hatchet +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 73 | withHuman +11 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Hatchet +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 90 | 49 | Hatchet +41 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 53 | Hatchet +18 |\n| Negative events | ≤15 | -2 | -2 | |\n| **Total** | | **68.3 · B** | **51.8 · D** | |\n\n## Facts side by side\n\n| Fact | Hatchet | withHuman |\n| --- | --- | --- |\n| Kind | Model platform | HTTP API |\n| Vendor | Hatchet Technologies, Inc. | Metoro Inc |\n| Hosted endpoint | `https://cloud.hatchet.run` | `https://app.withhuman.ai` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | Proprietary hosted service under Metoro Inc's terms. The site describes an open-source edition, but the repository it links to returned 404 on 8 October 2026 |\n| Tools exposed | 7 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-08 | 2026-10-08 |\n| Terms last updated | 2025-07-17 | 2026-09-04 |\n| Privacy policy last updated | 2026-08-18 | 2026-09-04 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n\n## Verdicts\n\n**Hatchet.** A durable task waits for a keyed event without holding a worker slot, and resumes from its event log after a restart, in Python, TypeScript, Go or Ruby. Hatchet supplies only the pause and resume. It has no approver inbox, notification channel or record of who answered, and its MCP server cannot push the event.\n\n**withHuman.** The approval API is small and carefully specified, with a public OpenAPI 3.1 document, mandatory idempotency keys and agent credentials that can never approve. The service is in early access under its own terms, with no status page, published rate limits or changelog, and the open-source repository the site links to returned 404 on 8 October 2026.\n\n## Before you call either\n\n### Hatchet\n\n1. Put the approval wait in a durable task, and keep API calls, database reads and random values in child tasks, because the code between checkpoints is replayed\n2. Add a sleep condition in the same or group as the event condition to set a deadline, and treat the sleep firing first as a timeout\n3. Give the event a scope and the wait a lookback window when the answer can arrive before the wait starts. Both must be set together\n4. Filter with a CEL expression such as `input.user_id == '1234'` so one approval key cannot resume another request's task\n5. Push the answer with the SDK's event push or `POST /api/v1/tenants/{tenant}/events`. The MCP server has no tool for it\n6. Grant the MCP server one profile with `hatchet mcp auth --grant \u003cprofile\u003e`. It refuses profiles that were not granted\n\n### withHuman\n\n1. Send an `Idempotency-Key` header on `POST /api/aap/v1/requests`. The call answers 400 without one\n2. Read the decision with `GET /api/aap/v1/requests/{id}?wait=30s` and repeat while `status` is `pending`. `wait` is capped at 30 seconds\n3. Set `timeout` between one second and seven days, and treat `expired` and `cancelled` as a refusal\n4. Start an approved call within five minutes of `decided_at`, because the decision carries an `expires_at`\n5. Cancel a request when you stop waiting, so reviewers stop seeing it\n\n## Questions\n\n### Which is better for AI agents, Hatchet or withHuman?\n\nHatchet scores 68.3 (B) on agent readiness against withHuman's 51.8 (D), and leads in 6 of 7 scored categories. withHuman leads on security \u0026 auth.\n\n### Can an agent call Hatchet and withHuman without installing anything?\n\nYes. Hatchet has a hosted endpoint at https://cloud.hatchet.run and withHuman at https://app.withhuman.ai.\n\n### Are Hatchet and withHuman open source?\n\nHatchet is open source (MIT). No open-source release is listed for withHuman.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/hatchet-vs-withhuman.json, and with the fewest tokens: https://www.anchorterminal.com/compare/hatchet-vs-withhuman.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"hatchet\", \"b\": \"withhuman\"}`. From a terminal: `anchor compare hatchet withhuman`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/hatchet.json and https://www.anchorterminal.com/api/v1/tools/withhuman.json\n\n## Other comparisons with Hatchet or withHuman\n\n- [gotoHuman vs Hatchet](https://www.anchorterminal.com/compare/gotohuman-vs-hatchet.md)\n- [gotoHuman vs withHuman](https://www.anchorterminal.com/compare/gotohuman-vs-withhuman.md)\n- [Hatchet vs Inngest](https://www.anchorterminal.com/compare/hatchet-vs-inngest.md)\n- [Hatchet vs Orkes Conductor Human tasks](https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.md)\n- [Hatchet vs Permit MCP Gateway](https://www.anchorterminal.com/compare/hatchet-vs-permit-mcp-gateway.md)\n- [Hatchet vs Pushary](https://www.anchorterminal.com/compare/hatchet-vs-pushary.md)\n- [Hatchet vs Restate](https://www.anchorterminal.com/compare/hatchet-vs-restate.md)\n- [Hatchet vs Temporal](https://www.anchorterminal.com/compare/hatchet-vs-temporal.md)\n- [Hatchet vs Trigger.dev](https://www.anchorterminal.com/compare/hatchet-vs-trigger-dev.md)\n- [Inngest vs withHuman](https://www.anchorterminal.com/compare/inngest-vs-withhuman.md)\n- [Orkes Conductor Human tasks vs withHuman](https://www.anchorterminal.com/compare/orkes-conductor-vs-withhuman.md)\n- [Permit MCP Gateway vs withHuman](https://www.anchorterminal.com/compare/permit-mcp-gateway-vs-withhuman.md)\n- [Pushary vs withHuman](https://www.anchorterminal.com/compare/pushary-vs-withhuman.md)\n- [Restate vs withHuman](https://www.anchorterminal.com/compare/restate-vs-withhuman.md)\n- [Temporal vs withHuman](https://www.anchorterminal.com/compare/temporal-vs-withhuman.md)\n- [Trigger.dev vs withHuman](https://www.anchorterminal.com/compare/trigger-dev-vs-withhuman.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Hatchet vs withHuman",
        "url": ""
      }
    ],
    "description": "Hatchet scores 68.3 (B) to withHuman's 51.8 (D) for human approval. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Hatchet B 68.3",
      "withHuman D 51.8",
      "scores"
    ],
    "h1": "Hatchet vs withHuman",
    "image": "https://www.anchorterminal.com/assets/og/compare-hatchet-vs-withhuman.png",
    "path": "/compare/hatchet-vs-withhuman",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Hatchet vs withHuman for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/hatchet-vs-withhuman"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 630
  },
  "version": 1
}
