keman-ai/dsh-skin-market 预览 preview

keman-ai/dsh-skin-market

合集Collection 原生Native ⭐ 8 MIT 市场与合集Markets & Collections界面与主题UI & Themes

Skin marketplace for DeepSeek Harness — search and install community skins from dsh.a2hmarket.ai right in the settings page

项目介绍Project Overview

DSH 皮肤市场是 DeepSeek Harness 的 web profile 插件,在设置页提供皮肤搜索、一键安装、启用/停用与卸载,并显示预构建或源码构建等待成本;适合不想回终端、想图形化管理社区皮肤时使用。需 DSH 0.1.0-rc.6+、Node 20+、pnpm,且安装仅支持本机 loopback 访问。

DSH Skin Market is a DeepSeek Harness web-profile plugin that adds a settings page for searching community skins, one-click installation, and enabling, disabling, or removing installed skins. It shows whether a skin is prebuilt or built from source. Use it when you want to manage DSH skins graphically instead of through terminal commands. It requires DSH 0.1.0-rc.6+, Node 20+, pnpm, and local loopback access for installation.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add -w github:keman-ai/dsh-skin-market

keman-ai/dsh-skin-market 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

DSH Skin Market

Search for skins inside DeepSeek Harness and install them with one click.
Install it once, and changing skins never sends you back to the terminal.

dsh.a2hmarket.ai — where the skin catalog comes from, no login required

Stars Latest release MIT License

English · 简体中文

If this is useful to you, a Star goes a long way

Three tabs

Discover: search community skins, with source and waiting cost on each card Installed: enable / disable / uninstall, read from the local profile

Discover

Search, sort, install in one click. Each card states whether the skin is a prebuilt package or built from source — so you know whether the click costs seconds or minutes before you make it.

Installed

Version, theme id, enable / disable, uninstall. It reads the local profile, so it works offline — even the previews are served locally, with no extra network use.

Diagnostics · pnpm, the profile path, registry connectivity and the full output of the last install — the first screen to check when something will not install, and far more useful than a screenshot

The source of every official skin on the site lives in dsh-skin-pack.

Install

dsh plugin --profile web add -w github:keman-ai/dsh-skin-market

Restart dsh once, then open Settings → Skin Market.

dsh --profile web

From then on, installing a skin only takes a page refresh — no restart, no commands.

-w is not optional. The profile directory ships a pnpm-workspace.yaml, so pnpm reads it as a workspace root and refuses to install (ERR_PNPM_ADDING_TO_ROOT). -w is the "yes, install into the root" declaration, and dsh plugin forwards it to pnpm verbatim. Both pnpm 8 and 10 need it.

The repository ships its build output (lib/) and has no prepare script, so pnpm runs no build script when installing from a git source and you never have to grant allowBuilds.

If you run harness from source, replace both dsh commands above with pnpm dsh inside the harness directory.

Uninstall

dsh plugin --profile web remove dsh-skin-market

Skins installed through the market do not disappear with it — they are independent dependencies in the profile, uninstalled individually from the market's Installed tab.

Requirements

Browsing needs only dsh and a network. Installing is what needs the command-line tools, because installing is fundamentally running pnpm on your behalf.

Dependency Requirement What happens without it
DeepSeek Harness 0.1.0-rc.6+ (tested on rc.7) Earlier versions lack settings.section and the browser module table, so the plugin cannot mount
profile Must be the web profile headless / tui bundles have no webServer, so the plugin never activates
Node.js >= 20 (tested on 24) dsh's own requirement; the plugin does not raise it
pnpm On PATH (tested on 8.15 and 10) Affects installing only. Diagnostics flags it red and the install button reports a clear error, while browsing and search continue
git Only for GitHub-source skins Most catalog skins now use Release tarballs (no git needed); only a few remain github:owner/repo sources
Network dsh.a2hmarket.ai; also github.com for GitHub-source skins An unreachable registry falls back to the cache or bundled snapshot, and the page says so
Browser Installing requires a direct local connection (loopback) Remote access can browse and search; installing is refused

The plugin itself has a single runtime dependency: yaml, used to read and write the profile's patch file.

Configuration

No configuration is needed by default. To change something, append a section to the profile's cordis.patch.yml ($DSH_HOME/profiles/web/cordis.patch.yml) overriding this plugin's row by id:

- id: skin-market
  name: dsh-skin-market
  config:
    # Point at a different registry (for a self-hosted catalog). Include the context path.
    catalogOrigin: https://dsh.a2hmarket.ai/dsh-skin
    # Turn this off for a read-only market: browsing and search work, and the install
    # button no longer touches your machine.
    allowInstall: true

Development

pnpm install
pnpm build     # → lib/index.js (host half) + lib/client.js (browser half)
pnpm check     # type check
pnpm test      # unit tests

After changing code, run pnpm build again and restart dsh. When the plugin is installed into a profile with link:, there is no need to add it again.

lib/ is committed on purpose: pnpm does not run build scripts for git sources by default, so a package without build output is missing its entry file and stops dsh from starting. Commit the pnpm build output along with your code changes.

The two halves

File Responsibility
host src/index.ts Mounts /skin-market/api/* on ctx.webServer: catalog proxy and cache, installed list, install/uninstall (streaming pnpm output over SSE), diagnostics
client src/client/index.ts Registers settings.section, renders the list, search and install interactions

The two halves talk over same-origin HTTP rather than ctx.remote — the remote capability set is fixed at api-remotes build time and third-party plugins cannot add to it.

lib/client.js is CJS in closure-factory form (window.__ModuleLoader__.load({ id, factory })); external dependencies such as React come from the host-injected require via the module table and are not bundled. That shape is dictated by dsh's module table, and tsdown.config.ts reproduces it.

Harness types

types/dsh.d.ts vendors the parts of the harness API we use, transcribed from the 0.1.0-rc.7 source with the origin noted at each site — these modules are all external at runtime, and the @deepseek-ai/dsh-client-* dependency chain on npm is currently incomplete and cannot be installed. When host behaviour disagrees with the declarations, check that file first.

Related

dsh.a2hmarket.ai The skin catalog site where authors publish. This plugin's catalog is fetched from it
dsh-skin-pack The source of the official skins, all in one repository

DSH skin market: browse community skins, see them in action, read the notes, copy one line to install

License

MIT © 2026 Science Roam Limited


If this is useful to you, a Star goes a long way

上一个 Prev dsh-compact-activity 下一个 Next dsh-composer-history