datacurve/deep-swe-1-1

DeepSWE: Measuring frontier coding agents on original, long-horizon engineering tasks

harbor run -d datacurve/deep-swe-1-1

DeepSWE

DeepSWE is a benchmark for measuring frontier coding agents on original, long-horizon software engineering tasks drawn from active open-source repositories. The benchmark includes 113 tasks across TypeScript, Go, Python, JavaScript, and Rust, with isolated environments and program-based verifiers.

Task format

DeepSWE tasks use the Harbor task format:

task.toml         Metadata (repo, base commit, language, image, limits)
instruction.md    The prompt the agent sees
environment/      Dockerfile reproducing the prebuilt image
tests/            Verifier entry point, held-out tests, and grader config
solution/         Reference solution (held out from the agent)

The verifier exercises the behavior the prompt describes. It accepts any solution whose observable behavior is correct, regardless of internal symbol names or structure. The reference patch in solution/ is never used at grading time; it exists so reviewers can spot-check correctness offline.

Since v1.1, grading uses Harbor's separate verifier environment, requiring Pier newer than 0.3.0. The agent works in an isolated environment and commits its work upon completion. A [[verifier.collect]] hook in each task.toml then extracts these commits as a patch, which is applied and graded in a pristine container.

The verifier produces the following outputs for each run:

verifier/
    reward.json      Structured scores (binary reward + pass fractions)
    ctrf.json        Machine-readable test report with failure messages
    test-stdout.txt  Raw suite output and a list of failure reasons
    run.log          Raw stdout/stderr captured during the run
    reports/         Framework-native report/log files from the grader

Quickstart

Use Pier to run the benchmark:

git clone https://github.com/datacurve-ai/deep-swe
uv tool install datacurve-pier

# Claude Opus 4.8
export ANTHROPIC_API_KEY=...
pier run -p deep-swe/tasks --agent mini-swe-agent --model anthropic/claude-opus-4-8

# GPT-5.5
export OPENAI_API_KEY=...
pier run -p deep-swe/tasks --agent mini-swe-agent --model openai/gpt-5.5

What is Pier

Pier is a Harbor-compatible framework for sandboxed coding-agent evals. It began as a fork of Harbor to support CLI agents in air-gapped tasks: Harbor blocks all outbound traffic in allow_internet = false tasks, including dependency installs and LLM API calls. Pier adds per-agent network allowlists, giving agents only the network access they need while keeping the task environment isolated.

Pier also adds more complete trajectory metadata, a better trajectory viewer, and pier critique run for analyzing agent trajectories. All leaderboard scores were produced with Pier running mini-swe-agent on Modal.

Agents and models

mini-swe-agent is model-agnostic. Pier also drives claude-code, codex, gemini-cli, and opencode directly. Pass --env modal to run in parallel sandboxes on Modal.

Subsets and single tasks

Deterministic random subset of the 113-task corpus:

pier run -p deep-swe/tasks --agent mini-swe-agent --n-tasks 10 --sample-seed 0

Single task:

pier run -p deep-swe/tasks/<task-id> --agent mini-swe-agent
Task
datacurve/kcp-go-multiplexed-kcp-streams
datacurve/python-statemachine-state-data-scoping
datacurve/prometheus-typed-label-sorting
datacurve/obsidian-linter-auto-table-of-contents
datacurve/etree-xml-diff-patch
datacurve/katex-multicolumn-array-spans
datacurve/yaegi-go-embed-directives
datacurve/cliffy-config-file-parsing
datacurve/sqlfmt-create-table-ddl-formatting
datacurve/clack-async-autocomplete-options
datacurve/prometheus-transactional-reload-status
datacurve/boa-hierarchical-evaluation-cancellation
datacurve/sqlite-utils-safe-import-checkpoints
datacurve/task-task-graph-export
datacurve/fastapi-deprecation-response-headers
datacurve/koota-query-predicates
datacurve/scc-bounded-memory-spilling
datacurve/pwntools-tube-multiplexing
datacurve/obsidian-linter-scoped-ignore-markers
datacurve/valibot-recursive-schema-composition
datacurve/go-critic-doc-link-checker
datacurve/tengo-destructuring-bindings
datacurve/mashumaro-flattened-dataclass-fields
datacurve/onedump-dump-encryption-pipeline
datacurve/bandit-structured-nosec-directives
datacurve/tomlkit-toml-table-converters
datacurve/pest-character-class-coalescing
datacurve/aiomonitor-task-snapshots-diff
datacurve/koota-composite-trait-aspects
datacurve/kombu-virtual-queue-dead-lettering
datacurve/scriggo-method-declarations
datacurve/vulture-persistent-analysis-cache
datacurve/psd-tools-blend-range-api
datacurve/testem-per-launcher-reports
datacurve/returns-validated-error-accumulation
datacurve/ink-grid-box-layout
datacurve/helm-unified-manifest-stream
datacurve/geo-shapeindex-serialization
datacurve/anko-default-function-arguments
datacurve/superjson-error-stack-serialization
datacurve/tengo-callable-instance-isolation
datacurve/dynamodb-toolbox-lazy-recursive-schemas
datacurve/abs-module-cache-flags
datacurve/query-persist-restored-query-state
datacurve/drizzle-orm-window-function-builders
datacurve/yjs-map-conflict-detection
datacurve/csstree-shorthand-expansion-compression
datacurve/actionlint-action-pinning-lint
datacurve/kea-atomic-signal-selectors
datacurve/sql-formatter-bigquery-pipe-formatting
datacurve/happy-dom-abort-pending-body-reads
datacurve/fd-deterministic-multi-key-sorting
datacurve/claude-code-by-agents-recursive-delegation
datacurve/pebble-durability-wait-apis
datacurve/textual-kitty-key-phases
datacurve/wasmi-trap-coredumps
datacurve/obsidian-linter-link-format-conversion
datacurve/wazero-multi-module-snapshots
datacurve/dynamodb-toolbox-conditional-attribute-requirements
datacurve/updo-policy-alerting
datacurve/testem-bail-on-test-failure
datacurve/awilix-async-container-initialization
datacurve/vitest-duration-sharding
datacurve/langchain-request-coalescing
datacurve/bandit-incremental-cache-control
datacurve/bandit-interprocedural-taint-checks
datacurve/kombu-single-active-consumer-priority
datacurve/abs-stepped-slices
datacurve/dasel-html-document-format
datacurve/skrub-duration-encoding
datacurve/kysely-window-grouping-helpers
datacurve/meriyah-explicit-resource-declarations
datacurve/termenv-preserve-ansi-resets
datacurve/ts-pattern-match-each
datacurve/koota-entity-snapshot-rollback
datacurve/kgateway-consistent-hash-policy
datacurve/expr-try-catch-errors
datacurve/participle-grammar-conflict-analysis
datacurve/arktype-json-schema-refs-dependencies
datacurve/happy-dom-deterministic-intersectionobserver
datacurve/eicrud-keyset-pagination-cursor
datacurve/httpx-deterministic-cookie-store
datacurve/textual-richlog-follow-state
datacurve/ipython-session-bundle-replay
datacurve/optique-conditional-option-dependencies
datacurve/mobly-grouped-test-barriers
datacurve/ytt-jsonpath-query-api
datacurve/arcane-drift-detection-baselines
datacurve/httpx-multipart-response-parsing
datacurve/anko-typed-variable-bindings
datacurve/adaptix-name-mapping-aliases
datacurve/effect-sse-httpapi-streaming
datacurve/cattrs-partial-structuring-recovery
datacurve/koota-pair-relation-tracking
datacurve/opa-template-string-reconstruction
datacurve/true-myth-iterable-collection-combinators
datacurve/ofetch-per-origin-circuit-breaker
datacurve/opa-rego-rule-profiling
datacurve/gql-incremental-graphql-delivery
datacurve/go-genai-streamed-function-args

Displaying 100 of 113 tasks