dsh-cc-ecosystem
运行时把 Claude Code 全家桶原样加载进 DSH:.claude/ 的技能、斜杠命令、规则、权限(deny/ask/allow)、子代理与 hooks,以及 Claude Code 插件(plugin.json / marketplace / 技能 / 代理 / MCP)——内存 IR 解析层,.claude 始终是唯一事实来源,只有主动开启才会写回。同时把 Claude Code 的 auto-memory 接入系统提示,默认只读,可在 /cc-memory 面板打开写回。八个包:一个可一键装齐的全家桶包、loader,以及 skills、permissions、agents、ho
安装
dsh plugin --profile web add dsh-cc-ecosystem
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-cc-ecosystem
One install brings the whole dsh-cc ecosystem into a DSH profile: the shared parse layer plus all six Claude Code adapters, mounted in a single profile layer.
把整个 dsh-cc 生态装进一个 DSH profile:共享解析层 + 六个 Claude Code 适配器,由一个 profile 层全部挂载。
版本号是故意钉死的:pnpm 11 会拦下发布不满 24 小时的版本,只写包名会静默装到旧版并报成功 —— 见[为什么要带版本号](../../README.md#为什么要带版本号)。Web GUI 里把下面这行 包名@版本号 原样填进输入框即可。
<!-- versions:begin -->
dsh plugin --profile <name> add dsh-cc-ecosystem@0.6.1
<!-- versions:end -->
它挂载什么
包 · 作用
dsh-cc-loader · 共享解析层(.claude → 内存 IR)。纯库,不挂载任何插件行 —— 它只是被其余六个包 import
dsh-cc-skills · 技能 / 斜杠命令 / rules
dsh-cc-permissions · CC 权限规则(deny → ask → allow)强制
dsh-cc-agents · .claude/agents 子代理 + cc_agent 派发
dsh-cc-hooks · 全部五类 CC hooks
dsh-cc-mcp · CC MCP 配置 + /mcp 管理面板
dsh-cc-memory · CC auto-memory(MEMORY.md 索引 + 记忆文件),默认只读,可开写入
为什么需要单独一个包
DSH 的 dsh plugin 把 dsh.profile.bundles 与 profile 自己的直接依赖对账 ——
依赖的依赖(transitive)不会加入 bundles,它们的 patch 也永远不会被加载。装
dsh-cc-ecosystem 时,六个适配器都是它的传递依赖,所以只有这个包自己的 patch 能挂载它们。
因此本包的 cordis.patch.yml 里那六行是各适配器自身 patch 的副本。两份配置会各自演化,
所以 [test/umbrella.test.mjs](../test/umbrella.test.mjs) 逐行比对二者,任何一处 config 漂移
都会让测试失败(已做变异验证:改动一个值即可让该断言失败)。
想只装其中几个,仍然直接装对应的包 —— 每个适配器自己也是合法的 bundle。
兼容性
与家族其余包一致:DSH 0.1.5-rc.2 与 0.2.0-rc.2 双宿主。
本包自身不声明 dsh-* peer:适配器的兼容性由宿主的 bundleComponentManifests 顺着 patch
里插入的行逐个读出并校验,所以这里再加一道闸只会产生第二份、可能互相打架的判定。
License
MIT
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:8,最后更新 2026-11-01