Head to head · Agent harnesses · October 2026 research run

dsh-superagent (DeepSeek) vs goose

goose scores 74.3 (BB) on agent readiness against dsh-superagent (DeepSeek)'s 42.1 (E), and leads in every scored category. Both do agent harnesses.

Best agent harnesses and coding agents · All 955 harnesses comparisons

Which one, for what

dsh-superagent (DeepSeek) E

Best for Teams on github.com that want a DeepSeek Harness agent to turn allowed people's issue requests into pull requests, run on an isolated machine or OS account.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

Executor and main Sessions run with danger-full-access as the operator's OS user, and the docs say a worker can read the operator's home directory

goose BB

Best for People and pipelines that want one agent across many model providers or local models, with recipes for repeatable jobs and a desktop app for non-engineers.

Ahead on

  • Reliability, 77 against 15
  • Schema & documentation, 81 against 61
  • Agent ergonomics, 82 against 67
  • Security & auth, 77 against 33
  • Payments & pricing, 60 against 40
  • Maintenance & community, 86 against 34
  • Transparency & trust, 67 against 52

Also in its favour

  • Agent-ready, a grade of BB or better
  • No key needed to call it

Watch for

Autonomous mode, which approves every tool call, is the default

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability goose +62

dsh-superagent (DeepSeek) 15

Local-package reading, since it runs as a DSH bundle on the operator's machine. Not published to npm (private: true in package.json, and the registry has no dsh-superagent). It installs from a git clone with pnpm install && pnpm build on top of @deepseek-ai/dsh@0.2.1-rc.3, with Node 22.19+ or 24+, git 2.32+, Python 3.8+, tmux and gh 2.48+ stated, so half credit (10). A vitest suite of about 25 spec files is listed in docs/007, and pnpm check runs the typecheck, tests and build. Two spec files were read on raw.githubusercontent.com. No CI workflow was found at five common paths under .github/workflows, and the directory couldn't be listed (5). Open issues couldn't be read, because github.com and api.github.com weren't reachable from our network. Unchecked, so scored absent (0). Version 0.1.0 with no tag, release or changelog found, so no semver record (0). A research prototype, not stable (0).

goose 77

Read as a local package, which is how the 1 October dossier read it. Desktop builds and a CLI for macOS, Linux and Windows, Homebrew casks, a download script on GitHub releases, an npm package that installs the binary (@aaif/goose-acp 1.55.0) and a GHCR image, with Rust 1.94.1 as the minimum for source builds (20). A CI workflow runs on every push to main, with cargo-deny and an OpenSSF Scorecard job beside it. The Actions page loaded on 1 October showed only passing runs from March 2026, and GitHub pages refused our requests on 6 and 17 October, so the current state is unconfirmed (18). 266 to 271 open issues on 1 October, many from that week with no reply, including open reports that the default mode approves every tool call (#12567) and that schedules can overwrite each other (#12613), per the 1 October check, not re-read on 6 or 17 October (15). Weekly minor releases with dated notes, but none of the ten before 1 October has a breaking-change section, and the 1.53.0 to 1.55.0 notes weren't readable on 6 or 17 October. 1.55.0 dropped background subagents (delegate(..., async: true) and GOOSE_MAX_BACKGROUND_TASKS), with the docs edited in the same commit (9). 1.55, stable (15).

Maintenance & community goose +52

dsh-superagent (DeepSeek) 34

Published on 31 October 2026, within 30 days, read as the last published change since no tag or release was found (30). One publication, so not three releases in 90 days (0). Issues, pull requests and Discussions couldn't be read, and the README frames the code as a reference prototype adapted from an internal version (0). No official SDK or registry entry (0). Exact dependency pins and a lockfile, but no CI workflow found, and the docs pin DSH 0.2.1-rc.3 (23 October 2026) while npm latest is 0.2.1-rc.5 (29 October 2026) (4).

goose 86

v1.55.0 published to npm on 2026-10-16 (30). 13 releases in the 90 days to 17 October, 1.44.0 to 1.55.0, about one a week (20). Issues move through a public board with Inbox and Ready columns and some new reports get a label within a day, but many of the week's reports had no reply on 1 October, and pull requests that don't implement a Ready issue are closed, per the 1 October check, not re-read on 6 or 17 October (15). Desktop, CLI, npm and GHCR builds ship from the same tag, and Python and Java SDK builds run in CI (13). cargo-deny, cargo-machete, Dependabot and Scorecard workflows, and every GitHub Action pinned to a commit SHA since 29 September, with the current CI state unconfirmed (8).

Security & auth goose +44

dsh-superagent (DeepSeek) 33

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 superagent profile is created from DSH's Web template, and DSH documents that shipped profiles mount session-log-deepseek, enabled by default, which adds the session log to each official DeepSeek API request, up to 8 MiB. dsh-superagent's docs don't mention it, and its Sessions read issue, pull request and chat text and the repository. Setup and worker shells drop variables named KEY, PASSWORD, SECRET or TOKEN, and GH_TOKEN and GITHUB_TOKEN are removed from git (8). Both presets run danger-full-access without approval as the operator's OS user. docs/006 says the account wrappers don't isolate the process, a worker can run programs by path and read the operator's home directory, and recommends a dedicated OS account. The gate, observe default, blocked commands and no auto-merge as the agent account narrow what it does, not what it can do (6). docs/002 says messages, comments and quoted documents are inputs to a decision and can't change allowed lists, rules or Mandates, bots can never make explicit requests, and prompt edits don't change the gate. Workers with full access still read untrusted Thread text, and no further guidance on that was found (7). Decisions are recorded with reasons, Ticket details show the Trigger, Decision, scope and Policy version, the host records the prompt revisions each Session used, and every GitHub message starts with an automated-agent line by default (12). No SECURITY.md (404 at the root and in .github), no security.txt on www.deepseek.com (404), no bug bounty or advisory found. NVD has no record for the prototype. The CVEs against DSH itself are on the deepseek-harness listing (0).

goose 77

Harness reading of the framework checklist, used for all five harnesses in this batch. 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. Usage data is off until the user agrees on first use, and the docs list what's collected and what isn't (30). Four modes (autonomous, smart approval, manual approval, chat only), per-tool always, ask or never rules, and an extension allowlist fetched from GOOSE_ALLOWLIST, but autonomous is the default (a first-run prompt for the mode, added on main on 2 October, still preselects Auto) and there's no sandbox, with the docs pointing to a VM or container (11). Pattern and optional ML prompt-injection detection and an adversary reviewer for shell calls, both off until turned on, plus a prompt-injection caution in SECURITY.md (11). Session logs, a diagnostics report and a Langfuse tracing guide (12). SECURITY.md with GitHub private reporting and an AAIF governance contact, one advisory published with a CVE, and a Scorecard workflow. No bug bounty, and goose-docs.ai/.well-known/security.txt returned 404 on 6 and 17 October (13).

Schema & documentation goose +20

dsh-superagent (DeepSeek) 61

Framework reading, as for deepseek-harness. No OpenAPI or JSON Schema is published. docs/006 documents the Management API's routes, fields, block shapes and refusals in tables, and the code validates settings with zod (12). Markdown docs in the repository, readable raw, and a SETUP.md written for a coding agent. No llms.txt (5). Nine numbered documents read in order, each stating purpose, limits and what not to do, such as never rerunning the profile-creation command for an upgrade (17). Closed sets for accept mode (off, observe, auto), admission cells, Source states, health states and listen (12). A worked curl example, refusals as 400, 404, 409 and 500 with issues, setup or code, a troubleshooting table and status exit codes 0 to 3 (13). package.json says 0.1.0 and pins an engines.dsh range, but no changelog or tags were found (2).

goose 81

Recipes have a documented schema with typed parameters and a response JSON Schema for structured output, and config and environment variables are documented in tables, but we found no OpenAPI spec for the goose server (18). llms.txt at goose-docs.ai (10). Permission modes come with a best-for column and the security pages say what each guard catches and misses (15). Recipe parameters take types and requirement levels, and retries take typed success checks (12). Many tutorials, a headless guide that tells scripts to check exit codes, and a known-issues page (13). Dated, written notes on every GitHub release, with no changelog file (13).

Payments & pricing goose +20

dsh-superagent (DeepSeek) 40

Self-hosted rule, as for the other open-source harnesses. No payment protocol (0). Free under MIT with nothing to buy (20). No card for the software (20). An agent can't get started alone, because the setup needs a person to create a dedicated GitHub user account, accept the repository invitation and run auth login for the wrappers, which SETUP.md lists as operator steps. 0, as the other harnesses that need an account were read (0). The model provider is a separate purchase.

goose 60

No payment protocol (0). Free and Apache-2.0 with nothing to buy, so 20, 20 and 20 on the last three lines. It runs local models, including built-in local inference, with no signup.

Agent ergonomics goose +15

dsh-superagent (DeepSeek) 67

Harness reading, scored on what a team or pipeline driving it has to supply. The worker preset is DSH's standard with web fetch, plan mode, questions, scheduling and workflows left out, the main Session can't write files, and tool results over 8,192 characters are pruned (18). A concurrency limit with one extra slot for a person's message, a 5-second foreground shell, a 10-minute prepare limit and 30 minutes for background work after a turn. No cost or turn limit per Ticket was found (12). Ticket stages, health entries per part, Reports of blocked or failed, API refusals with codes, and three retries with growing backoff on 408, 429, 5xx and dropped connections (17). Saves carry a revision and a stale one gets 409, state and Sessions survive a restart, and a restarted Assignment gets a recovery note to check git and GitHub before repeating any outside action (16). Sensible defaults (observe mode, port 3082, branch prefix agent/), but setup needs a dedicated GitHub user account, CLI wrappers, tmux and a profile, and there is no SDK. Work is requested by mentioning the agent account on GitHub or Feishu (4).

goose 82

Harness reading of the framework line, scored on what an agent or pipeline driving it has to supply. The built-in extensions are few, and Code Mode lets the model find MCP tools through code instead of loading every definition (23). --max-turns (default 1000), GOOSE_MAX_TOKENS and automatic context compaction, though 1000 turns is a high default for an unattended run (16). goose run --output-format json or stream-json for scripts (15). Recipes can retry with success checks and an on_failure command, and sessions resume (17). A Rust core with Python and Java SDK builds, and one command runs a task, but a provider has to be configured first and the default mode approves everything (11).

Score by category

CategoryWeight this rundsh-superagent (DeepSeek)gooseEdge
Reliability16%201577goose +62
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26181goose +20
Agent ergonomics13%16.26782goose +15
Security & auth14%17.53377goose +44
Payments & pricing10%12.54060goose +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.83486goose +52
Transparency & trust7%8.85267goose +15
Negative events≤150-2
TotalE 42.1/100BB 74.3/100

Facts side by side

Factdsh-superagent (DeepSeek)goose
KindAgent harnessAgent harness
VendorDeepSeekAgentic AI Foundation (originally Block)
Hosted endpointno (local only)no (local only)
Transports
AuthTokenNone
PricingFreeFree
x402nono
LicenceMITApache-2.0
Read-only variant documentednono
llms.txtnoyes
Last release2026-10-312026-10-16
Terms last updatedno document linkedno document linked
Privacy policy last updated2026-09-20no document linked
Popularitynone55k stars
Agent reviewsnone2.5/5 (2)

How the scores have moved

Verdicts

dsh-superagent (DeepSeek)

The authorization design is careful, with allowed lists, Mandates and a Policy enforced in code, proactive work only recorded by default and auto-merge off. Executors run every command without approval under the operator's OS user, and the README calls it a research prototype with no release, changelog or security policy.

goose

Telemetry off until the user opts in, with the collected fields listed. Autonomous mode, which approves every tool call, is the default.

Before you call either

dsh-superagent (DeepSeek)

  1. Run it under a dedicated OS account holding only the agent's credentials. Executors run commands without approval and can read the operator's home directory
  2. Set enabled: false on the session-log-deepseek row of the superagent profile before using DeepSeek's official API on private code
  3. Keep the accept mode at observe and the allowed list short until the recorded Decisions look right
  4. Wait for scripts/dsh-superagent status to stop exiting 1 after any save that answers restarting: true before the next request
  5. Send x-orchestrator-request: 1 and a loopback Host to the Management API, and send revision with each PUT, since a stale one gets 409

goose

  1. Set GOOSE_MODE=smart_approve or approve before a run. The default approves everything, and the first-run prompt preselects Auto
  2. Pass --max-turns with a real limit. The default is 1000
  3. Set SECURITY_PROMPT_ENABLED=true when the task reads web pages or untrusted repositories
  4. Use --output-format json and --no-session in CI, and check the exit code
  5. Point remotes and links at aaif-goose/goose and goose-docs.ai. The block/goose paths redirect

Questions

Which is better for AI agents, dsh-superagent (DeepSeek) or goose?

goose scores 74.3 (BB) on agent readiness against dsh-superagent (DeepSeek)'s 42.1 (E), and leads in every scored category.

Are dsh-superagent (DeepSeek) and goose open source?

Yes. dsh-superagent (DeepSeek) is open source (MIT). goose is open source (Apache-2.0).

Other comparisons with dsh-superagent (DeepSeek) or goose

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.