2nd dokployH
Find a file
Chinesezjc 0fdb1c944f Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui
Resolve additive conflicts in the api-remotes client assembly by keeping
both the message-feedback remote mount and master's forwarded-event
allowlist, and regenerate the module graph.
2026-08-11 21:37:55 +08:00
.agents Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
.claude Revert "test(repository-plugin): drop the skill contribution from the preset-composed e2e" 2026-08-09 22:10:50 +08:00
.github refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
apps Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
assets
docs Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
examples Merge worktree/schedule-explicit-at into worktree/schedule-fixed-rate 2026-08-11 19:23:20 +08:00
native refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
packages Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
patches
python feat(llm): send DeepSeek user identity header 2026-08-11 21:01:36 +08:00
scripts Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
vendor refactor(cmdline): trim the command-line seams to existing interfaces 2026-08-11 18:00:15 +08:00
website Merge remote-tracking branch 'origin/master' into worktree/schedule-conversational-after 2026-08-11 19:05:13 +08:00
.editorconfig
.gitattributes
.gitignore chore: untrack the local .claude/launch.json and ignore it 2026-08-08 23:45:38 +08:00
.gitlab-ci.yml fix(python): rename SDK distribution 2026-08-10 19:45:54 +08:00
.jscpd.json
.oxlintrc.json refactor: make lint workflows Oxlint-only 2026-08-09 14:55:15 +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 Merge origin/master into worktree/remove-sdk-project-toolchain 2026-08-11 15:08:18 +08:00
BENCHMARK.md docs: add benchmark SDK entry point 2026-08-11 11:26:17 +08:00
CLAUDE.md
CONTRIBUTING.i18n.yaml docs: add Chinese contribution guide 2026-08-11 17:55:49 +08:00
CONTRIBUTING.md docs: add Chinese contribution guide 2026-08-11 17:55:49 +08:00
CONTRIBUTING.zh.md docs: add Chinese contribution guide 2026-08-11 17:55:49 +08:00
knip.json docs: state the Host-face rule for the browser e2e and settle the follow-ups 2026-08-11 19:25:41 +08:00
lefthook.yml fix(review): address source-run feedback 2026-08-11 11:22:08 +08:00
LICENSE
package.json Merge pull request #2202 from deepseek-harness/ci/selfhosted-windows-runners 2026-08-11 14:49:48 +08:00
pnpm-lock.yaml Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
pnpm-workspace.yaml fix(packaging): materialize runtime dependencies 2026-08-10 22:47:18 +08:00
pytest.ini
README.i18n.yaml docs: separate contribution links from license 2026-08-11 18:16:29 +08:00
README.md docs: separate contribution links from license 2026-08-11 18:16:29 +08:00
README.zh.md docs: separate contribution links from license 2026-08-11 18:16:29 +08:00
THIRD_PARTY_NOTICES.md Merge origin/master into worktree/remove-sdk-project-toolchain 2026-08-11 15:08:18 +08:00
tsconfig.base.client.json refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
tsconfig.base.json Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
tsconfig.client.json Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
tsconfig.host.json Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-11 21:37:55 +08:00
tsconfig.json
tsdown.config.ts refactor(cli)!: complete app-owned profile startup 2026-08-10 23:45:04 +08:00
vitest.config.ts refactor(sdk): remove unreleased project toolchain 2026-08-11 14:20:53 +08:00
vitest.e2e.config.ts
vitest.shared.ts
vitest.snapshot.config.ts chore: remove remaining SDK toolchain residue 2026-08-11 16:37:29 +08:00
vitest.web-stress.config.ts
vitest.web.config.ts
vitest.web.perf.config.ts

DeepSeek Harness

English | 中文

DeepSeek Harness (dsh) is an open-source coding agent built on the DeepSeek Harness SDK.

It uses an architecture where everything is a plugin.

Internal testing notice

DeepSeek Harness is under internal testing. Features and interfaces may change.

The internal build uploads all Session Logs by default to help diagnose reported problems. Set DSH_TELEMETRY_DISABLED=1 to disable telemetry. Send feedback through the internal WeChat group.

Run from source

Clone this repo, complete the dependency and API-key setup, then run:

pnpm dsh web

Use DeepSeek Harness

Web UI

Start the recommended local interface from the repository root:

pnpm dsh web

The command builds the repository before starting the Web UI, which is served at http://127.0.0.1:3080 by default.

Profiles

The source CLI boots profiles — ordered stacks of plugin-bundle patch layers under your own overrides in $DSH_HOME/profiles/<name>:

pnpm dsh --profile web                       # the browser UI
pnpm dsh plugin --profile tui add <package>  # install a plugin into a custom profile
pnpm dsh --profile tui                       # boot it

The CLI reference describes profile layout, layer semantics, and config dump commands.

Headless

Run one task, print the final answer, and exit:

pnpm dsh --profile headless "summarize this workspace"

Automation and SDKs

From a source checkout with DEEPSEEK_API_KEY in the environment or its root .env, start the ACP automation server:

pnpm run demo:acp

The Python SDK drives a bundled JSON-RPC runtime. The examples cover the runnable headless, ACP, JSON-RPC, Code Mode, and self-referential compositions.

Why DeepSeek Harness

Built-in capabilities cover file reading, editing, and search; shell and persistent PTY execution; reusable skills; task tracking, goals, plans, todos, and background tasks; subagents and workflows; sandboxing and approvals; settings and credentials; persistent, resumable, forkable, and queryable sessions; LSP and web access; context compaction; and telemetry. Each composition selects the subset appropriate to its surface. The Web UI includes Plan Mode.

  • Everything is a plugin. Models, tools, policies, storage, context management, and interfaces are composable Cordis plugins, so deployments can extend or replace behavior without forking the agent loop. See the architecture for the underlying design.
  • Runs are reconstructable. Anything visible to the model is logged in the authoritative session stream; persistence, resume/fork/query, replay, telemetry, and UIs derive from the same events. See the session-log architecture.
  • Code Mode (opt-in). It exposes a run_code tool and a generated TypeScript SDK; only program output re-enters model context. See Code Mode.
  • Self-referential Cordis tools are opt-in. They let the agent inspect its live runtime and mount or unmount plugins while it runs. See the Cordis tools.

Community

Follow DeepSeek Harness on Twitter for project updates.

Development

Start with the development guide and read the architecture before changing packages.

For agents, follow AGENTS.md.

DeepSeek Harness is currently in internal testing.

License

BSD 3-Clause

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

Contributing

Read CONTRIBUTING.md before contributing to this repository.