{
  "data": {
    "a": {
      "slug": "deepseek-harness",
      "name": "DeepSeek Harness (dsh)",
      "vendor": "DeepSeek",
      "vendorUrl": "https://deepseek-harness.github.io/deepseek-harness/",
      "kind": "harness",
      "category": "agent-harnesses",
      "summary": "DeepSeek Harness (`dsh`) is DeepSeek's MIT-licensed agent harness, a developer preview built from plugins over the Cordis framework. It runs as a local Web UI, a one-shot headless command, an ACP server or a JSON-RPC server for its Python SDK.",
      "url": "https://www.anchorterminal.com/tools/deepseek-harness",
      "markdownUrl": "https://www.anchorterminal.com/tools/deepseek-harness.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/deepseek-harness.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/deepseek-harness.json",
      "dns": "deepseek-harness.grade.anchorterminal.com",
      "repo": "https://github.com/deepseek-ai/deepseek-harness",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@deepseek-ai/dsh"
        },
        {
          "registry": "pypi",
          "name": "deepseek-harness-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "No account with the project. A model key goes in the environment, `$DSH_HOME/.credentials.yaml`, a `.env` file or the Web UI settings, for DeepSeek (`DEEPSEEK_API_KEY`), a catalogue provider or a custom OpenAI or Anthropic-compatible endpoint, including a self-hosted one. The Web UI listens on loopback and authenticates each request.",
      "pricing": "free",
      "pricingNotes": "Free and MIT, with nothing to buy for the harness. The owner pays the model provider, usually DeepSeek's API at its published per-token rates, or nothing with a self-hosted model.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the CLI reference or the docs index (checked 2026-10-18).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 244843,
        "pypiWeekly": null,
        "asOf": "2026-10-18"
      },
      "docsUrl": "https://deepseek-harness.github.io/deepseek-harness/",
      "llmsTxt": "https://deepseek-harness.github.io/deepseek-harness/llms.txt",
      "capabilities": [
        "agent.harness",
        "agent.mcp-client",
        "agent.multi-agent"
      ],
      "tags": [
        "official",
        "harness",
        "coding-agent",
        "cli",
        "open-source",
        "typescript",
        "python",
        "mcp",
        "acp",
        "llms-txt",
        "telemetry-default-on",
        "pre-1.0",
        "preview",
        "free",
        "no-card",
        "local"
      ],
      "lastRelease": "2026-10-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.5,
        "grade": "D",
        "agentReady": false,
        "rank": 1011,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 38,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 71,
          "payments": 60,
          "reliability": 38,
          "schema": 77,
          "security": 40,
          "transparency": 53
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -8,
        "negativeNotes": [
          "2026-09-08. CVE-2026-82533 (CVSS 4.0 9.4 Critical, published by VulnCheck), also GitHub-reviewed as GHSA-8m2g-8cgm-3vcp for `@deepseek-ai/dsh-client-connection`. The local HTTP agent-control API trusted a client-supplied loopback Host header, so a sandboxed tool process could reach it, escape the sandbox and turn off approvals, and a tunnelled port exposed it remotely. Fixed in 0.1.2-alpha.1 with commit 3e24087 (25 August 2026), which every later version carries. A third-party Critical, fixed, under two months old, -2. https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/82xxx/CVE-2026-82533.json",
          "2026-11-04. CVE-2026-82033 (CVSS 4.0 8.6 High, published by VulnCheck). The web profile's HTTP and WebSocket RPC control plane had no authentication before 0.1.2-alpha.2, so any local process, including one run by another OS user, could call session methods, run the agent's bash and file tools as the victim and approve tool calls. Fixed in 0.1.2-alpha.2 (30 August 2026). The record lists commit 3e24087, the fix for CVE-2026-82533, among the affected code, so this is a second flaw and not a second record of the first. A third-party High, fixed, -2. https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/82xxx/CVE-2026-82033.json",
          "2026-10-16. CVE-2026-95182 (untrusted search path leading to code execution, CISA-ADP CVSS 3.1 10.0) and CVE-2026-95183 (prompt injection through context compaction, CISA-ADP 8.8), both assigned by MITRE against commit c291e796 (10 September 2026, in 0.1.6-alpha.1 and later) and resting on third-party write-ups we didn't read. No fix is known. Counted one by one as third-party Critical and High records, -2 each. https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/95xxx/CVE-2026-95182.json",
          "2026-09-28 to 2026-10-26. Eight VulDB records, each saying the vendor was contacted early and did not respond, are counted at nothing under this run's reading of third-party records (Mediums uncounted, Lows free). CVE-2026-101078, CVE-2026-101102, CVE-2026-108788 and CVE-2026-108789 (CVSS 4.0 Medium), CVE-2026-101131 and CVE-2026-101132 (28 September and 12 October), and CVE-2026-116367 (sandbox createContext, to 0.1.0-rc.5) and CVE-2026-116368 (browser auth improper authorization, 0.2.0-rc.0 to rc.2, CVSS 4.0 6.9 Medium, 3.1 7.3) of 26 October. None of them lists a fixed version. https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/116xxx/CVE-2026-116368.json"
        ],
        "verdict": "Headless runs, ACP and a Python SDK make it easy to drive from a script, and approvals fail closed when nobody can answer. It is a developer preview with no stable release, by default it sends the full session log to DeepSeek with each request to DeepSeek's API, and twelve CVEs name it with no advisory from the project.",
        "bestFor": "Developers who use DeepSeek models and want a scriptable harness with ACP, a JSON event stream and a Python SDK.",
        "strengths": [
          "MIT licence, with headless `--json`, an ACP stdio server and a JSON-RPC server for the Python SDK from one `dsh` command",
          "In headless and ACP runs an approval nobody answers is denied, so the default `workspace-write` plus `ask` preset fails closed",
          "File writes are confined to the workspace by bwrap or Landlock on Linux, Seatbelt on macOS and restricted tokens on Windows",
          "`--dump-config-schema` prints a JSON Schema 2020-12 document for the composed configuration, and the docs serve llms.txt and Markdown",
          "38 `dsh-v` tags between 17 August and 4 November 2026, with dated upgrade guides naming breaking changes for each pre-release since 29 September"
        ],
        "weaknesses": [
          "By default each request to DeepSeek's official API carries the session log, including message text, tool arguments and results, up to 8 MiB a request",
          "Developer preview with no stable release. npm `latest` was 0.2.0-rc.2 on 18 October, and there is no changelog, only per-version upgrade guides",
          "The sandbox confines writes only. Reads and network access are not confined, and `web_fetch` runs without approval",
          "No SECURITY.md or security.txt. Twelve CVEs from September to November 2026 name it, eight saying the vendor did not respond",
          "The Python SDK's minimal profile pins `danger-full-access` with no approval service, and external pull requests are not accepted",
          "Commit 2f01ad5 (20 October 2026, in 0.2.2 pre-releases) lets `web_fetch` reach loopback, private-network and cloud metadata hosts without approval"
        ],
        "agentNotes": [
          "Set `enabled: false` on the `session-log-deepseek` row in a profile patch before running on private code. Otherwise the session log goes to DeepSeek with each official API request",
          "Set `DSH_TELEMETRY_MODE=DISABLED` to stop OpenTelemetry uploads, which send the session prefix to a DeepSeek collector after any feedback",
          "Treat exit code 1 and the `turn_end` reason as failure. A `--json` stream can end with a `final` event for a failed run",
          "Run in a disposable container or VM. The sandbox doesn't confine reads or network, and SAFETY.md says the project has had no security audit",
          "Pin the version. npm `latest` and `next` differ, the README warns of breaking changes, and 0.2.2 pre-releases let `web_fetch` reach private hosts"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.5
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 71,
          "payments": 60,
          "reliability": 38,
          "schema": 77,
          "security": 40,
          "transparency": 59
        },
        "provenanceScore": 47,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx @deepseek-ai/dsh web   # or: python -m pip install deepseek-harness-sdk",
        "headless": {
          "command": "npx @deepseek-ai/dsh --profile headless --json \"$TASK\"",
          "env": {
            "DEEPSEEK_API_KEY": "\u003ckey\u003e",
            "DSH_TELEMETRY_MODE": "DISABLED"
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/deepseek-harness"
      },
      "sameCompany": [
        "deepseek-superagent"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "DeepSeek (the LICENSE names DeepSeek, and no legal entity is named in the repository or the docs)",
        "domain": "deepseek-harness.github.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-04",
        "notes": [
          "The project publishes no terms or privacy policy of its own. Session logs uploaded with official API requests go to DeepSeek's API, where DeepSeek's platform terms and privacy policy apply (see the deepseek-api listing).",
          "No SECURITY.md in the repository root or .github, and deepseek-harness.github.io/.well-known/security.txt and www.deepseek.com/.well-known/security.txt returned 404 on 18 October 2026.",
          "No CHANGELOG.md in the repository and no release notes on the docs site. Versions are on npm and PyPI only.",
          "GitHub's web pages and API were not read (403). A clone of 4 November has no security policy file and 38 `dsh-v` tags. The earlier issue and pull-request counts came from shields.io badges and are struck. DeepSeek's own hosts are paused on DeepSeek's terms in this run, so www.deepseek.com/.well-known/security.txt is per the 18 October check."
        ],
        "score": 47
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/deepseek-harness.json",
      "live": {
        "slug": "deepseek-harness",
        "versions": [
          {
            "registry": "npm",
            "name": "@deepseek-ai/dsh",
            "version": "0.2.2-rc.1",
            "seenAt": "2026-11-05T21:25:56.002169468Z"
          },
          {
            "registry": "pypi",
            "name": "deepseek-harness-sdk",
            "version": "0.2.1rc2",
            "released": "2026-10-17",
            "seenAt": "2026-11-05T21:25:56.240164876Z"
          }
        ],
        "githubStars": 273728,
        "npmWeekly": 797069,
        "pypiWeekly": 110003,
        "securityTxt": {
          "url": "https://deepseek-harness.github.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-05T15:56:37.898840268Z"
        },
        "llmsTxt": {
          "url": "https://deepseek-harness.github.io/deepseek-harness/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-05T15:25:52.073216446Z"
        },
        "domain": {
          "domain": "github.io",
          "checkedAt": "2026-11-01T14:18:40.30630652Z"
        },
        "github": {
          "repo": "deepseek-ai/deepseek-harness",
          "checkedAt": "2026-11-02T08:43:40.230759483Z",
          "stars": 268861,
          "archived": false,
          "issuesEnabled": false,
          "pushedAt": "2026-10-30T06:54:11Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "ci": {
            "branch": "master",
            "runs": 5,
            "success": 3,
            "failure": 2,
            "other": 0,
            "latest": "failure",
            "latestAt": "2026-08-13T12:45:36Z"
          }
        },
        "updatedAt": "2026-11-05T21:25:56.474150779Z"
      }
    },
    "answer": "OpenAI Agents API scores 73.3 (BB) on agent readiness against DeepSeek Harness (dsh)'s 48.5 (D), and leads in 6 of 7 scored categories. DeepSeek Harness (dsh) leads on payments \u0026 pricing.",
    "b": {
      "slug": "openai-agents-api",
      "name": "OpenAI Agents API",
      "vendor": "OpenAI",
      "vendorUrl": "https://openai.com/index/introducing-the-agents-api/",
      "kind": "http-api",
      "category": "agent-harnesses",
      "summary": "The OpenAI Agents API runs OpenAI's managed Codex harness as a hosted service. One call creates a session with a model, tools, MCP servers, subagents and an OpenAI-hosted or self-hosted sandbox, and OpenAI runs the loop.",
      "url": "https://www.anchorterminal.com/tools/openai-agents-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/openai-agents-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/openai-agents-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/openai-agents-api.json",
      "dns": "openai-agents-api.grade.anchorterminal.com",
      "license": "Proprietary hosted API under OpenAI's Services Agreement. The SDKs are Apache 2.0",
      "transports": [
        "https"
      ],
      "remoteUrl": "https://api.openai.com/v1/agents/sessions",
      "packages": [
        {
          "registry": "pypi",
          "name": "openai"
        },
        {
          "registry": "npm",
          "name": "openai"
        }
      ],
      "auth": "api-key",
      "authNotes": "An OpenAI project API key as a Bearer token, with the header `OpenAI-Beta: agents=v1`. Project keys can be restricted per endpoint or read-only, and service accounts and workload identity federation are available, per the openai-api listing. Signing up and creating a key need a person in a browser.",
      "pricing": "usage",
      "pricingNotes": "No fee for the API itself. Model tokens are billed at the chosen model's API rates, OpenAI tools at their built-in rates (web search $10.00 per 1,000 calls plus content tokens), and OpenAI-hosted sandboxes at container rates, $0.03 for 1 GB, $0.12 for 4 GB, $0.48 for 16 GB and $1.92 for 64 GB per 20-minute session, billed by the minute with a 5-minute minimum. Since 9 October sandbox compute is billed only during active turns (checked 2026-11-06).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Agents API guides or on OpenAI's pricing page; billing is to an OpenAI account (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://developers.openai.com/api/docs/guides/agents-api/overview",
      "llmsTxt": "https://developers.openai.com/api/docs/llms.txt",
      "capabilities": [
        "agent.harness"
      ],
      "tags": [
        "official",
        "hosted",
        "beta",
        "usage-priced",
        "llms-txt",
        "status-page",
        "mcp-client",
        "sandbox",
        "subagents",
        "webhooks",
        "soc2",
        "iso27001",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 73.3,
        "grade": "BB",
        "agentReady": true,
        "rank": 99,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 87,
          "payments": 30,
          "reliability": 60,
          "schema": 88,
          "security": 87,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "OpenAI's hosted agent runtime, the Codex harness behind one session call, with MCP, functions, web search, computer use, subagents and sandboxes on OpenAI or your own infrastructure. Documentation, errors and SDKs are thorough. It's still public beta, can't use Zero Data Retention and keeps data in the United States only.",
        "bestFor": "Teams that want OpenAI to run the agent loop, with sandboxes, MCP tools and subagents, and are fine with a beta API, US-only data residency and no Zero Data Retention.",
        "strengths": [
          "One session call configures the model, tools, MCP servers, subagents and the sandbox, and OpenAI runs and recovers the loop",
          "Sandboxes on OpenAI or self-hosted, with guides for ten providers including E2B, Daytona, Modal, Cloudflare and Vercel",
          "An errors guide with codes per status and turn, Retry-After and a check-before-retry procedure",
          "Webhooks, streamed events, tracing and usage views for each session",
          "SDK examples in Python, JavaScript, Go, Java and Ruby",
          "Status page with its own Agents component"
        ],
        "weaknesses": [
          "Public beta since 10 September 2026 behind the agents=v1 beta header, with no GA date",
          "Not eligible for Zero Data Retention, and data residency is United States only",
          "No idempotency key for session or turn requests; retries depend on checking state first",
          "One API-wide major outage on 29 September included it, plus several smaller incidents since release",
          "No retention period stated for published artifacts after a sandbox expires"
        ],
        "agentNotes": [
          "POST https://api.openai.com/v1/agents/sessions with a project key and the header OpenAI-Beta: agents=v1, or use client.beta.agents in the SDKs",
          "Before retrying, retrieve the session and turn and check which actions completed, since there's no idempotency key",
          "Set the sandbox network to restricted with an allowlist of up to 100 hosts when the agent doesn't need the open web",
          "Save files from /workspace/outputs before deleting a session; no retention period is stated for artifacts",
          "Don't send data that needs Zero Data Retention or non-US residency; the Agents API supports neither"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 73.3
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 87,
          "payments": 30,
          "reliability": 60,
          "schema": 88,
          "security": 87,
          "transparency": 75
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.openai.com/v1/agents/sessions \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -H \"OpenAI-Beta: agents=v1\" \\\n  -H \"Content-Type: application/json\" \\\n  -d @session.json   # model, tools, environment and input, per the quickstart"
      },
      "letme": {
        "capability": "https://letme.dev/agent.harness",
        "tool": "https://letme.dev/openai-agents-api"
      },
      "sameCompany": [
        "openai-api",
        "openai-embeddings",
        "openai-guardrails",
        "openai-moderation",
        "openai-image-api",
        "openai-sora",
        "openai-speech-to-text",
        "gpt-live",
        "openai-realtime",
        "openai-agents-sdk",
        "openai-decisions-api",
        "openai-codex",
        "gpt-oss-120b",
        "gpt-oss-20b"
      ],
      "area": "frameworks",
      "provenance": {
        "legalEntity": "OpenAI OpCo, LLC",
        "domain": "openai.com",
        "domainRegistered": "2007-01-19",
        "domainNote": "openai.com was registered in 2007, before OpenAI existed, per the openai-api listing.",
        "endpointOnVendorDomain": true,
        "terms": "https://openai.com/policies/services-agreement/",
        "privacy": "https://openai.com/policies/privacy-policy/",
        "statusPage": "https://status.openai.com",
        "changelog": "https://developers.openai.com/api/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "The endpoint is on api.openai.com, the same host as the rest of the OpenAI API. Terms, privacy, security.txt and the domain are the openai-api listing's readings."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/openai-agents-api.json",
      "live": {
        "slug": "openai-agents-api",
        "probe": {
          "target": "https://api.openai.com/v1/agents/sessions",
          "method": "get",
          "lastAt": "2026-11-06T09:47:41.371658489Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 162,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 148,
          "p95ms24h": 166,
          "samples24h": 47,
          "samples30d": 47,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 47,
              "ok": 47
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.openai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-06T09:43:26.425829944Z"
        },
        "updatedAt": "2026-11-06T09:47:41.371658489Z"
      }
    },
    "edges": [
      {
        "by": 47,
        "category": "security",
        "leads": "openai-agents-api",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Harness reading of the framework checklist, 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. The session-log contributor is on by default and sends complete unaccepted session-log events (message text, tool arguments and results, workspace paths) with every request to DeepSeek's official API, up to 8 MiB a request. Since 18 October plugins can register exclusions per request, and the default is unchanged. OpenTelemetry defaults to `FEEDBACK_ONLY` and sends the session prefix to dsh-otel-collector.deepseeksvc.com after any feedback or rating. Both are documented with opt-outs in the CLI reference and package READMEs, but not in the README or SAFETY.md. Keys stay local (8). `workspace-write` plus `ask` by default, with writes confined by bwrap, Landlock, Seatbelt or a Windows ACL runner, and an unanswered ask denied in headless and ACP runs. Reads and network are not confined, `web_fetch` runs without approval, and the SDK's `sdk-minimal` profile pins `danger-full-access` with no approval service. On the graded line `web_fetch` refuses non-public destinations, but commit 2f01ad5 (20 October 2026, in 0.2.2-alpha.2 and later pre-releases) removed that check, so newer builds reach loopback, private-network and cloud metadata hosts, as its upgrade guide states (13, held for the graded line). SAFETY.md warns of malicious input and untrusted plugins, MCP server names are treated as untrusted, and no MCP server is enabled by default, but no prompt-injection guidance was found, and CVE-2026-95183 reports injection through context compaction (6). Local JSONL session logs record approval decisions as audit events (12). No SECURITY.md or security policy file in a clone of 4 November, no security.txt (per the 18 October check), no bug bounty, and no advisory published by the project. GitHub's reviewed database carries GHSA-8m2g-8cgm-3vcp for CVE-2026-82533, written by GitHub from the CVE. SAFETY.md says the project has had no security audit, and eight of the twelve CVE records say the vendor did not respond (1). 8 + 13 + 6 + 12 + 1 = 40.",
          "b": "Project keys with restricted per-endpoint permissions, service accounts and workload identity, per the openai-api listing; we didn't confirm a key can be limited to /v1/agents (27 of 30). Automatic review for approvals, a sandbox network restricted to a host allowlist, vaults for secrets and a sandbox security guide (17 of 20). The agent reads web pages, MCP results and browser content; the sandbox security guide and approval flow are the mitigations, with no prompt-injection guide of its own found (8 of 15). Tracing, observability and usage per session and admin audit logs (15). SOC 2 Type 2, ISO 27001 family, Bugcrowd bounty and a disclosure policy, per the openai-api listing (20). Not ZDR-eligible and US residency only, recorded under transparency. 27 + 17 + 8 + 15 + 20 = 87."
        },
        "scores": {
          "a": 40,
          "b": 87
        }
      },
      {
        "by": 32,
        "category": "transparency",
        "leads": "openai-agents-api",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT, Copyright 2026 DeepSeek, with third-party licences in THIRD_PARTY_NOTICES.md (30). The package READMEs state what leaves the machine, the defaults, the collector address and that exports can include message text, tool arguments, results and workspace paths, but the project has no privacy policy or retention statement of its own, and uploads fall under DeepSeek's platform policy (14). The README warns of breaking changes, and per-version upgrade guides name removals and migrations, dated only by their pre-release, with no changelog or deprecation policy (3). Telemetry is disclosed with opt-outs by setting, Web switch and environment variable, though only in reference pages and not at the top of the README or in SAFETY.md (12). A Desktop product-analytics package (README since 24 September 2026) reports interaction events with `device_id` and `user_id` by default and no user-facing control, disclosed in its README. The Desktop app is outside the listed packages and the npm Web UI never sends these events, so no term. 30 + 14 + 3 + 12 = 59.",
          "b": "Closed service with clear terms, Apache-2.0 SDKs (15). Session state retained until deleted, deletable sessions and artifacts, not ZDR-eligible, US residency only, and the data-controls guide agrees; no retention period for artifacts after a sandbox expires (25 of 30). Dated deprecation notices with minimum periods for GA models; a beta API can change faster (15 of 20). Subprocessors and processing countries listed, per the openai-api listing (20). 15 + 25 + 15 + 20 = 75."
        },
        "scores": {
          "a": 53,
          "b": 85
        }
      },
      {
        "by": 30,
        "category": "payments",
        "leads": "deepseek-harness",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Self-hosted rule, as for the other open-source harnesses. No payment protocol (0). The harness is free under MIT with nothing to buy (20). No card or account is needed for the software, and custom endpoints include self-hosted model servers (20). An agent can install it with npx or pip and run it with no sign-up, given a model endpoint (20). DeepSeek's API is a separate purchase. 0 + 20 + 20 + 20 = 60.",
          "b": "No machine payment protocol (0). Model, tool and container prices published without a login, and no fee for the API itself (20). The Free tier reading of the openai-api listing, half (10). Sign-up in a browser (0). 0 + 20 + 10 + 0 = 30."
        },
        "scores": {
          "a": 60,
          "b": 30
        }
      },
      {
        "by": 22,
        "category": "reliability",
        "leads": "openai-agents-api",
        "name": "Reliability",
        "reasons": {
          "a": "Local-package reading, graded on npm `latest`, which the README's `npx @deepseek-ai/dsh` installs (0.2.0-rc.2 per the 18 October check; npm not re-read on 4 November). Official npm package with Node 22.19+ and 24+ stated, and a Python wheel for Python 3.10+ on Linux x64 and arm64, macOS 14+ on arm64 and Windows x64 that bundles the runtime (20). Public CI. ci.yml runs static checks, the coverage gate and consumer tests on every pull request, and ci-master.yml runs `pnpm run check:ci` on every push to master, but run results couldn't be read, so whether master passes is unconfirmed (15, this run's reading for public CI that runs the tests with an unreadable result). CONTRIBUTING.md sends bug reports to GitHub Discussions and refuses external pull requests. Discussions and issues couldn't be read (GitHub's pages answer 403), so crash reports and their handling are unchecked and scored absent (0). Alpha, next and latest dist-tags separate channels. Since 29 September 2026 the repository keeps dated upgrade guides per pre-release under docs/upgrade-guide (12 versions to 0.2.2-alpha.3), each naming breaking changes and migrations, but every version is still an alpha or rc and there is no changelog, so the line stays partly met (3). Developer preview, no 1.0 or stable release (0). 20 + 15 + 0 + 3 + 0 = 38.",
          "b": "Read as a hosted API. status.openai.com has an Agents component under APIs (20). Since release on 10 September (57 days, not 90), the feed names the Agents API in a degraded-performance incident on 14 September, the elevated errors across ChatGPT, Codex and the API on 29 September (the openai-api listing reads that one as a major, 17:52 to 23:14 UTC), computer use issues and degraded workspace agents on 6 and 7 October, degraded performance across the APIs for 22 minutes on 21 October, and overbilling for hosted containers on 19 September. One major, the rest minor (10). Rate limits come from the shared guide, published per tier and model with headers, and the errors page adds a Files API allowance on session creation (15). 429 and 503 guidance with Retry-After, capped backoff and a check-then-retry procedure for turns (15). The Scale Tier SLA in the openai-api listing isn't shown to cover a beta API (0). Public beta behind the agents=v1 header (0). 20 + 10 + 15 + 15 + 0 + 0 = 60."
        },
        "scores": {
          "a": 38,
          "b": 60
        }
      },
      {
        "by": 16,
        "category": "maintenance",
        "leads": "openai-agents-api",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Recency follows what a default install gets. npm `latest` was 0.2.0-rc.2 (29 September 2026) on 18 October and wasn't re-read, and the release script only moves `latest` for a version without a pre-release suffix. `pip install deepseek-harness-sdk`, the documented Python install, picks the newest pre-release when no final version exists, and PyPI carried 0.2.1rc2 on 17 October per the 18 October feed reading (30). 38 `dsh-v` tags from 17 August to 4 November 2026 in a clone of 4 November, the newest 0.2.2-rc.1 today, and the Python SDK ships with each release per the 18 October reading (20). CONTRIBUTING.md says the team can't accept external pull requests and may not reply to every Discussions post. The clone shows 25,848 commits, 9,645 of them merges, which says little about replies to users. Reply times in Discussions are unchecked (5). The Python SDK ships with each release, still as a pre-release (10). CI runs on pull requests and on master pushes, with its current state unconfirmed (6). 30 + 20 + 5 + 10 + 6 = 71.",
          "b": "Closed API. Last dated change 16 October 2026, Ultrafast mode and document skills (30). Four dated changelog entries in the 57 days since release, 10 September, 29 September, 9 October and 16 October (20). Changelog and help centre, as the openai-api listing reads them (12 of 15). Official SDKs carry beta.agents (15). SDK CI, per the openai-api listing (10). 30 + 20 + 12 + 15 + 10 = 87."
        },
        "scores": {
          "a": 71,
          "b": 87
        }
      },
      {
        "by": 12,
        "category": "ergonomics",
        "leads": "openai-agents-api",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Harness reading, scored on what a pipeline driving it has to supply. Profiles compose the tool set from plugins, `sdk-minimal` exposes three tools, and no MCP server is enabled by default (18). Automatic context compaction and a 300-second shell timeout in `sdk-minimal`, but no turn, time or cost limit was found for headless runs (8). Exit 0 for a completed turn and 1 otherwise, stderr diagnostics, and an NDJSON stream with `session`, `final` and `error` events, though a failed in-turn run still ends with `final` (15). `--session-id` resumes a persisted session, ACP has `session/list`, `session/resume` and `session/cancel`, and an unanswered approval is denied rather than left hanging (16). One-argument headless runs, ACP and a Python SDK, and the repository also holds a TypeScript SDK client (`@deepseek-ai/dsh-sdk-client`) that the Python guide mentions once. Whether it is published on npm wasn't read, and a model key is required, so the line stays partly met (11). 18 + 8 + 15 + 16 + 11 = 68.",
          "b": "Read as an API an agent drives. Context is compacted automatically, and session budgets and streamed events keep output sized (20 of 25). Sessions can be listed, continued and steered, events streamed or sent by webhook, artifacts fetched (15 of 20). Actionable error codes with recovery steps (20). No idempotency key; a documented check-then-retry procedure (10 of 20). One session call with defaults (medium sandbox, network enabled), SDKs in five languages (15). 20 + 15 + 20 + 10 + 15 = 80."
        },
        "scores": {
          "a": 68,
          "b": 80
        }
      }
    ],
    "facts": [
      {
        "a": "Agent harness",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DeepSeek",
        "b": "OpenAI",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.openai.com/v1/agents/sessions",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "https",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary hosted API under OpenAI's Services Agreement. The SDKs are Apache 2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-17",
        "b": "2026-10-16",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "245k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "OpenAI Agents API scores 73.3 (BB) on agent readiness against DeepSeek Harness (dsh)'s 48.5 (D), and leads in 6 of 7 scored categories. DeepSeek Harness (dsh) leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, DeepSeek Harness (dsh) or OpenAI Agents API?"
      },
      {
        "answer": "No hosted endpoint is listed for DeepSeek Harness (dsh). OpenAI Agents API has a hosted endpoint at https://api.openai.com/v1/agents/sessions.",
        "question": "Can an agent call DeepSeek Harness (dsh) and OpenAI Agents API without installing anything?"
      },
      {
        "answer": "DeepSeek Harness (dsh) is open source (MIT). No open-source release is listed for OpenAI Agents API.",
        "question": "Are DeepSeek Harness (dsh) and OpenAI Agents API open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 60 against 30"
        ],
        "also": [
          "Free to start without a card",
          "Open source"
        ],
        "goodFor": "Developers who use DeepSeek models and want a scriptable harness with ACP, a JSON event stream and a Python SDK.",
        "slug": "deepseek-harness",
        "watchFor": "By default each request to DeepSeek's official API carries the session log, including message text, tool arguments and results, up to 8 MiB a request"
      },
      {
        "aheadOn": [
          "Reliability, 60 against 38",
          "Schema \u0026 documentation, 88 against 77",
          "Agent ergonomics, 80 against 68",
          "Security \u0026 auth, 87 against 40",
          "Maintenance \u0026 community, 87 against 71",
          "Transparency \u0026 trust, 85 against 53"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where DeepSeek Harness (dsh) loses 8 points for them"
        ],
        "goodFor": "Teams that want OpenAI to run the agent loop, with sandboxes, MCP tools and subagents, and are fine with a beta API, US-only data residency and no Zero Data Retention.",
        "slug": "openai-agents-api",
        "watchFor": "Public beta since 10 September 2026 behind the agents=v1 beta header, with no GA date"
      }
    ],
    "history": {
      "deepseek-harness": [
        {
          "causes": [
            "security",
            "method"
          ],
          "date": "2026-11-04",
          "delta": -1,
          "from": 49.5,
          "fromGrade": "D",
          "to": 48.5,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 49.2,
          "fromGrade": "D",
          "to": 49.5,
          "toGrade": "D"
        }
      ],
      "openai-agents-api": null
    },
    "job": {
      "capability": "agent.harness",
      "name": "Agent harnesses"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-deepseek-harness.json",
        "title": "Agent Zero vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-agents-api.json",
        "title": "Agent Zero vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/agent-zero-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-deepseek-harness.json",
        "title": "Aider vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/aider-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aider-vs-openai-agents-api.json",
        "title": "Aider vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/aider-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-deepseek-harness.json",
        "title": "Amp vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/amp-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amp-vs-openai-agents-api.json",
        "title": "Amp vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/amp-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-deepseek-harness.json",
        "title": "Antigravity CLI vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-agents-api.json",
        "title": "Antigravity CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-deepseek-harness.json",
        "title": "Auggie CLI vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/auggie-vs-openai-agents-api.json",
        "title": "Auggie CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/auggie-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-deepseek-harness.json",
        "title": "AXLR vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/axlr-vs-openai-agents-api.json",
        "title": "AXLR vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/axlr-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-deepseek-harness.json",
        "title": "Claude Code vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-code-vs-openai-agents-api.json",
        "title": "Claude Code vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/claude-code-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-deepseek-harness.json",
        "title": "Cline vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/cline-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cline-vs-openai-agents-api.json",
        "title": "Cline vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/cline-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.json",
        "title": "Crush vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/crush-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crush-vs-openai-agents-api.json",
        "title": "Crush vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/crush-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-deepseek-harness.json",
        "title": "Cursor CLI vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cursor-cli-vs-openai-agents-api.json",
        "title": "Cursor CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/cursor-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-deepseek-superagent.json",
        "title": "DeepSeek Harness (dsh) vs dsh-superagent (DeepSeek)",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-deepseek-superagent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-devin.json",
        "title": "DeepSeek Harness (dsh) vs Devin",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-devin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-droid-cli.json",
        "title": "DeepSeek Harness (dsh) vs Droid CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-droid-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.json",
        "title": "DeepSeek Harness (dsh) vs Pi",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-gemini-cli.json",
        "title": "DeepSeek Harness (dsh) vs Gemini CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-gemini-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-github-copilot-cli.json",
        "title": "DeepSeek Harness (dsh) vs GitHub Copilot CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-github-copilot-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-goose.json",
        "title": "DeepSeek Harness (dsh) vs goose",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-goose"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harness2.json",
        "title": "DeepSeek Harness (dsh) vs Harness²",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harness2"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harnessrouter.json",
        "title": "DeepSeek Harness (dsh) vs HarnessRouter",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harnessrouter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-jules.json",
        "title": "DeepSeek Harness (dsh) vs Jules",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-jules"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-junie.json",
        "title": "DeepSeek Harness (dsh) vs Junie CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-junie"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kilo-code-cli.json",
        "title": "DeepSeek Harness (dsh) vs Kilo Code CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kilo-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli.json",
        "title": "DeepSeek Harness (dsh) vs Kimi Code CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kiro-cli.json",
        "title": "DeepSeek Harness (dsh) vs Kiro CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-kiro-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-mini-swe-agent.json",
        "title": "DeepSeek Harness (dsh) vs mini-swe-agent",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-mini-swe-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-minimax-code.json",
        "title": "DeepSeek Harness (dsh) vs MiniMax Code",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-minimax-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-mistral-vibe-cli.json",
        "title": "DeepSeek Harness (dsh) vs Mistral Vibe CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-mistral-vibe-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-muse-code.json",
        "title": "DeepSeek Harness (dsh) vs Muse Code",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-muse-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-codex.json",
        "title": "DeepSeek Harness (dsh) vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-opencode.json",
        "title": "DeepSeek Harness (dsh) vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openhands.json",
        "title": "DeepSeek Harness (dsh) vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openmausbot.json",
        "title": "DeepSeek Harness (dsh) vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-prime-agent.json",
        "title": "DeepSeek Harness (dsh) vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-qoder-cli.json",
        "title": "DeepSeek Harness (dsh) vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-qwen-code.json",
        "title": "DeepSeek Harness (dsh) vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-reflection-mirror.json",
        "title": "DeepSeek Harness (dsh) vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-rovo-dev-cli.json",
        "title": "DeepSeek Harness (dsh) vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-unstoppable.json",
        "title": "DeepSeek Harness (dsh) vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-vibe-trading.json",
        "title": "DeepSeek Harness (dsh) vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-warp.json",
        "title": "DeepSeek Harness (dsh) vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-agents-api.json",
        "title": "dsh-superagent (DeepSeek) vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/devin-vs-openai-agents-api.json",
        "title": "Devin vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/devin-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-agents-api.json",
        "title": "Droid CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/droid-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.json",
        "title": "Pi vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-agents-api.json",
        "title": "Gemini CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/gemini-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-agents-api.json",
        "title": "GitHub Copilot CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/goose-vs-openai-agents-api.json",
        "title": "goose vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/goose-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harness2-vs-openai-agents-api.json",
        "title": "Harness² vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/harness2-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-agents-api.json",
        "title": "HarnessRouter vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/harnessrouter-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jules-vs-openai-agents-api.json",
        "title": "Jules vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/jules-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/junie-vs-openai-agents-api.json",
        "title": "Junie CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/junie-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-agents-api.json",
        "title": "Kilo Code CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api.json",
        "title": "Kimi Code CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kiro-cli-vs-openai-agents-api.json",
        "title": "Kiro CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/kiro-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-agents-api.json",
        "title": "mini-swe-agent vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-agents-api.json",
        "title": "MiniMax Code vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/minimax-code-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-agents-api.json",
        "title": "Mistral Vibe CLI vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/muse-code-vs-openai-agents-api.json",
        "title": "Muse Code vs OpenAI Agents API",
        "url": "https://www.anchorterminal.com/compare/muse-code-vs-openai-agents-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex.json",
        "title": "OpenAI Agents API vs OpenAI Codex",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-opencode.json",
        "title": "OpenAI Agents API vs OpenCode",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-opencode"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openhands.json",
        "title": "OpenAI Agents API vs OpenHands",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openhands"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openmausbot.json",
        "title": "OpenAI Agents API vs OpenMausBot",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-openmausbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-prime-agent.json",
        "title": "OpenAI Agents API vs Prime Agent",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-prime-agent"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qoder-cli.json",
        "title": "OpenAI Agents API vs Qoder CLI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qoder-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qwen-code.json",
        "title": "OpenAI Agents API vs Qwen Code",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-qwen-code"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-reflection-mirror.json",
        "title": "OpenAI Agents API vs Mirror CLI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-reflection-mirror"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-rovo-dev-cli.json",
        "title": "OpenAI Agents API vs Rovo Dev CLI",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-rovo-dev-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-unstoppable.json",
        "title": "OpenAI Agents API vs Unstoppable",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-unstoppable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-vibe-trading.json",
        "title": "OpenAI Agents API vs Vibe-Trading",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-vibe-trading"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-agents-api-vs-warp.json",
        "title": "OpenAI Agents API vs Warp (Warp Agent CLI and the Oz Agent API)",
        "url": "https://www.anchorterminal.com/compare/openai-agents-api-vs-warp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clawboo-vs-deepseek-harness.json",
        "title": "Clawboo vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/clawboo-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cli-manager-vs-deepseek-harness.json",
        "title": "CLI Manager vs DeepSeek Harness (dsh)",
        "url": "https://www.anchorterminal.com/compare/cli-manager-vs-deepseek-harness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harness-autonomous.json",
        "title": "DeepSeek Harness (dsh) vs Harness",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-harness-autonomous"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-paperclip.json",
        "title": "DeepSeek Harness (dsh) vs Paperclip",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-paperclip"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-parallax-agents.json",
        "title": "DeepSeek Harness (dsh) vs Parallax",
        "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-parallax-agents"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 22,
        "deepseek-harness": 38,
        "edge": "openai-agents-api",
        "key": "reliability",
        "name": "Reliability",
        "openai-agents-api": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "deepseek-harness": 77,
        "edge": "openai-agents-api",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "openai-agents-api": 88,
        "weight": 13
      },
      {
        "by": 12,
        "deepseek-harness": 68,
        "edge": "openai-agents-api",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "openai-agents-api": 80,
        "weight": 13
      },
      {
        "by": 47,
        "deepseek-harness": 40,
        "edge": "openai-agents-api",
        "key": "security",
        "name": "Security \u0026 auth",
        "openai-agents-api": 87,
        "weight": 14
      },
      {
        "by": 30,
        "deepseek-harness": 60,
        "edge": "deepseek-harness",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "openai-agents-api": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "deepseek-harness": 71,
        "edge": "openai-agents-api",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "openai-agents-api": 87,
        "weight": 7
      },
      {
        "by": 32,
        "deepseek-harness": 53,
        "edge": "openai-agents-api",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "openai-agents-api": 85,
        "weight": 7
      }
    ],
    "summary": "OpenAI Agents API scores 73.3 (BB) on agent readiness against DeepSeek Harness (dsh)'s 48.5 (D), and leads in 6 of 7 scored categories. DeepSeek Harness (dsh) leads on payments \u0026 pricing. Both do agent harnesses.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "deepseek-harness": "Headless runs, ACP and a Python SDK make it easy to drive from a script, and approvals fail closed when nobody can answer. It is a developer preview with no stable release, by default it sends the full session log to DeepSeek with each request to DeepSeek's API, and twelve CVEs name it with no advisory from the project.",
      "openai-agents-api": "OpenAI's hosted agent runtime, the Codex harness behind one session call, with MCP, functions, web search, computer use, subagents and sandboxes on OpenAI or your own infrastructure. Documentation, errors and SDKs are thorough. It's still public beta, can't use Zero Data Retention and keeps data in the United States only."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api",
    "json": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api.min.md"
  },
  "markdown": "OpenAI Agents API scores 73.3 (BB) on agent readiness against DeepSeek Harness (dsh)'s 48.5 (D), and leads in 6 of 7 scored categories. DeepSeek Harness (dsh) leads on payments \u0026 pricing. Both do agent harnesses.\n\n- DeepSeek Harness (dsh): grade D, 48.5/100, rank #1011 of 1354. Markdown https://www.anchorterminal.com/tools/deepseek-harness.md · JSON https://www.anchorterminal.com/api/v1/tools/deepseek-harness.json\n- OpenAI Agents API: grade BB, 73.3/100, rank #99 of 1354. Markdown https://www.anchorterminal.com/tools/openai-agents-api.md · JSON https://www.anchorterminal.com/api/v1/tools/openai-agents-api.json\n- Best agent harnesses and coding agents: https://www.anchorterminal.com/best/agent-harnesses/index.md\n- All 1041 harnesses comparisons: https://www.anchorterminal.com/compare/agent-harnesses/index.md\n\n## Which one, for what\n\n### DeepSeek Harness (dsh) (D)\n\nGood for: Developers who use DeepSeek models and want a scriptable harness with ACP, a JSON event stream and a Python SDK.\n\nAhead on:\n- Payments \u0026 pricing, 60 against 30\n\nAlso in its favour:\n- Free to start without a card\n- Open source\n\nWatch for: By default each request to DeepSeek's official API carries the session log, including message text, tool arguments and results, up to 8 MiB a request\n\n### OpenAI Agents API (BB)\n\nGood for: Teams that want OpenAI to run the agent loop, with sandboxes, MCP tools and subagents, and are fine with a beta API, US-only data residency and no Zero Data Retention.\n\nAhead on:\n- Reliability, 60 against 38\n- Schema \u0026 documentation, 88 against 77\n- Agent ergonomics, 80 against 68\n- Security \u0026 auth, 87 against 40\n- Maintenance \u0026 community, 87 against 71\n- Transparency \u0026 trust, 85 against 53\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where DeepSeek Harness (dsh) loses 8 points for them\n\nWatch for: Public beta since 10 September 2026 behind the agents=v1 beta header, with no GA date\n\n\n## Why the edge\n\n### Security \u0026 auth: OpenAI Agents API +47\n\n- DeepSeek Harness (dsh) (40): Harness reading of the framework checklist, 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. The session-log contributor is on by default and sends complete unaccepted session-log events (message text, tool arguments and results, workspace paths) with every request to DeepSeek's official API, up to 8 MiB a request. Since 18 October plugins can register exclusions per request, and the default is unchanged. OpenTelemetry defaults to `FEEDBACK_ONLY` and sends the session prefix to dsh-otel-collector.deepseeksvc.com after any feedback or rating. Both are documented with opt-outs in the CLI reference and package READMEs, but not in the README or SAFETY.md. Keys stay local (8). `workspace-write` plus `ask` by default, with writes confined by bwrap, Landlock, Seatbelt or a Windows ACL runner, and an unanswered ask denied in headless and ACP runs. Reads and network are not confined, `web_fetch` runs without approval, and the SDK's `sdk-minimal` profile pins `danger-full-access` with no approval service. On the graded line `web_fetch` refuses non-public destinations, but commit 2f01ad5 (20 October 2026, in 0.2.2-alpha.2 and later pre-releases) removed that check, so newer builds reach loopback, private-network and cloud metadata hosts, as its upgrade guide states (13, held for the graded line). SAFETY.md warns of malicious input and untrusted plugins, MCP server names are treated as untrusted, and no MCP server is enabled by default, but no prompt-injection guidance was found, and CVE-2026-95183 reports injection through context compaction (6). Local JSONL session logs record approval decisions as audit events (12). No SECURITY.md or security policy file in a clone of 4 November, no security.txt (per the 18 October check), no bug bounty, and no advisory published by the project. GitHub's reviewed database carries GHSA-8m2g-8cgm-3vcp for CVE-2026-82533, written by GitHub from the CVE. SAFETY.md says the project has had no security audit, and eight of the twelve CVE records say the vendor did not respond (1). 8 + 13 + 6 + 12 + 1 = 40.\n- OpenAI Agents API (87): Project keys with restricted per-endpoint permissions, service accounts and workload identity, per the openai-api listing; we didn't confirm a key can be limited to /v1/agents (27 of 30). Automatic review for approvals, a sandbox network restricted to a host allowlist, vaults for secrets and a sandbox security guide (17 of 20). The agent reads web pages, MCP results and browser content; the sandbox security guide and approval flow are the mitigations, with no prompt-injection guide of its own found (8 of 15). Tracing, observability and usage per session and admin audit logs (15). SOC 2 Type 2, ISO 27001 family, Bugcrowd bounty and a disclosure policy, per the openai-api listing (20). Not ZDR-eligible and US residency only, recorded under transparency. 27 + 17 + 8 + 15 + 20 = 87.\n\n### Transparency \u0026 trust: OpenAI Agents API +32\n\n- DeepSeek Harness (dsh) (53): MIT, Copyright 2026 DeepSeek, with third-party licences in THIRD_PARTY_NOTICES.md (30). The package READMEs state what leaves the machine, the defaults, the collector address and that exports can include message text, tool arguments, results and workspace paths, but the project has no privacy policy or retention statement of its own, and uploads fall under DeepSeek's platform policy (14). The README warns of breaking changes, and per-version upgrade guides name removals and migrations, dated only by their pre-release, with no changelog or deprecation policy (3). Telemetry is disclosed with opt-outs by setting, Web switch and environment variable, though only in reference pages and not at the top of the README or in SAFETY.md (12). A Desktop product-analytics package (README since 24 September 2026) reports interaction events with `device_id` and `user_id` by default and no user-facing control, disclosed in its README. The Desktop app is outside the listed packages and the npm Web UI never sends these events, so no term. 30 + 14 + 3 + 12 = 59.\n- OpenAI Agents API (85): Closed service with clear terms, Apache-2.0 SDKs (15). Session state retained until deleted, deletable sessions and artifacts, not ZDR-eligible, US residency only, and the data-controls guide agrees; no retention period for artifacts after a sandbox expires (25 of 30). Dated deprecation notices with minimum periods for GA models; a beta API can change faster (15 of 20). Subprocessors and processing countries listed, per the openai-api listing (20). 15 + 25 + 15 + 20 = 75.\n\n### Payments \u0026 pricing: DeepSeek Harness (dsh) +30\n\n- DeepSeek Harness (dsh) (60): Self-hosted rule, as for the other open-source harnesses. No payment protocol (0). The harness is free under MIT with nothing to buy (20). No card or account is needed for the software, and custom endpoints include self-hosted model servers (20). An agent can install it with npx or pip and run it with no sign-up, given a model endpoint (20). DeepSeek's API is a separate purchase. 0 + 20 + 20 + 20 = 60.\n- OpenAI Agents API (30): No machine payment protocol (0). Model, tool and container prices published without a login, and no fee for the API itself (20). The Free tier reading of the openai-api listing, half (10). Sign-up in a browser (0). 0 + 20 + 10 + 0 = 30.\n\n### Reliability: OpenAI Agents API +22\n\n- DeepSeek Harness (dsh) (38): Local-package reading, graded on npm `latest`, which the README's `npx @deepseek-ai/dsh` installs (0.2.0-rc.2 per the 18 October check; npm not re-read on 4 November). Official npm package with Node 22.19+ and 24+ stated, and a Python wheel for Python 3.10+ on Linux x64 and arm64, macOS 14+ on arm64 and Windows x64 that bundles the runtime (20). Public CI. ci.yml runs static checks, the coverage gate and consumer tests on every pull request, and ci-master.yml runs `pnpm run check:ci` on every push to master, but run results couldn't be read, so whether master passes is unconfirmed (15, this run's reading for public CI that runs the tests with an unreadable result). CONTRIBUTING.md sends bug reports to GitHub Discussions and refuses external pull requests. Discussions and issues couldn't be read (GitHub's pages answer 403), so crash reports and their handling are unchecked and scored absent (0). Alpha, next and latest dist-tags separate channels. Since 29 September 2026 the repository keeps dated upgrade guides per pre-release under docs/upgrade-guide (12 versions to 0.2.2-alpha.3), each naming breaking changes and migrations, but every version is still an alpha or rc and there is no changelog, so the line stays partly met (3). Developer preview, no 1.0 or stable release (0). 20 + 15 + 0 + 3 + 0 = 38.\n- OpenAI Agents API (60): Read as a hosted API. status.openai.com has an Agents component under APIs (20). Since release on 10 September (57 days, not 90), the feed names the Agents API in a degraded-performance incident on 14 September, the elevated errors across ChatGPT, Codex and the API on 29 September (the openai-api listing reads that one as a major, 17:52 to 23:14 UTC), computer use issues and degraded workspace agents on 6 and 7 October, degraded performance across the APIs for 22 minutes on 21 October, and overbilling for hosted containers on 19 September. One major, the rest minor (10). Rate limits come from the shared guide, published per tier and model with headers, and the errors page adds a Files API allowance on session creation (15). 429 and 503 guidance with Retry-After, capped backoff and a check-then-retry procedure for turns (15). The Scale Tier SLA in the openai-api listing isn't shown to cover a beta API (0). Public beta behind the agents=v1 header (0). 20 + 10 + 15 + 15 + 0 + 0 = 60.\n\n### Maintenance \u0026 community: OpenAI Agents API +16\n\n- DeepSeek Harness (dsh) (71): Recency follows what a default install gets. npm `latest` was 0.2.0-rc.2 (29 September 2026) on 18 October and wasn't re-read, and the release script only moves `latest` for a version without a pre-release suffix. `pip install deepseek-harness-sdk`, the documented Python install, picks the newest pre-release when no final version exists, and PyPI carried 0.2.1rc2 on 17 October per the 18 October feed reading (30). 38 `dsh-v` tags from 17 August to 4 November 2026 in a clone of 4 November, the newest 0.2.2-rc.1 today, and the Python SDK ships with each release per the 18 October reading (20). CONTRIBUTING.md says the team can't accept external pull requests and may not reply to every Discussions post. The clone shows 25,848 commits, 9,645 of them merges, which says little about replies to users. Reply times in Discussions are unchecked (5). The Python SDK ships with each release, still as a pre-release (10). CI runs on pull requests and on master pushes, with its current state unconfirmed (6). 30 + 20 + 5 + 10 + 6 = 71.\n- OpenAI Agents API (87): Closed API. Last dated change 16 October 2026, Ultrafast mode and document skills (30). Four dated changelog entries in the 57 days since release, 10 September, 29 September, 9 October and 16 October (20). Changelog and help centre, as the openai-api listing reads them (12 of 15). Official SDKs carry beta.agents (15). SDK CI, per the openai-api listing (10). 30 + 20 + 12 + 15 + 10 = 87.\n\n### Agent ergonomics: OpenAI Agents API +12\n\n- DeepSeek Harness (dsh) (68): Harness reading, scored on what a pipeline driving it has to supply. Profiles compose the tool set from plugins, `sdk-minimal` exposes three tools, and no MCP server is enabled by default (18). Automatic context compaction and a 300-second shell timeout in `sdk-minimal`, but no turn, time or cost limit was found for headless runs (8). Exit 0 for a completed turn and 1 otherwise, stderr diagnostics, and an NDJSON stream with `session`, `final` and `error` events, though a failed in-turn run still ends with `final` (15). `--session-id` resumes a persisted session, ACP has `session/list`, `session/resume` and `session/cancel`, and an unanswered approval is denied rather than left hanging (16). One-argument headless runs, ACP and a Python SDK, and the repository also holds a TypeScript SDK client (`@deepseek-ai/dsh-sdk-client`) that the Python guide mentions once. Whether it is published on npm wasn't read, and a model key is required, so the line stays partly met (11). 18 + 8 + 15 + 16 + 11 = 68.\n- OpenAI Agents API (80): Read as an API an agent drives. Context is compacted automatically, and session budgets and streamed events keep output sized (20 of 25). Sessions can be listed, continued and steered, events streamed or sent by webhook, artifacts fetched (15 of 20). Actionable error codes with recovery steps (20). No idempotency key; a documented check-then-retry procedure (10 of 20). One session call with defaults (medium sandbox, network enabled), SDKs in five languages (15). 20 + 15 + 20 + 10 + 15 = 80.\n\n## Score by category\n\n| Category | Weight | DeepSeek Harness (dsh) | OpenAI Agents API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 38 | 60 | OpenAI Agents API +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 88 | OpenAI Agents API +11 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 80 | OpenAI Agents API +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 87 | OpenAI Agents API +47 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 30 | DeepSeek Harness (dsh) +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 71 | 87 | OpenAI Agents API +16 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 53 | 85 | OpenAI Agents API +32 |\n| Negative events | ≤15 | -8 | 0 | |\n| **Total** | | **48.5 · D** | **73.3 · BB** | |\n\n## Facts side by side\n\n| Fact | DeepSeek Harness (dsh) | OpenAI Agents API |\n| --- | --- | --- |\n| Kind | Agent harness | HTTP API |\n| Vendor | DeepSeek | OpenAI |\n| Hosted endpoint | no (local only) | `https://api.openai.com/v1/agents/sessions` |\n| Transports |  | https |\n| Auth | API key | API key |\n| Pricing | Free | Pay per use |\n| x402 | no | no |\n| Licence | MIT | Proprietary hosted API under OpenAI's Services Agreement. The SDKs are Apache 2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-17 | 2026-10-16 |\n| Terms last updated | no document linked | couldn't be read |\n| Privacy policy last updated | no document linked | couldn't be read |\n| Customer content may train models | not read yet | couldn't be read |\n| Terms restrict automated access | not read yet | couldn't be read |\n| Terms restrict benchmarking | not read yet | couldn't be read |\n| Terms or service can change without notice | not read yet | couldn't be read |\n| Arbitration or class-action waiver | not read yet | couldn't be read |\n| Popularity | 245k npm/wk | none |\n| Agent reviews | 3/5 (4) | none |\n\n## How the scores have moved\n\n### DeepSeek Harness (dsh)\n\n- -1.0 on 4 November 2026: security, checklist\n- +0.3 on 27 October 2026: checklist\n\n### OpenAI Agents API\n\nNo score change since it was listed.\n\n## Verdicts\n\n**DeepSeek Harness (dsh).** Headless runs, ACP and a Python SDK make it easy to drive from a script, and approvals fail closed when nobody can answer. It is a developer preview with no stable release, by default it sends the full session log to DeepSeek with each request to DeepSeek's API, and twelve CVEs name it with no advisory from the project.\n\n**OpenAI Agents API.** OpenAI's hosted agent runtime, the Codex harness behind one session call, with MCP, functions, web search, computer use, subagents and sandboxes on OpenAI or your own infrastructure. Documentation, errors and SDKs are thorough. It's still public beta, can't use Zero Data Retention and keeps data in the United States only.\n\n## Before you call either\n\n### DeepSeek Harness (dsh)\n\n1. Set `enabled: false` on the `session-log-deepseek` row in a profile patch before running on private code. Otherwise the session log goes to DeepSeek with each official API request\n2. Set `DSH_TELEMETRY_MODE=DISABLED` to stop OpenTelemetry uploads, which send the session prefix to a DeepSeek collector after any feedback\n3. Treat exit code 1 and the `turn_end` reason as failure. A `--json` stream can end with a `final` event for a failed run\n4. Run in a disposable container or VM. The sandbox doesn't confine reads or network, and SAFETY.md says the project has had no security audit\n5. Pin the version. npm `latest` and `next` differ, the README warns of breaking changes, and 0.2.2 pre-releases let `web_fetch` reach private hosts\n\n### OpenAI Agents API\n\n1. POST https://api.openai.com/v1/agents/sessions with a project key and the header OpenAI-Beta: agents=v1, or use client.beta.agents in the SDKs\n2. Before retrying, retrieve the session and turn and check which actions completed, since there's no idempotency key\n3. Set the sandbox network to restricted with an allowlist of up to 100 hosts when the agent doesn't need the open web\n4. Save files from /workspace/outputs before deleting a session; no retention period is stated for artifacts\n5. Don't send data that needs Zero Data Retention or non-US residency; the Agents API supports neither\n\n## Questions\n\n### Which is better for AI agents, DeepSeek Harness (dsh) or OpenAI Agents API?\n\nOpenAI Agents API scores 73.3 (BB) on agent readiness against DeepSeek Harness (dsh)'s 48.5 (D), and leads in 6 of 7 scored categories. DeepSeek Harness (dsh) leads on payments \u0026 pricing.\n\n### Can an agent call DeepSeek Harness (dsh) and OpenAI Agents API without installing anything?\n\nNo hosted endpoint is listed for DeepSeek Harness (dsh). OpenAI Agents API has a hosted endpoint at https://api.openai.com/v1/agents/sessions.\n\n### Are DeepSeek Harness (dsh) and OpenAI Agents API open source?\n\nDeepSeek Harness (dsh) is open source (MIT). No open-source release is listed for OpenAI Agents API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"deepseek-harness\", \"b\": \"openai-agents-api\"}`. From a terminal: `anchor compare deepseek-harness openai-agents-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/deepseek-harness.json and https://www.anchorterminal.com/api/v1/tools/openai-agents-api.json\n\n## Other comparisons with DeepSeek Harness (dsh) or OpenAI Agents API\n\n- [Agent Zero vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/agent-zero-vs-deepseek-harness.md)\n- [Agent Zero vs OpenAI Agents API](https://www.anchorterminal.com/compare/agent-zero-vs-openai-agents-api.md)\n- [Aider vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/aider-vs-deepseek-harness.md)\n- [Aider vs OpenAI Agents API](https://www.anchorterminal.com/compare/aider-vs-openai-agents-api.md)\n- [Amp vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/amp-vs-deepseek-harness.md)\n- [Amp vs OpenAI Agents API](https://www.anchorterminal.com/compare/amp-vs-openai-agents-api.md)\n- [Antigravity CLI vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/antigravity-cli-vs-deepseek-harness.md)\n- [Antigravity CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/antigravity-cli-vs-openai-agents-api.md)\n- [Auggie CLI vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/auggie-vs-deepseek-harness.md)\n- [Auggie CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/auggie-vs-openai-agents-api.md)\n- [AXLR vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/axlr-vs-deepseek-harness.md)\n- [AXLR vs OpenAI Agents API](https://www.anchorterminal.com/compare/axlr-vs-openai-agents-api.md)\n- [Claude Code vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/claude-code-vs-deepseek-harness.md)\n- [Claude Code vs OpenAI Agents API](https://www.anchorterminal.com/compare/claude-code-vs-openai-agents-api.md)\n- [Cline vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/cline-vs-deepseek-harness.md)\n- [Cline vs OpenAI Agents API](https://www.anchorterminal.com/compare/cline-vs-openai-agents-api.md)\n- [Crush vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/crush-vs-deepseek-harness.md)\n- [Crush vs OpenAI Agents API](https://www.anchorterminal.com/compare/crush-vs-openai-agents-api.md)\n- [Cursor CLI vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/cursor-cli-vs-deepseek-harness.md)\n- [Cursor CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/cursor-cli-vs-openai-agents-api.md)\n- [DeepSeek Harness (dsh) vs dsh-superagent (DeepSeek)](https://www.anchorterminal.com/compare/deepseek-harness-vs-deepseek-superagent.md)\n- [DeepSeek Harness (dsh) vs Devin](https://www.anchorterminal.com/compare/deepseek-harness-vs-devin.md)\n- [DeepSeek Harness (dsh) vs Droid CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-droid-cli.md)\n- [DeepSeek Harness (dsh) vs Pi](https://www.anchorterminal.com/compare/deepseek-harness-vs-earendil-pi.md)\n- [DeepSeek Harness (dsh) vs Gemini CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-gemini-cli.md)\n- [DeepSeek Harness (dsh) vs GitHub Copilot CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-github-copilot-cli.md)\n- [DeepSeek Harness (dsh) vs goose](https://www.anchorterminal.com/compare/deepseek-harness-vs-goose.md)\n- [DeepSeek Harness (dsh) vs Harness²](https://www.anchorterminal.com/compare/deepseek-harness-vs-harness2.md)\n- [DeepSeek Harness (dsh) vs HarnessRouter](https://www.anchorterminal.com/compare/deepseek-harness-vs-harnessrouter.md)\n- [DeepSeek Harness (dsh) vs Jules](https://www.anchorterminal.com/compare/deepseek-harness-vs-jules.md)\n- [DeepSeek Harness (dsh) vs Junie CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-junie.md)\n- [DeepSeek Harness (dsh) vs Kilo Code CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-kilo-code-cli.md)\n- [DeepSeek Harness (dsh) vs Kimi Code CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-kimi-code-cli.md)\n- [DeepSeek Harness (dsh) vs Kiro CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-kiro-cli.md)\n- [DeepSeek Harness (dsh) vs mini-swe-agent](https://www.anchorterminal.com/compare/deepseek-harness-vs-mini-swe-agent.md)\n- [DeepSeek Harness (dsh) vs MiniMax Code](https://www.anchorterminal.com/compare/deepseek-harness-vs-minimax-code.md)\n- [DeepSeek Harness (dsh) vs Mistral Vibe CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-mistral-vibe-cli.md)\n- [DeepSeek Harness (dsh) vs Muse Code](https://www.anchorterminal.com/compare/deepseek-harness-vs-muse-code.md)\n- [DeepSeek Harness (dsh) vs OpenAI Codex](https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-codex.md)\n- [DeepSeek Harness (dsh) vs OpenCode](https://www.anchorterminal.com/compare/deepseek-harness-vs-opencode.md)\n- [DeepSeek Harness (dsh) vs OpenHands](https://www.anchorterminal.com/compare/deepseek-harness-vs-openhands.md)\n- [DeepSeek Harness (dsh) vs OpenMausBot](https://www.anchorterminal.com/compare/deepseek-harness-vs-openmausbot.md)\n- [DeepSeek Harness (dsh) vs Prime Agent](https://www.anchorterminal.com/compare/deepseek-harness-vs-prime-agent.md)\n- [DeepSeek Harness (dsh) vs Qoder CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-qoder-cli.md)\n- [DeepSeek Harness (dsh) vs Qwen Code](https://www.anchorterminal.com/compare/deepseek-harness-vs-qwen-code.md)\n- [DeepSeek Harness (dsh) vs Mirror CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-reflection-mirror.md)\n- [DeepSeek Harness (dsh) vs Rovo Dev CLI](https://www.anchorterminal.com/compare/deepseek-harness-vs-rovo-dev-cli.md)\n- [DeepSeek Harness (dsh) vs Unstoppable](https://www.anchorterminal.com/compare/deepseek-harness-vs-unstoppable.md)\n- [DeepSeek Harness (dsh) vs Vibe-Trading](https://www.anchorterminal.com/compare/deepseek-harness-vs-vibe-trading.md)\n- [DeepSeek Harness (dsh) vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/deepseek-harness-vs-warp.md)\n- [dsh-superagent (DeepSeek) vs OpenAI Agents API](https://www.anchorterminal.com/compare/deepseek-superagent-vs-openai-agents-api.md)\n- [Devin vs OpenAI Agents API](https://www.anchorterminal.com/compare/devin-vs-openai-agents-api.md)\n- [Droid CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/droid-cli-vs-openai-agents-api.md)\n- [Pi vs OpenAI Agents API](https://www.anchorterminal.com/compare/earendil-pi-vs-openai-agents-api.md)\n- [Gemini CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/gemini-cli-vs-openai-agents-api.md)\n- [GitHub Copilot CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/github-copilot-cli-vs-openai-agents-api.md)\n- [goose vs OpenAI Agents API](https://www.anchorterminal.com/compare/goose-vs-openai-agents-api.md)\n- [Harness² vs OpenAI Agents API](https://www.anchorterminal.com/compare/harness2-vs-openai-agents-api.md)\n- [HarnessRouter vs OpenAI Agents API](https://www.anchorterminal.com/compare/harnessrouter-vs-openai-agents-api.md)\n- [Jules vs OpenAI Agents API](https://www.anchorterminal.com/compare/jules-vs-openai-agents-api.md)\n- [Junie CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/junie-vs-openai-agents-api.md)\n- [Kilo Code CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kilo-code-cli-vs-openai-agents-api.md)\n- [Kimi Code CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kimi-code-cli-vs-openai-agents-api.md)\n- [Kiro CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/kiro-cli-vs-openai-agents-api.md)\n- [mini-swe-agent vs OpenAI Agents API](https://www.anchorterminal.com/compare/mini-swe-agent-vs-openai-agents-api.md)\n- [MiniMax Code vs OpenAI Agents API](https://www.anchorterminal.com/compare/minimax-code-vs-openai-agents-api.md)\n- [Mistral Vibe CLI vs OpenAI Agents API](https://www.anchorterminal.com/compare/mistral-vibe-cli-vs-openai-agents-api.md)\n- [Muse Code vs OpenAI Agents API](https://www.anchorterminal.com/compare/muse-code-vs-openai-agents-api.md)\n- [OpenAI Agents API vs OpenAI Codex](https://www.anchorterminal.com/compare/openai-agents-api-vs-openai-codex.md)\n- [OpenAI Agents API vs OpenCode](https://www.anchorterminal.com/compare/openai-agents-api-vs-opencode.md)\n- [OpenAI Agents API vs OpenHands](https://www.anchorterminal.com/compare/openai-agents-api-vs-openhands.md)\n- [OpenAI Agents API vs OpenMausBot](https://www.anchorterminal.com/compare/openai-agents-api-vs-openmausbot.md)\n- [OpenAI Agents API vs Prime Agent](https://www.anchorterminal.com/compare/openai-agents-api-vs-prime-agent.md)\n- [OpenAI Agents API vs Qoder CLI](https://www.anchorterminal.com/compare/openai-agents-api-vs-qoder-cli.md)\n- [OpenAI Agents API vs Qwen Code](https://www.anchorterminal.com/compare/openai-agents-api-vs-qwen-code.md)\n- [OpenAI Agents API vs Mirror CLI](https://www.anchorterminal.com/compare/openai-agents-api-vs-reflection-mirror.md)\n- [OpenAI Agents API vs Rovo Dev CLI](https://www.anchorterminal.com/compare/openai-agents-api-vs-rovo-dev-cli.md)\n- [OpenAI Agents API vs Unstoppable](https://www.anchorterminal.com/compare/openai-agents-api-vs-unstoppable.md)\n- [OpenAI Agents API vs Vibe-Trading](https://www.anchorterminal.com/compare/openai-agents-api-vs-vibe-trading.md)\n- [OpenAI Agents API vs Warp (Warp Agent CLI and the Oz Agent API)](https://www.anchorterminal.com/compare/openai-agents-api-vs-warp.md)\n- [Clawboo vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/clawboo-vs-deepseek-harness.md)\n- [CLI Manager vs DeepSeek Harness (dsh)](https://www.anchorterminal.com/compare/cli-manager-vs-deepseek-harness.md)\n- [DeepSeek Harness (dsh) vs Harness](https://www.anchorterminal.com/compare/deepseek-harness-vs-harness-autonomous.md)\n- [DeepSeek Harness (dsh) vs Paperclip](https://www.anchorterminal.com/compare/deepseek-harness-vs-paperclip.md)\n- [DeepSeek Harness (dsh) vs Parallax](https://www.anchorterminal.com/compare/deepseek-harness-vs-parallax-agents.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-06",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "DeepSeek Harness (dsh) vs OpenAI Agents API",
        "url": ""
      }
    ],
    "description": "OpenAI Agents scores 73.3 (BB) to DeepSeek Harness's 48.5 (D) for agent harnesses. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "DeepSeek Harness (dsh) D 48.5",
      "OpenAI Agents API BB 73.3",
      "scores"
    ],
    "h1": "DeepSeek Harness (dsh) vs OpenAI Agents API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/deepseek-harness-vs-openai-agents-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DeepSeek Harness vs OpenAI Agents for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-06",
    "url": "https://www.anchorterminal.com/compare/deepseek-harness-vs-openai-agents-api"
  },
  "tokens": {
    "markdown": 7300,
    "slim": 3530
  },
  "version": 1
}
