前言¶
DeepSeek Harness(DSH)的 Web 控制台默认是 React 前端,功能完整,但界面风格偏工程化。如果你希望在同一套 JSON-RPC 与 WebSocket 协议上继续写代码、审工具、切预设,只是换一层更有辨识度的交互外壳,社区里有人做了另一种选择:用单文件 HTML 把控制台包装成泰拉瑞亚像素冒险界面,向导 NPC 陪你对话,难度档对应 Agent 预设,而不是另起一个与宿主脱节的静态页面。
下面介绍维护者 10086ggqq 的 dsh_theme_terraria(npm 包名 dsh-theme-terraria)。它在 SkillHub 目录归类为「趣味换装」,GitHub 仓库当前约 12 stars;插件以 MIT 许可证发布,版本 0.1.1。
这是什么¶
dsh_theme_terraria 是 DSH 的泰拉瑞亚主题插件:用一个约 98 KB、零外部 JS 依赖的自包含 index.html 替换官方 Web 前端,把「AI 编码代理控制台」映射成像素世界。
它不是纯 CSS 换皮。主题直连 dsh 宿主的 JSON-RPC(HTTP 上行)与 WebSocket(事件下行),会话创建、消息发送、流式输出、工具审批、模型切换、工作空间管理均走真实协议;填入 DeepSeek API 密钥即可与模型对话。
安装方式遵循标准 dsh 插件包:index.js 导出 apply(ctx),cordis.patch.yml 声明 dsh.bundle 补丁层,一条命令写入 web profile,不改动 dsh 安装目录里的文件。
核心功能¶
难度档 = Agent 预设¶
模式选择界面复刻泰拉瑞亚人物创建弹窗。四个难度按钮对应四套后端预设,切换即调用 agentPreset.select:
| 难度档 | 预设 | 说明 |
|---|---|---|
| 旅途 | standard | 全功能编码代理 |
| 软核 | code | Code Mode SDK |
| 中核 | minimal | 极简双工具 |
| 硬核 | cordis | 自定义 preset 模板 |
插件组合随难度实时变化;插件管理器读取当前预设的 cordis.yml,列出已挂载插件及中文用途,停用项会置灰标注。
界面与交互映射¶
官方 UI 概念被统一翻译成游戏语言:
| 官方 UI | 主题映射 |
|---|---|
| Agent Preset | 难度档:旅途 / 软核 / 中核 / 硬核 |
| 会话 | 旅途 / 冒险 |
| 用户消息 | 冒险者 |
| 工具审批 | 审批石板 |
| 任务清单(todo) | 任务清单 HUD |
| API 密钥状态 | 生命水晶指示灯 |
主对话区为三栏布局:顶栏含连接状态(「已连接到向导世界」)、对话/终端切换、音效与音乐开关;底部 NPC 对话框左侧为向导立绘,右侧为输入框与模式选择、工作空间、权限、模型、停止、发送等按钮。
设置、壁纸与桌宠¶
设置弹窗分四区:
- API 密钥:经
credentials.set存到宿主机.dsh-home/.credentials.yaml,页面不持久保存明文;可切换工具审批模式(自动允许 / 手动确认)。 - 壁纸:支持拖拽或点击上传图片/视频;图片自动压缩到 1920px JPEG 存 localStorage,GIF 保留动画,MP4/WebM(≤512 MB)存 IndexedDB 作全屏动态壁纸。
- 背景音乐:支持 MP3/WAV/OGG 等(≤64 MB),存 IndexedDB 循环播放,顶栏可一键开关。
- 插件:打开上述插件管理器。
标题屏「人物桌宠」可替换对话区陪伴角色,并独立控制五只屏幕桌宠(克鲁苏之眼、史莱姆王、嘉登、神明吞噬者、极地之灵)的显示;支持自定义头像、名字(≤12 字)与性格设定(可从 .md 导入)。
音效与叙事细节¶
内置 8-bit WebAudio 音效引擎(方波合成,无音频文件):助手回复完成、工具审批、向用户提问、发送失败各对应一声短促提示;流式输出过程静音,顶栏可关音效。
交互文案贯穿冒险叙事:用户署名固定为「冒险者」,手动停止生成显示「旅程被中断」,断线提示「连接已断开,重连中…」。
安装与启用¶
环境要求¶
- 已安装 dsh CLI,
dsh --version可用 - Node.js
^22.19 || >=24与 pnpm(dsh plugin内部转发给 pnpm) - DeepSeek API 密钥(对话必需;无密钥也可浏览界面)
安装步骤¶
先把主题作为插件安装进 web profile:
dsh plugin --profile web add dsh-theme-terraria
若 npm 包尚未发布,可从 GitHub 或本地路径安装:
dsh plugin --profile web add github:10086ggqq/dsh_theme_terraria
# 或
dsh plugin --profile web add /path/to/dsh_theme_terraria
在 deepseek-harness 源码仓库内运行时,上述命令需加 pnpm 前缀,例如 pnpm dsh plugin --profile web add dsh-theme-terraria。
安装完成后启动 Web 服务:
dsh web
默认地址:http://127.0.0.1:3080/。
典型用法¶
经过上面的步骤,可按以下流程开始对话:
- 打开
http://127.0.0.1:3080/,点击「新的会话」。 - 首次进入会弹出「设置」,在「DeepSeek API 密钥」输入框填入
sk-...,点「保存密钥」。 - HUD 显示「API 密钥:已配置」后,在底部对话框输入指令即可。
切换编码风格时,点「模式选择」,在人物创建风格弹窗里选旅途 / 软核 / 中核 / 硬核,再点「选择」——后端预设与会话名会同步更新。
换工作目录时,点「工作空间」,点击已有目录行即在该路径开新会话;也可通过选择文件夹、拖拽或手动输入完整路径注册新工作空间。
适用场景与注意¶
适合谁
- 已在用 DSH Web 控制台,希望保留全部 Agent 能力,只换视觉与交互语气。
- 喜欢像素风、泰拉瑞亚 UI 隐喻,或需要难度档直观对应不同 preset 的场景。
- 需要壁纸、BGM、桌宠等轻度个性化,又不想改 dsh 核心代码。
使用前请注意
- 插件以当前
dsh web进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。 - SkillHub 目录页(https://www.skillhub.cn/plugins/10086ggqq/dsh_theme_terraria)为社区独立站点,与 DeepSeek / 幻方无官方从属关系。
- 更新插件后若页面仍是旧 UI,可强制刷新(
Ctrl+F5)或地址加?v=2绕过浏览器缓存。 dsh plugin add报 pnpm 相关错误时,需先安装 pnpm 并重开终端;密钥保存失败常见于沙箱环境拦截宿主目录写入。- 浏览器选择文件夹时可能只返回文件夹名,主题会尝试匹配已注册同名目录;否则需手动补全路径。
结尾¶
dsh_theme_terraria 把 DSH 的 Web UI 换成单文件泰拉瑞亚像素世界:向导陪你写代码,真实对话、工具审批、难度切换一应俱全,零外部 JS 依赖。若你已在用 DSH,一条 dsh plugin --profile web add dsh-theme-terraria 即可体验。
- 目录页:https://www.skillhub.cn/plugins/10086ggqq/dsh_theme_terraria
- GitHub:https://github.com/10086ggqq/dsh_theme_terraria