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¶
- Export: Packages the selected plugins and configuration of the current profile into a JSON snapshot.
- Restore: Selects a snapshot to execute “Restore,” writing into the current profile via a merge operation instead of overwriting the entire directory.
- 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. - Key Rejection: If a snapshot contains key values, they will be rejected; environment variable names like
apiKeyEnvwill be retained because they are not keys themselves. - 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¶
- On the machine to be exported, open “Settings → Plugins → Sync,” execute “Export Snapshot,” and download the JSON file.
- Copy this JSON to the target machine, select it in the same location, and execute “Restore.”
- 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¶
- First, confirm that
ghis 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.
- 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. - 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:
- 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.ymland client injection items@deepseek-ai/dsh-client-ui-settings,@deepseek-ai/dsh-client-ui-settings-plugins, and@deepseek-ai/dsh-client-localeused by the bundle are as expected. - The license is MIT,
versioninpackage.jsonis 1.0.0,nameis@local/profile-sync. The installation command and repository address both come from its README, so do not try to constructdsh plugin add github:owner/repobased on the name. - 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.
- 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.