🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Telegram 远程控制 datit309/dsh-telegram-bridge

DeepSeek 客户端v0.1.3
datit30911 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

为 DeepSeek HarnessDSH提供完整的 Telegram 双向远程控制、实时进度跟踪,以及系统原生通知。

36.2/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/datit309/dsh-telegram-bridge.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
静态安装检查有提示项,装前建议看一眼 README
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

npm 同名包「dsh-telegram-bridge」归属 joycate/dsh-telegram-bridge,装到的可能不是本插件

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-telegram-bridge @ 0.1.3
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 15:42:52

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 90 处,展示前 37 条)
  • 请求外部主机api.telegram.org
    index.js:77
    await fetch(`https://api.telegram.org/bot${token}/setMyCommands`, {
  • 发起网络请求
    index.js:77
    await fetch(`https://api.telegram.org/bot${token}/setMyCommands`, {
  • 执行外部命令固定命令
    index.js:102
    execFile('afplay', ['-v', String(volume), file], () => {});
  • 执行外部命令固定命令
    index.js:106
    execFile('paplay', [file], (err) => {
  • 执行外部命令固定命令
    index.js:107
    if (err) execFile('aplay', [file], () => {});
  • 执行外部命令固定命令
    index.js:112
    execFile('powershell', ['-c', `[System.Media.SystemSounds]::${soundType}.Play()`], () => {});
  • 执行外部命令固定命令
    index.js:120
    execFile('osascript', ['-e', script], () => {});
  • 执行外部命令固定命令
    index.js:122
    execFile('notify-send', [title, `${subtitle ? subtitle + '\n' : ''}${message}`], () => {});
  • 读取密钥环境变量
    index.js:160
    if (process.env.BEE_ROUTER_API_KEY) return process.env.BEE_ROUTER_API_KEY;
  • 读取本地文件
    index.js:164
    if (existsSync(yamlPath)) {
  • 读取本地文件
    index.js:165
    const content = readFileSync(yamlPath, 'utf8');
  • 读取本地文件
    index.js:277
    if (existsSync(configFilePath)) {
  • 读取本地文件
    index.js:278
    fileConfig = JSON.parse(readFileSync(configFilePath, 'utf8'));
  • 读取密钥环境变量
    index.js:282
    const rawToken = readVolatile(config.token) || config.telegram?.token || process.env.TELEGRAM_BOT_TOKEN || fileConfig.token || '';
  • 写入本地文件
    index.js:289
    writeFileSync(filePath, JSON.stringify({ token, chatId }, null, 2), 'utf8');
  • 读取本地文件
    index.js:335
    if (ws.path && existsSync(ws.path)) {
  • 读取本地文件
    index.js:345
    if (c && existsSync(c) && !set.has(c)) {
  • 请求外部主机api.telegram.org
    index.js:492
    const r = await fetch(`https://api.telegram.org/bot${effective.token}/getMe`);
  • 发起网络请求
    index.js:492
    const r = await fetch(`https://api.telegram.org/bot${effective.token}/getMe`);
  • 请求外部主机api.telegram.org
    index.js:527
    const r = await fetch(`https://api.telegram.org/bot${botToken}/getMe`);
  • 发起网络请求
    index.js:527
    const r = await fetch(`https://api.telegram.org/bot${botToken}/getMe`);
  • 请求外部主机api.telegram.org
    index.js:565
    const r = await fetch(`https://api.telegram.org/bot${testToken}/sendMessage`, {
  • 发起网络请求
    index.js:565
    const r = await fetch(`https://api.telegram.org/bot${testToken}/sendMessage`, {
  • 请求外部主机api.telegram.org
    index.js:606
    const res = await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
  • 发起网络请求
    index.js:606
    const res = await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
  • 请求外部主机api.telegram.org
    index.js:618
    const fallback = await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
  • 发起网络请求
    index.js:618
    const fallback = await fetch(`https://api.telegram.org/bot${botToken}/sendMessage`, {
  • 写入本地文件
    index.js:738
    writeFileSync(ogaPath, audioBuffer);
  • 删除本地文件
    index.js:752
    if (existsSync(ogaPath)) unlinkSync(ogaPath);
  • 删除本地文件
    index.js:753
    if (existsSync(wavPath)) unlinkSync(wavPath);
  • 写入本地文件
    index.js:1011
    mkdirSync(uploadDir, { recursive: true });
  • 写入本地文件
    index.js:1015
    writeFileSync(localFilePath, imgBuffer);
  • 写入本地文件
    index.js:1071
    mkdirSync(uploadDir, { recursive: true });
  • 写入本地文件
    index.js:1074
    writeFileSync(localFilePath, docBuffer);
  • 发起网络请求
    client.js:121
    fetch('/api/dsh-telegram-bridge/config')
  • 发起网络请求
    client.js:145
    const res = await fetch('/api/dsh-telegram-bridge/config', {
  • 发起网络请求
    client.js:169
    const res = await fetch('/api/dsh-telegram-bridge/test', {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.telegram.org

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 实时进度跟踪
  • 原生系统通知

README

由 DeepSeek 最新模型翻译生成
dsh-telegram-bridge 为 DeepSeek Harness(DSH)提供完整的 Telegram 双向远程控制、实时进度跟踪,以及系统原生通知。 把手机变成本地 DSH 智能体的远程编程驾驶舱:发送文本提示词、语音消息、截图,查看实时 diff,切换模型/会话,执行 shell 命令,审批工具,下载生成的交付物。 核心功能 1. 通过 Telegram 双向远程控制 - 💬 远程提示:在 Telegram 里发送任意文本消息,Mac 上活跃的智能体立即接收并执行。 - 🎙 语音转文本:按住录制语音消息(.ogg)。机器人用 ffmpeg + Gemini 语音转文本,把音频转成干净的文本提示词交给智能体。 - 📷 视觉 / 截图:发送终端或 UI 的 bug 截图,可附说明文字;智能体解析图片并修复代码。 - 📁 文档上传:把 .pdf、.sql、.json、.py、.js、.txt 文件直接发到智能体工作区。 - ⚡ 实时进度卡片:在单条消息里动态更新工具执行步骤(read、edit、bash、serena 等),配合输入状态提示,避免通知刷屏。
展开完整文档(README 剩余 1 节)
dsh-telegram-bridge

为 DeepSeek Harness(DSH)提供完整的 Telegram 双向远程控制、实时进度跟踪,以及系统原生通知。

把手机变成本地 DSH 智能体的远程编程驾驶舱:发送文本提示词、语音消息、截图,查看实时 diff,切换模型/会话,执行 shell 命令,审批工具,下载生成的交付物。

核心功能

1. 通过 Telegram 双向远程控制

- 💬 远程提示:在 Telegram 里发送任意文本消息,Mac 上活跃的智能体立即接收并执行。
- 🎙 语音转文本:按住录制语音消息(.ogg)。机器人用 ffmpeg + Gemini 语音转文本,把音频转成干净的文本提示词交给智能体。
- 📷 视觉 / 截图:发送终端或 UI 的 bug 截图,可附说明文字;智能体解析图片并修复代码。
- 📁 文档上传:把 .pdf、.sql、.json、.py、.js、.txt 文件直接发到智能体工作区。
- ⚡ 实时进度卡片:在单条消息里动态更新工具执行步骤(read、edit、bash、serena 等),配合输入状态提示,避免通知刷屏。
- 🔘 回合结束操作栏:每轮完成后附带一键内联按钮:[ 📄 View Diff ]、[ 📁 Modified Files ]、[ 🚀 Git Status ]、[ 🔇 Mute/Unmute ]、[ 🔄 New Session ]。

2. 源码与系统管理

- 📄 实时 Git Diff(/diff):在当前工作区内查看已暂存和未暂存的详细代码改动。
- 🚀 Git 提交与推送(/commit <message>):直接在手机上运行 git add -A && git commit -m <msg> && git push。
- 💻 直接执行 Shell(/sh <command>):在本地运行终端命令(如 git status、pnpm test、docker ps、pm2 status),不消耗任何 LLM token。
- 📥 一键下载文件(/get <file>):在 /files 里一键下载宿主机文件,或用 /get <path> 指定路径。
- 🎁 交付物自动发送:智能体调用 present 工具时,生成的交付物自动上传到你的 Telegram 聊天。

3. 会话与工作区导航

- 📋 会话切换(/sessions、/switch <index>):列出所有打开的 DSH 会话,用内联按钮或索引切换当前目标。
- 📂 工作区切换(/workspaces、/cd <path>):浏览项目目录,随时切换工作目录。
- 🧠 模型切换(/model):用交互式内联按钮在多个模型之间切换(Gemini 3.8 Flash、Claude 4.6 Sonnet、GPT-6 Astra 等)。
- 🔄 新建会话(/new):在当前工作区里开一个新会话。

4. 交互式权限与安全

- 🛡 工具审批按钮:智能体申请更高权限(approval/asked)时,机器人弹出 [ ✅ Allow ] 和 [ ❌ Reject ] 提示。
- ❓ 用户提问(ask_user_question):智能体提问时,提供交互式单选/多选按钮。
- 🔒 Chat ID 锁定:只有授权的 Telegram chat ID 才能交互;未授权访问会收到 403 响应。

5. 原生系统音频与桌面通知

- 🔊 系统音频:通过 afplay 播放 macOS 原生提示音(成功时 Hero.aiff,出错时 Basso.aiff,提示词/审批时 Ping.aiff)。
- 🔔 桌面横幅:macOS 通知中心横幅,显示项目名、执行时长和修改过的文件列表。
- 🔇 远程静音(/mute、/unmute):需要安静时,用手机把 Mac 扬声器静音。

Telegram 命令参考

| 命令 | 说明 |
| 发送语音消息 | 把语音转成文字,作为提示词派发 |
| 发送图片 + 说明文字 | 附上截图,让智能体看图修 bug |
| 发送文档 | 把代码或文档上传到工作区做分析 |
| /diff | 显示当前工作区的 git diff |
| /commit <msg> | 提交改动并推送到 git 远程仓库 |
| /sh <command> | 直接在宿主机上运行 shell 命令(0 token) |
| /get <file> | 从宿主机下载文件到 Telegram |
| /files | 列出最近修改的文件,附一键下载按钮 |
| /workspaces | 列出可用工作区,附快速切换按钮 |
| /cd <path> | 切换智能体的工作目录 |
| /model | 打开交互式模型选择菜单 |
| /sessions | 列出已打开的会话,附快速切换按钮 |
| /switch <index> | 按索引或 ID 切换会话 |
| /mute | 静音 Mac 扬声器声音 |
| /unmute | 取消静音 Mac 扬声器声音 |
| /new | 新建会话 |
| /status | 显示智能体、会话、工作区和扬声器的状态 |
| /stop | 立即中止智能体当前回合 |
| /help | 显示帮助信息和命令列表 |

前置条件

1. Telegram Bot Token:通过 @BotFather 创建。
2. 音频 / 语音转文字(可选):
- 宿主机上已安装 ffmpeg(例如 brew install ffmpeg)。
- 本地运行 BeeRouter,监听端口 20128(或使用兼容 OpenAI 的语音/对话端点),用来转写收到的语音消息。
3. 安全与 Chat ID 锁定:
- 如果没配置 chatId,第一个给机器人发消息的人会被自动认领并锁定为所有者。
- 公开或共享的机器人,启动前要显式配置 chatId,防止被他人抢先认领。

DSH 安装指南

方式 1:通过 DSH 命令行(推荐)

在终端运行标准的 dsh plugin add 命令:

Install directly from GitHub into your active profile (e.g. web)
dsh plugin --profile web add github:datit309/dsh-telegram-bridge

或者从本地检出安装:

Clone the repository
git clone https://github.com/datit309/dsh-telegram-bridge.git ~/dsh-telegram-bridge

Install into DSH profilebash
dsh plugin --profile web add ~/dsh-telegram-bridge

dsh plugin add 会自动把依赖写进 ~/.dsh/profiles/web/package.json,并在 dsh.profile.bundles 中启用对应的 bundle 层。

方式 2:通过 DSH Web GUI

1. 打开 DeepSeek Harness Web GUI(http://127.0.0.1:3080)。
2. 点击最左侧边栏的 插件图标(拼图)。
3. 点击右上角的 Add plugin。
4. 输入 GitHub 仓库标识: text github:datit309/dsh-telegram-bridge
5. 点击 Install。插件会自动下载、打包并启用。

方式 3:手动配置(本地开发)

1. 把包加进 ~/.dsh/profiles/web/package.json: json {
"dependencies": {
"dsh-telegram-bridge": "file:/path/to/dsh-telegram-bridge"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-telegram-bridge"
]
}
}
}

2. 软链到 node_modules(本地开发、没跑 pnpm install 时用):bash ln -sf /path/to/dsh-telegram-bridge ~/.dsh/profiles/web/node_modules/dsh-telegram-bridge

3. 在 ~/.dsh/profiles/web/cordis.patch.yml 中启用:yaml
- id: dsh-telegram-bridge
name: "dsh-telegram-bridge"

配置

方式 1:~/.dsh/telegram.json(推荐)创建或编辑 ~/.dsh/telegram.json:json { "token": "YOUR_TELEGRAM_BOT_TOKEN", "chatId": "YOUR_TELEGRAM_CHAT_ID" }

自动配对:chatId 留空,然后用手机给机器人发 /start。机器人会自动锁定你的 chat ID。

方式 2:DSH Web GUI 进入 Settings(左下角齿轮图标)➔ Telegram & Notifier:配置 Token、Chat ID、声音与通知开关,然后点击 Save。

方式 3:环境变量bash
export TELEGRAM_BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN"
export TELEGRAM_CHAT_ID="YOUR_TELEGRAM_CHAT_ID"

运行

重启 DSH web 服务: bash

If dsh web is currently running, stop it with Ctrl+C, then:

dsh web

在手机上打开 Telegram,找到你的机器人,发送 /start。

许可证

MIT
预览分享卡片长什么样 ↓datit309/dsh-telegram-bridge
分享 · DeepSeek Harness Hub
datit309/dsh-telegram-bridge

为 DeepSeek HarnessDSH提供完整的 Telegram 双向远程控制、实时进度跟踪,以及系统原生通知。

这是你的仓库?认领条目

回到顶部