DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

working-activity

c

working-activity

Manifest valid★ 666

Lively Working-line extension for pi CLI and DSH

working-activity

Bring the agent's "work status line" to life — real-time tool activity & progress, playful copy, model narration, and context warnings. The same idea, adapted for two platforms: pi CLI and DeepSeek Harness (DSH).

Author: chimney (@ccch1mneyyy). Community-made, not an official project.

The repo has two variants, pi and dsh; the two npm packages are published independently and each keeps its own install method.

Platform overview

Platformnpm packageSource locationInstall
pi CLIpi-working-activityextensions/pi install npm:pi-working-activity
DeepSeek Harnessdsh-working-activitypackages/activity/working-activity/dsh plugin --profile <profile> add dsh-working-activity

Directory layout

extensions/                             pi 版扩展(唯一源码,无构建)
tests/                                  pi 版测试
package.json                            pi 版包(发布 pi-working-activity)
packages/activity/working-activity/     DSH 版插件(发布 dsh-working-activity)
patches/webui-working-activity.patch    DSH Web UI runtime 补丁
docs/dsh-working-activity.md            DSH 版完整文档(原 dsh 仓库 README)

pi version

Bring pi's Working line to life — real-time tool activity & progress + playful Chinese copy + rare rainbow easter eggs + model narration + context warnings.

Features overview

🛠 Real tool activity

Listens for tool_execution_start / tool_execution_end, and the Working line shows in real time what is actually running — no fake spinners.

翻翻 src/index.ts
改改 package.json
跑命令 npm run build
搜搜 NARRATE_MIN_MS

📈 Real-time tool progress

Listens for tool_execution_update and prioritizes the percentage, stage, and status returned by the tool; for streaming output such as bash, it also recognizes common download, build, test, and deployment progress.

拉取模型权重 · 42% · 8s
跑命令 npm test · Testing integration · 12s
部署一下 staging · Deploying assets · 31s

Plain output won't be dumped into the Working line; only structured progress, percentages and recognizable stages get shown.

⏩ Fast-tool queue replay

Tools under 1.5s flash by too fast? Not here. Fast tools queue up and play at 1s each; the last one lingers 3s so you can actually see it.

💬 Playful phrase pool

While thinking, the Working line cycles 95 casual short phrases, about one every 2.6s — like a live person talking.

Hmm… let me sort this out → let me dig in → the brain's spinning → thinking.gif → chirp, let me think → lol → hang on, don't rush

Too long auto-shifts:

  • 🕐 30s: spinning… almost there, hmm, let me really think
  • 🕑 1min: still working hard… burning brains… this one's got some heft
  • 🕒 5min: haven't given up yet… this is a real beast… I'm on my knees…

🎰 Rare rainbow easter eggs

With roughly a 1/150 chance (once every 6–7 minutes), the Working line bursts into a colorful shimmer that lingers for 7.5 seconds.

✦ S S R ! ✦   ✧ 金色传说 ✧   ✶ 你发现我了 ✶

Four effects layered: smooth hue gradient + brightness breathing + a highlighted streak sweeping L-to-R + rotating gold borders on both sides. Far better than 1.0's flat rainbow.

⏵ Model narration

On by default. The extension injects a convention via the context event: at each step's start, write ⏵ 你在做什么(≤20 字). The extension parses the stream in real time and shows the narration on the Working line. Disable with "narrate": false in config or /activity narrate off.

⏵ 查一下报错原因        →  Working 行:查一下报错原因 · 搜搜 error.log
⏵ 给补丁跑个验证        →  Working 行:给补丁跑个验证 · 跑命令 node test

📊 Real-time pacing

  • Thinking: 嗯… · 总1m23s
  • Tool running: 改改 file.ts · 3s
  • After done: bottom status flashes 搞定 ✓ · 4 工具 · 想3s 干2s, and a notification pops at chat end ⏱ 总用时 1m23s · 4 工具 · 想12s 干11s

⚠ Context warnings

Checks context usage every 3s. When the threshold (default 80%) is exceeded, the Working line glows yellow:

⚠ 上下文85% · 嗯… · 总1m23s

contextWarnAt: 0 disables it.

🔥 Combo detection

5+ consecutive tools trigger 火力全开×N (parallel tools count too). At 10+, closing shows 十连击.

⏱ Slow Tool Tips

A single tool over 30s lights up a 这个有点慢 · prefix.

⏳ Tool Time Remaining

When a tool reports a progress percentage, remaining time is estimated from elapsed time and completion ratio (supports percent / percentage / progressPercent / current/total):

拉取模型权重 · 42% · 还剩~11s

No percentage progress = no display; other info unaffected.

🌿 Git Branch Context

When a git operation is detected (tool names like git/gh, or git in bash-style commands), the Working line shows the current branch (cached 20s, fetched async without blocking):

拉代码 · main · 3s

Auto-hidden in non-git repos.

🌙 Time Awareness

  • 0–6 点:思考池混入 修仙中… 夜猫子出没 熬夜冠军 等深夜专属文案
  • 周末:首次会话弹一句 周末也在卷? 放假也陪你

🎨 28 Animation Presets

/activity opens an interactive picker, or /activity frames <name> switches directly:

claude braille moon comet spark breathe dots circle star2 flip aesthetic hamburger random …

😐 English Deadpan Humor

lol hm oh ok um heh uh nah mm wow nice rgrg done again gg ez

Mixed in among all the "hmm…", "dig in", "chirp", a deadpan English line pops out cold. That "I'm not even really laughing" vibe.

❌ Tool Failure Copy

Errors no longer just ✗; a random line appears:

翻车了 · 读文件 config.json ✗
权限不对? · 跑命令 npm i ✗

🤖 Sub-agent Counting

Running multiple sub-agents in parallel shows 小弟×N:

派个小弟 修测试 · 小弟×3 · 另 2 项

⚡ ~tok/s Streaming Rate

After enabling showTokPerSec: true, streaming token rate is estimated from text_delta character counts (mixed CN/EN):

~42 tok/s · 嗯… · 总1m23s

Pi's streaming events don't provide per-chunk usage, so this is a real-time estimate; the closing summary's token counts still use the actual usage returned by the model.

🎄 Holiday Easter Eggs

New Year, CNY, Valentine's, April Fools, May Day, Children's Day, Halloween, Xmas Eve, Christmas, NYE — auto-detected; holiday phrases mix into the pool, rendered with the same shimmer.

🔄 Model-Switching Jokes

When /model switches models, the Working line flashes a model-name-related quip for 1.5s, then returns to normal.

☕ Cumulative Activity Reminders

By default a reminder pops every 3 cumulative active hours, nudging you to drink water and rest. Only time when the agent is actually running counts; workRemindAt: 0 disables it, or change to a different interval (in hours).

💰 Cost & Token Accounting

At the end of each round (≥3s), the notification appends that round's cost and total token count, reading usage.cost.total as computed by Pi officially — matching your bill, not an estimate.

⏱ 总用时 2m12s · 15 工具 · 想 123s 干 6s · 💰 $0.087 · 🔥 34.2k tok

/activity stats shows more detailed breakdowns: round/session cumulative spend, cache hit rate, thinking tokens.

FieldSource
💰 CostPi official usage.cost.total (includes cache discounts, tiered pricing)
🔥 Tokensinput + output + cacheRead + cacheWrite
Cache hitcacheRead / (input + cacheRead)
🧠 Thinkingreasoning tokens (subset of output, not double-counted)

🗜️ Context-Compression Awareness

Listens for the session_compact event; when context is compressed, a notification flashes briefly — completing the loop with context warnings: warn → compress → recover.

🗜️ 上下文已压缩 · 45.0k→12.0k tok · 腾出 73%
🗜️ 溢出自动压缩 · 45.0k→12.0k tok · 腾出 73% · 将重试

Compression call cost also accumulates into round/session stats.

🔧 Custom Tool Mappings

customActions lets you define copy mappings for your own tools/MCP, matched exactly by tool name (no regex execution from config):

{
  "customActions": {
    "my_deploy": ["部署一下", "上线中"],
    "format_code": ["格式化", "整理代码"]
  }
}

⚙ Interactive settings panel

/activity settings opens a searchable settings panel to adjust mode, animation, narration, rate, context threshold, active reminders, and all feature toggles in one place.

Panel top plays a live animation/copy preview using the current theme; each change persists instantly, no exit needed.

🩺 Built-in Doctor

/activity doctor runs one check:

  • Config JSON parse & threshold validity
  • Preset and animation structure integrity
  • Feature key recognition
  • RGB accent extraction from current theme
  • Config dir/file read-write access

🎭 Dual Modes + Feature Flags

All fancy features optional. Master toggle:

/activity mode minimal   →  只显示真实工具 + 计时 + 预警
/activity mode lively    →  全套俏皮文案 + 彩蛋(默认)

Per-feature toggles (override mode defaults):

/activity feature              →  列出所有特性状态
/activity feature rareEggs off →  只关彩虹彩蛋
/activity feature shimmer auto →  恢复跟随模式

Toggleable features: phrases (playful copy) rareEggs (rainbow easter eggs) nightPhrases (late-night copy) weekend (weekend greetings) holidays (holidays) combo (combos) failPhrases (failure copy) modelQuips (model quips) shimmer (starlight sweep) continuePhrases (interruption follow-up quips)

Installation

pi install npm:pi-working-activity

配置

~/.pi/agent/working-activity.json (auto-generated on first run):

KeyTypeDefaultDescription
framesstring"moon"Animation preset name; "random" picks one at random each round
narratebooleantrue⏵ model narration toggle (on by default; explicit false disables)
contextWarnAtnumber80Context warning threshold (%); 0 disables
contextDangerAtnumber95Context danger threshold; turns red beyond this
showTokPerSecbooleanfalseShow estimated ~tok/s rate during streaming
workRemindAtnumber3Remind to drink water every N active hours; 0 disables
customPhrasesstring[][]Custom short phrases appended to the thinking pool
customActionsobject—Custom tool→copy mapping, e.g. {"my_tool": ["搞一下","整一个"]}
debugLogbooleanfalseDebug log (~/.pi/agent/working-activity-debug.log, auto-truncated >512KB)
modestring"lively""minimal" keeps only functional info
featuresobject—Per-feature toggles, e.g. {"rareEggs": false}, override mode defaults

Commands

CommandDescription
/activity settingsOpen searchable settings panel with live animation/copy preview
/activity doctorCheck config, theme, presets, and persistence permissions
/activityOpen interactive animation preset picker
/activity frames <name>Switch preset directly, e.g. /activity frames claude
/activity frames randomRandom preset each round
/activity narrate on|offToggle model narration
/activity mode lively|minimalMaster switch: lively / minimal
/activity featureList all feature toggle states
/activity feature <名> on|off|autoPer-feature toggle; auto reverts to mode default
/activity statusShow all current config values
/activity warn <0-100>Change context warning threshold; 0=off
/activity danger <n>Change red danger threshold; must be ≥ warn
/activity tps on|offToggle streaming ~tok/s estimate display
/activity remind <0-24>Set active-reminder interval; 0=off
/activity phrase add <文案>Append a custom thinking phrase
/activity phrase listList all custom phrases
/activity statsRound + session stats: tools, think/work ratio, 💰cost, 🔥tokens, cache hits, thinking tokens
/activity config exportExport current config JSON to working-activity.export.json in cwd
/activity config import <路径>Import config from file and apply immediately (auto-validated)

How it works

  1. Extension appends a convention to that round's system prompt via before_agent_start: "each step write ⏵ 你正在做的事(≤20 字)"
  2. Model writes ⏵ 查一下报错原因 in its streaming output
  3. Extension parses text_delta in real time, extracts the latest ⏵ line and displays it on the Working line
  4. Each LLM turn resets waiting state; narration shows for ≥2s, stays while streaming is active, falls back to normal copy after 5s of quiet

Copy style

  • Chinese: short, colloquial, playful — no lecturing, no pretension
  • English: deadpan cold humor, interleaved with Chinese copy for contrast
  • Gaming memes (SSR, legendary gold, gg, ez) only appear in the rare easter egg pool (1/150 drop rate), not affecting daily use

DSH version

DeepSeek Harness's real-time "work status line" plugin: the model's live activity — playful thinking copy, tools actually running, elapsed time, closing summary — displayed in the Web UI and dsh-cc terminal while the agent works.

Installation

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

After installing dsh-cc-tui, install this plugin alongside it; the dsh-cc status bar consumes the activity/status event stream to render the work status line. The Web side requires an extra runtime patch — see the docs below.

Docs

Development

cd packages/activity/working-activity
pnpm install && pnpm run build   # 构建(host tsc + client tsc,产物进 lib/)
pnpm run build:client           # 构建浏览器 bundle(tsdown → lib/client.js)
pnpm test                        # 单测 + 集成测试(状态机/文案/自述/集成)

Known limitations

  • Single status line: one per session; Web/terminal consumers show the most recently active session.
  • No progress percentage: DSH has no tool progress events; long tools only show elapsed time.
  • publish is off by default: appending activity/status session events currently prevents session log resume; only enable for hosts that support ignorable append (see plugin README for details).

Privacy & security

Neither version collects or uploads any data; no network requests, no telemetry. The pi version keeps its config and copy locally; the DSH version's activity/status is written only to local session logs (log-only events, invisible to the model, ignored on replay).

License

Root repo docs and pi version: MIT. DSH plugin package (packages/activity/working-activity/): BSD-3-Clause (see its package.json and LICENSE).

Compatibility

DSH 0.1.7-alpha.2: worksDSH 0.1.7-rc.2: worksDSH 0.1.6-alpha.2: works

Versions

Latest versionPublishedSize
0.1.0——
0.1.1——
0.2.0——
0.2.1——
0.2.2——
0.2.3——
0.2.4——
0.2.5——
0.2.6——
0.3.0——
0.3.2——
0.3.3——
0.4.0——
0.5.0——
0.5.1——
0.6.0——

Comments

Loading…

Similar plugins

dsh-pi

by TGYD-helige

Run trusted Pi extensions inside DeepSeek Harness through a compatibility host.

Manifest valid

★ 4

↓ 60/wk

Apache-2.0

TypeScript

Sep 15, 2026

dsh plugin --profile web add dsh-pi-host

by GongYuanCaiJi

Excel / 工作簿读写 - @firstpick/pi-extension-workbook 的 dsh 移植

Manifest valid

★ 0

MIT

TypeScript

Aug 15, 2026

dsh plugin --profile web add dsh-extension-workbook

by weijiafu14

Bridge the Pi and DeepSeek Harness ecosystems: one Pi Host ABI runs unmodified Pi extensions as native DSH plugins. 打通 Pi 与 DSH 生态。

Tools & CapabilitiesManifest valid

★ 214

↓ 573/wk

MIT

TypeScript

Oct 27, 2026

dsh plugin --profile agent add pi2dsh

by Modole

面向 DSH Agent 的 DAG 工作流创建、测试、发布和执行插件。

Manifest valid

★ 0

MIT

JavaScript

Aug 15, 2026

dsh plugin --profile web add @laobos/dsh-workflow

by february2015

Pi true-gateway plugin for DeepSeek Harness (DSH): /pi-lock direct connection to a durable Pi session — queued/steered conversation, live output, durable binding + auto-reattach. Personal fork of @dee

Manifest valid

★ 0

MIT

TypeScript

Sep 3, 2026

dsh plugin --profile web add dsh-subagent-pi-plus

by oxygenforce

Live done/now/next card above the composer while the agent is still working.

UI & ExperienceManifest valid

★ 0

MIT

JavaScript

Oct 25, 2026

dsh plugin --profile web add dsh-agent-activity