# dsh Plugin Nickname Custom Chinese nicknames for DeepSeek Harness (dsh) plugins, displayed directly in the native plugin settings page. Supports grouping (by nickname / by tag), collapsible groups, official-plugin protection, and custom tags. ## Features - Automatically replace English package names in the plugin list with custom Chinese nicknames; hover to see the original English name - Visual edit panel: click the "๐Ÿ“ Nickname" button in the bottom left, or press `Ctrl+Shift+N` - Automatically scan all installed plugins for direct editing; nicknames are saved in browser localStorage and persist - ๐Ÿ›ก Official plugins are protected by default: `@deepseek-ai/*` and dsh's built-in bundles are marked "ๅฎ˜ๆ–น" with a disabled input; an "ๆ”นๅฎ˜ๆ–น" (allow official) toggle in Advanced lifts the restriction - ๐Ÿ—‚ Grouping: group by whether a nickname is set, or by tag; group headers collapse/expand and remember their state - ๐Ÿท Custom tags: create and apply a tag inline via "+ ๆ ‡็ญพ"; toggle or delete tags; fixed categories "ๅฎ˜ๆ–น / ๅทฒไฟฎๆ”น / ๆœชไฟฎๆ”น" are applied automatically - ๐Ÿ” Search box, sort by original/nickname name, export/import, draggable button, master switch, one-click reset ## Installation ### Method 1: Install from GitHub (Recommended) Desktop (DSH 0.2.0-rc.2): Open "Plugins โ†’ Add Plugin" in the sidebar, paste the address below, and select "Enable Now" after installation. If prompted to restart, follow the instructions. ``` github:sanlisanxun/dsh-plugin-nickname ``` ### Method 2: Local Directory Installation 1. Download this project and extract it to a local folder 2. Open dsh โ†’ Plugins โ†’ Add Plugin 3. Enter the full path to the local folder and click install 4. Refresh the page to take effect ## Usage After installation: - Click the "๐Ÿ“ Nickname" button in the bottom left, or press `Ctrl+Shift+N` to open the edit panel - Edit Chinese names directly in the input box, press Tab to save - Leave blank to restore the original English package name ## Directory Structure ``` dsh-plugin-nickname/ โ”œโ”€โ”€ lib/ โ”‚ โ”œโ”€โ”€ index.js # Host-side plugin entry โ”‚ โ””โ”€โ”€ client.js # Client-side script (injected into the browser page) โ”œโ”€โ”€ cordis.patch.yml # Cordis mount patch โ”œโ”€โ”€ package.json # Package configuration โ”œโ”€โ”€ README.md # Project documentation โ””โ”€โ”€ LICENSE # Open source license ``` ## Changelog Full changelog: [CHANGELOG.md](CHANGELOG.md). ### v0.3.2 - ๐Ÿท Added tag grouping: a new "by tag" grouping option (alongside "by nickname"); fixed categories "ๅฎ˜ๆ–น / ๅทฒไฟฎๆ”น / ๆœชไฟฎๆ”น" are applied automatically; users can create custom tags and apply them inline, and manage/delete them in Advanced ### v0.3.1 - ๐Ÿ—‚ Collapsible groups: when grouping is on, click a group header to expand/collapse; the state persists, with a `โ–พ` / `โ–ธ` indicator ### v0.3.0 - ๐Ÿ›ก Official plugins can no longer be renamed by default: `@deepseek-ai/*` and dsh's built-in bundles are skipped, marked โ€œๅฎ˜ๆ–นโ€ and disabled in the panel - โœจ New โ€œๆ”นๅฎ˜ๆ–นโ€ (allow official) toggle to lift the restriction when you need it - โœจ Saving a nickname for an official plugin is blocked even if the UI is bypassed ### v0.2.9 - ๐Ÿ› Fixed nicknames not applying in a real browser: the guard counted `childNodes.length <= 2`, so whitespace text nodes from line breaks pushed it to 3 and blocked the replacement; it now counts element children only - ๐Ÿ› Fixed the plugin rewriting its own panel: the package-name labels inside the edit panel were being replaced with the nicknames; nodes inside `[data-nickname-ui]` are now skipped - โœ… Added real-browser verification: `npm run test:browser` (Chromium loads `tests/harness/index.html`, 7 assertions) ### v0.2.8 - ๐Ÿ› Fixed nicknames not applying at all: dsh renders the plugin name inside `