DeepSeek Harness 插件

dexthemes

Discover, preview, apply, restore, and revert themes in DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
daeshawnballard/dexthemes
最近更新
2026年8月22日
分类
插件市场与管理
GitHub stars
6
载体类型
plugin
包路径
packages/deepseek-harness-plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
packages/deepseek-harness-plugin/package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/daeshawnballard/dexthemes/tree/HEAD/packages/deepseek-harness-plugin
插件名:dexthemes
作者:daeshawnballard

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

DexThemes for DeepSeek Harness

Installed DeepSeek Harness plugin for browsing, previewing, applying, and reverting paired palettes through Harness's public client-side theme service.

Version 0.6 includes a palette matched to DeepSeek Harness's published semantic defaults, twelve unofficial DeepSeek ecosystem color tributes, a privacy-bounded Statsig event sink, a supported Harness MCP connection for public DexThemes agent tools, and an optional GitHub-backed DexThemes account connection through the existing Convex backend. Tribute inclusion is based on linked public documentation for a DeepSeek integration, deployment, or inference path. The package does not bundle logos, fonts, or other company assets and does not claim partnership, authorization, or endorsement.

Release status

This source checkout prepares 0.6.5 locally. It is unpublished: there is no npm tarball, registry integrity, registry shasum, or loaded-Harness-runtime receipt for 0.6.5. Do not install @dexthemes/deepseek-harness-plugin@0.6.5 from npm until a future publication has its own registry and runtime evidence.

The historical 0.6.4 release remains published and separately evidenced; its receipt is not evidence for this local 0.6.5 preparation.

Install

From the DeepSeek Harness checkout:

For the historically published release, install version 0.6.4 after confirming it is available from npm:

pnpm dsh plugin --profile web add @dexthemes/deepseek-harness-plugin@0.6.4
pnpm dsh web

Version 0.6.4 is published. Confirm the registry version and integrity before installation; source review, npm publication, and loaded-runtime behavior remain separate evidence gates. The local 0.6.5 preparation adds no registry or runtime claim. See the [changelog](CHANGELOG.md), the bounded [0.6.4 release receipt](../../docs/DEEPSEEK-HARNESS-064-RUNTIME-RECEIPT.md), and the local-only [0.6.5 preparation receipt](../../docs/DEEPSEEK-HARNESS-065-LOCAL-PREPARATION-RECEIPT.md).

For local development against a source checkout, use the source directory instead:

pnpm dsh plugin --profile web add /absolute/path/to/dexthemes/packages/deepseek-harness-plugin
pnpm dsh web

The package contributes a real Loader entry and a DexThemes tab under Settings → Plugins. It keeps Harness source read-only. Applying a theme calls theme.overrideTokens(...); applying another theme replaces the same owned layer, and Revert disposes it.

Compatibility

The historical published 0.6.4 artifact targets DeepSeek Harness CLI 0.1.0-rc.5 at commit 47f943859bef60e4160492346772ded9b24f765a. That exact registry package was exercised in the loaded Harness runtime for discovery, Apply/Revert, restart restoration, offline fallback, Device Flow, connected activity, Statsig delivery, and Creator-mode chat Apply/Stop. The local-only 0.6.5 preparation has build and pack-manifest evidence only. It requires the web profile's client Module Loader, settings.plugins.tab, @deepseek-ai/dsh-client-runtime/client with persisted defineStore, and the optional theme.overrideTokens(source, pairedTokens) service returning a disposer. No broader Harness semver range is claimed.

DexThemes no longer hard-loads the theme provider. If a Harness build omits or changes that capability, Settings → Plugins → DexThemes remains visible, Preview and account controls remain usable, Apply is disabled, and a visible alert explains the boundary. Forget saved theme clears restoration intent without requiring the missing service.

Restart recovery

Apply stores only a schema version, bounded theme ID, whether the theme is account-only, and a reconnect-needed boolean through Harness's snapshot-store engine. It never stores palettes, prompts, workspace data, credentials, tokens, or account identifiers. On relaunch, a bundled/public theme restores after the validated catalog and supported theme service are available. An account-only theme waits visibly until the user reconnects DexThemes and the verified unlock catalog returns.

The one-hour dxd_… DexThemes session remains memory-only. After restart, Reconnect DexThemes starts a new GitHub Device Flow; authentication is not silently recovered from browser storage. Revert clears saved theme intent. Disconnect clears reconnect intent and asks Convex to revoke the current in-memory session.

Upgrade, verify, and remove

After a version is published, pin that exact version to upgrade:

pnpm dsh plugin --profile web add @dexthemes/deepseek-harness-plugin@<published-version>
pnpm dsh plugin --profile web why @dexthemes/deepseek-harness-plugin
pnpm dsh web

Before removal, choose Revert (or Forget saved theme) and Disconnect. Then remove the package and its profile layer:

pnpm dsh plugin --profile web remove @dexthemes/deepseek-harness-plugin
pnpm dsh web

If the tab does not appear after add/upgrade, refresh the browser once and inspect the exact resolved package with why. If Apply is unavailable, use the visible capability alert; do not patch Harness source or add DOM selectors.

After Harness starts, refresh its browser tab once so the new client package is included in the boot graph. Then:

1. Open Settings → Plugins → DexThemes. 2. Search or filter DeepSeek, DexThemes, and Community palettes. Codex-origin themes remain in the Codex channel and are not duplicated here. 3. Choose Preview, then Apply to DeepSeek, or apply directly from a card. 4. Apply another card to switch themes. Choose Revert to restore the Harness default.

Browsing, chat creation, preview, apply, and revert never require an account. To add creator stats, achievements, and unlocked reward palettes, choose Connect DexThemes, then Copy code, open the exact GitHub link, and paste the complete code. Convex requests that short-lived code from GitHub's official Device Flow, and the plugin sends the user only to https://github.com/login/device. The opaque device code remains in memory while Convex polls GitHub. GitHub's token is used only inside that Convex request to verify /user; it is never returned to Harness or stored by DexThemes. Convex instead returns a one-hour DexThemes session with separate themes:read and harness:use scopes. Its hash is stored server-side and its credential stays only in the running plugin closure. It is never placed in a prompt, URL, browser storage, analytics event, workspace, or Harness configuration. Disconnect persists locally only after Convex acknowledges revocation; a failed revoke keeps the session connected and retryable. Unload clears it locally without claiming a successful disconnect, with server expiry as the fallback.

Successful Device Flow authorization creates explicit Connected Apps evidence and idempotently awards Harnessed with the paired Deep Current reward. That reward is based on the server-verified GitHub connection, not on a client claim. After Harness accepts a card or preview Apply, the plugin calls the separately scoped /plugin/deepseek-harness/use route with a random, replay-deduped receipt and bounded plugin version. The account panel shows recording, acknowledgement, or a bounded failure. A retry reuses the same in-memory receipt so a response lost after dispatch cannot double count activity. Connected Apps labels the resulting last-used time and count as client-reported activity; neither can grant an entitlement. No token, prompt, workspace, theme, or palette payload enters that record. The device flow uses the shared DexThemes-owned DexThemes Connect GitHub OAuth application for installed integrations, with Enable Device Flow turned on. It requests no GitHub OAuth scope, which GitHub defines as read-only public profile access. Convex verifies /user, revokes that exact GitHub token through the app's server-held secret, and only then issues the distinct dxd_… session. Normal website and publication routes do not recognize that credential family. Auth0, refresh tokens, and offline access are not part of the DeepSeek flow. The separate Codex/ChatGPT MCP OAuth 2.1 contract remains unchanged.

The package also loads Harness's shipped @deepseek-ai/dsh-mcp-client against the restricted https://www.dexthemes.com/api/deepseek-mcp surface. In any chat mode, ask for a theme by idea, ask Color me lucky, search the catalog, validate a draft, preview its paired palette data, or prepare a reversible DeepSeek apply Package. Choose Harness's shipped Creator mode when the chat should also call cordis_define, cordis_run, and cordis_stop to apply and revert that Package. Standard mode deliberately omits those self-modification tools. Only the selected tool name and arguments are sent; the connector does not attach the conversation, workspace, paths, or credentials. Disable or remove the DexThemes plugin to dispose both the theme UI and its tool connection.

For local protocol testing before that endpoint is deployed, run npm run qa:deepseek-mcp in the DexThemes checkout and start Harness with DEXTHEMES_MCP_URL=http://127.0.0.1:3099/api/deepseek-mcp. The production URL remains the default.

The bundled catalog works offline. It contains the DeepSeek default palette, twelve unofficial tribute palettes, and compatible shared DexThemes palettes. When available, the plugin merges the public DexThemes API response to include current community themes. Anonymous catalog input cannot introduce account-only reward palettes; only the verified bearer unlock response can add rewards to a connected user's session. Search runs locally. Analytics is limited to the bounded event, fixed platform/mechanism, source surface, theme ID when applicable, paired variant, plugin version, event-derived action/outcome, and bounded failure code; it disables local persistence and page-URL collection. No prompts, workspace contents, paths, palette payloads, credentials, account identity, or sensitive data are sent as analytics. Publishing and likes remain on the existing DexThemes surfaces; the installed package exposes read-only account stats, achievements, and rewards, while Convex grants Harnessed only during verified Device Flow completion.

Harness default is native rather than a copied palette. Revert disposes the DexThemes override so Harness continues to own its light, dark, and system appearance as that product evolves.

Fonts are intentionally unsupported by this integration.

The npm package is the supported distribution path for published releases. The bundled catalog, preview, apply, and revert work without a DexThemes account. The hosted MCP endpoint, Statsig delivery, device-authorization routes, and achievement call require their production services and OAuth environment configuration. npm publication does not imply a separate Harness marketplace approval, and the standalone DexThemes website cannot apply into an unrelated Harness browser tab.

Analytics and privacy

Each bounded lifecycle event includes the platform, source surface, plugin version, paired variant, action, outcome, and theme ID when applicable, plus a bounded failure code on failure. Harness version is included only when the host exposes an authoritative value; this plugin does not fabricate one. Prompts, workspace contents or paths, palettes, credentials, tokens, account identity, page URLs, and raw exceptions are excluded.

Release notes and support

Include the Harness CLI version, DexThemes plugin version, web profile, install source (npm version, tarball, or local path), whether the theme capability alert appeared, and non-sensitive reproduction steps. Never attach tokens, cookies, workspace content, prompts, or private account data.

Distribution boundary

Harness's supported CLI accepts a package or Git spec through dsh plugin --profile <profile> add <package-or-git-spec>. DexThemes uses npm for published releases and a local source path for unreleased development. No dedicated Harness marketplace submission surface was found in the inspected checkout, so npm distribution is the published-release boundary rather than a claim of Harness marketplace approval.