DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-working-activity

Working Activity

实时模型工作状态行:俏皮文案、正在运行的工具、回合耗时 — 用于 TUI 提示符和 Web UI

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-working-activity@0.4.0
README兼容性版本

兼容性与来源证明

Working Activity 以 dsh-working-activity 发布,当前版本为 0.4.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.4.0stable
2026/8/30
0.3.3stable
2026/8/20
0.3.2stable
2026/8/19
查看其余 3 个版本收起版本
0.3.0stable
2026/8/19
0.2.6stable
2026/8/16
0.2.5stable
2026/8/16

相关插件

正在加载相关插件…

最新版
0.4.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
300.9 kB
文件数
58
Surface
web
许可证
BSD-3-Clause
发布源
npm
GitHub
★ 0
周下载
4,758
安全扫描
✓ v0.4.0 扫描通过
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

README

dsh-working-activity

A live "working line" for DeepSeek Harness: the model's real-time activity — playful thinking copy, the tool actually running, elapsed time, and a turn-end summary — shown while the agent works.

What it does

Folds the durable session stream (turn/start, assistant/chunk, tool/call, tool/result, turn/end) plus agent/status into one status line, refreshed on a render tick:

  • Thinking: short colloquial copy rotates every few seconds (嗯…让我捋捋, 盘一下盘一下, 大脑转起来了, deadpan lol / hm / ok), tiered when thinking runs long (30s / 1min / 5min), night-owl copy mixed in between 00:00–06:00 local time.
  • Tool activity: the running tool renders as 俏皮动词 + 参数细节 + 已耗时 (跑个命令 npm test · 12s); failed tools show 翻车了-style copy in the done line.
  • Turn summary: on turn/end the line becomes 搞定 ✓ · N 工具 · 想Xs 干Ys (thinking/tool split), with the last tool's fragment pinned for a few seconds.
  • Minimal mode: phrases: false renders plain functional labels (思考中 · 总1m23s, bash npm test · 12s).

Two optional sinks, both off by default only when their seam is absent:

  1. TUI prompt slot — registers the ${activity} template value on ctx.tuiPrompt when the TUI is composed. Add ${activity} to theme.leftPrompt to see it next to cwd/model/context.
  2. Session events — appends log-only activity/status events (never surface events: the model never sees them) for Web and other UI consumers; replay ignores them.

Installation

The package is a self-mounting bundle: it declares dsh.bundle.patch (cordis.patch.yml), so the official CLI both installs it and appends it to the profile's bundle layer stack:

dsh plugin --profile <profile> add dsh-working-activity

At boot, app-boot applies the bundle's patch list over the profile root and the package inserts its own working-activity row — no manual configuration required. To tune a value, override the row's config by id in the profile's user layer ($DSH_HOME/profiles/<profile>/cordis.patch.yml) instead of inserting a second same-id row:

- id: working-activity
  config:
    publishIntervalMs: 500

Host and TUI integration supports the DSH 0.1.0-rc.6 and 0.1.1-rc lines, plus 0.1.2-alpha.2. The optional Web client still uses the rc client-runtime contract and is not covered by alpha.2 compatibility.

TUI usage

Install the plugin into a profile that composes the official dsh-tui, then add the ${activity} slot to the left prompt template in the profile's user layer ($DSH_HOME/profiles/<profile>/cordis.patch.yml):

- id: tui
  config:
    theme:
      leftPrompt: '${cwd}${git/worktree}${activity}${model}${token_meter/cache_hit_rate}${context}'

While a turn runs, the prompt line shows e.g. dsh main 跑个命令 npm test · 12s deepseek-chat …; while thinking, 嗯…让我捋捋 · 总1m23s; after the turn, 搞定 ✓ · 4 工具 · 想12s 干11s briefly. Without ${activity} in the template, the plugin is inert in the TUI (the slot is unregistered values are omitted by the template renderer).

Web usage

The Web client renders the live line two ways, both fed by the activity/status events:

  • The turn-level status label (TurnStatus, formerly the static "Deep diving...") shows the live line while a turn runs, keeping its sweep animation.
  • A working-line dock entry (WorkingLine on conversation.input.dock) renders the turn-end statistics (token/elapsed/tool summary) above the composer after a turn settles; live phases stay on the turn label.

Both fall back to the previous static label while the plugin is absent, so the Web UI is unaffected by disabling it.

Configuration

KeyTypeDefaultMeaning
phrasesbooleantruePlayful copy pool; false renders plain functional labels
publishbooleanfalseAppend activity/status session events for UI consumers. Off by default: appended events currently make session logs unresumable (see note below)
tickMsnumber500Status render tick interval (100–5000)
publishIntervalMsnumber2000Minimum interval between published events while the line is stable (500–30000)
detailLimitnumber40Max displayed detail length (paths/commands/patterns), 8–120
customActionsobject{}Exact tool-name → action-copy pools, e.g. {"my_deploy": ["部署一下", "上线中"]}
narratebooleantrueInject the ⏵ self-narration contract into the system prompt; the line is surfaced live and stripped from the chat body

Event contract

activity/status is a log-only session event (merge-extensible SessionEventMap member, no surfaceOp):

{
  phase: 'idle' | 'waiting' | 'thinking' | 'tool' | 'done'
  line: string            // plain-text status line, no ANSI
  label?: string          // current work label (tool action / stage)
  detail?: string         // path / command / pattern fragment
  phrase?: string         // current playful phrase
  toolCount: number       // tools completed this turn
  turnElapsedMs: number   // ms since turn start
  phaseStartedAt: number  // epoch ms the phase started (animation anchor)
}

Why publish is off by default: session.append() cannot mark events ignorable, and the resume read path refuses any log containing unknown non-ignorable event types — so with publish: true, every session that rendered a status line fails to resume. Re-enable only for a log-replaying consumer on a harness that supports ignorable appends. The live TUI prompt line is unaffected.

Publishing rules: line changes publish immediately; a stable line republishes at most every publishIntervalMs so a long tool's elapsed time stays live without flooding the log. All data is lossless JSON; optional fields are omitted when absent.

Export shape

A function/namespace plugin: name / Config / apply, no default export. The state machine (ActivityTracker) and copy pools live in ./status and ./phrases (pure, clock-injected, unit-tested). The invariant companion registers under ./invariant.

Model Experience

Prompt and tool surface

Nothing. The plugin injects no prompt sections, registers no tools, and appends no surface events. activity/status is UI state only: it never enters derived model history, so the model cannot see its own working line.

Token effect

Zero per request.

KV Cache effect

No system-prompt contribution, so no cache-stability effect.

Known Limitations and Deferred Work

  • Single active line: the plugin keeps one status line per session; the TUI slot shows the most recently active session.
  • Narration is opt-in: the ⏵ self-narration contract (model writes a short status line at the top of each reply) is injected by default (narrate: true); set narrate: false for a purely event-derived line.
  • No progress percentages: DSH has no tool progress events; a long tool shows elapsed time only.
  • No animated frames: the TUI slot renders a static text fragment; frame animation (moon/comet/braille presets) is deferred until the prompt-slot contract supports a frame callback.
  • Web dock entry duplicates the turn label: the input-dock WorkingLine and the chat TurnStatus show the same snapshot; the dock entry exists for session views where the turn label is not visible.

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包