dshp
未验证 asdf17128
功能简介
管理DeepSeek Harness配置文件——列出、创建、克隆、差异比较,并将整个dsh设置共享为单个可移植文件。
未验证 — 尚未实测
管理DeepSeek Harness配置文件——列出、创建、克隆、差异比较,并将整个dsh设置共享为单个可移植文件。 尚未验证——请自行安装测试。
「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dshp
Share a whole DeepSeek Harness setup as one file.
English | 锟斤拷锟斤拷
npx dshp ls
Why
dsh boots profiles and forwards installs to pnpm. It cannot create an empty profile, list the ones you have, copy a working setup before you experiment on it, or hand a setup to someone else 锟斤拷 that is all manual work under ~/.dsh/profiles today.
Which matters, because "everything is a plugin" means your setup is a stack of layers, and the useful unit to share is the whole stack, not one plugin at a time.
Share a setup
dshp export web -o my-setup.dshp
# dsh profile 锟斤拷 reproduce with: dshp import <this-file>
dshp: 1
name: web
bundles:
- @deepseek-ai/dsh-base
- @deepseek-ai/dsh-web-app
- dsh-cloudflare-browser-run
plugins:
dsh-cloudflare-browser-run: "^0.1.1"
patch: |
- id: session-title
config:
fallbackMaxWords: 12
Short enough to paste into a forum post. On the other machine:
dshp import my-setup.dshp
That writes the profile, installs the plugins through dsh's own pnpm, and you boot it with dsh --profile web. Verified end-to-end: a fresh $DSH_HOME reproduced a 132-entry tree identical to the original, patch included.
Experiment safely
dshp clone web web-锟斤拷锟斤拷锟斤拷 # instant, keeps node_modules
dsh plugin --profile web-锟斤拷锟斤拷锟斤拷 add some-experimental-plugin
dshp diff web web-锟斤拷锟斤拷锟斤拷
web -> web-锟斤拷锟斤拷锟斤拷
plugins
+ some-experimental-plugin@^0.2.0
If it goes wrong, dshp rm web-锟斤拷锟斤拷锟斤拷 --yes. Your working profile was never touched.
Commands
dshp ls |
profiles, with bundle/plugin counts and disk size |
dshp show <name> |
bundles in load order, plugins, patch |
dshp new <name> [--web|--headless] |
create a profile 锟斤拷 dsh itself cannot make an empty one |
dshp clone <from> <to> |
copy a working setup, node_modules and all |
dshp export <name> [-o FILE] |
portable file (stdout by default) |
dshp import <file> [--as NAME] [--no-install] |
recreate a profile |
dshp diff <a> <b> |
what differs |
dshp rm <name> --yes |
delete |
What a profile actually is
Under $DSH_HOME/profiles/<name>:
package.json锟斤拷dependenciesare the plugins,dsh.profile.bundlesis the ordered layer stackcordis.patch.yml锟斤拷 your own id-targeted overridescordis.yml,pnpm-workspace.yaml锟斤拷 boilerplate, regenerated
So three things reproduce a setup: plugin versions, bundle order, and the patch. That is exactly what the portable file carries.
Bundle order is part of the format: it decides which layer patches which, so a reordering is reported by diff as a real difference.
The patch block is copied byte-for-byte rather than re-serialised, because it may hold !!js expressions (root: !!js dshHomePath('sessions')) that a YAML round-trip would mangle or evaluate. Nothing here ever evaluates your config.
Install and uninstall
As a CLI: npx dshp ls 锟斤拷 nothing to install.
As a plugin:
dsh plugin --profile web add github:asdf17128/dshp # install
dsh plugin --profile web remove dshp # uninstall
Removing it drops the list_profiles and export_profile tools. Your profiles
are untouched 锟斤拷 the plugin only reads.
Compatibility
Verified against @deepseek-ai/dsh 0.1.0-rc.5. The profile layout it reads
(package.json with dsh.profile.bundles, cordis.patch.yml) is dsh's own; a
change there is what would break it first.
Requirements
Node 18+. import needs a working dsh (local node_modules/.bin/dsh preferred, otherwise on PATH) because it installs through dsh's own pnpm; every other command is pure filesystem work.
See also
dsh-doctor 锟斤拷 checks a profile for patches that silently stopped applying.
License
MIT
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dshp」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:asdf17128/dshp Headless(CLI)profile:
dsh plugin --profile headless add github:asdf17128/dshp 实测报告
尚未 L3 验证——若已跑过,见下方失败备注。
备注:验证: runtime-fail (0.1.0-rc.6) 浏览全部待验证失败 →
使用场景
扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。
适合谁
想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。
二次开发建议
工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。