通过 Telegram 遥控 dsh Agent:对话、技能调用、工作目录浏览与文件传输。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:CLASSLU/dsh-telegram-bridge
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
通过 Telegram 遥控你的 DeepSeek Harness(dsh)Agent:在手机上直接和你的 Agent 对话、调用技能、浏览/切换工作目录、收发文件。
✨ 功能
- 💬 Telegram ↔ dsh Agent 对话:私聊或群里 @ 机器人即可对话
- 🛡️ 访问控制:默认仅白名单可用(用户名 / 聊天 ID),避免被陌生人滥用
- 📂 工作目录浏览器:
/cwd用按钮逐级浏览目录、新建文件夹、一键切换(完全在 Telegram 内操作) - 🧠 技能调用:
/skills查看、/skill <名称>调用 - 🖼️ 图片收发:图片走多模态管线,Agent 生成的图片直接发回 Telegram
- 📄 文件收发:上传文件到工作区、把工作区文件发回手机
- 🎛️ 可视化配置:dsh 设置页 → 插件配置,图形化配置 token / 白名单 / 代理等
📦 安装
把本插件加入你的 dsh profile(以 web profile 为例):
- 将
dsh-telegram-bridge安装到 profile 的 node_modules:cd ~/.dsh/profiles/web pnpm add dsh-telegram-bridge # 或手动复制 dist/ + package.json + cordis.patch.yml - 在
~/.dsh/profiles/web/package.json的dsh.profile.bundles数组中加入"dsh-telegram-bridge"。 - 重启 dsh。
🚀 首次配置(用户全流程)
第 1 步:获取 Bot Token
在 Telegram 里找 @BotFather → /newbot 创建机器人 → 获得 token(格式 123456789:AA...)。
第 2 步:配置 Token(二选一)
- 方式 A(推荐,可视化):dsh 设置页 → 插件配置 → Telegram Bot 桥接 → 在 Bot Token 输入框粘贴 token → 点 测试连接 立即验证是否有效 → 点 保存。
- 方式 B(credentials):在
~/.dsh/.credentials.yaml添加:refs: DSH_TELEGRAM_BOT_TOKEN: "你的token"
第 3 步:配置访问白名单(安全必需)
设置页 → 插件配置 → Telegram Bot 桥接:
- 允许所有人访问:选 否(false)(默认)
- 允许的用户名:填你的 Telegram 用户名(不带 @),如
your_username;多用户用逗号分隔 - (可选)允许的聊天 ID:私聊数字 ID 或群组 ID,多 ID 用逗号分隔
第 4 步:配置代理(如需)
国内访问 Telegram 需要代理,代理地址 填:
http://127.0.0.1:7897 # 本地代理(clash 等)
http://user:pass@host:port # 需要认证的代理
仅支持 http/https 代理(socks 暂不支持)。留空 = 直连。
第 5 步:重启并验证
重启 dsh 后,在 Telegram 里给机器人发 /status 或任意消息,应正常回复。
🎛️ 配置项
| 配置 | 默认 | 说明 |
|---|---|---|
bot_token_ref |
DSH_TELEGRAM_BOT_TOKEN |
credentials 引用名 |
bot_token |
空 | 直接填 token(设置页/配置均可) |
allow_all |
false |
是否允许任何人访问(强烈建议保持 false) |
allowed_usernames |
[] |
允许的 Telegram 用户名(不带 @) |
allowed_chat_ids |
[] |
允许的聊天/群组 ID |
group_require_mention |
true |
群里需 @ 机器人才响应 |
proxy |
空 | 代理地址 http://[user:pass@]host:port |
cwd |
dsh 启动目录 | 默认工作目录 |
polling_interval |
2000 |
getUpdates 轮询间隔(毫秒) |
📖 Telegram 命令
| 命令 | 说明 |
|---|---|
/new |
重置当前会话 |
/topic <名称> |
切换命名子会话 |
/cwd |
目录树浏览 / 切换工作目录(支持新建文件夹) |
/skills |
列出可用技能 |
/skill <名称> [参数] |
调用技能 |
/model [provider model] |
查看 / 切换模型 |
/sessions |
列出会话 |
/status |
当前状态 |
/stop |
停止当前回合(agent 正在思考/执行时打断) |
/auth |
检查授权状态 |
/cleanup |
释放空闲会话 |
/help |
帮助 |
💬 交互模式(补充信息 / 停止)
- Agent 处理中想补充信息:直接发消息即可。消息会进入同聊天的串行队列,等当前回合结束后自动处理(不会丢失,也不会打断当前回合)。
- 想停止当前回合:发
/stop,agent 会立即停止思考/执行。 - 想彻底重置(停止 + 清空对话历史):发
/new。 - 查看是否在处理:发
/status看运行状态;处理中 bot 会显示"typing..."。 - 注意:
/stop只停当前回合,队列里排队中的消息仍会继续处理;要全部取消用/new或/cleanup。
🔍 排障(FAQ)
Q: 机器人完全不回复任何消息?
A: 大概率 token 未配置。看 dsh 终端日志,会提示 未配置 Bot Token 及配置方法;或在设置页检查 Bot Token 是否显示"未配置",填好后用 测试连接 验证。
Q: 测试连接失败?
A: 1) token 是否复制完整(@BotFather 里可查看);2) 代理是否可达、格式是否正确(http://[user:pass@]host:port);3) 本机网络是否能访问 api.telegram.org。
Q: 提示"无权访问"? A: 你的用户名不在白名单。设置页 → 允许的用户名 里加上(不带 @),保存后即生效(无需重启)。
Q: 想给朋友开放?
A: 在设置页的允许的用户名/聊天 ID 里追加即可;也可把 allow_all 设为 true(不推荐)。
⚠️ 安全须知(开源部署必读)
- 工作目录边界:
/cwd允许切换到任意目录(设计为"自己遥控自己的机器")。Bot 会话的 agent 拥有该目录的读写能力,切勿把 Bot 白名单开放给不信任的人。 - 群组白名单:
allowed_chat_ids填入群 ID 后,该群内所有成员都可与 Bot 对话(绕过用户名白名单)。只想让特定成员使用请用allowed_usernames。 - 公网暴露:设置页的「测试连接」调用
POST /telegram-bridge/test-token无鉴权。不要将 dsh Web 直接暴露到公网且不做访问控制(dsh 默认监听 127.0.0.1,反向代理暴露时请加认证)。 - 文件安全:Bot 收到的文件保存在
<工作目录>/telegram-inbox/(上限 25MB/个);Agent 发送文件仅限工作目录内(越界会被拒绝)。 - 日志:运行日志默认在系统临时目录,诊断日志在
~/.dsh/dsh-telegram-bridge.log,均不记录 token 明文。
🛠️ 开发
- 源码即
dist/下的产物(无构建步骤),dist/client.js为手写__ModuleLoader__bundle。 - Host 端逻辑:
dist/index.js;浏览器配置卡片:dist/client.js。 - 日志:默认
系统临时目录/tg-bridge-log.txt,可用环境变量DSH_TELEGRAM_BRIDGE_LOG覆盖;诊断日志默认~/.dsh/dsh-telegram-bridge.log,可用DSH_TELEGRAM_BRIDGE_DIAG覆盖。 - 本地部署:修改后把
dist/、package.json、cordis.patch.yml复制到 profile 的 node_modules,重启 dsh。
📄 License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-remote-web-ui★ 8526
手机/PC 远程操控 dsh web 工作区:扫码配对、令牌门控通道、SSE 实时同步,提供移动端与完整桌面 GUI 两种远程形态。
zhu1090093659/dsh-web#packages/dsh-ssh★ 8526
SSH 远程运维面板:Web 终端、SFTP 传输、本地端口转发与一条命令并发集群执行,Agent 与面板共用同一份主机配置。
saya-ch/dsh-mobile★ 402
通过 Android App 或手机浏览器访问 DeepSeek Harness,支持安全局域网连接、远程访问、持久设备配对和可自定义移动界面。
ZSeven-W/dsh-ios★ 315
在对话里直接操作 iOS 模拟器或 USB 连接的 iPhone:22 个 Agent 工具用于启动、构建、按无障碍标识或 OCR 文本驱动 UI、列表行操作与 SwiftUI 预览热重载,并附带可点击拖拽的流式侧边栏面板。
liguobao/ds-harness-remote★ 279
DeepSeek Harness 多端远程访问:从手机、平板、浏览器或另一台电脑继续进行中的会话,端到端加密通道(Noise IK + 自适应 Relay/WebRTC 传输),设备授权管理;远程端仅开放 ApiProxy 能力,支持 dsh-file-viewer 只读文件预览,不提供 Shell、远程桌面或写入权限。
wenbin-wb/dsh-bridge★ 185
DeepSeek Harness 远程与移动端接入插件:提供局域网扫码直连、Cloudflare 与自建公网隧道,以及微信、QQ、飞书、Telegram 机器人交互,内置安全认证与访问控制。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。