2nd dokployH
Find a file
Tianyi Cui 3368ddc0ab feat(sdk): launch TypeScript clients through dsh profiles
Replace the TypeScript SDK's public arbitrary command/argv launch surface with the same-version dsh CLI, a named profile, ordered per-launch patches, optional process cwd, and explicit Harness home selection. Installed consumers use the built CLI; clean source checkouts use the package's src/bin.ts through an absolute tsx/esm loader and a source-only patch that omits build-generated Typert loading.

Materialize explicit or inherited environments at spawn time, keep profile-internal patches below caller patches, and resolve every caller-relative path before the child starts. The SDK subagent provider validates its optional CLI and patch files at plugin load and requires an isolated absolute child home.

Treat JSON-RPC initialize as the Loader-owned readiness point: Loader settlement joins entry imports, fiber lifecycle work, and synchronous effect registration, so the server needs no scheduler tick. A delayed profile entry registers a private adapter before initialize resolves, proving caller-supplied plugin routes are visible without fallback.

Update sdk-app ownership, server diagnostics, TypeScript SDK examples, nested-loader coverage, and session-upload replay layering together. The following commit contains only the regenerated SDK transcripts, keeping this API and lifecycle change directly reviewable.
2026-08-23 10:59:00 +08:00
.agents refactor(acp): launch automation through the dsh acp profile 2026-08-23 10:59:00 +08:00
.claude docs: accuracy sweep, architecture restructure, two ADRs, review skill 2026-06-13 22:05:34 +08:00
.github Merge pull request #2875 from deepseek-harness/ci/python-release-gray 2026-08-23 10:34:15 +08:00
apps feat(sdk): launch TypeScript clients through dsh profiles 2026-08-23 10:59:00 +08:00
docs refactor(acp): launch automation through the dsh acp profile 2026-08-23 10:59:00 +08:00
examples feat(sdk): launch TypeScript clients through dsh profiles 2026-08-23 10:59:00 +08:00
native docs: trim CoT leakage from post-purge prose 2026-08-22 20:35:11 +08:00
packages feat(sdk): launch TypeScript clients through dsh profiles 2026-08-23 10:59:00 +08:00
patches chore(subprocess-local): bump node-pty beta 2026-08-13 17:58:13 +08:00
python Merge pull request #2875 from deepseek-harness/ci/python-release-gray 2026-08-23 10:34:15 +08:00
scripts refactor(acp): launch automation through the dsh acp profile 2026-08-23 10:59:00 +08:00
vendor release(vendor): cordis 4.0.1, cosmokit 1.8.2, group 1.0.1, hmr 1.0.16, include 1.0.6, loader 1.0.2, logger-console 1.0.1, schemastery 3.18.1, timer 1.1.3 2026-08-13 14:18:56 +08:00
website feat(deepseek): upload plugin package metadata (#2916) 2026-08-22 20:03:23 +08:00
.editorconfig Declare LF and final-newline conventions in .editorconfig 2026-07-15 16:09:12 +08:00
.gitattributes feat(i18n): compose pairing records during merges 2026-08-08 21:11:59 +08:00
.gitignore feat(build): bind client artifacts to build profiles 2026-08-19 18:21:27 +08:00
.gitlab-ci.yml Support MCP in packaged Python runtime 2026-08-18 13:50:53 +08:00
.jscpd.json chore(lint): bring .tsx files into the eslint, lefthook, and jscpd lanes 2026-07-27 21:42:08 +08:00
.oxlintrc.json feat(util): mint UUIDs without crypto.randomUUID in every context 2026-08-21 20:35:34 +08:00
.oxlintrc.staged.json refactor: make lint workflows Oxlint-only 2026-08-09 14:55:15 +08:00
.rgignore chore: exclude archived Agent Notes from rg 2026-08-10 14:49:30 +08:00
AGENTS.md feat(webhook): create workspace sessions from GitHub events 2026-08-23 01:48:35 +08:00
BENCHMARK.md docs: make Web UI the primary onboarding path 2026-08-12 11:44:33 +08:00
BRAND_GUIDELINES.i18n.yaml docs: split brand guidelines into bilingual pair 2026-08-19 21:01:18 +08:00
BRAND_GUIDELINES.md docs: split brand guidelines into bilingual pair 2026-08-19 21:01:18 +08:00
BRAND_GUIDELINES.zh.md docs: split brand guidelines into bilingual pair 2026-08-19 21:01:18 +08:00
CLAUDE.md Initialize repo with README, AGENTS.md, and CLAUDE.md symlink 2026-06-10 22:58:56 +08:00
CONTRIBUTING.i18n.yaml docs(i18n): polish contribution greeting 2026-08-12 14:40:32 +08:00
CONTRIBUTING.md docs(i18n): refine contribution guide wording 2026-08-12 14:24:44 +08:00
CONTRIBUTING.zh.md docs(i18n): polish contribution greeting 2026-08-12 14:40:32 +08:00
knip.json feat(profiles): add the ACP application bundle 2026-08-23 10:59:00 +08:00
lefthook.yml fix(review): address source-run feedback 2026-08-11 11:22:08 +08:00
LICENSE Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
package.json fix(build): raise host compiler heap ceiling 2026-08-23 01:48:35 +08:00
pnpm-lock.yaml feat(profiles): add the ACP application bundle 2026-08-23 10:59:00 +08:00
pnpm-workspace.yaml chore(subprocess-local): bump node-pty beta 2026-08-13 17:58:13 +08:00
pytest.ini Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose 2026-07-14 00:40:36 +08:00
README.i18n.yaml docs: add documentation website link 2026-08-21 15:33:48 +08:00
README.md docs: add documentation website link 2026-08-21 15:33:48 +08:00
README.zh.md docs: add documentation website link 2026-08-21 15:33:48 +08:00
THIRD_PARTY_NOTICES.md feat(webhook): create workspace sessions from GitHub events 2026-08-23 01:48:35 +08:00
tsconfig.base.client.json feat(client): inject public build environment 2026-08-19 18:21:26 +08:00
tsconfig.base.json feat(webhook): create workspace sessions from GitHub events 2026-08-23 01:48:35 +08:00
tsconfig.client.json feat(client): compose deployment branding through slots 2026-08-19 18:21:35 +08:00
tsconfig.host.json feat(profiles): add the ACP application bundle 2026-08-23 10:59:00 +08:00
tsconfig.json refactor(tsconfig): single root solution graph over host/client aggregates 2026-07-23 03:59:05 +08:00
tsdown.config.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
vitest.config.ts feat(webworker): model-executed shell over nested worker processes 2026-08-21 20:35:32 +08:00
vitest.e2e.config.ts fix(typert): close remote gateway review gaps 2026-08-07 21:47:15 +08:00
vitest.shared.ts fix(typert): close remote gateway review gaps 2026-08-07 21:47:15 +08:00
vitest.snapshot.config.ts chore: remove remaining SDK toolchain residue 2026-08-11 16:37:29 +08:00
vitest.web-stress.config.ts test(web): add opt-in reasoning chunk stress lane 2026-08-04 14:37:31 +08:00
vitest.web.config.ts perf(ci): parallelize coverage and web snapshots in-job 2026-08-18 21:15:20 +08:00
vitest.web.perf.config.ts test: add opt-in web performance scenario 2026-08-04 14:23:34 +08:00

DeepSeek Harness

English | 中文

DeepSeek Harness (dsh) is an open-source agent harness developed by DeepSeek AI.

It uses an architecture where everything is a plugin, and is powered by Cordis, whose design is described in A Programming Paradigm for Spatiotemporal Composability.

Documentation: https://deepseek-harness.github.io/deepseek-harness/

Developer preview

DeepSeek Harness is currently in developer preview and is iterating rapidly. THERE WILL BE COMPATIBILITY-BREAKING CHANGES.

Run

Run from npm

Install Node.js, then run:

npx @deepseek-ai/dsh web

The command starts the Web UI at http://127.0.0.1:3080 by default and opens it in the default browser for a local launch. An SSH launch only prints the host URL because the SSH client or editor owns the local forwarded address. Pass --no-open to run the server without opening a browser. See Web UI guide.

Run from source

To run from a repository checkout:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

pnpm run build prepares the repository artifacts. pnpm dsh web uses those built artifacts without rebuilding.

Community and support

Contributing

See CONTRIBUTING.md.

Development

Start with the development guide and architecture documentation.

For agents, follow AGENTS.md.

License

MIT

Third-party dependencies and their licenses are disclosed in THIRD_PARTY_NOTICES.md.