DSH 插件市场DeepSeek Harness 社区插件目录

dsh_theme_terraria

已验证 界面与体验 ★ 29 0.3.0

Terraria pixel theme for the DeepSeek Harness Web UI: a self-contained frontend for the browser URL plus an injected pixel skin (fonts, palette, square pixel chrome, 8-bit click sounds) that reaches the Desktop window through the Host index-injection table.

一句话定位

Terraria pixel theme for the DeepSeek Harness Web UI: a self-contained frontend for the browser URL plus an injected pixel skin (fonts, palette, square pixel chrome, 8-bit click sounds) that reaches the Desktop window through the Host index-injection table.

安装方式

在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。

$ dsh plugin --profile web add dsh-theme-terraria@0.3.0

兼容的 DSH 版本

>=0.1.0-rc.5

作者与热度

10086ggqq · ★ 29 · 更新于 2026-10-26

关于这个插件

dsh_theme_terraria 把 DeepSeek Harness 的 Web UI 换成一整块泰拉瑞亚(Terraria)像素世界——向导陪你写代码。 English Version 目录

1. 项目概述与核心定位 2. 安装与部署指南(含避坑) 3. 视觉设计系统(UI/UX 细节) 4. 音效交互系统(听觉反馈) 5. 隐藏彩蛋(叙事互动) 6. 性能优化与可访问性护栏 7. 项目维护信息(卸载、结构与许可) 1. 项目概述与核心定位

dsh_theme_terraria(npm 包名 dsh-theme-terraria)是 DeepSeek Harness(dsh)的泰拉瑞亚主题插件。它用一个自包含的 index.html(约 98 KB,零外部 JS 依赖)替换官方 React 前端,把「AI 编码代理控制台」包装成一场像素冒险: 标准 dsh 插件包:本仓库本身就是一个 npm 包——入口 index.js 导出插件规范硬性要求的 apply(ctx),cordis.patch.yml 声明 dsh.bundle 补丁层,一条 dsh plugin --profile web add dsh-theme-terraria 即可安装/卸载,不改动 dsh 安装中的任何文件。 不是纯皮肤:主题直连 dsh 宿主的 JSON-RPC(HTTP 上行)+ WebSocket(事件下行)协议,会话创建、消息发送、流式输出、工具审批、模型切换、工作空间管理全部真实可用。填入 DeepSeek API 密钥即可与模型对话。 四个难度档 = 四个 Agent 预设:旅途(standard,全功能编码代理)、软核(code,Code Mode SDK)、中核(minimal,极简双工具)、硬核(cordis,自定义 preset 模板)。切难度就是切预设,插件的组合随难度实时变化。 单文件交付:整块 UI 内联在一个 HTML 文件里,由插件直接伺服,无任何运行时框架、无构建步骤。 核心定位一览 2. 安装与部署指南(含避坑) 环境要求 已安装的 dsh(DeepSeek Harness)CLI,命令行 dsh --version 可用 Node.js ^22.19 || >=24 与 pnpm(dsh plugin 内部转发给 pnpm 管理依赖) DeepSeek API 密钥(对话功能必需,其他界面可无密钥浏览) 安装步骤(标准插件安装)

dsh plugin add 会把 dsh-theme-terraria 写入 web profile 的依赖与 dsh.profile.bundles 层列表;本插件的 cordis.patch.yml 补丁层停用官方 web-runtime 行并插入同构的 terraria-theme 行,插件入口 index.js 导出的 apply(ctx) 再把官方 @deepseek-ai/dsh-web-app 的前端解析器指向本包的 web/index.html——除换皮外,官方 Web 运行时的全部行为(dist 伺服、/api 信任边界、DSH_WEB_URL、URL 打印)保持不变。 包尚未发布到 npm 时 在 deepseek-harness 仓库内以源码方式运行 dsh 时,上述命令加 pnpm 前缀(如 pnpm dsh plugin --profile web add ...、pnpm dsh web)。 桌面版(Electron 应用)里如何生效

桌面应用窗口有两个硬限制:主窗口加载的是 dsh-app://app/,而这个协议把 /、/index.html、 /assets/*、/favicon.svg、/manifest.webmanifest 直接映射到应用内置的官方前端, 宿主服务出来的 dist 在窗口里永远不会被请求;只有其余路径才会带上宿主 cookie 转发给宿主。

本插件因此走两条路:

1. 整体接管(默认):注入层先预检 /terraria/theme.html(就是 web/index.html), 然后把窗口导航到该地址 —— 桌面窗口里跑的就是网页端那同一份 UI:标题屏、向导对话、 人物创建、任务 HUD、8-bit 音效、壁纸与桌宠全部一致。/api/* 仍由桌面壳带 cookie 转发, WebSocket 连宿主 origin(地址由宿主经 DSH_TRANSPORT.streamBaseUrl 提供)。 2. 兜底皮肤:主题页不可用(路由缺失 / 预检失败)或你手动关掉接管时,官方界面会套上一层 注入式像素皮肤(skin/terraria.css 覆盖官方 --dsw-* 令牌与通用元素样式),至少不是原样。

桌面壳专属适配: 原生标题栏配色:preload 读页面里的 --dsw-* 令牌,给窗口控制按钮那一条与原生菜单配色; 给窗口控制按钮让位:三个按钮画在窗口右上角、压在网页之上,顶栏因此按实测宽度右侧留白 (navigator.windowControlsOverlay 的 titlebar-area,拿不到时按 138 × DPR 估算), 让「对话 / 终端 / 音效 / 音乐 / 设置」整体左移,而不是把整个界面往下压; 窗口拖动:顶栏与标题屏空白是 -webkit-app-region: drag,其中的按钮显式 no-drag, 所以拖得动窗口也点得动按钮(早期用整条 fixed 拖拽带,会把顶栏按钮的点击全部吞掉); 浮层必须 no-drag:弹窗浮层(#modal-root)显式 no-drag,并且打开期间给 挂 data-terraria-modal 把底下的拖拽区整体撤掉 —— 标题屏那条整屏 drag 区会把画在它上面的浮层点击 全部吃掉(「继续会话」「人物桌宠」的「关闭」点了没反应就是这个);弹窗还可以用 Esc 、 点背景或点「关闭」退出。 必须完整退出并重启应用:注入行是宿主启动时的一次性快照,重载插件或刷新窗口都拿不到新行。 退路:主题页标题屏「切回官方界面」或 Alt + O ; 宿主侧 DSH_TERRARIA_STANDALONE=0 关接管,DSH_TERRARIA_SKIN=0 连兜底皮肤也关。 退路是双向的:「切回官方界面」会写 localStorage['terraria.takeover'] = '0' 并一直生效, 所以回到官方界面后,右下角会挂一颗「🌳 泰拉瑞亚主题」像素按钮(也可以按 Alt + T ), 点它清掉那个标记并重新接管。每次决策的结论都写在 localStorage['terraria.inject'] 里,界面不对时先看它。 配置 API 密钥并开始对话

1. 打开 http://127.0.0.1:3080/ ,点击「新的会话」; 2. 首次进入会自动弹出「设置」——在「DeepSeek API 密钥」输入框填入 sk-...,点「保存密钥」; 3. 密钥经 credentials.set 存到宿主机(.dsh-home/.credentials.yaml),页面本身不持久保存明文; 4. HUD 面板显示「API 密钥:已配置」后,在对话框输入任何指令即可开始真实对话。

避坑指南(实测踩过的坑) 3. 视觉设计系统(UI/UX 细节) 设计语言:像素三原色 + 石板质感

整个 UI 的视觉基调由三层构成:

1. 背景层:默认森林壁纸(forest.png)+ 标题屏大树(Tree.png),image-rendering: pixelated 保持像素锐利;支持用户更换(见壁纸系统)。 2. 面板层:所有卡片/弹窗使用「泰拉瑞亚石板」风格——深蓝双层嵌套(外框 #181e58,内板 #2e3692)、3 px 深色描边(#0e1340)、8 px 圆角、宋体加粗(SimSun/Songti SC)。 3. 点缀层:金色(--gold)标题与高亮、火把橙(--torch)分区标题、羊皮纸白(--parchment)正文,配深色投影 text-shadow: 1px 1px 0 var(--black)。 字体系统 主字体:Fusion Pixel 12px(缝合像素,开源中文像素字体),单文件 woff2 约 600 KB,内嵌于 web/ 目录,中文渲染无锯齿; 弹窗标题:宋体加粗,还原游戏原版点阵字感; 等宽:终端面板使用 monospace 呈现工具输出。 标题屏

游戏主菜单复刻:logo、五个像素菜单项(新的会话 / 继续会话 / 插件管理 / 设置 / 人物桌宠)、森林背景上的大树剪影。 主对话界面(三栏布局) 顶栏:返回按钮、会话名(显示当前工作空间名,如 dsh_theme_terraria;会话没挂工作空间时退回模式名)、连接状态灯(「已连接到向导世界」)、对话/终端双标签切换、音效开关、音乐开关、插件管理、设置入口。模型名只在 HUD「当前模型」里显示,顶栏不再重复挂一个徽章; 对话区:消息流(冒险者 = 用户、向导 = 助手)+ 底部 NPC 对话框——左侧向导立绘头像(xiangdao.png)与红心印记(heart.png),右侧输入框与七个像素按钮:附件、模式选择、工作空间、权限设置、模型选择、停止、发送。一个回合只留一行「过程」+ 一条结果回复:思考原文、工具调用、中间步骤正文(「Now the endpoint mapping:

相似插件