精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
DSH 声音提醒 + 对话直达插件:多对话并行时,哪个对话有回复就出声提醒,点右上角卡片直达对应对话;切到别的应用时还有系统级通知(macOS 通知中心 / Windows toast),点击直达。当前对话当/当当(crisp 档),其他对话叮/叮叮(soft 档)。
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 未发现明显风险信号;安装前仍建议查看源码。
DSH 声音提醒 + 对话直达插件:多对话并行时,哪个对话有回复就出声提醒,点右上角卡片直达对应对话;切到别的应用时还有系统级通知(macOS 通知中心 / Windows toast),点击直达。当前对话当/当当(crisp 档),其他对话叮/叮叮(soft 档)。
待人工精选——以下事实来自源码仓库。
DSH 声音提醒 + 对话直达插件:多对话并行时,哪个对话有回复就出声提醒,点右上角卡片直达对应对话;切到别的应用时还有系统级通知(macOS 通知中心 / Windows toast),点击直达。当前对话当/当当(crisp 档),其他对话叮/叮叮(soft 档)。
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:february2015/dsh-dingo 作者没有声明支持的平台。
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 bash # 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: yaml - 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 bash 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.不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。