dsh-coin-ticker:在 DSH 侧边栏看 BTC / ETH / SOL 行情

前言

用 DSH(DeepSeek Harness)做开发或对话时,界面左侧多是会话列表和设置,加密货币价格若要去浏览器或交易所 App 里查,会打断当前工作流。社区插件 dsh-coin-ticker(维护者 jxhsjxhs,Skillhub 分类:联网工具)把行情做成 Web GUI 侧边栏左下角的一张卡片:在余额与设置上方显示 BTC、ETH、SOL 的价格、24 小时涨跌和迷你走势图,可折叠成小胶囊,零依赖、免 API 密钥。本文基于仓库 README 与 package.json 说明定位、安装与配置;DSH 社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-coin-ticker 是面向 DSH Web GUI 的侧边栏行情插件(当前版本 0.1.1,MIT 许可)。宿主半侧在 Connection 的 /api 通道注册 GET /api/coin.ticker,从 OKX、Binance、CoinGecko 拉取现货行情;浏览器半侧通过 sidebar.footer.action 槽位渲染卡片。只在 web / desktop 的 Web GUI 可见,headless、sdk、acp 等没有侧边栏的 profile 装上也不显示。

核心功能

界面与交互

  • 默认展示 BTC、ETH、SOL:现价、24h 涨跌幅(红涨绿跌)、基于 24 根 1 小时收盘价续接实时点的迷你走势图。
  • 表头「行情」可折叠:展开为整张卡片,收起为 ▼ 行情 小胶囊;状态保存在 localStorage(键 dsh-coin-ticker:collapsed)。行情异常时胶囊变红。
  • 点击任意一行或表头 ⟳ 可立即刷新;悬停可看 24h 高/低、成交量、当前信源与更新时间。价格跳动时有红/绿脉冲提示。
  • 侧边栏收成 56px 窄栏时,自动切换为「字标 + 价格」布局。

数据与可靠性

  • 数据源按顺序降级:OKX → Binance → CoinGecko,均免密钥;默认三币种在 OKX、Binance 上含 K 线,CoinGecko 免费层无 K 线(仅价格)。
  • 宿主侧缓存,多标签页共享同一份数据;全部信源不可用时保留最后已知价格并置灰,表头显示「已断开」。
  • 传输层会按配置与环境自动适配 HTTP 代理(见下文「国内网络」),不依赖额外 npm 包。

与其它插件的关系

本包与上游 dsh-plugin-crypto-ticker 不能同时安装:两者注册同一槽位条目,重复 id 会导致插件树启动失败。安装本包前应先移除 dsh-plugin-crypto-ticker。

安装与启用

尚未发布到 npm,请使用 GitHub 源安装(profile 为 web):

dsh plugin --profile web add github:jxhsjxhs/dsh-coin-ticker

本地开发时可指向目录:

dsh plugin --profile web add /绝对路径/dsh-coin-ticker

dsh plugin 会把包装进 $DSH_HOME/profiles/<name>,并根据 package.json 中的 dsh.bundle.patch 自动加入 profile 的 bundle 层栈。装完后 重启 dsh web(桌面端需完全退出后重开)。改过客户端 client.js 后也必须重启进程,不能仅靠浏览器刷新(bundle 的 rev 在启动时生成且响应为 cache-control: immutable)。

与上游 crypto-ticker 冲突时,先执行:

dsh plugin --profile web remove dsh-plugin-crypto-ticker

国内网络:安装阶段 Git 解析失败

pnpm 解析 github: 依赖时只走 HTTPS,不读系统代理,直连 github.com 可能报 ERR_PNPM_GIT_RESOLVE_FAILED。安装时可临时指定代理(端口按本机修改):

HTTPS_PROXY=http://127.0.0.1:7890 HTTP_PROXY=http://127.0.0.1:7890 \
  dsh plugin --profile web add github:jxhsjxhs/dsh-coin-ticker

插件运行时的行情请求走自带传输层并会探测系统代理,不要求一直保持上述环境变量。

配置

全部可选,写在 profile 的 cordis.patch.yml 中,对应插件 id coin-ticker:

- id: coin-ticker
  config:
    symbols: [BTC, ETH, SOL]        # 要显示的标的,默认 BTC, ETH, SOL
    schedule: 15                    # 刷新间隔(秒),默认 15
    cacheMs: 10000                  # 宿主缓存窗口,默认 10 秒
    sparklineCacheMs: 300000        # 走势序列重取间隔,默认 5 分钟
    upstreamTimeoutMs: 8000         # 单个信源超时,默认 8 秒
    proxy: false                    # 显式代理 / false 强制直连 / 不填自动探测

标的写币种代码即可(去空格、转大写、去重)。OKX 与 Binance 支持任意 XXXUSDT 现货对;CoinGecko 仅覆盖 README 中 COINGECKO_IDS 列出的常见资产。内置映射包括 BTC、ETH、SOL、JUP、BNB、XRP、DOGE、ADA、AVAX、TON、LINK、SUI、LTC、DOT、TRX 等,改 symbols 即可换币,无需改源码。

代理解析优先级:config.proxy → HTTPS_PROXY / HTTP_PROXY 等环境变量 → Windows 系统代理注册表 → 直连。仅支持 http:// 代理(CONNECT 隧道)。

典型用法

  1. 按上一节安装并重启 Web GUI,打开侧边栏即可看到左下角行情卡片。
  2. 需要只看部分币种或增加 JUP 等:在 cordis.patch.yml 中设置 symbols 列表后重启 dsh web。
  3. 国内运行时若界面长期「已断开」,在配置中设 proxy 或保证环境变量 / 系统代理可被宿主读取;与浏览器能打开交易所页面但插件超时的情况,多半是 Node 侧未走代理,而非接口本身不可用。
  4. 确认客户端是否已挂载:宿主将心跳写入 $DSH_HOME/coin-ticker.json 的 clientSeenAt,例如:
cat "$HOME/.dsh/coin-ticker.json"

维护者可在仓库根目录做语法与离线冒烟测试:

node --check index.js && node --check client.js
npm test
npm run test:live   # 真实网络,打印各标的当前价

适用场景与注意

适合:长期在 DSH Web 或桌面 GUI 中工作、希望扫一眼主流币价而不切换窗口的开发者;接受从公开交易所接口拉取、仅供个人参考的行情(README 声明不构成投资建议)。

注意:

  • 插件以当前 dsh 进程权限 出网,安装前应阅读 GitHub 源码 与 MIT 许可证;package.json 声明的网络权限包括 okx.com、api.binance.com、api.coingecko.com。
  • 兼容 DSH >=0.2.0-rc.1 <0.3.0-0,Node >=22.19。
  • 若仅 CoinGecko 可用,走势图可能退化为会话内实时点曲线,冷启动点数较少。界面文案为中文硬编码,未接入 DSH locale 字典。
  • 桌面端重建 profile 可能清掉自定义依赖,需重新安装插件。

结尾

dsh-coin-ticker 把零密钥、多源降级的现货行情嵌进 DSH 侧边栏,可折叠、可配置标的,并针对国内代理场景做了宿主侧传输处理。目录与源码:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye