DeepSeek Harness Plugin

AppliedYuu/dsh-WallpaperAndCost

Stars ★ 3 Category UI Enhancements Added 2026-08-19

Merged plugin: wallpaper customization (original-resolution uploads, crop editor, per-area opacity, MP4/WebM dynamic wallpapers) + Steam Workshop wallpaper extraction (parses scene.pkg/.tex via a bundled Python script, preview/download) + DeepSeek balance & usage widget + OpenCode Go plan usage (rolling/weekly/monthly percents in a top header pill; expand for progress bars & reset countdowns). API keys are read from DSH's credential store by the host — never stored in source or the browser.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:AppliedYuu/dsh-WallpaperAndCost

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

This plugin publishes its README in Chinese only.

A merged DSH web plugin combining wallpaper customization and the DeepSeek balance & usage widget.

Features

🎨 Wallpaper (壁纸)

  • 8 built-in curated gradients (暮色 / 深渊 / 晨曦 / 森林 / 星夜 / 暖阳 / 青空 / 石墨)
  • Upload your own images at full original resolution (no compression), stored in IndexedDB
  • 动态壁纸:上传 MP4/WebM 视频,自动静音循环播放(铺底 <video> 元素,object-fit: cover)
  • Crop editor: drag to pan + zoom (100%–250%) with a live viewport-proportional preview
  • Independent absolute opacity sliders (0–100%) for the left sidebar, the conversation column and the right sidebar — the right-sidebar slider now drives both the dsh-better-sidebar panel and DSH's official right sidebar (dsh-client-ui-sidebar-right, detected via [data-sidebar-right-panel]); the slider auto-appears whenever either sidebar is present
  • Wallpaper choice persists across restarts (localStorage + IndexedDB)
  • 创意工坊壁纸提取(服务器目录):输入 Wallpaper Engine 创意工坊条目文件夹的绝对路径(…steamapps\workshop\content\431960\<id>),由内置的 scripts/extract_scene_pkg.py 解析 scene.pkg / .tex(含 LZ4 解压、DXT/RGBA→PNG、内嵌 MP4),提取最佳壁纸供预览与下载。需要运行 DSH 的机器装有 Python 3(脚本为纯 Python,Pillow 可选)。
    • 桌面端支持「选择文件夹…」:DSH Desktop(Windows)上可直接用系统原生文件夹选择器选取条目文件夹,自动填入绝对路径,避免手输/粘贴路径出错而报"文件夹不存在"。
    • 路径自动规整 + 明确报错:路径会先去空白、剥成对引号、展开 ~,并校验是否为绝对路径;读取失败会区分「文件夹不存在」「没有权限读取该文件夹(含 Windows 受控文件夹访问拦截)」「路径不是文件夹」,不再把权限问题笼统报成"文件夹不存在"。

🔍 Wallpaper Engine 创意工坊提取脚本

  • 仓库自带独立脚本 scripts/extract_scene_pkg.py,可单独命令行使用:
    python scripts/extract_scene_pkg.py --folder <创意工坊条目文件夹> --out <输出目录>
    python scripts/extract_scene_pkg.py <scene.pkg>          # 或直接解析单个 pkg
    python scripts/extract_scene_pkg.py <scene.pkg> --list   # 只列出包内文件
    
  • 支持容器:PKGV(scene.pkg)、TEXV0005/TEXI0001/TEXB000x(.tex)。内容类型:内嵌 JPEG/MP4、DXT1/3/5→.dds(有 Pillow 转 .png)、RGBA8888/R8 裸像素→.png、其余文件原样导出。
  • 浏览器端另有无需 Python 的「从 Wallpaper 导入」入口(File System Access API 纯 JS 解包),两者互补。

💰 Balance & usage (余额与用量)

  • Balance button in the conversation header: balance, today's consumption, this session's token usage & estimated cost
  • Official DeepSeek CNY price table with peak/valley windows, per-model and per-window breakdown
  • Platform consumption (DEEPSEEK_PLATFORM_TOKEN) is read from DSH's credential store by the host (ctx.credentials.resolve), the same way DEEPSEEK_API_KEY and OPENCODE_GO_API_KEY are — no in-widget token capture
  • The DeepSeek API key never leaves the host (host-side routes only)

🟢 OpenCode Go 用量 (rolling / weekly / monthly)

  • 会话头部新增一个 Go 按钮(与余额按钮并列于顶端):默认只显示滚动 / 周 / 月三个用量的百分比
  • 点开后用进度条展示每个窗口用量,并显示各自的重置时间(平时隐藏,展开可见)
  • 数据来自 OpenCode Go 官方用量接口 GET https://opencode.ai/zen/go/v1/usage(Bearer 鉴权),由 host 端代理,key 与余额相同方式通过 ctx.credentials.resolve("OPENCODE_GO_API_KEY") 获取,从不入源码/浏览器
  • 该接口为社区发现的非官方文档化接口,响应结构可能随 OpenCode 变动;窗口解析做了兼容(usage. 前缀或裸窗口、resetsAt 或 resetsInSeconds)

Install

dsh plugin --profile web add dsh-WallpaperAndCost

or from GitHub:

dsh plugin --profile web add github:<owner>/dsh-WallpaperAndCost

Restart DSH afterwards.

Requirements

  • DSH web profile
  • DEEPSEEK_API_KEY credential (设置 → 模型) for the balance feature
  • Optional DEEPSEEK_PLATFORM_TOKEN (set in 设置 → 模型) for exact platform consumption figures

Structure

  • lib/index.js — host half: balance/cost API routes (/api/deepseek-balance, /api/deepseek-session-cost) + workshop extraction routes (/api/wallpaper-workshop/extract, /api/wallpaper-workshop/file) + OpenCode Go usage route (/api/opencode-go-usage)
  • lib/client.js — browser half: wallpaper + balance widget + OpenCode usage widget + workshop extraction UI (no build step required)
  • scripts/extract_scene_pkg.py — standalone Wallpaper Engine .pkg/.tex extraction engine (called by the host route; also usable as a CLI)
  • cordis.patch.yml — bundle patch mounting the plugin row

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.