DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
R

dsh-rice-on-a-stick

Rice On A Stick

通过 MCP 或其自身会话操作 DeepSeek Harness (dsh):将 dsh 会话、任务执行和工作区管理作为 MCP 工具和原生 dsh 工具提供。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:Leawind/dsh-carrot-on-a-stick#be74a1b12803323d20ccab92e86297fb9d37803b
README兼容性版本

兼容性与来源证明

Rice On A Stick 以 dsh-rice-on-a-stick 发布,当前版本为 0.1.0-rc.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/21

版本

0.1.0-rc.1prerelease
2026/10/21

相关插件

正在加载相关插件…

最新版
0.1.0-rc.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
周下载
0
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Ds Botds-botDS Bot:DeepSeek Harness 的一组长期运行的 Bot,支持主 Bot、Bot 间消息和群聊Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。

README

DSH Rice on a Stick

DSH Rice on a Stick

English | 中文

Operate a running DeepSeek Harness (dsh) from any MCP client: the plugin exposes dsh's session center, model/preset catalog, workspaces, and live activity as an MCP server, so Claude Code, Cursor, Cline, or your own agent can create and steer real dsh sessions — the same sessions the dsh UI shows. The same tool surface is also registered as native tools in this instance, so dsh's own sessions can operate themselves.

Claude Code / Cursor / Cline / your agent
                │  Streamable HTTP · 127.0.0.1:8090/mcp
                ▼
       dsh-rice-on-a-stick
                │  sessionController · agents · tools · workspaces
                ▼
   dsh host — the same sessions the UI shows

Highlights

  • Real sessions, not a shell wrapper — tools go through the host's session controller: create, prompt, queue, fork, archive, model switch.
  • Async orchestration — session_submit / session_poll / session_result; a client timeout only stops the wait, never the dsh turn; stopping work goes through session_cancel.
  • Approvals — approval_list / approval_answer / approval_policy; approvalControl decides who answers approvals for sessions this plugin created or resumed: exclusive (default) means the caller only — the UI no longer shows the request; fallback is UI first, handing over to the caller when the UI cannot answer; off is display-only.
  • Self-use — the same surface registers as native rice_ tools inside this instance; http: false gives a self-use-only deployment.
  • Tools-first by default — binds 127.0.0.1, optional Bearer auth, Host/Origin allowlists, idle transport-session reaping; resource-first mode is opt-in, so clients that only understand tools see no change.

The exact tool and resource surfaces are defined in src/mcp/tools/ and src/mcp/resources.ts; agents should call dsh_get_started first — it carries the dsh crash course, recipes, and error recovery.

Requirements

  • DSH >= 0.2.1-rc.2 (declared as engines.dsh). A web/desktop profile is needed for the settings panel and the full session surface; minimal/headless profiles can still run the MCP server. stdio-only clients need a Streamable HTTP bridge.

Install

The package is not published on npm; install from a built checkout:

git clone https://github.com/Leawind/dsh-rice-on-a-stick.git
cd dsh-rice-on-a-stick
npm install
npm run build
dsh plugin --profile web add link:"$(pwd)"

Restart dsh web, then open Settings → MCP Service. To remove: dsh plugin --profile web remove dsh-rice-on-a-stick.

Connect an MCP client

Default endpoint http://127.0.0.1:8090/mcp. Auth is off until a token is configured; when on, send the token from Settings → MCP Service as a Bearer credential:

{
  "mcpServers": {
    "dsh": {
      "type": "http",
      "url": "http://127.0.0.1:8090/mcp",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Typical loop:

{ "name": "model_list", "arguments": {} }
{ "name": "session_create", "arguments": { "cwd": "/path/to/project", "provider": "…", "model": "…", "preset": "standard" } }
{ "name": "session_submit", "arguments": { "sessionId": "…", "task": "…" } }
{ "name": "session_poll", "arguments": { "sessionIds": ["…"], "waitMs": 20000 } }
{ "name": "session_result", "arguments": { "sessionId": "…", "requestId": "…" } }

New sessions require explicit provider + model + preset from model_list — the plugin never backfills defaults. Resuming a sessionId reuses that session's model and preset.

Configuration

Fields and defaults live in src/core/config.ts — the single source of truth. The settings panel covers every config field (no omissions): volatile fields are saved in place without reloading (MCP connections stay up); the structural ones (listen address and port, external MCP switch, resource-first mode, approval answerer and wait limit, transport idle TTL, Host header allowlist) are written and reload the plugin automatically when you leave the field or close the settings dialog — there is no Apply button, and invalid values are reported in place instead of being written. Key defaults: resourceFirst: false (tools first), approvalControl: exclusive (the caller answers approvals), sessionTtlMs: 604800000 (one week). Transport overrides go into the profile's cordis.patch.yml:

- id: dsh-rice-on-a-stick
  config:
    http: true
    port: 8090
    host: 127.0.0.1 # localhost only by default; add auth before exposing
    # authToken: 'your-secret-token'

Security

[!WARNING] This plugin exposes local code execution. It binds 127.0.0.1 only by default, but with auth off any local process that can reach the port can drive dsh.

  • Set authToken; never bind 0.0.0.0 or expose to LAN/WAN without a reverse proxy + TLS + auth.
  • No directory whitelist: sessions may work in any cwd the caller specifies.
  • Native rice_ tools bypass HTTP/auth — every session in this instance can call them; turn off the registration switch if that is unwanted.

Development

npm install
npm run build        # compile src/ to lib/ and src/client/ to client/
npm run dev          # watch both TypeScript projects
npm test             # build + smoke
npm run typecheck    # type-check src/, src/client/, test/ and scripts/
npm run smoke:ui     # browser harness for the settings panel

Layout: src/ host half (MCP server, tools, resources, engine) and src/client/ settings-panel source; client/ is the generated panel bundle (build output), cordis.yml bundle patch, test/ smoke + e2e + UI harness, docs/ architecture notes. Design constraints that are not obvious from code: docs/architecture.zh.md (Chinese). test/e2e.ts is a separate real-host check, not part of npm test.

Acknowledgements

Started as a copy of chushixixin/dsh-harness-mcp-server (MIT, thanks @chushixixin), now an independent project.

License

MIT