Skip to content
dsh.fish
Bundle

dsh-fate-twin-contract

Unofficial Fate-inspired Archer × Rin skin for the DeepSeek Harness Web GUI

Source
Jayliu2025-vip
stars
1 stars
License
SEE LICENSE IN NOTICE.md
Updated
Updated 5 days ago

Readme

# Fate / Twin Contract · 赤钢契约

[English](README.en.md)

面向 DeepSeek Harness(DSH)Web GUI 的非官方主题皮肤,以红 A × 远坂凛为双主角。所有人物背景均为本项目生成的原创同人视觉,不包含官方截图、海报或动画素材。本项目与 TYPE-MOON、Aniplex、ufotable 及其关联方没有隶属、合作或背书关系。

皮肤原生适配浅色、深色和跟随系统模式,完全离线运行,并只使用克制的界面动效。它是纯展示层:不会读取对话、工作区或模型配置,不修改主题偏好或本地存储(localStorage),也不会发起任何网络请求。

## 预览

### 浅色

![浅色主题预览](assets/preview/light.webp)

### 深色

![深色主题预览](assets/preview/dark.webp)

## 安装

前置条件:已经安装并可以运行 DSH Web GUI。只有参与本项目开发时才需要 Node.js 22 或更高版本。

```powershell
dsh plugin --profile web add github:Jayliu2025-vip/dsh-fate-twin-contract
```

安装完成后,重启 `dsh web`;如果页面已打开,再刷新浏览器。

如果你的 DSH 环境需要手动接线,请把下面这条完整记录加入 Web GUI 配置。它与仓库中的 `cordis.patch.yml` 完全一致:

```yaml
- insert:
    - id: ui-skin-fate-twin-contract
      name: 'dsh-fate-twin-contract'
```

## 卸载

先从 DSH 配置中删除上面的完整 `insert` 记录,再执行:

```powershell
dsh plugin --profile web remove dsh-fate-twin-contract
```

随后重启 `dsh web` 并刷新页面。如果卸载后仍提示插件缺失,说明配置中还留有过期的 `cordis.patch.yml` 插入记录;删除该记录后再重启。

## 隐私与无障碍

- 离线皮肤:不访问网络,不读取数据、对话、工作区或模型配置。
- 不修改 DSH 的主题偏好,也不写入 localStorage 或其他本地存储。
- 遵循 `prefers-reduced-motion`,在用户要求减少动画时停用装饰性动画。
- 支持 `forced-colors` 强制颜色模式,保留系统可辨识的轮廓和控件。
- 窄屏和移动端关闭人物背景图,优先保证内容可读和操作空间。

## 开发与验证

```powershell
npm ci
npx playwright install chromium
npm run assets
npm run build
npm run check
npm test
npm run pack:check
```

`npm run assets` 会从 `assets/source` 重新生成运行时 WebP;一般开发验证无需重复生成美术资源。

## 许可与声明

代码和 CSS 以 MIT License 发布。人物美术不属于 MIT 许可范围;使用或再分发前请阅读 [NOTICE.md](NOTICE.md)。

Install

dsh plugin --profile web add github:Jayliu2025-vip/dsh-fate-twin-contract

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source