# Fate / Twin Contract · Crimson Pact [中文说明](README.md) An unofficial skin for the DeepSeek Harness (DSH) Web GUI, centered on Archer × Rin. Every character background is original generated fan artwork made for this project; no official screenshots, key art, or animation assets are included. This project is not affiliated with, sponsored by, or endorsed by TYPE-MOON, Aniplex, ufotable, or their related parties. The skin natively follows Light, Dark, and System modes, works fully offline, and uses restrained motion. It is presentation-only: it does not read conversations, workspaces, or model configuration; it does not change theme preferences or localStorage; and it makes no network requests. ## Preview ### Light ![Light theme preview](assets/preview/light.webp) ### Dark ![Dark theme preview](assets/preview/dark.webp) ## Install Prerequisite: a working DSH Web GUI installation. Node.js 22 or newer is required only for development. ```powershell dsh plugin --profile web add github:Jayliu2025-vip/dsh-fate-twin-contract ``` Restart `dsh web` after installation, then refresh any browser tab that was already open. If your DSH setup requires manual wiring, add the complete record below to the Web GUI configuration. It exactly matches the repository's `cordis.patch.yml`: ```yaml - insert: - id: ui-skin-fate-twin-contract name: 'dsh-fate-twin-contract' ``` ## Remove First remove the complete `insert` record above from the DSH configuration, then run: ```powershell dsh plugin --profile web remove dsh-fate-twin-contract ``` Restart `dsh web` and refresh the page. If DSH still reports a missing plugin, a stale `cordis.patch.yml` insertion remains in the configuration; remove it and restart again. ## Privacy and accessibility - Fully offline: no network requests and no access to data, conversations, workspaces, or model configuration. - Does not change the DSH theme preference or write to localStorage or other local storage. - Honors `prefers-reduced-motion` by disabling decorative animation. - Supports `forced-colors` so system outlines and controls remain recognizable. - Removes character artwork on narrow and mobile layouts to preserve readability and working space. ## Development and verification ```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` rebuilds runtime WebPs from `assets/source`; normal development verification does not need to regenerate the artwork. ## License and notice Code and CSS are released under the MIT License. Artwork is excluded from the MIT grant; read [NOTICE.md](NOTICE.md) before use or redistribution.