README.en.md

August 14, 2026 · View on GitHub

DSKIN banner

简体中文 English

🐱 DSKIN · Pixel Kitten Party

A cartoon pixel kitten plugin made exclusively for the DeepSeek Harness (DSH) Web GUI
DeepSeek Harness(DSH)专用卡通像素皮肤插件

dsh-plugin license version platform stars


📖 Intro / 简介

DSKIN is a lightweight cartoon pixel skin plugin for DeepSeek Harness (DSH): the UI stays untouched — tiny pixel pets live at the screen edge.

DSKIN 是 DeepSeek Harness(DSH)的轻量化卡通像素皮肤插件: 界面零改动,只在屏幕底边养几只小像素宠物。

Zero UI changes, zero obstruction. DSKIN adds no frame, no background and no layout changes — it just keeps a troop of small pixel pets at the bottom edge of your screen.

1–4 pixel kittens (🐱 大橘 orange tabby / 小白 white / 玄猫 black / 花猫 tuxedo — count adjustable, breeds swappable) live at the bottom edge. They approach, chase, and play with each other. The paw button 🐾 in the bottom-right corner lets you toggle the palette to pick any kitten you like.

Pure presentation skin: no service injection, no cordis events, no model traffic. Follows the official dsh.client client plugin contract — hot-pluggable and fully reversible on uninstall.

✨ Features

🐱 1–4 pixel kittensadjustable count, per-cat breed switching, strolling at the bottom edge
🤝 Kitten interactionskittens approach, chase, and play with each other
🐾 Paw buttonbottom-right switcher to toggle the palette and pick any kitten
👟 Living petsstepping / blinking / edge turns / hover bounce / click hop / pixel shadow
📏 No obstructionpets stay at the screen edge; no frame, no background, native UI
🐱 Pixel faviconcurrent kitten head + product title DSKIN · DeepSeek Harness
Zero intrusionnative fonts, buttons, inputs, scrollbars and layout

🐱 Kitten Close-ups

LightDark
lightdark

🎮 Controls

Cat Palette

点击小猫选中它(头顶出现 ★),再点品种按钮换色;★ 10 秒后自动消失。 Click a kitten to select it (★ appears), then pick a breed; the ★ auto-clears after 10s. Pixel kitten selector panel

Paw Button Paw switcher button (bottom-right)

🤖 One-Click Install (hand to your AI)

Copy the line below and paste it to your AI assistant (e.g. opencode / Claude / a DSH agent):

Please install the https://github.com/dancingmemory/dskin plugin on my DSH and make it show up in the plugin tools.

The AI should run:

# 1. install the plugin (into the web profile)
dsh plugin --profile web add github:dancingmemory/dskin

# 2. if pnpm ≥ 10 blocks build scripts, append this to
#    ~/.dsh/profiles/web/pnpm-workspace.yaml and re-run step 1
#    allowBuilds:
#      dskin: true

# 3. restart the web service so the plugin enters the loading graph
dsh web

# 4. verify: Settings → Plugins lists dskin (ui-skin-dskin), the 🐾 paw
#    button appears bottom-right, and kittens stroll at the screen edge

📦 Install

Requires the DeepSeek Harness dsh CLI (or npx @deepseek-ai/dsh).

dsh plugin --profile web add github:dancingmemory/dskin

pnpm ≥ 10 may refuse to run build scripts for git dependencies on first install. dsh prints the fix: add allowBuilds: dskin: true to the profile's pnpm-workspace.yaml, then re-run.

Option 2: from source

git clone https://github.com/dancingmemory/dskin.git
cd dskin && pnpm install
dsh plugin --profile web add .

Option 3: tarball

pnpm pack && dsh plugin --profile web add ./dskin-0.3.0.tgz

🚀 Usage

dsh web        # restart after installing — plugin rows load at boot only

Open http://127.0.0.1:3080 — the kittens are already strolling at the bottom edge. To revert: dsh plugin --profile web remove dskin and restart.

🔒 Privacy & Scope / 安全边界

DSKIN runs only inside your own DSH Web app page (default http://127.0.0.1:3080):

  • Not a browser extension: it never runs on other websites and never touches browser settings, homepage, search engine or other pages
  • No data collection: no analytics, no tracking, no third-party scripts; it only reads/writes the DSH page's own localStorage (kitten config)
  • The only network request: a read-only GitHub check for new versions every 6 hours; the upgrade page only opens after you click the button
  • Fully reversible: dsh plugin --profile web remove dskin + restart and the page is restored completely

⭐ Star History

star-trend

The chart is regenerated daily by GitHub Actions (scripts/gen-star-chart.py) and auto-committed, tracking the ⭐ count automatically. 图表由 GitHub Actions 每日自动重绘并提交,随 ⭐ 增长实时更新。

Like DSKIN? Hit ⭐ and help the curve grow. 喜欢 DSKIN?点个 ⭐ 支持一下。

🛠️ Development

pnpm install   # installs deps + prepare builds lib/
pnpm build     # tsdown: lib/index.js (host) + lib/client.js (browser bundle)
pnpm test      # vitest: apply/dispose contract tests
├── package.json          # dsh.bundle patch + dsh.client manifest (official contract)
├── cordis.patch.yml      # inserts the ui-skin-dskin row into the web roster
├── skin.json             # skin metadata
├── tsdown.shared.ts      # self-contained port of the official clientBundle preset
├── web-platform.ts       # official platform module table (external judgement)
├── src/client/
│   ├── index.ts          # apply(ctx) + PixelPet state machine (idle/blink/walk/jump)
│   ├── mascots.ts        # 8-frame pet pixel SVGs (generated by scripts/gen-mascots.mjs)
│   └── dskin.module.css  # styles, all scoped under body[data-dsh-dskin]
├── tests/apply.spec.ts   # apply/dispose contract tests
├── assets/               # logo + banner promo art
└── scripts/              # pet frame / preview / promo generators

Skin contract (official standard): pure presentation; styles scoped under body[data-dsh-dskin] (dark [data-ds-dark-theme]); apply(ctx) retracts everything it writes in the ctx.effect disposer; CSS Modules are injected and removed by the loader; no static assets (pets are inline SVGs).

📄 License

MIT License. Original logo and pixel art; the whale pays homage to the DeepSeek whale mascot.