{
  "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-10T02:54:57.34456059Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 598,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 681,
          "p95ms24h": 1647,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "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-10T02:54:57.34456059Z"
      }
    },
    "answer": "Hatchet scores 68.3 (B) on agent readiness against Orkes Conductor Human tasks's 54 (C), and leads in 6 of 7 scored categories. Orkes Conductor Human tasks leads on security \u0026 auth.",
    "b": {
      "slug": "orkes-conductor",
      "name": "Orkes Conductor Human tasks",
      "vendor": "Orkes",
      "vendorUrl": "https://orkes.io",
      "kind": "platform",
      "category": "human-in-the-loop",
      "summary": "Workflow orchestration platform, built on the open-source Conductor, with a Human task that pauses a workflow, assigns a form to a user or group and resumes with the submitted answer.",
      "url": "https://www.anchorterminal.com/tools/orkes-conductor",
      "markdownUrl": "https://www.anchorterminal.com/tools/orkes-conductor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/orkes-conductor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/orkes-conductor.json",
      "repo": "https://github.com/conductor-oss/conductor",
      "license": "Apache-2.0 (Conductor OSS and SDKs), proprietary (Orkes Conductor)",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://developer.orkescloud.com/api",
      "packages": [
        {
          "registry": "pypi",
          "name": "conductor-python"
        },
        {
          "registry": "npm",
          "name": "@io-orkes/conductor-javascript"
        },
        {
          "registry": "pypi",
          "name": "conductor-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Create an application in Conductor to get an access key ID and secret, exchange them at `POST /api/token` for a JWT, and send that JWT in an `X-Authorization` header. Tokens can be given an expiry in milliseconds, and a negative value means no expiry. External reviewers are identified by email or group name from your own identity system.",
      "pricing": "paid",
      "pricingNotes": "Two editions on https://orkes.io/pricing. Developer Edition is free and hosted at developer.orkescloud.com, includes Human tasks, and is meant for individual developers, with no SLA, variable performance and rate limits that may change. Enterprise is priced through sales and adds up to a 99.99 per cent availability SLA, SOC 2 Type II and a technical account manager. The Cloud support policy lists 99.9 and 99.0 per cent uptime plans with service credits (https://orkes.io/cloud-support-policy/). Conductor OSS is free under Apache-2.0, but the forms, assignment policies and Human Tasks API are documented for Orkes Conductor.",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 19,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://orkes.io/content/reference-docs/operators/human",
      "llmsTxt": "https://orkes.io/content/llms.txt",
      "registryName": "io.github.conductor-oss/conductor-mcp",
      "capabilities": [
        "hitl.approve",
        "hitl.ask",
        "hitl.handoff",
        "hitl.audit",
        "agent.durable",
        "automation.workflows"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "open-source",
        "mcp",
        "llms-txt",
        "python",
        "typescript",
        "enterprise"
      ],
      "lastRelease": "2026-09-10",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54,
        "grade": "C",
        "agentReady": false,
        "rank": 696,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 81,
          "payments": 20,
          "reliability": 32,
          "schema": 65,
          "security": 71,
          "transparency": 44
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Escalation chains with a time limit per assignee and a choice of leaving the task open or failing the workflow. No built-in Slack or email prompt, so alerts need a trigger policy and a second workflow.",
        "bestFor": "Teams that already orchestrate agents as Conductor workflows and need formal routing, per-assignee deadlines and escalation without writing them.",
        "strengths": [
          "Escalation chains with a time limit per assignee and a choice of leaving the task open or failing the workflow",
          "Reviewers can be Conductor users or people in your own identity system, by email or group",
          "Human task search by state, assignee, claimant, full text and input or output fields",
          "Application keys with roles and per-resource permissions",
          "Published uptime commitments of 99.9 per cent with service credits, up to 99.99 on Enterprise"
        ],
        "weaknesses": [
          "No built-in Slack or email prompt, so alerts need a trigger policy and a second workflow",
          "Several objects to set up (form, task, workflow, application key) before the first approval",
          "Paid editions are contact sales only, and the free Developer Edition isn't for production",
          "No public status page or published API rate limits",
          "The MCP server has 19 tools but none for Human tasks, and no commit since January 2026"
        ],
        "agentNotes": [
          "Give every assignment you want to escalate from a non-zero `slaMinutes`, since 0 never expires and nothing can follow it",
          "Pick `TERMINATE` for risky actions so an unanswered approval fails the workflow instead of staying open to anyone",
          "Start approval workflows with an `idempotencyKey` and `RETURN_EXISTING`, so a retried start doesn't ask twice",
          "Refresh the JWT from `/api/token` with a set expiry instead of requesting one that never expires",
          "Fetch single doc pages, not llms.txt, which is the whole documentation in 2.57 MB"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 81,
          "payments": 20,
          "reliability": 32,
          "schema": 65,
          "security": 71,
          "transparency": 41
        },
        "provenanceScore": 47
      },
      "connect": {
        "http": "TOKEN=$(curl -s -X POST https://developer.orkescloud.com/api/token -H 'Content-Type: application/json' \\\n  -d \"{\\\"keyId\\\":\\\"$ORKES_KEY_ID\\\",\\\"keySecret\\\":\\\"$ORKES_KEY_SECRET\\\"}\" | jq -r .token)\ncurl -X POST https://developer.orkescloud.com/api/human/tasks/search -H \"X-Authorization: $TOKEN\" \\\n  -H 'Content-Type: application/json' -d '{\"searchType\":\"ADMIN\",\"start\":0,\"size\":10,\"states\":[\"ASSIGNED\"]}'",
        "config": {
          "mcpServers": {
            "conductor": {
              "args": [
                "--config",
                "/absolute/path/to/conductor-config.json"
              ],
              "command": "conductor-mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/hitl.approve",
        "tool": "https://letme.dev/orkes-conductor"
      },
      "alsoIn": [
        "workflow-automation"
      ],
      "area": "agent-runtime",
      "provenance": {
        "legalEntity": "Orkes, Inc.",
        "domain": "orkes.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": false,
        "terms": "https://orkes.io/cloud-services-agreement",
        "privacy": "https://orkes.io/privacy-policy",
        "statusPage": "",
        "changelog": "https://orkes.io/changelog",
        "securityTxt": "unknown",
        "checked": "2026-10-01",
        "notes": [
          "The privacy policy (last updated 2022-02-23) names Orkes, Inc. of Cupertino, California, and says data is stored on servers in the United States.",
          "The Developer Edition API runs on developer.orkescloud.com, not on orkes.io.",
          "The docs repository (orkes-io/docs) was last updated on 2026-07-06. Its static/llms.txt is the whole documentation in one 2.57 MB file.",
          "No public status page found. The Cloud support policy at orkes.io/cloud-support-policy sets uptime commitments by plan.",
          "We couldn't read security.txt or RDAP on 2026-10-01."
        ],
        "score": 47
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/orkes-conductor.json",
      "live": {
        "slug": "orkes-conductor",
        "probe": {
          "target": "https://developer.orkescloud.com/api",
          "method": "get",
          "lastAt": "2026-10-10T02:55:04.80956791Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 265,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 264,
          "p95ms24h": 319,
          "samples24h": 249,
          "samples30d": 2264,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "conductor-oss/conductor",
            "version": "v3.32.5",
            "released": "2026-09-25",
            "seenAt": "2026-10-09T17:11:25.090980068Z"
          },
          {
            "registry": "npm",
            "name": "@io-orkes/conductor-javascript",
            "version": "4.0.0",
            "seenAt": "2026-10-09T17:11:23.203076474Z"
          },
          {
            "registry": "pypi",
            "name": "conductor-mcp",
            "version": "0.1.9",
            "released": "2026-02-02",
            "seenAt": "2026-10-09T17:11:23.651858939Z"
          },
          {
            "registry": "pypi",
            "name": "conductor-python",
            "version": "2.0.0",
            "released": "2026-08-03",
            "seenAt": "2026-10-09T17:11:23.00601368Z"
          }
        ],
        "githubStars": 32272,
        "npmWeekly": 21034,
        "pypiWeekly": 27106,
        "securityTxt": {
          "url": "https://orkes.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:20.244586995Z"
        },
        "llmsTxt": {
          "url": "https://orkes.io/content/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:33.452451848Z"
        },
        "domain": {
          "domain": "orkes.io",
          "checkedAt": "2026-10-04T13:08:35.313759321Z"
        },
        "pages": [
          {
            "url": "https://orkes.io/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-09T18:42:49.196762217Z",
            "changedAt": "2026-10-05T15:58:49.564568736Z",
            "fingerprint": "c3c272b8ceab"
          },
          {
            "url": "https://orkes.io/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-09T18:42:53.50685027Z",
            "changedAt": "2026-10-05T15:58:54.015519133Z",
            "fingerprint": "60794a9ff9f0"
          },
          {
            "url": "https://orkes.io/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-09T18:42:55.47586796Z",
            "changedAt": "2026-10-05T15:58:55.93633372Z",
            "fingerprint": "1b1ff283612f"
          },
          {
            "url": "https://orkes.io/cloud-services-agreement",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:42:51.461902789Z",
            "changedAt": "2026-10-05T15:58:52.061432672Z",
            "fingerprint": "1427ed75b17a"
          }
        ],
        "updatedAt": "2026-10-10T02:55:04.80956791Z"
      }
    },
    "facts": [
      {
        "a": "Model platform",
        "b": "Model platform",
        "name": "Kind"
      },
      {
        "a": "Hatchet Technologies, Inc.",
        "b": "Orkes",
        "name": "Vendor"
      },
      {
        "a": "https://cloud.hatchet.run",
        "b": "https://developer.orkescloud.com/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0 (Conductor OSS and SDKs), proprietary (Orkes Conductor)",
        "name": "Licence"
      },
      {
        "a": "7",
        "b": "19",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.conductor-oss/conductor-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-08",
        "b": "2026-09-10",
        "name": "Last release"
      },
      {
        "a": "2025-07-17",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-18",
        "b": "2022-02-23",
        "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"
      },
      {
        "a": "none",
        "b": "2.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Hatchet scores 68.3 (B) on agent readiness against Orkes Conductor Human tasks's 54 (C), and leads in 6 of 7 scored categories. Orkes Conductor Human tasks leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Hatchet or Orkes Conductor Human tasks?"
      },
      {
        "answer": "Yes. Hatchet is open source (MIT). Orkes Conductor Human tasks is open source (Apache-2.0 (Conductor OSS and SDKs), proprietary (Orkes Conductor)).",
        "question": "Are Hatchet and Orkes Conductor Human tasks open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 66 against 32",
          "Schema \u0026 documentation, 85 against 65",
          "Agent ergonomics, 82 against 69",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 90 against 81",
          "Transparency \u0026 trust, 71 against 44"
        ],
        "also": null,
        "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, 71 against 62"
        ],
        "also": null,
        "goodFor": "Teams that already orchestrate agents as Conductor workflows and need formal routing, per-assignee deadlines and escalation without writing them.",
        "slug": "orkes-conductor",
        "watchFor": "No built-in Slack or email prompt, so alerts need a trigger policy and a second workflow"
      }
    ],
    "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-orkes-conductor.json",
        "title": "gotoHuman vs Orkes Conductor Human tasks",
        "url": "https://www.anchorterminal.com/compare/gotohuman-vs-orkes-conductor"
      },
      {
        "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-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/hatchet-vs-withhuman.json",
        "title": "Hatchet vs withHuman",
        "url": "https://www.anchorterminal.com/compare/hatchet-vs-withhuman"
      },
      {
        "json": "https://www.anchorterminal.com/compare/inngest-vs-orkes-conductor.json",
        "title": "Inngest vs Orkes Conductor Human tasks",
        "url": "https://www.anchorterminal.com/compare/inngest-vs-orkes-conductor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orkes-conductor-vs-permit-mcp-gateway.json",
        "title": "Orkes Conductor Human tasks vs Permit MCP Gateway",
        "url": "https://www.anchorterminal.com/compare/orkes-conductor-vs-permit-mcp-gateway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orkes-conductor-vs-pushary.json",
        "title": "Orkes Conductor Human tasks vs Pushary",
        "url": "https://www.anchorterminal.com/compare/orkes-conductor-vs-pushary"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orkes-conductor-vs-restate.json",
        "title": "Orkes Conductor Human tasks vs Restate",
        "url": "https://www.anchorterminal.com/compare/orkes-conductor-vs-restate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orkes-conductor-vs-temporal.json",
        "title": "Orkes Conductor Human tasks vs Temporal",
        "url": "https://www.anchorterminal.com/compare/orkes-conductor-vs-temporal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orkes-conductor-vs-trigger-dev.json",
        "title": "Orkes Conductor Human tasks vs Trigger.dev",
        "url": "https://www.anchorterminal.com/compare/orkes-conductor-vs-trigger-dev"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "by": 34,
        "edge": "hatchet",
        "hatchet": 66,
        "key": "reliability",
        "name": "Reliability",
        "orkes-conductor": 32,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "hatchet",
        "hatchet": 85,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "orkes-conductor": 65,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "hatchet",
        "hatchet": 82,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "orkes-conductor": 69,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "orkes-conductor",
        "hatchet": 62,
        "key": "security",
        "name": "Security \u0026 auth",
        "orkes-conductor": 71,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "hatchet",
        "hatchet": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "orkes-conductor": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 9,
        "edge": "hatchet",
        "hatchet": 90,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "orkes-conductor": 81,
        "weight": 7
      },
      {
        "by": 27,
        "edge": "hatchet",
        "hatchet": 71,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "orkes-conductor": 44,
        "weight": 7
      }
    ],
    "summary": "Hatchet scores 68.3 (B) on agent readiness against Orkes Conductor Human tasks's 54 (C), and leads in 6 of 7 scored categories. Orkes Conductor Human tasks 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.",
      "orkes-conductor": "Escalation chains with a time limit per assignee and a choice of leaving the task open or failing the workflow. No built-in Slack or email prompt, so alerts need a trigger policy and a second workflow."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor",
    "json": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.md",
    "slim": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.min.md"
  },
  "markdown": "Hatchet scores 68.3 (B) on agent readiness against Orkes Conductor Human tasks's 54 (C), and leads in 6 of 7 scored categories. Orkes Conductor Human tasks 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- Orkes Conductor Human tasks: grade C, 54/100, rank #696 of 950. Markdown https://www.anchorterminal.com/tools/orkes-conductor.md · JSON https://www.anchorterminal.com/api/v1/tools/orkes-conductor.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- Best workflow automation platforms with APIs for AI agents: https://www.anchorterminal.com/best/workflow-automation/index.md\n- All 108 workflows comparisons: https://www.anchorterminal.com/compare/workflow-automation/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 32\n- Schema \u0026 documentation, 85 against 65\n- Agent ergonomics, 82 against 69\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 90 against 81\n- Transparency \u0026 trust, 71 against 44\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### Orkes Conductor Human tasks (C)\n\nGood for: Teams that already orchestrate agents as Conductor workflows and need formal routing, per-assignee deadlines and escalation without writing them.\n\nAhead on:\n- Security \u0026 auth, 71 against 62\n\nWatch for: No built-in Slack or email prompt, so alerts need a trigger policy and a second workflow\n\n\n## Score by category\n\n| Category | Weight | Hatchet | Orkes Conductor Human tasks | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 66 | 32 | Hatchet +34 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 65 | Hatchet +20 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 69 | Hatchet +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 71 | Orkes Conductor Human tasks +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Hatchet +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 90 | 81 | Hatchet +9 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 44 | Hatchet +27 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **68.3 · B** | **54 · C** | |\n\n## Facts side by side\n\n| Fact | Hatchet | Orkes Conductor Human tasks |\n| --- | --- | --- |\n| Kind | Model platform | Model platform |\n| Vendor | Hatchet Technologies, Inc. | Orkes |\n| Hosted endpoint | `https://cloud.hatchet.run` | `https://developer.orkescloud.com/api` |\n| Transports | HTTP, stdio | HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 (Conductor OSS and SDKs), proprietary (Orkes Conductor) |\n| Tools exposed | 7 | 19 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.conductor-oss/conductor-mcp` |\n| Last release | 2026-10-08 | 2026-09-10 |\n| Terms last updated | 2025-07-17 | no date given |\n| Privacy policy last updated | 2026-08-18 | 2022-02-23 |\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| Agent reviews | none | 2.5/5 (2) |\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**Orkes Conductor Human tasks.** Escalation chains with a time limit per assignee and a choice of leaving the task open or failing the workflow. No built-in Slack or email prompt, so alerts need a trigger policy and a second workflow.\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### Orkes Conductor Human tasks\n\n1. Give every assignment you want to escalate from a non-zero `slaMinutes`, since 0 never expires and nothing can follow it\n2. Pick `TERMINATE` for risky actions so an unanswered approval fails the workflow instead of staying open to anyone\n3. Start approval workflows with an `idempotencyKey` and `RETURN_EXISTING`, so a retried start doesn't ask twice\n4. Refresh the JWT from `/api/token` with a set expiry instead of requesting one that never expires\n5. Fetch single doc pages, not llms.txt, which is the whole documentation in 2.57 MB\n\n## Questions\n\n### Which is better for AI agents, Hatchet or Orkes Conductor Human tasks?\n\nHatchet scores 68.3 (B) on agent readiness against Orkes Conductor Human tasks's 54 (C), and leads in 6 of 7 scored categories. Orkes Conductor Human tasks leads on security \u0026 auth.\n\n### Are Hatchet and Orkes Conductor Human tasks open source?\n\nYes. Hatchet is open source (MIT). Orkes Conductor Human tasks is open source (Apache-2.0 (Conductor OSS and SDKs), proprietary (Orkes Conductor)).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.json, and with the fewest tokens: https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"hatchet\", \"b\": \"orkes-conductor\"}`. From a terminal: `anchor compare hatchet orkes-conductor`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/hatchet.json and https://www.anchorterminal.com/api/v1/tools/orkes-conductor.json\n\n## Other comparisons with Hatchet or Orkes Conductor Human tasks\n\n- [gotoHuman vs Hatchet](https://www.anchorterminal.com/compare/gotohuman-vs-hatchet.md)\n- [gotoHuman vs Orkes Conductor Human tasks](https://www.anchorterminal.com/compare/gotohuman-vs-orkes-conductor.md)\n- [Hatchet vs Inngest](https://www.anchorterminal.com/compare/hatchet-vs-inngest.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- [Hatchet vs withHuman](https://www.anchorterminal.com/compare/hatchet-vs-withhuman.md)\n- [Inngest vs Orkes Conductor Human tasks](https://www.anchorterminal.com/compare/inngest-vs-orkes-conductor.md)\n- [Orkes Conductor Human tasks vs Permit MCP Gateway](https://www.anchorterminal.com/compare/orkes-conductor-vs-permit-mcp-gateway.md)\n- [Orkes Conductor Human tasks vs Pushary](https://www.anchorterminal.com/compare/orkes-conductor-vs-pushary.md)\n- [Orkes Conductor Human tasks vs Restate](https://www.anchorterminal.com/compare/orkes-conductor-vs-restate.md)\n- [Orkes Conductor Human tasks vs Temporal](https://www.anchorterminal.com/compare/orkes-conductor-vs-temporal.md)\n- [Orkes Conductor Human tasks vs Trigger.dev](https://www.anchorterminal.com/compare/orkes-conductor-vs-trigger-dev.md)\n- [Orkes Conductor Human tasks vs withHuman](https://www.anchorterminal.com/compare/orkes-conductor-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 Orkes Conductor Human tasks",
        "url": ""
      }
    ],
    "description": "Hatchet scores 68.3 (B) to Orkes Conductor Human tasks's 54 (C) for human approval. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Hatchet B 68.3",
      "Orkes Conductor Human tasks C 54",
      "scores"
    ],
    "h1": "Hatchet vs Orkes Conductor Human tasks",
    "image": "https://www.anchorterminal.com/assets/og/compare-hatchet-vs-orkes-conductor.png",
    "path": "/compare/hatchet-vs-orkes-conductor",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Hatchet vs Orkes Conductor Human tasks for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/hatchet-vs-orkes-conductor"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 630
  },
  "version": 1
}
