Bundle
dsh-push
Push DeepSeek Harness agent lifecycle notifications to configurable channels
- Source
- kiim-wong
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# dsh-push
English | [简体中文](./README.zh-CN.md)
Push DeepSeek Harness agent lifecycle notifications to Bark, Feishu, WeCom, DingTalk, ntfy, or a generic webhook.
## Installation
Install from npm:
```sh
dsh plugin --profile web add dsh-push
dsh plugin --profile headless add dsh-push
```
To install from GitHub, pin the repository to a commit:
```sh
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`:
```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`](./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.
Install
dsh plugin --profile web add github:kiim-wong/dsh-push
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-push from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.