DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Web Service — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
W

@dsh-external/dsh-web-service

Web Service

通过 HTTP 开放 DSH:提供 47 个 REST + SSE 路由,涵盖工作区、会话(流式传输、历史记录、统计、待办事项、取消)、模型、设置、技能和文件,以及兼容 OpenAI 的 /chat/completions。· 将 DSH 的能力开放为 REST + SSE 接口和兼容 OpenAI 的端点,供第三方控制台、客户端与 Agent 集成。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:toddpan/dsh-webapi#f1d0fdc13daf7e28d2c2fe3f07ad43ce571eb6fd
README兼容性版本

兼容性与来源证明

Web Service 以 @dsh-external/dsh-web-service 发布,当前版本为 0.1.11。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/25

版本

0.1.11stable
2026/9/25

相关插件

正在加载相关插件…

最新版
0.1.11
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
BSD-3-Clause
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/25
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-webapi (@dsh-external/dsh-web-service)

English | 中文

A DSH plugin that exposes DeepSeek Harness over HTTP: the workspaces, sessions, models, settings, skills and files already inside DSH become plain REST endpoints and SSE streams, plus an OpenAI-compatible /chat/completions so an existing OpenAI client can talk to DSH unchanged.

Typical uses: a self-hosted console for DSH, a desktop or mobile client, CI / automation that drives an agent, a non-DSH agent that calls DSH as a tool, or a gateway that puts DSH behind your own API.

  • No new dependencies — the plugin only injects webServer and tools; the routes ride on the DSH host webserver (or an optional standalone port).
  • 47 routes (REST + SSE), documented by a built-in OpenAPI 3.0 spec and a request page.
  • Bilingual skill included — skills/dsh-web-service/SKILL.md teaches a DSH agent how to drive the API (streaming, cancelling, answering pending questions, file uploads).

Install

Requires DSH 0.1.0–0.1.9 (peer ranges in package.json; verified on 0.1.7-rc.2).

Option 1: prebuilt tarball (recommended — no build step, no allowBuilds approval)

dsh plugin --profile web add \
  https://github.com/toddpan/dsh-webapi/releases/latest/download/dsh-web-service.tgz

dsh plugin records the package in the profile package.json (dependency + dsh.profile.bundles); a profile with HMR assembles it immediately, otherwise restart DSH. Verify:

curl -s http://127.0.0.1:3080/api/v1/system/status   # {"ok":true,...}
curl -sI http://127.0.0.1:3080/api/v1/docs           # HTTP/1.1 200 OK

Upgrading. The asset name carries no version, so latest/download/dsh-web-service.tgz always points at the newest build for a fresh install — but package managers may reuse a cached resolution of that URL. To move an existing install to a known build, pin the versioned asset: dsh plugin --profile web add https://github.com/toddpan/dsh-webapi/releases/download/v0.1.11/dsh-web-service-0.1.11.tgz

Option 2: build from source (needs a DSH source checkout)

git clone https://github.com/toddpan/dsh-webapi && cd dsh-webapi
DSH_CHECKOUT=/path/to/deepseek-harness bash scripts/build.sh     # src/ → lib/
dsh plugin --profile web add "$PWD"

lib/ is build output and is not committed, so installing straight from git yields no runnable code — use option 1, or build first. scripts/build.sh symlinks cordis / schemastery / @deepseek-ai/* peers out of the checkout, so no npm install is needed.

Configuration

All fields are optional; they live in the plugin row's config in your profile patch (defaults in src/index.ts):

FieldDefaultMeaning
pathPrefix/api/v1Route prefix
apiKey''Non-empty enables auth; requests must carry this key
standalonePort0>0 also listens on its own port; 0 means host webserver only
corstrueAllow cross-origin requests
defaultCwd''Default working directory; empty means process.cwd()
maxUploadBytes2 GiBUpload size limit; use the chunked endpoints for bigger files

Features

  1. Workspaces — create, update, delete and list workspaces and their sessions.
  2. Sessions — create, delete/archive, retitle or switch model, list, and page through message history.
  3. Models & settings — list models and providers, read and update the global default model, read settings namespaces, list agent presets.
  4. Streaming — POST /sessions/:id/prompt-stream pushes delta, reasoning, tool_call, tool_result and turn_end over Server-Sent Events; GET /sessions/:id/events taps the session's raw event bus.
  5. OpenAI compatibility — POST /chat/completions accepts a standard OpenAI client, streaming or not.
  6. Built-in docs — interactive request page at GET /api/v1/docs, OpenAPI 3.0 spec at GET /api/v1/openapi.json.
  7. Interactive sessions — read pending ask_user_question batches and answer them over REST, cancel a running turn, upload/list/download workspace files (including resumable chunked upload).

API routes

Default prefix: /api/v1

ModuleMethodPathNotes
SystemGET/system/statusSystem status, live models, port info
WorkspacesGET/workspacesList workspaces
POST/workspacesCreate / add a workspace
GET/workspaces/:idWorkspace detail
PUT/workspaces/:idRename a workspace
DELETE/workspaces/:idRemove a workspace binding
GET/workspaces/:id/sessionsSessions in a workspace
SessionsGET/sessionsList sessions (search + workspace filter)
POST/sessionsCreate a session
GET/sessions/:idSession detail and state
PUT/sessions/:idUpdate a session (title / model)
DELETE/sessions/:idDelete or archive a session
GET/sessions/:id/historyPaged message history
GET/sessions/:id/statsLive stats: turns/steps, LLM and tool timings, mean first token, decode throughput, cache hits, token ledger (matches the harness session-stats projection)
GET/sessions/:id/todosTask list + elapsed time: todos[{content,status}] (todo_write full-table projection, cleared on turn/start), , / (wall clock of the current or last turn), // — for a third-party console's "tasks" panel (≥0.1.8)

Development

# Build the plugin
bash scripts/build.sh

# Hot-inject at runtime (needs dsh-super-injector)
dev_inject_plugin {"dir": "/path/to/dsh-web-service"}

# Hot reload
dev_reload_package {"packageName": "dsh-web-service"}

Skill: teach an agent to drive this API

The repository ships a DSH-native skill (skills/dsh-web-service/SKILL.md). Once installed, a DSH agent discovers it automatically and knows how to use every endpoint (triggers: driving DSH over HTTP, third-party integration, OpenAI-compatible calls; also available in-session as /dsh-web-service).

Install online (recommended)

curl -fsSL https://raw.githubusercontent.com/toddpan/dsh-webapi/main/scripts/install-skill.sh | bash

It installs into the user-level skill directory ~/.dsh/skills/dsh-web-service/, where DSH's skill-filesystem provider discovers it live (no restart) — usable from the next session.

Options

# Install into a specific directory (project-level .dsh/skills or .agents/skills)
curl -fsSL .../install-skill.sh | bash -s -- --dir /path/to/project/.dsh/skills

# Pick a branch / repository
curl -fsSL .../install-skill.sh | bash -s -- --branch dev
curl -fsSL .../install-skill.sh | bash -s -- --repo other/dsh-webapi

# Uninstall
curl -fsSL .../install-skill.sh | bash -s -- uninstall
# or locally: bash install-skill.sh uninstall

What the script does: download SKILL.md → validate the frontmatter → install into the target directory → probe ports 3080/3000 for a running DSH Web Service and report. Idempotent.

Local install (inside the repo)

bash scripts/install-skill.sh

License

BSD-3-Clause

counts{completed,inProgress,pending}
running
elapsedMs
turnStartedAt
turnEndedAt
updatedAt
GET/sessions/:id/skillsSession-scoped skill catalog (resolves skill roots from the session cwd, supports ?search=; mirrors skills/list for a "/" completion menu)
GET/sessions/:id/questionsPending ask_user_question batches (host-side answer bridge, ≥0.1.7; includes the connection-layer race bypass and ALS session binding)
POST/sessions/:id/answersAnswer pending questions (answers: [{id, selected, custom?}]); the tool returns as an ordinary tool/result and the session continues
POST/sessions/:id/cancelAbort the current turn
POST/sessions/:id/filesUpload into the session workspace (multipart, or raw + ?filename=); duplicate names get -1 suffixes, and the agent can read them with its file tools
GET/sessions/:id/filesList the session workspace (?path= browses a subdirectory, directories first)
GET/sessions/:id/files/downloadDownload a workspace file (?path= relative; ?inline=1 for in-browser preview)
StreamingPOST/sessions/:id/prompt-streamSend a prompt and receive generation as SSE
GET/sessions/:id/eventsSubscribe to the session event bus as SSE
POST/sessions/:id/promptSend a prompt and wait for the result synchronously
OpenAIPOST/chat/completionsOpenAI Chat protocol (streaming and non-streaming)
ModelsGET/modelsAvailable models and the default model
GET/models/defaultRead the global default model
PUT/models/defaultUpdate the global default model
GET/providersRegistered LLM providers
GET/presetsAvailable agent presets
SettingsGET/settingsSettings namespaces
PATCH/settings/:namespaceUpdate one namespace
DocsGET/docsInteractive API request page
GET/openapi.jsonOpenAPI 3.0 document

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Univer Officedsh-univer-officeDSH × Univer 集成,内置协作 Gateway 和 Viewer:内联预览、实时浮动 Worktree 窗口,以及 DeepSeek Harness 中的会话结束审查操作。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Bridge@wenbin_wb/dsh-bridge手机扫码即可在移动端/公网继续用 DeepSeek Harness,人不在电脑前也能接着干。一键局域网二维码、Cloudflare 公网隧道、自建隧道与微信 / QQ / 飞书 / Telegram Bot(多工作区/会话持久化/媒体/卡片审批/流式输出),无需自己搭公网服务器。