NokorinNishikino/kidai-plugin-remote-client

kidai-plugin-remote-client

KPR‘C 纪代管理(Client):零依赖的桌面客户端,DSH的外部管理器,启停插件、隔离运行、手动回滚、预检诊断、变砖救急!配合KSG(Kidai-snapshot-guard)使用,保存自动快照、备份回滚!

Uncategorizeddeepseek-harnessdesktop-appdsh

🖥 Kidai Plugin Remote Client

The zero-dependency desktop app for Kidai Plugin Remote — native window · no Node · no browser

简体中文 · English


✨ Why?

Kidai Plugin Remote is the external plugin manager for DeepSeek Harness. The Client wraps the same manager in an Electron native window with the runtime bundled: download, unzip, double-click. Perfect for handing to others, or distributing via GitHub Releases.

  • 🚀 Double-click to run — a real desktop window, no browser tab, no CLI
  • 📦 Zero dependency — Electron bundled (zip ≈ 143 MB); no Node install
  • 🖥 Native window — independent window; close = exit (UI ↔ server linkage)
  • 📌 Send shortcut — one click in 设置 → create a shortcut at a path you pick
  • 🎨 8 themes — same as the classic manager, remembered server-side
  • 🔗 Same data — shares the snapshot store and guard directory with the classic manager and the in-DSH guard
  • 🛡 Isolation watch — closing the window during an isolated run asks for confirmation

Open and use — everything the classic manager does lives in this window.


🚀 Quick start

download kidai-plugin-remote-client → unzip → double-click
Kidai Plugin Remote Client.exe

That's it. List / toggle / launch / isolate / snapshot / rollback — all there.


🔗 Ecosystem

RepoRoleRuns where
kidai-plugin-remote-client (you are here)same manager, native window, zero depsoutside DSH
kidai-plugin-remoteexternal manager (browser UI)outside DSH
kidai-snapshot-guardsnapshots, pending→verified, auto-recoveryinside DSH

The client keeps its own manager data (%LOCALAPPDATA%\KidaiPluginRemoteClient) so it can run side-by-side with the classic manager, while sharing the snapshot store ($DSH_HOME/.kidai-snapshots) and guard directory ($DSH_HOME/guard/) with both.


📸 How it works (technical)

  • In-process server — the main process boots the KPR server (kpr/server.js) via dynamic import and hosts the UI on a random localhost port (no browser, no separate terminal). Closing the window quits the client.
  • IPC bridge — a minimal preload exposes kprClient.createShortcut(); the main process shows a native folder picker and writes the .lnk with PowerShell's WScript.Shell (encoded command, ASCII-safe).
  • Resilience — inherits the manager's fault tolerance: any single broken bundle is reported, never fatal.
kidai-plugin-remote-client/
├── app/
│   ├── main.js      # Electron main: boots server, hosts window, shortcut IPC
│   ├── preload.js   # contextBridge → kprClient
│   ├── package.json
│   └── kpr/         # the whole Kidai Plugin Remote server (copied at build)
├── build-client.ps1 # packages dist\ (Electron + app), renamed exe
├── vendor/          # electron-win32-x64.zip (download once)
└── dist/            # output: Kidai Plugin Remote Client.exe

Rebuild after upstream changes: powershell -File build-client.ps1.

📄 License

MIT