DSH Hub
dsh-theme-terraria cover

10086ggqq/dsh_theme_terraria

dsh-theme-terraria

BundleVision29 GitHub stars· updated 2026-10-26

dsh-theme-terraria is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-theme-terraria`

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-theme-terraria DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-theme-terraria.svg)](https://dshhub.dev/plugins/dsh-theme-terraria)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from 10086ggqq/dsh_theme_terraria, cleaned of badges and images.

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 文件里,由插件直接伺服,无任何运行时框架、无构建步骤。

核心定位一览

官方 UI 概念泰拉瑞亚主题映射
Agent Preset(预设)难度档:旅途 / 软核 / 中核 / 硬核
会话(Session)旅途 / 冒险
用户消息冒险者
工具审批请求审批石板
任务清单(todo)任务清单 HUD
API 密钥状态生命水晶指示灯
插件组合随难度更换的装备

2. 安装与部署指南(含避坑)

环境要求

  • 已安装的 dsh(DeepSeek Harness)CLI,命令行 dsh --version 可用
  • Node.js ^22.19 || >=24 与 pnpm(dsh plugin 内部转发给 pnpm 管理依赖)
  • DeepSeek API 密钥(对话功能必需,其他界面可无密钥浏览)

安装步骤(标准插件安装)

# 1. 把主题作为插件安装进 web profile
dsh plugin --profile web add dsh-theme-terraria

# 2. 启动 Web 服务
dsh web
# 默认地址:http://127.0.0.1:3080/

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 时

# 从 GitHub 仓库安装
dsh plugin --profile web add github:10086ggqq/dsh_theme_terraria

# 或从本地检出的本仓库安装
dsh plugin --profile web add /path/to/dsh_theme_terraria

在 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,并且打开期间给 <html> 挂 data-terraria-modal 把底下的拖拽区整体撤掉 —— 标题屏那条整屏 drag 区会把画在它上面的浮层点击 全部吃掉(「继续会话」「人物桌宠」的「关闭」点了没反应就是这个);弹窗还可以用 <kbd>Esc</kbd>、 点背景或点「关闭」退出。

…

Related plugins