ccch1mneyyy/working-activity--packages-activity-working-activity ↗★ 659

dsh-working-activity

实时模型工作状态行,显示趣味文案、运行工具与耗时,支持 TUI 与 Web。 适合想在提示行查看模型工作状态的用户,TUI 需在模板加入 ${activity} 槽位。

包名
dsh-working-activity
兼容性
待验证
Harness 依赖范围
^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.2
Cordis 依赖范围
^4.0.1
版本
0.4.0
许可证
MIT
最近更新
2026年8月30日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ccch1mneyyy/working-activity#fcd911b41e2cc7d82aa3643500d4b14fb157911d&path:packages/activity/working-activity

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/ /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