一条命令装齐费用面板、文件预览、联网搜索与看图能力
26.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add piggy00544/dsh-upgrade-kit该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · vision
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 49 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 56 处,展示前 47 条)
- 读取本地文件plugins/dsh-cost/lib/index.js:106
if (!existsSync(root)) return []; - 读取本地文件plugins/dsh-cost/lib/index.js:108
for (const cwdDir of readdirSync(root)) { - 读取本地文件plugins/dsh-cost/lib/index.js:112
st = statSync(cwdPath); - 读取本地文件plugins/dsh-cost/lib/index.js:117
for (const s of readdirSync(cwdPath)) { - 读取本地文件plugins/dsh-cost/lib/index.js:119
if (existsSync(f)) files.push(f); - 执行外部命令固定命令plugins/dsh-cost/lib/index.js:128
text = execFileSync("zstd", ["-dc", f], { maxBuffer: 512 * 1024 * 1024 }).toString("utf8"); - 读取本地文件plugins/dsh-cost/lib/index.js:173
st = statSync(f); - 读取密钥环境变量plugins/dsh-cost/lib/index.js:337
const key = process.env.DEEPSEEK_API_KEY || apiKeyFromYaml(); - 请求外部主机api.deepseek.complugins/dsh-cost/lib/index.js:340
const resp = await fetch("https://api.deepseek.com/user/balance", { - 发起网络请求plugins/dsh-cost/lib/index.js:340
const resp = await fetch("https://api.deepseek.com/user/balance", { - 写入本地文件plugins/dsh-plugin-file-preview/build.mjs:22
mkdirSync(outDir, { recursive: true }); - 删除本地文件plugins/dsh-plugin-file-preview/build.mjs:23
rmSync(bodyPath, { force: true }); - 执行外部命令固定命令plugins/dsh-plugin-file-preview/build.mjs:41
execFileSync("npx", args, { cwd: root, stdio: "inherit" }); - 读取本地文件plugins/dsh-plugin-file-preview/build.mjs:43
const body = readFileSync(bodyPath, "utf8").trimEnd(); - 写入本地文件plugins/dsh-plugin-file-preview/build.mjs:55
writeFileSync(bundlePath, wrapped); - 删除本地文件plugins/dsh-plugin-file-preview/build.mjs:56
rmSync(bodyPath, { force: true }); - 发起网络请求plugins/dsh-plugin-file-preview/lib/client.js:67
let response = await fetch(url, init); - 发起网络请求plugins/dsh-plugin-file-preview/lib/client.js:324
return setText(null), setTruncated(!1), setFailed(!1), fetch(url).then((response) => response.text()).then((value) => { - 发起网络请求plugins/dsh-plugin-file-preview/lib/client.js:473
return setText(null), setTruncated(!1), setFailed(!1), fetch(rawUrl).then((response) => response.text()).then((value) => { - 读取本地文件plugins/dsh-plugin-file-preview/lib/index.js:78
const stat = statSync(filePath); - 读取本地文件plugins/dsh-plugin-file-preview/lib/index.js:87
if (existsSync(cached)) return cached; - 写入本地文件plugins/dsh-plugin-file-preview/lib/index.js:88
mkdirSync(thumbsDir(), { recursive: true }); - 写入本地文件plugins/dsh-plugin-file-preview/lib/index.js:90
mkdirSync(tmp, { recursive: true }); - 执行外部命令固定命令plugins/dsh-plugin-file-preview/lib/index.js:92
execFileSync("/usr/bin/qlmanage", ["-t", "-s", String(size), "-o", tmp, filePath], { - 读取本地文件plugins/dsh-plugin-file-preview/lib/index.js:97
if (!existsSync(produced)) return null; - 读取本地文件plugins/dsh-plugin-file-preview/lib/index.js:98
writeFileSync(cached, readFileSync(produced)); - 写入本地文件plugins/dsh-plugin-file-preview/lib/index.js:98
writeFileSync(cached, readFileSync(produced)); - 删除本地文件递归plugins/dsh-plugin-file-preview/lib/index.js:104
rmSync(tmp, { recursive: true, force: true }); - 读取本地文件plugins/dsh-plugin-file-preview/lib/index.js:158
if (!existsSync(path)) return []; - 读取本地文件plugins/dsh-plugin-file-preview/lib/index.js:159
return readFileSync(path, "utf8") - 写入本地文件plugins/dsh-plugin-file-preview/lib/index.js:173
mkdirSync(filesDir(), { recursive: true }); - 写入本地文件plugins/dsh-plugin-file-preview/lib/index.js:195
mkdirSync(uploadsDir, { recursive: true }); - 写入本地文件plugins/dsh-plugin-file-preview/lib/index.js:206
writeFileSync(path, body); - 删除本地文件plugins/dsh-plugin-file-preview/lib/index.js:242
if (existsSync(filePath)) rmSync(filePath); - 发起网络请求plugins/research-mcp/server.mjs:30
setGlobalDispatcher(new EnvHttpProxyAgent()); - 发起网络请求plugins/research-mcp/server.mjs:30
setGlobalDispatcher(new EnvHttpProxyAgent()); - 发起网络请求plugins/research-mcp/server.mjs:40
const res = await fetch(url, { - 读取本地文件plugins/research-mcp/server.mjs:262
if (existsSync(file)) { - 读取本地文件plugins/research-mcp/server.mjs:263
const content = await readFile(file, 'utf8'); - 执行外部命令来自配置/变量plugins/research-mcp/test.mjs:12
const child = spawn(process.execPath, [SERVER], { - 执行外部命令固定命令plugins/wechat-bridge/dsh-wechat-daemon.mjs:32
try { return execFileSync('which', ['dsh'], { encoding: 'utf8' }).trim(); } - 发起网络请求plugins/wechat-bridge/dsh-wechat-daemon.mjs:104
const res = await fetch(new URL(endpoint, BASE + '/'), { - 执行外部命令来自配置/变量plugins/wechat-bridge/dsh-wechat-daemon.mjs:159
const child = spawn(DSH_BIN, ['--profile', 'headless', prompt], { - 执行外部命令来自配置/变量plugins/wechat-bridge/dsh-wechat-daemon.mjs:185
spawn(DSH_NOTIFY_BIN, [title, message], { stdio: 'ignore' }); - 发起网络请求plugins/wechat-bridge/dsh-wechat-daemon.mjs:191
const res = await fetch(`${DSH_WEB_URL}/api/${method}`, { - 发起网络请求plugins/wechat-bridge/dsh-wechat.mjs:54
const res = await fetch(new URL(endpoint, BASE + '/'), { - 发起网络请求plugins/wechat-bridge/dsh-wechat.mjs:80
const res = await fetch(new URL(endpoint, BASE + '/'), {
扫描于 2026/10/31(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.deepseek.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 装备升级套件:看钱(dsh-cost 费用面板)、看文件(file-preview 预览)、搜外网(research-mcp)、看图片(vision-bridge)。一条命令全装。
README
由 DeepSeek 最新模型翻译生成DSH 装备升级套件 · dsh-upgrade-kit
给 DeepSeek Harness(DSH)补上五件趁手装备:看钱、看文件、搜外网、看图片、通微信。一条命令全装,装完即用。
五件装备
| # | 装备 | 一句话 | 装完你在哪看到它 |
| 1 | 💰 dsh-cost 用量与费用面板 | token 消耗、峰谷计价估算、DeepSeek 官方真实余额,本地台账可对账 | 侧栏底部 ¥ 按钮 |
| 2 | 📄 dsh-plugin-file-preview 文件预览 | 每条回复产出的文件自动挂预览卡片,会话附件一键预览,拖文件进窗口即上传 | 会话头部 「附件」按钮 + 回复尾部的文件卡片 |
| 3 | 🌐 dsh-research-mcp 外网搜集 | 多引擎国际搜索(DDG/HN/arXiv/GitHub)+ 网页全文抓取 + 站点经验,零 API key | 模型自动获得 mcp__research__search 等 3 个工具 |
| 4 | 👁 vision-bridge 视觉桥接 | 无视觉模型也能看图:描述 / OCR / 报错截图 / UI 元素坐标 | 在聊天里贴图说"看这张图" 自动触发 |
展开完整文档(README 剩余 1 节)
DSH 装备升级套件 · dsh-upgrade-kit 给 DeepSeek Harness(DSH)补上五件趁手装备:看钱、看文件、搜外网、看图片、通微信。一条命令全装,装完即用。 五件装备 | # | 装备 | 一句话 | 装完你在哪看到它 | | 1 | 💰 dsh-cost 用量与费用面板 | token 消耗、峰谷计价估算、DeepSeek 官方真实余额,本地台账可对账 | 侧栏底部 ¥ 按钮 | | 2 | 📄 dsh-plugin-file-preview 文件预览 | 每条回复产出的文件自动挂预览卡片,会话附件一键预览,拖文件进窗口即上传 | 会话头部 「附件」按钮 + 回复尾部的文件卡片 | | 3 | 🌐 dsh-research-mcp 外网搜集 | 多引擎国际搜索(DDG/HN/arXiv/GitHub)+ 网页全文抓取 + 站点经验,零 API key | 模型自动获得 mcp__research__search 等 3 个工具 | | 4 | 👁 vision-bridge 视觉桥接 | 无视觉模型也能看图:描述 / OCR / 报错截图 / UI 元素坐标 | 在聊天里贴图说"看这张图" 自动触发 | | 5 | 💬 dsh-wechat-bridge 微信双向通道 | 微信里发消息 → 本机执行 → 结果回微信(持久记忆);智能体也能主动推消息到你微信 | 扫码后直接在微信里指挥 DSH,会话同步挂进 WebUI | 效果预览 dsh-cost · 用量与费用面板(侧栏 ¥ 按钮): dsh-cost 面板 dsh-plugin-file-preview · 附件预览面板(会话头部「附件」按钮): 文件预览面板 安装(两种方式) 方式 A · macOS 一键安装包(推荐小白) 到 GitHub Releases 下载 DSH-Upgrade-Kit-*.dmg,双击装上,打开填 DeepSeek API key 就能用。DSH 本体和五件装备全部内嵌,无需装 Node/终端。 方式 B · 命令行(已装 DSH 的用户) curl -fsSL https://raw.githubusercontent.com/piggy00544/dsh-upgrade-kit/main/install.sh | bash 装完重启 DSH web(launchctl kickstart -k gui/$(id -u)/com.deepseek.dsh-web,或重启你的 dsh web 进程),侧栏就会长出 ¥ 按钮和「附件」按钮。 唯一需要手动配的是 vision-bridge 的视觉 key 和微信扫码(都不配也不影响其他装备): 视觉 key(可选) cp ~/.agents/skills/vision-bridge/config.example.json ~/.config/vision-bridge/config.json chmod 600 ~/.config/vision-bridge/config.json 编辑填入任一 provider 的 apiKey(推荐阿里百炼 DashScope,新用户限免 50 万 token) 微信扫码(可选):~/bin/dsh-wechat.mjs login 各装备详情 - plugins/dsh-cost/README.md — 费用面板(余额 + 峰谷计价 + 会话明细) - plugins/dsh-plugin-file-preview/README.md — 文件预览(产物卡片 + 附件面板 + 拖拽上传) - plugins/research-mcp/README.md — 外网搜集 MCP(多引擎搜索 + 全文抓取) - skills/vision-bridge/README.md — 视觉桥接(云端视觉模型,OCR/UI 坐标) - plugins/wechat-bridge/README.md — 微信双向通道(收发守护 + 持久记忆 + WebUI 挂会话) 卸载 dsh plugin --profile web remove dsh-cost dsh-plugin-file-preview rm -rf ~/.agents/skills/vision-bridge ~/.local/share/dsh-upgrade-kit rm -f ~/bin/dsh-wechat.mjs ~/bin/dsh-wechat-daemon.mjs ~/bin/dsh-notify ~/bin/dsh-notify-wechat launchctl bootout gui/$(id -u)/com.deepseek.dsh-wechat-daemon 2>/dev/null || true 编辑 $DSH_HOME/profiles/web/cordis.patch.yml,删掉 dsh-cost / file-preview / mcp-research 三段后重启 常见问题 Q: 装完没看到 ¥ 按钮? 重启 web 了吗?dsh plugin --profile web add link:... 只会影响已重启的进程。还不行就确认 $DSH_HOME/profiles/web/cordis.patch.yml 里有 id: dsh-cost 段。 Q: 余额对不上账单? 面板金额按官方公开牌价估算,真实扣费以 platform.deepseek.com 账单为准,面板里两者并排显示方便对账。 问:搜索工具没出现? MCP 注册发生在 web 进程启动时。确认 cordis.patch.yml 里 id: mcp-research 段存在,且 server.mjs 路径正确,然后重启。 问:vision-bridge 提示没有 key? 你还没配 ~/.config/vision-bridge/config.json,或某个服务商的 apiKey 是空的。运行 node ~/.agents/skills/vision-bridge/scripts/vision.mjs --list 可查看哪些服务商已配 key。 问:微信桥没反应? 依次检查:dsh-wechat.mjs status 是否已登录(login 扫码)→ daemon 是否在跑(launchctl list | grep wechat)→ ~/.local/share/dsh-wechat/daemon.log 最新日志。 问:隐私? 费用台账、会话文件全部本地处理,不联网上传。外发只有两处:vision-bridge 把图片发给云端视觉模型(服务商自选),以及微信桥走微信 iLink bot 官方接口(凭证 0600 本地保存,只认扫码人消息)。 许可 MIT License。vision-bridge 核心脚本 vendored 自 JochenYang/luma-mcp(MIT)。macOS 安装包构建见 macos/。 本仓库是第三方社区项目,与 DeepSeek 官方无关。"DeepSeek Harness" 为 DeepSeek 注册商标,本页仅在说明兼容对象时提及。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
piggy00544/dsh-upgrade-kit
一条命令装齐费用面板、文件预览、联网搜索与看图能力
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,332已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,153已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,244已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,046已汉化DSH
71.1
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,480已汉化DSH
71