PeterBon/dsh-hooks

Config-driven lifecycle hooks: event→command declarations in cordis.patch.yml, with Feishu card notifications and a QR scan-to-create bot setup.

Config-driven lifecycle hooks for DeepSeek Harness, like Codex CLI / OpenCode hooks but for dsh: declare event -> command hooks directly in your profile's cordis.patch.yml — no plugin code required. One package ships the hook engine plus a Web GUI settings page. Events include turn/end (with optional when: completed), approval/asked, and tool/call (with field→regex matching, e.g. tool: '^(rm|git|ssh)'); each hook has a run command and an optional timeoutMs. The README ships examples like a Feishu notifier on turn end.

Notifications & Integrations ★ 4 updated 2026-08-28
View on GitHub ↗

Install

dsh plugin --profile web add dsh-hooks

npm package dsh-hooks 0.7.0 (registry-verified 2026-08-28): dsh plugin --profile web add dsh-hooks (npm), or dsh plugin --profile web add github:PeterBon/dsh-hooks. Restart dsh web — the settings panel gains a 'Hooks' section.

Compatibility

DeepSeek Harness (dsh) web profile. Config-driven — declare event → command hooks in the profile's cordis.patch.yml; no plugin code required.

Details

Recent updates

event → command hooks (turn/end, approval/asked, tool/call); regex matching; Web GUI settings page; Feishu example.

FAQ

Do I need to write plugin code?
No — hooks are declared in cordis.patch.yml as event → command entries; the package provides the engine and the settings UI.
Which events are supported?
turn/end (optionally only completed turns), approval/asked, and tool/call with field→regex matching (e.g. rm/git/ssh).
What happens on a slow hook?
Each hook has a timeoutMs (default 10000) so a hanging command can't stall the loop.

Alternatives

610la/dsh-notification-center · dingyi222666/dsh-session-notification · ltao0829/dsh-task-notify

More plugins in Notifications & Integrations

Browse more in Notifications & Integrations

Guides for Notifications & Integrations plugins