Skip to main content

pilot-harness/packages/client/ui-codepilot-theme

240Stars13Forks16Issues1Watchers

A presentation-layer theme package that applies a CodePilot visual skin to the DSH Web/Desktop client without modifying interaction logic or model context.

Evidence4/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki

ⓘ This plugin is a sub-package of the op7418/pilot-harness monorepo — stars and activity count the whole repository.

Language
TypeScript
License
MIT
Branch
main
ai-agentcodepilotdeepseekdeepseek-harnessdesktop-appdshdsh-pluginelectron

Install

cmdweb profile
$ dsh plugin --profile web add github:op7418/pilot-harness#path:packages/client/ui-codepilot-theme

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin op7418/pilot-harness/packages/client/ui-codepilot-theme for me: review the repository at https://github.com/op7418/pilot-harness first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Description

Give the DeepSeek Harness client a CodePilot visual style (light/dark color schemes, rounded corners, embedded brand icons) without changing interaction logic or affecting models. On desktop, the native title bar appearance will also switch to the same theme mode.

Core Features

  • Inject CodePilot light and dark color schemes, covering Pilot color/platform surface tokens and Harness semantic, component, and shadow alias tokens
  • Set data-codepilot-theme="true" activation marker on the html root element; restore the previous state of this attribute when the plugin is uninstalled
  • Embed brand icons (packaged as data URLs in the bundle), replacing the empty session page hero area, sidebar expanded/collapsed states, and brand position on the About page
  • On desktop, synchronize the current theme mode (system/light/dark) to the native window via Electron preload bridge, updating window materials, backdrop, and Windows title bar buttons
  • Subscribe to theme/change events to follow in-app theme switching, keeping native appearance consistent with the client on desktop
  • Fully reversible loading and unloading: remove activation markers, release effect subscriptions, rely on CSS module scope automatic invalidation, and return to the default theme

Technical Implementation

  • Language: TypeScript (ESM, two tsconfig outputs: host and client)
  • Key Dependencies: @deepseek-ai/cordis, @deepseek-ai/dsh-client-runtime, @deepseek-ai/dsh-client-ui-theme, @deepseek-ai/dsh-invariants (all peerDependencies, resolved as workspace)
  • Architecture Pattern: DSH Client Cordis plugin, package.json#dsh.client declares platform: "web", inject only for pre-check display; inject styles via CSS Modules + root element data-codepilot-theme attribute scope; ctx.effect() hook handles activation marker set/restore and desktop theme event subscription lifecycle
  • Entry Files: src/client/index.ts (activation and synchronization logic), src/index.ts (host marker placeholder), src/invariant.ts (declares package name, with "no runtime invariant" reason), src/client/theme.module.css and src/client/brand-icon.module.css (styles)

Use Cases

Ordinary users who want to change their DSH client to CodePilot/Luma visual style. Installed once and takes effect immediately, no configuration options, no side effects; if you only want to take a quick look, you can also install and uninstall anytime.

Prerequisites and Compatibility

DependencyMinimum VersionNotes
DSH0.1.0-rc.7peerDependencies uses workspace:^, follows host DSH workspace
Node>=22.19.0Root package.json#engines.node: ^22.19.0 || >=24.0.0
PlatformmacOS / Windows / Linux / WebBrowser side uses CSS only; desktop side additionally depends on Electron preload bridge
Native ModulesNonePure styles + Cordis effect hook, no node-gyp modules introduced

Installation

dsh plugin --profile web add github:op7418/pilot-harness/packages/client/ui-codepilot-theme

Configuration

This plugin requires no additional configuration. package.json does not declare a Config schema, and the source code does not read any configuration or environment variables; styles, activation markers, and synchronization logic are all hardcoded.

FAQ

Q: How to confirm it takes effect after installation?

A: After restarting the web profile, run dsh --profile web --dump-config. If you see the codepilot-theme node, it loaded successfully. You can also directly open the client to see if the sidebar and empty session page have switched to CodePilot visual style.

Q: How to uninstall and return to the original theme?

A: Run dsh plugin --profile web remove @deepseek-ai/dsh-client-ui-codepilot-theme and restart the profile. The data-codepilot-theme marker will be cleared during uninstall, and any previous value will be restored.

Q: Will installing it change model responses, conversation content, or tool behavior?

A: No. Both the source code and README declare that it does not register any model-facing context, tools, events, or request content. It's purely a client-side presentation layer replacement.

Q: Can it be used on both desktop and browser?

A: Yes, both work. Browser side applies the same CSS; desktop side goes one step further: synchronizes the current theme (system/light/dark) to the native window via Electron preload bridge, letting the title bar, materials, and window backdrop follow the switch.

Q: Will installing this theme invalidate my previous KV cache?

A: No. The README clearly states that both Model Experience and KV Cache impact are "none". Loading or uninstalling only affects client display, not model input.

Q: Will it conflict with other style/theme plugins I've already installed?

A: Both light and dark sides cover the same set of Pilot and Harness semantic tokens. Plugins loaded later won't leave misaligned values like light text or sidebar materials; uninstallation cleanly restores without mutual pollution.

Q: If the product icon file changes, will the theme automatically update?

A: No. Each time apps/desktop/assets/icon-master.png is modified, you need to manually run pnpm --filter @deepseek-ai/dsh-desktop run icons in the repository root to regenerate the brand stylesheet in the bundle, then repackage and publish.

Getting Started

Beginner — one dsh plugin add command + restart the profile is all it takes. No configuration options, won't change model context. Ordinary users can install and try directly, uninstall if they don't like it.

Known Issues and Limitations

  • After modifying apps/desktop/assets/icon-master.png, you must run pnpm --filter @deepseek-ai/dsh-desktop run icons to refresh the brand stylesheet embedded in the bundle. Otherwise, the client will still display the old icon.
  • New brand positions need to first have a data-pilot-brand-mark presentation layer hook added to the host and complete a visual audit before the theme can replace them in a reversible way; when upstream adds brand positions without hooks, this plugin won't automatically take them over.

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/op7418/pilot-harness/packages/client/ui-codepilot-theme)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory