DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Serverchan Notify — DeepSeek Harness 插件(DSH Plugin)
← Plugins

dsh-serverchan-notify

Serverchan Notify

DeepSeek Harness 插件:每当代理轮次完成回答时推送 ServerChan3(Server酱)通知——与 codex Stop-hook 保持一致

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-serverchan-notify@1.1.0
README兼容性版本

兼容性与来源证明

Serverchan Notify 以 dsh-serverchan-notify 发布,当前版本为 1.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

1.1.0stable
2026/9/16
1.0.3stable
2026/9/11
1.0.2stable
2026/8/21
查看其余 2 个版本收起版本
1.0.1stable
2026/8/21
1.0.0stable
2026/8/20

相关插件

正在加载相关插件…

最新版
1.1.0
DSH
*
HMR
重启进程
Tree shaking
已声明 sideEffects: false
解包体积
59.8 kB
文件数
13
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
208
安全扫描
✓ v1.1.0 扫描通过
最近提交
2026/9/16
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

🔔 dsh-serverchan-notify

A DeepSeek Harness (DSH) plugin that pushes a Server酱3 (ServerChan³) notification to your WeChat every time an agent turn finishes an answer — and every time the agent asks you a question. Codex Stop-hook parity for DSH, plus the case codex never covered: an agent blocked on you.

English · 简体中文

What it does

  • Subscribes to the DSH session event stream (ctx.on("session/event", …)).
  • On every turn/end (completed / error / blocked / max-tokens / aborted), pushes one Markdown notification to Server酱3 → your WeChat. Each notification carries: conversation title, model, project directory, git branch, turn status, finish time, session id, and the latest reply excerpt (truncated at 16 000 chars).
  • Also pushes when the agent asks you a question. An ask_user_question tool call means the agent is blocked until a human answers — the worst case to miss — so it gets a notification of its own, carrying every question, its options, and their descriptions. Disable with notifyQuestions: false.
  • Fire-and-forget: a failed push only logs a warning and never blocks or interrupts the agent loop.
  • Skips subagent sessions by default (no spam from internal subtasks).
codex Stop hookthis plugin
Triggerone per finished turnone per finished turn (turn/end), plus one per ask_user_question call
Key sourceenv / ~/.codex/secrets/…env / config / $DSH_HOME/secrets/… (see SendKey resolution)
Failure handlingnever blocks the turnnever blocks the turn
Scopeglobal hooks.jsonglobal $DSH_HOME/cordis.patch.yml (or per profile)

🔐 This repository contains no SendKey. Keys come from the environment, a file, or plugin config — never from source code.

Requirements

  • DeepSeek Harness (DSH) — verified against 0.1.1-rc.2 and 0.1.2-rc.1 (@deepseek-ai/cordis ^4.0.1). The plugin reads the session log through whichever accessor the running Harness exposes, so both API lines are supported.
  • Node.js ≥ 18
  • A Server酱3 SendKey (free account at https://sct.ftqq.com/)

Quick start

1. Get a SendKey

Log in at https://sct.ftqq.com/, open the SendKey tab, and copy your key — it looks like sctp<number>txxxx…. The plugin auto-derives your dedicated push domain (https://<number>.push.ft07.com/send/<key>.send); legacy keys without a channel number use https://sctapi.ftqq.com/<key>.send.

2. Save the key (recommended)

mkdir -p ~/.dsh/secrets
echo '你的SendKey' > ~/.dsh/secrets/serverchan_sendkey
chmod 600 ~/.dsh/secrets/serverchan_sendkey

3. Register the plugin

Edit your DSH patch layer and restart the harness:

# global — all profiles (like codex's global hooks.json):
#   $DSH_HOME/cordis.patch.yml   (default ~/.dsh/cordis.patch.yml)
# per profile:
#   $DSH_HOME/profiles/<name>/cordis.patch.yml

- insert:
    - id: serverchan-notify
      name: 'dsh-serverchan-notify'
      config:
        sendkeyFile: '~/.dsh/secrets/serverchan_sendkey'

Plugin rows are only resolved at boot — restart the harness process after editing.

Installing the package

The package declares a dsh.bundle manifest, so npm installation is one command:

# recommended
dsh plugin --profile web add dsh-serverchan-notify

# fixed version
dsh plugin --profile web add dsh-serverchan-notify@1.0.2

# GitHub monorepo fallback
dsh plugin --profile web add 'github:nickhelion/dsh-plugins#main&path:/packages/serverchan-notify'

# local development
git clone https://github.com/nickhelion/dsh-plugins.git
dsh plugin --profile web add "$PWD/dsh-plugins/packages/serverchan-notify"

The bundled cordis.patch.yml inserts the plugin row with all-default config; override any option by addressing the row id serverchan-notify from your own patch layer.

SendKey resolution

The first non-empty value wins, in this order:

#SourceExample
1env var SERVERCHAN_SENDKEYexport SERVERCHAN_SENDKEY=sctp…
2inline config sendkeyconfig.sendkey: 'sctp…'
3env var SERVERCHAN_SENDKEY_FILE (path to a key file)export SERVERCHAN_SENDKEY_FILE=…
4config sendkeyFile (supports ~)config.sendkeyFile: '~/.dsh/secrets/…'
5default file $DSH_HOME/secrets/serverchan_sendkey~/.dsh/secrets/serverchan_sendkey

Configuration

KeyDefaultDescription
sendkey—Inline key (overridden by the SERVERCHAN_SENDKEY env var)
sendkeyFile$DSH_HOME/secrets/serverchan_sendkeyPath to a key file; ~ is expanded
reasons[completed, blocked, error, max-tokens, aborted]Which turn/end reasons trigger a push (interrupted is never pushed)
notifyQuestionstruePush when the agent calls ask_user_question and waits for you
notifySubagentsfalseAlso push subagent sessions (off by default to avoid spam)
timeoutMs8000HTTP timeout in milliseconds
maxResponseChars16000Reply excerpt / question text truncation length
disabledfalseDisable without removing the row (no key read, no subscription)

Sample notification

Turn finished:

DSH 完成:

  • 对话标题:…
  • 模型:deepseek-official / deepseek-v4-pro
  • 项目目录:/home/you/project
  • Git 分支:main
  • 回合状态:完成
  • 完成时间:2026-08-18T21:00:00.000Z
  • 会话 ID:session-12

DSH 最新回复

…the latest assistant reply…

The agent is waiting on you:

DSH 提问:

  • 对话标题:…
  • 模型:deepseek-official / deepseek-v4-pro
  • 项目目录:/home/you/project
  • Git 分支:main
  • 提问时间:2026-08-18T21:05:00.000Z
  • 会话 ID:session-12

DSH 正在等待你的回答

1. Choose Mode

Which path should I take?

  • Ship it (Recommended) — small and reversible
  • Plan first — one extra review round

2. Scope

  • README
  • Tests > 该问题可多选

Troubleshooting

SymptomFix
"未找到 Server酱 SendKey" warning at bootProvide the key via one of the 5 sources above
HTTP 403 / timeout in the logNetwork / proxy issue; the push domain is derived from the key (<n>.push.ft07.com)
No push after restartConfirm the row id is unique and the package resolves — dsh --profile web --dump-config | grep -A8 serverchan-notify
Too many pushesTurn on notifySubagents: false (default), trim reasons, or set notifyQuestions: false
Question reminder shows "无法解析本次提问内容"The model emitted malformed tool arguments; the harness still got the question — open DSH to answer
Temporarily stopdisabled: true, then restart

Development

npm install        # installs devDependencies (cordis) for the smoke test
npm test           # smoke test — stubbed fetch, no real push
REPORT=1 npm test  # smoke test + print the assembled payload
npm run test:live  # send one real test push with the configured key

Repository layout

lib/index.js      plugin entry — event subscription, message assembly, HTTP push (turn end + agent question)
test-send.mjs     standalone real push (same key resolution order as the plugin)
smoke-test.mjs    cordis in-process test with a stubbed fetch
package.json      package metadata + npm scripts
README.md         English docs
README.zh-CN.md   中文文档

Contributing

PRs are accepted in the canonical nickhelion/dsh-plugins monorepo. Two ground rules:

  1. Never commit a SendKey (or any absolute machine path) — keys flow through env / file / config only.
  2. The event listener must stay non-throwing and fire-and-forget — a notification must never affect the harness.

License

MIT

相关插件

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

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Im@xmanrui/dsh-im将十一种 IM 渠道和一个公网 AI Office 接入本地 DeepSeek Harness。Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。