lukebest/dsh-plugin-profile-sync: Synchronize DSH profile plugins and configuration to another machine

Introduction

The philosophy of DSH (DeepSeek Harness) is “everything is a plugin”; plugins, hooks, permissions, and model configurations are all written in the profile. When switching machines, the usual practice is to copy the configuration item by item or copy the entire configuration directory. Manual copying is prone to omissions, while copying the entire directory will carry over things specific to the target machine: session history, credentials, and local exclusive settings may all be overwritten.

The lukebest/dsh-plugin-profile-sync introduced below solves this problem: it exports the “selected plugins + configuration” in the current profile as a JSON snapshot, and then restores it to another machine via a merge operation, keeping the target machine’s own data unchanged. The snapshot can also be saved to a private repository via the GitHub CLI.

What is it

A community plugin for DeepSeek Harness, maintained by lukebest, categorized under Network Tools. The positioning in the README is summarized in one sentence: export the selected plugins and configuration of the current profile, then merge them into another machine; the same snapshot can also be saved to a private repository via GitHub CLI. The license is MIT, and the author field in package.json is lukeliu.

One point to note: DeepSeek Harness currently does not accept external plugins into the official repository, so this package can only be installed as a community plugin from GitHub.

Core Features

  1. Export: Packages the selected plugins and configuration of the current profile into a JSON snapshot.
  2. Restore: Selects a snapshot to execute “Restore,” writing into the current profile via a merge operation instead of overwriting the entire directory.
  3. GitHub Private Sync: After filling in owner/name, you can save a private repository, push the current snapshot, or merge snapshots saved in the repository.
  4. Key Rejection: If a snapshot contains key values, they will be rejected; environment variable names like apiKeyEnv will be retained because they are not keys themselves.
  5. Target Data Protection: Sessions, credentials, and extra settings on the target machine are preserved.

In addition to interface operations, the plugin also exposes the profile_sync tool, providing the same export, restore, and GitHub operations.

Installation and Activation

To install from GitHub, use the following command:

dsh plugin install git+https://github.com/lukebest/dsh-plugin-profile-sync.git

You can also use the same Git address to install on the Plugins page. If you want to browse it in “Discover,” add the following index address:

https://raw.githubusercontent.com/lukebest/dsh-plugin-profile-sync/main/index.json

After enabling it in the Plugins interface, the entry point is in “Settings → Plugins → Sync”. The plugin’s client configuration is declared as a web platform, and whether the interface can be seen directly depends on whether the platform is satisfied after installation.

Typical Usage

Export locally, restore on another machine

  1. On the machine to be exported, open “Settings → Plugins → Sync,” execute “Export Snapshot,” and download the JSON file.
  2. Copy this JSON to the target machine, select it in the same location, and execute “Restore.”
  3. Restore is a merge operation: the original sessions, credentials, and additional settings on the target machine will not be overwritten; the selected plugins and configuration of the current profile will be aligned to the snapshot content.

Sync via Private GitHub Repository

  1. First, confirm that gh is installed and logged in on your local machine:
gh auth login

The GitHub sync functionality will not be available if gh is not installed or not logged in.

  1. In “Settings → Plugins → Sync,” fill in owner/name. If the repository does not exist, it will be created as a private repository; filling in a public repository will be rejected.
  2. Subsequently, you can push the current snapshot or merge snapshots already saved in the repository. Snapshots are saved in the repository’s profiles/<profile>.json.

Using the tool directly

If you don’t want to go through the interface, the profile_sync tool provided by the same plugin also includes export, restore, and GitHub operations.

Use Cases and Considerations

Suitable for users who use the same set of DSH profiles on multiple machines, hope that plugins and configurations remain consistent, but do not want to copy sessions and credentials over.

When using, pay attention to a few points:

  1. The plugin runs with the permissions of the current dsh process and can read the configuration of that profile and the information of installed plugins. Before installing, you should read the source code first to confirm that the cordis.patch.yml and client injection items @deepseek-ai/dsh-client-ui-settings, @deepseek-ai/dsh-client-ui-settings-plugins, and @deepseek-ai/dsh-client-locale used by the bundle are as expected.
  2. The license is MIT, version in package.json is 1.0.0, name is @local/profile-sync. The installation command and repository address both come from its README, so do not try to construct dsh plugin add github:owner/repo based on the name.
  3. Key protection is only at the snapshot level: environment variable names are retained, but values are not. If your project has a habit of writing key values into configuration, you need to check them manually before exporting.
  4. The GitHub repository mentioned above belongs to the author personally. This plugin has no official affiliation with DeepSeek / Huansuan, and the relevant directory sites are also third-party community sites, not official app stores.

Short Conclusion

This plugin addresses a very specific task: exporting the selected plugins and configuration of the current profile, merging and restoring them to another machine, and using a private GitHub repository for synchronization when needed. The merge semantics make it more suitable for maintaining the same set of configurations across machines than copying the entire directory.

The directory page is at https://www.skillhub.cn/plugins/lukebest/dsh-plugin-profile-sync, and the source code and README are at https://github.com/lukebest/dsh-plugin-profile-sync.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye