DeepSHPlugins
dsh-dingo 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-dingo

工具與整合TypeScript

多對話並行的聲音提醒 + 對話直達:當前對話當/噹噹(crisp 清脆檔),其他對話叮/叮叮(soft 柔和檔)+ 右上角小卡片,點一下直達對應對話。

2 Starsfebruary2015 更新時間 2026-09-03
訪問 GitHub 倉庫
dsh-dingo 專案預覽

專案介紹

中文

多對話並行的聲音提醒 + 對話直達:當前對話當/噹噹(crisp 清脆檔),其他對話叮/叮叮(soft 柔和檔)+ 右上角小卡片,點一下直達對應對話。

English

Sound reminders with one-click jump for concurrent sessions: the current session gets crisp dang/dang-dang tones, other sessions a soft ding/ding-ding plus a top-right card that jumps straight to the replying conversation.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
february2015
倉庫
february2015/dsh-dingo
GitHub Stars
2
Forks
1
開發語言
TypeScript
許可證
未記錄
最近推送
2026-09-03
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

62/ 100
維護活躍
95
文件與實用資訊
85
生態關注度
23
安裝便捷訊號
100
專案宣告訊號
80

近 8 天仍在更新;README 含完整安裝與使用說明;關注度尚低(2)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:february2015/dsh-dingo

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-dingo

English | 中文

Ding + Go — sound reminders + one-click jump for DeepSeek Harness (DSH).

Hear it, reach it: when another conversation replies, a tone alerts you and a small card appears — one click takes you straight to that conversation; and when you've switched to another app, a system notification (macOS Notification Center / Windows toast) still gets through — click it to jump right in. It doesn't just tell you "something happened"; it puts you in front of the conversation (the core capability that sets it apart from plain notifiers).

Great when you run many conversations in parallel: open several chats (including subagents) side by side and stop watching them one by one — when any of them replies, you hear a distinct tone and the card shows the workspace/conversation name; click it and you're there. Never miss a reply while you work on something else, and switch between tasks with ease.

Current conversation replies → dang / dang-dang (crisp tone set); other conversations → another sound (ding, soft tone set) + a top-right card; click the card to jump straight to that conversation. Reminders fire only on a turn's final reply (or a question awaiting you) — in-between progress messages stay quiet. Pure event-driven and lightweight.


What it does

ScenarioSoundCard
Current conversation has a reply (plain statement)dang (1 beep, crisp)none (you're already looking at it)
Current conversation needs your answer (question/confirmation)dang-dang (2 beeps, crisp)none
Another conversation has a replyding (soft) 1 beep✅ top-right card
Another conversation needs your answerding-ding (soft) 2 beeps✅ top-right card
Task faileddong (low tone)✅ card

When does a reply "need your answer"? Works for both English and Chinese. Structured signals first — ask_user tool calls, approval requests (approval/asked), and questions-domain prompts always count as "needs answer". For plain text, the heuristic is deliberately strict to avoid mistaking the model's self-talk for a question to you:

  • Explicit request for action / decision / confirmation ("please confirm", "please choose", "your call", "what do you think"… / 请确认、需要你拍板、你怎么看…) → needs answer;
  • Question mark + question tone (wh-words, auxiliary-verb questions… / 吗/呢/怎么/是否…) → needs answer, but excludes rhetorical questions ("Isn't this obvious?" / 难道…吗?), self-answered Q&A ("Should we roll back? No, because…" / …吗?因为/其实…), and question-list enumerations (…? Next… / …?其次…);
  • Question words in a plain statement without a question mark → just a reply.

The card (other conversations only):

  • Fixed 200×56, semi-transparent floating;
  • Shows: status icon + workspace name (≤12 chars) + conversation title (≤10 chars);
  • 🟩 green square = reply, 🟠 question mark = needs answer, 🔴 exclamation = failed;
  • Click the card → jump to that conversation; × in the corner closes it;
  • Cards stack from the top right (below the Session log button), 8px apart; clicking a card clears all cards of that conversation and the rest reflow up;
  • Cards stay until you click to jump (clears all cards of that conversation) or close them with × — no auto-dismiss.

Reminder discipline:

  • The same reminder in the same conversation won't repeat within 10s (content-based dedup: different reminders still ring; each conversation tracks its own window);
  • /dingo dnd on do-not-disturb: task-completion reminders go silent, "needs answer" still alerts;
  • Configurable quiet hours (quietHours "HH:mm", overnight supported) — task-class reminders queue silently and play after the window ends;
  • /dingo off disables all reminders.

System notifications (macOS Notification Center / Windows toast, optional):

  • When any conversation needs your answer / replies / fails while the DSH Web UI is not in the foreground, a system-level notification is sent — so you notice even while working in another app (the current conversation included, since you're not looking at it);
  • Two channels, distinct jobs: the system notification tells you *something happened*; the in-browser card (always visible while the Web UI is open) tells you *which conversation* — click it to jump straight there;
  • Windows: clicking the notification itself also jumps straight to the conversation (deep link ?dingOpen=);
  • macOS: the notification is a reminder only (no click callback — a macOS system limit; the in-browser card handles the jump);
  • Suppressed while the DSH Web UI is visible in the foreground (the in-browser tones/cards are enough); sent when the page is in the background or not open;
  • Zero setup: macOS uses built-in osascript; Windows uses built-in PowerShell (scripts under scripts/).

Install

# From local source (development)
dsh plugin --profile web add /path/to/dsh-dingo

# Or from npm (released)
dsh plugin --profile web add dsh-dingo

# Replace "web" with your target profile name if different

System-notification prerequisites (optional feature)

The optional system notifications (macOS Notification Center / Windows toast) need no installation on either platform:

  • macOS: uses built-in osascript (display notification).
  • Windows: uses built-in PowerShell (scripts/notify.ps1 + scripts/toast-activate.ps1).

Disable anytime with systemNotify: false (see config below).

Overridable in the profile's cordis.patch.yml or plugin config:

- id: dsh-dingo
  config:
    enabled: true
    feedback:
      toneStyle: soft        # tone set: soft (other conversations "ding") / crisp (current conversation "dang")
      dnd: false
      dedupeWindowMs: 10000  # same-conversation same-content dedup window (same reminder won't repeat, different ones ring)
      quietHours: { start: '', end: '' }
    # systemNotify: true       # system notifications for other conversations (default on)
    # systemNotifyBaseUrl: ''  # deep-link base URL (default http://127.0.0.1:3080)

Commands

/dingo on|off        # enable/disable reminders
/dingo status        # enabled/DND/queue status
/dingo dnd [on|off]  # do-not-disturb (task-completion silent, needs-answer still alerts)

Architecture

  • host half (src/index.ts + src/feedback.ts):
  • Subscribes to session/event: turn/end(completed) / approval/asked / tool/call(ask_user) / assistant/message → classifies → enqueues (priority: needs-answer > reply > failure);
  • Current-conversation replies (from the client's reported active session) → own reminder (tone only, no card);
  • Queue plays serially by priority; the client reports spoken before the next item plays;
  • client half (src/client/FeedbackCard.tsx + tones.ts):
  • Polls the /dingo.feedback snapshot → current-conversation items play crisp (dang/dang-dang), other-conversation items play soft (ding) + render cards;
  • Two built-in tone sets (soft/crisp, data-URL WAV), no external audio files;
  • Clicking a card calls client-side sessions.open to jump to the conversation (same entry point as the sidebar).
  • RPC (/dingo channel): feedback / set-current-session.

Development

npm install
npm run typecheck   # type checking
npm test            # vitest
npm run verify      # typecheck + test + build

License

MIT

Windows system-notification scripts adapted from CAOGGL/dsh-ding (MIT) — see LICENSE third-party notices.

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案