- Home
- Plugin
- Integrazioni e accesso remoto
- dsh-discord-richpresence
dsh-discord-richpresence
0qwq0/dsh-discord-richpresence
Push vague or rich, user-configurable DSH interaction states to the local Discord client as Rich Presence — real-time, content-free, with a user-editable status list and an optional rich-mode toggle in Settings.
Installazione
dsh plugin --profile web add github:0qwq0/dsh-discord-richpresenceREADME
dsh-discord-richpresence
English: README.en.md
一个 DeepSeek Harness 插件,将你与 dsh 的交互状态实时镜像到本地 Discord 客户端的 Rich Presence 上——而且只会推送模糊的、可自定义的状态文案。
这是一个宿主侧后台插件:无托盘图标、无界面、无窗口。安装后即注入到 dsh 的启动流程中,随 dsh 一起常驻运行。
它能做什么
插件监听运行中 dsh 的粗粒度活动信号:
| dsh 信号 | 状态示例(默认) |
|---|---|
| 用户消息进入 agent 收件箱 | 正在指挥大肥鱼干活 / 正在给大肥鱼喂 token |
| agent 正在运行(思考 / 流式输出) | 正在与大肥鱼一起 Brainstorming / 正在听大肥鱼讲解 Project |
| 模型工具正在执行 | 正在提交改动意见 |
| 创建了新会话 / 分支(分支对话) | 正在创建大肥鱼记忆切片 |
| 无活动 | 大肥鱼待命 |
上面每一行都是插件配置(statuses)中可直接编辑的列表。插件只会把这些字符串原样发给 Discord。
丰富模式(可选)
默认情况下,插件只推送上面的模糊状态。在设置 → 通用设置 → Rich Presence 丰富状态里可以打开丰富模式。开启后,插件改为推送更智能、带实时数据的状态行:
| 实时数据 | 状态示例 |
|---|---|
| 你刚发送了消息 | 正在指导大肥鱼 |
| agent 正在思考 | 大肥鱼正在思考 6/195 |
| 总输入 tokens | 大肥鱼正在记笔记 38.7M |
| LLM 已思考时长 | 大肥鱼已经思考了 30m46s |
丰富模式的状态是智能随机地从当前实时数据中挑选的——并不绑定某个特定时刻——并且每个状态在 Discord 上至少展示 8 秒。
数据始终关联你当前正在交互的会话:插件会跟踪你最后一条真实输入(source.kind === 'user')所在的会话,思考步数、token 数、思考时长都只从那个会话采集——子代理、后台会话、其他工作区的数据不会被混入。当你切换会话继续交互时,推送的数据会自动跟着切换。该开关运行时持久化在 discord-richpresence 设置命名空间中,无需在 patch 里配置。
隐私
插件绝不读取你的工作区内容。 它不会查看会话标题、消息正文、文件路径、工具输入输出或任何其他内容,只响应粗粒度的生命周期信号(agent/inbox/inserted、agent/status、agent/pre-step、tools/pre-execute、session/created、workflow/start),然后推送配置好的状态字符串(或上面那些只填入标量数据的丰富模板——不含任何内容)。即使保持默认列表,Discord 上也只会出现"正在指挥大肥鱼干活"这样的模糊状态。
环境要求
- 本机运行着 Discord 桌面客户端(Rich Presence 走本地 Discord IPC 端点——Windows 上是命名管道,macOS/Linux 上是 unix socket,或回环 TCP)。
Discord Application ID 已预置在插件中,无需任何配置——安装并重启后,状态就会自动出现在你的 Discord 个人资料上。
安装
仓库:https://github.com/0QwQ0/dsh-discord-richpresence 发布包:https://github.com/0QwQ0/dsh-discord-richpresence/releases/latest/download/dsh-discord-richpresence-0.2.2.tgz
在 dsh 检出目录 / profile 下执行:
dsh plugin --profile web add https://github.com/0QwQ0/dsh-discord-richpresence/releases/latest/download/dsh-discord-richpresence-0.2.2.tgz
如果包已在本地磁盘上(例如本仓库):
dsh plugin --profile web add link:/absolute/path/to/dsh-discord-richpresence
配置
所有配置都位于 bundle patch(cordis.patch.yml)的 config 下:
config:
clientId: '1540732930127691807' # 已预置,通常无需修改
details: 'DeepSeek Harness' # 可选:第二行文字
largeImage: '' # 可选:Discord 大图资产 key
statuses: # 可编辑的状态列表,按阶段分组
userInput:
- 正在指挥大肥鱼干活
- 正在给大肥鱼喂 token
agentWorking:
- 正在与大肥鱼一起 Brainstorming
- 正在听大肥鱼讲解 Project
tools:
- 正在提交改动意见
forking:
- 正在创建大肥鱼记忆切片
idle:
- 大肥鱼待命
randomize: false # true 时随机选取,否则轮流
minIntervalMs: 5000 # 两次推送之间的最小间隔
reconnectMs: 15000 # Discord 断线重连的轮询间隔
statuses— 每个阶段都是一个列表;插件按顺序轮流选取(randomize: true时随机)。可以自由增删、改写。- Discord 反映状态变化可能有几秒延迟;
minIntervalMs用于限制推送频率。 - 丰富模式开关不属于 patch——它在设置 → 通用设置中,运行时持久化。
卸载
dsh plugin --profile web remove dsh-discord-richpresence
卸载能恢复到安装前的状态吗?
基本可以,但有一处已知残留:
| 项目 | 卸载后的状态 |
|---|---|
dsh.profile.bundles 条目 | ✅ 自动移除 |
dependencies(package.json) | ✅ 自动移除 |
| 宿主插件(事件监听、Discord RPC) | ✅ 停止(重启 dsh 后完全退出) |
| 浏览器设置开关(client bundle) | ✅ 移除(刷新页面后消失) |
node_modules 中的链接 | ⚠️ 可能残留一个空 junction(pnpm link 安装时的物理文件,不影响运行,可手动删除) |
settings.yaml 中的 discord-richpresence: 段 | ⚠️ 残留(settings 服务只注销命名空间注册,不删除用户设置文档) |
唯一需要手动处理的是 settings.yaml。如果希望彻底恢复安装前的状态,编辑 $DSH_HOME/settings.yaml,删除这段:
discord-richpresence:
richMode: true
删除后该设置不会再影响任何东西(插件已卸载,没有消费者读取它);留着也无害——重装插件时会重新读取。
升级(老版本 → 新版本)
插件同包名覆盖安装即可升级,不需要先卸载:
从 Release tarball 安装的升级
dsh plugin --profile web add https://github.com/0QwQ0/dsh-discord-richpresence/releases/latest/download/dsh-discord-richpresence-0.2.2.tgz
dsh 会用新 tarball 覆盖旧包并保持 dsh.profile.bundles 条目不变。
从 link(源码目录)安装的升级
你本机是 link: 方式安装(指向插件源码目录):
dsh plugin --profile web add link:/absolute/path/to/dsh-discord-richpresence
升级源码后重启 dsh 即可生效(link 指向同一目录,代码即最新版)。
升级后需要做什么
- 重启 dsh(host 插件在启动时加载)。
- 刷新浏览器页面(client bundle 缓存在浏览器,
/plugins/dsh-discord-richpresence/client.js会重新拉取,新版设置开关才会出现)。 - 设置保留:
settings.yaml中的discord-richpresence: richMode: <true/false>会跨版本保留——升级前开启的丰富模式,升级后依然是开启的,无需重新配置。
升级遇到问题?
如果升级后开关不回弹但状态异常,或想回到干净状态,可先完整卸载(含手动清理 settings.yaml 残留),再重新安装最新版。
工作原理
lib/discord-rpc.js— 零依赖的 Discord Rich Presence 客户端,基于本地 IPC 帧协议(用client_id握手,然后发送SET_ACTIVITY帧;含 ping/pong 保活与自动重连)。lib/index.js— Cordis 宿主插件。注册粗粒度宿主事件的全局监听器,映射到配置好的状态列表(或丰富模式模板),再通过 RPC 客户端推送。丰富模式读取discord-richpresence设置命名空间;插件纤维卸载时会清理所有定时器并关闭 socket。lib/client.js— 浏览器半部。注册设置 → 通用设置里的切换行,写入discord-richpresence设置命名空间的richMode字段。
许可证
MIT
Plugin correlati
dsh-web-ui (dsh-remote-web-ui)
zhu1090093659/dsh-web-ui
openpets (dsh)
alvinunreal/openpets
dsh-im
xmanrui/dsh-im
dsh-pocket
shaobeichen/dsh-pocket