dsh-push
消息通讯 活跃维护

dsh-push

kiim-wong/dsh-push

轻量级通知工具,将代理生命周期事件实时推送至自定义渠道。支持多通道配置,灵活匹配通知规则,可随时掌握代理启动、运行、终止等状态变化。接入简单,无需侵入核心逻辑即可生效。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
41 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:kiim-wong/dsh-push
git clone https://github.com/kiim-wong/dsh-push.git
git clone git@github.com:kiim-wong/dsh-push.git
README.md main

dsh-push

English | 简体中文

Push DeepSeek Harness agent lifecycle notifications to Bark, Feishu, WeCom, DingTalk, ntfy, or a generic webhook.

Installation

Install from npm:

dsh plugin --profile web add dsh-push
dsh plugin --profile headless add dsh-push

To install from GitHub, pin the repository to a commit:

dsh plugin --profile web add github:kiim-wong/dsh-push#<sha>

Git installations run the package's prepare script. Before the first installation, allow the package to build in the target profile's pnpm-workspace.yaml:

allowBuilds:
  dsh-push: true

The package mounts itself as dsh-push through cordis.patch.yml. It does not require changes to the dsh monorepo or write to the profile's patch configuration.

Configuration

The default configuration path is $DSH_HOME/dsh-push/config.json. Set DSH_PUSH_CONFIG to use another path. Start with config.example.json. Environment variable references support $VAR and ${VAR}. Logs are written to push.log in the configuration file's directory.

Each channel requires at least its type and destination. Keep secrets in the configuration file or environment variables, not in cordis.patch.yml.

Supported events are idle, interrupted, needInput, and exit. minDurationSec filters idle notifications but does not affect interrupted notifications. Subagents are excluded by default; set includeSubagents: true to include agents whose session header has origin: "subagent".

/push command

When the command service is mounted, dsh-push provides /push status, list, get, set, enable, disable, test, events, on, and off. Headless compositions without the command service still load the notification event listeners.

Limitations

Notification delivery is not retried. Each request has an independent timeout, and process teardown uses a bounded flush. dsh has no equivalent of pi's session quit event, so exit means the plugin tree is being disposed, not that an individual web session closed. Notification bodies contain lifecycle summaries, not conversation content.

Channel implementations retain the protocols and signing algorithms from pi-agent-push. This package adapts only the event and command layers to Cordis.