Sessions & Messages
dsh-mode-switch
abalika/dsh-mode-switch · ★ 0
A community plugin for DeepSeek Harness Desktop: switch between Harness and official DeepSeek Chat, with optional persistent login on Windows.
Manifest details
安装
dsh plugin --profile web add 'github:abalika/dsh-mode-switch#3b7df5d91995c6645df00f93f814357478507192'GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
中文 · Download · Installation and rollback · Architecture
An independent community plugin for DeepSeek Harness Desktop. A single action beneath each surface's own logo switches between Harness and the real DeepSeek Chat website. There is no duplicate chat header. Switching back preserves the mounted Harness UI and draft. This project is not affiliated with or endorsed by DeepSeek. Button labels are currently Chinese.
Supported desktop builds: 0.2.0-rc.2 and 0.2.1-rc.2. Tooling requires Node.js 22+. The plugin uses the desktop's owned browser bridge and does not appear in web-only hosts without it.
Install
Download dsh-mode-switch-0.2.2.tgz from Releases, or run npm pack --ignore-scripts in the source folder. Initialize and fully quit DSH Desktop, then add the tarball to its desktop profile using the CLI bundled with that installation. Restart. See Windows commands and rollback. Development dependencies are not needed. private: true prevents accidental npm publication; local tarballs and GitHub distribution still work.
Remembering login
Automatic by default since 0.2.2; no separate patch command is required. On activation, the plugin checks its current Windows desktop installation. If setup is needed, a hidden one-shot helper waits for DSH to fully quit, then backs up and patches the supported archive. Storage takes effect on the next launch. Activation works even when installation uses --ignore-scripts. Already-enabled installations keep their existing partition.
This modifies the current desktop's app.asar; it is not a standard plugin API. Exact supported main-code hashes, stopped-app checks, verified backups and atomic replacement remain mandatory. No forced shutdown, elevation or downloads are used. Uninstalling/replacing the pending plugin cancels setup. The helper exits after success, failure or a seven-day deadline; a later activation can retry. Unsupported builds and non-Windows hosts are left unchanged. Set DSH_MODE_SWITCH_PERSIST_LOGIN=0 before the first activation to opt out. desktop/persistent-session.cjs remains available for explicit diagnostics and rollback; it refuses restore over an update.
The guest uses persist:dsh-deepseek-chat-v1; unrelated workspaces stay ephemeral. Cookies, localStorage and IndexedDB remain in Electron's local user data. The plugin does not read/transmit credentials or chat history. Sign-in may be needed once after changing partitions, and again after expiry, logout or clearing storage. App upgrades may overwrite the patch.
Limits
There is no direct public slot beneath the logo. The Harness adapter targets supported builds' semantic CSS-module suffixes. On https://chat.deepseek.com only, a sandboxed UI adapter inserts an action into public logo layout without reading account, input or conversation contents. A compact fallback appears when no suitable logo is visible: top left in Harness, top right on the website, including sign-in pages without a sidebar. Host or website releases may require adaptation. Recovery tools appear only when needed. Downloads, device permissions and some popups remain limited by the host. This is an embedded website, not a model API integration.
Develop
npm ci --ignore-scripts
npx playwright install chromium
npm test
npm run check:release
npm run release:source
Contributing covers optional Windows archive and cross-process Electron tests. The release builder copies only allowlisted source. Never upload the entire development folder, backups, profiles or private screenshots.
Code is MIT licensed. Read third-party notices and security notes. Trademarks remain with their owners.