四合一迁移向导:把 Claude Code、Codex、OpenCode、Hermes 的会话、记忆、技能、指令与斜杠命令迁入 DSH(/move 向导,审批门 + 幂等 move.json,会话可续聊)。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-claude-move
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:PerryLink/dsh-claude-move
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
🚚 dsh-claude-move
- 1024 商店渠道:先
npm i -g dsh1024,再dsh1024 plugin --profile web add dsh-claude-move(计入 deepseek1024.com 安装排行)。
将 Claude Code、Codex、OpenCode 和 Hermes 迁移到 DeepSeek Harness —— 将会话、记忆、技能、指令和斜杠命令复制为可续聊的 DSH 会话,只复制、审批门控。
迁移时保留你的 Claude Code 历史:一次安装、可续聊会话、与运行中的 Claude Code 实时同步,以及一个四来源迁移向导。
English · 简体中文 · Español · Português · हिन्दी
⭐ 如果它帮到了你
这个插件是 DSH 插件家族的一员(40+ 个,全部 Apache-2.0)。如果你在用,给个 star —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
English: part of a 40+ plugin family for DeepSeek Harness. If it is useful, a star helps the next person find it — nothing is gated behind it.
兼容性
- 面向
dsh 0.1.7-rc.2(web profile,当前线会话格式 V4);peer 依赖要求>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0。已于 2026-09-24 核验(checkJs 类型门 + 291 项断言、38 个套件)。导入日志重新满足当前恢复边界:tool/result写成 V4 一等 tool 角色消息,续聊交接摘要带生产者自有消息来源 kind(dsh-claude-move)——0.1.7-alpha.1 在类型层与落盘行准入层双双删除了笼统的{ kind: 'plugin', plugin }。宿主没有sessions.open()时,面板「打开会话」按钮置灰渲染并带说明 title。0.1.2-rc.1(2026-09-04 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 - 0.4.0 内置
sessionPersistence双基线运行时 shim,按 API 形状特性探测(绝不按版本号猜测):旧 API(create/append/readFrom,list()返回会话头)与 handle seam(create返回SessionHandle,list()/stat()返回快照)都能工作。handle seam 已随 alpha 线发布(@deepseek-ai/dsh-session-persistence/-jsonl0.1.5-rc.2),因此 compat workflow 可以覆盖它。handle 路径上每次 append 之后必须flush()(耐久屏障)并成对close()(单写所有权);header 盖上后端当前格式版本并显式补isSeeded;缺失的 assistant model 来源回退 provider。两条写盘路径都按后端自报的格式版本决定形状:合成的assistant/message自格式 2 起带stream: [](恢复边界断言Array.isArray(data.stream),缺它则日志能写入、能读回却不可续聊);tool/result自格式 4 起是 V4 一等 tool 角色消息,之下折回 v3 的tool-result包裹块——绝不写出目标后端自己会拒收的形状。导入扫描的清理在列表元素的header.id无法解析时拒绝执行,绝不静默清空imports.json。 - 最近针对全新 tarball 安装验证:真实扫描、真实批量导入(幂等重导入)、工作区挂载与持久化产物均已确认;macOS/Linux 由 CI 矩阵覆盖。导入日志使用后端当前的会话格式(
0.1.7-alpha.1上为 V4、0.1.6线为 V3、<= 0.1.2-rc.1为 v0),dsh <= 0.1.2-rc.1无法读取(升级是单向的;回退办法是从源 transcript 重新导入)。导出的读取侧把上述每种形状都读得回来。
兼容性矩阵(仅公开接缝)
| 接缝 | 使用 | 缺失时的回退 |
|---|---|---|
Host 服务(tools / sessionPersistence / workspaceRegistry / commands / systemPrompt / skills / webServer) |
所列之处必需 | 可选服务响应式注册;缺失 fs 大声失败 |
sessionPersistence 双基线:旧 API(listSnapshots / readFrom / append)或 handle(open / stat、快照 list()) |
运行时按 API 形状特性探测 | header.id 解析守卫:解析失败大声中止扫描,绝不静默清空 imports.json |
支持 streamText 的 fs / ctx.jobs / ctx.agents.resume |
特性探测 | 整文件读取并大声拒绝 / 自有 job map / 交接注入 |
Client shell 服务(sessions.refresh/open、workspaces.refresh) |
面板 apply 时特性探测 | 整页刷新 |
较新的平台能力从不是硬性要求 —— 插件在最早支持线(0.1.2-rc.1)上始终保持可启动。 |
你能获得什么
- 自动发现 ——
claude_scan定位 Claude 数据根($CLAUDE_CONFIG_DIR,回退~/.claude)并索引每个项目/会话、记忆、技能、全局CLAUDE.md和settings.json,带增量缓存和并行扫描(scanConcurrency)。 - 全保真导入 ——
import_claude将 transcript 转换为均衡、可续聊的 DSH 会话(turn/start → step/start → user/message → assistant/message → tool/call → tool/result → step/end → turn/end),修复被中断的工具调用,并以分块流式导入超过maxTranscriptBytes的 transcript。 - 一个
claudecode工作区 —— 每个导入的会话都落到一个专用工作区(默认$DSH_HOME/claudecode);workspaceMode: 'per-project'恢复每个项目一个工作区的分组方式。 - 只复制且增量 —— 两侧都不会被移动、改写或删除;重新运行只追加新的轮次(
force: true以新 id 额外保存一份完整副本)。 - 个人上下文,始终新鲜 —— 记忆作为实时提示词段落注入,Claude 技能注册为真正的 DSH 技能(全局 + 项目级),全局 + 项目
CLAUDE.md提前注入。 - 四来源迁移向导 ——
/move加上move_detect/move_preview/move_run迁移 Claude Code、Codex、OpenCode 和 Hermes,审批门控且幂等(move.json)。 - Web 面板与命令 ——
/claude-import-all、/resume-claude、/claude-move-reset、/claude-export,以及一个浮动迁移面板。 - 双向导出 ——
claude_export(或/claude-export <sessionId>)把 DSH 会话回写为 Claude Code 可 resume 的 JSONL transcript(user/assistant/tool 轮次、thinking + tool_use/tool_result 配对、cwd 尽力映射),让历史可以再次离开 DSH。
四来源迁移向导
/move # 一次性向导:检测 → 预览 → 执行 → 报告(全部四个来源)
move_detect # 扫描 Claude Code / Codex / OpenCode / Hermes
move_preview # 逐项计划:new | unchanged | changed | conflict(含 diff)| unsupported
move_run # 在审批门控之后执行;冲突解决:
# skip | overwrite | rename | merge (默认 skip —— 绝不猜测)
- 来源 —— Claude Code(
~/.claude)、Codex(~/.codex)、OpenCode(数据 + 配置根)、Hermes(技能/记忆根);每个来源都有自己的 parser + mapper。 - 映射 —— 记忆/指令 → 追加到 DSH 全局
AGENTS.md的仅追加受管段落(每项一个标记段落);技能 → 真正的 DSH 技能(SKILL.md包原样复制,其他格式转换);斜杠命令 → 已注册的 DSH 命令(重启后从move.json重建);会话 → 可续聊的 DSH 会话(与阶段 1 相同的导入器)。 - 幂等 —— 每个已应用的计划都记录在
$DSH_HOME/claude-move/move.json(digest/targetDigest/appliedAt);重新运行跳过未变更项,force重新应用它们。 - 审批门控 —— 任何会写入内容的运行都先询问
ctx.approval;除allowed-once之外的任何结果都意味着零写入。
快速开始
# 1. 将 bundle 安装到你的 profile
dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master"
# 或从 npm 安装(已发布版本)
dsh plugin --profile web add dsh-claude-move
# 2. 重启并验证该行
dsh --profile web --dump-config | grep -A4 'id: claude-move'
然后,在任意 DSH 会话中运行一条命令:
/claude-import-all # 扫描 → 复制每个 Claude 会话 → 报告
导入后无需重启 DSH —— 刷新一次已打开的 Web 页面,点击任意导入会话即可继续。
安装与卸载
- git 渠道(最新
master):dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master"—— 纯 ESM,无需prepare或allowBuilds步骤。 - npm 渠道(已发布版本):
dsh plugin --profile web add dsh-claude-move。 - tarball 渠道:在本仓库执行
npm pack,然后dsh plugin --profile web add ./dsh-claude-move-<version>.tgz。 - 卸载:从 profile 的 bundles 中删除
claude-move行并重启dsh。导入的会话保留在 DSH 的数据目录中;插件只写自己的缓存($DSH_HOME/claude-move/)和claudecode工作区文件夹,绝不触碰 Claude 源数据。
迁移了什么
~/.claude(只读)
├─ projects/*/*.jsonl ──→ 可续聊的 DSH 会话,默认分组到一个 "claudecode" 工作区
├─ projects/*/memory/ ──→ 实时 system-prompt 记忆段落(每次请求重新读取)
├─ skills/** ──→ 真正的 DSH 技能
└─ CLAUDE.md + settings ──→ 早期提示词段落 + 配置建议(绝不自动应用)
| 在 Claude Code 中 | 在 DSH 中变为 |
|---|---|
会话 transcript(projects/*/*.jsonl) |
均衡、可续聊的 DSH 会话 —— user/assistant/tool/thinking 全保真映射并修复被中断的工具调用 —— 分组到一个 claudecode 工作区或每个项目一个 |
记忆文件(projects/*/memory/*.md) |
一个实时 system-prompt 上下文段落,每次请求重新读取(feedback > project > reference > user) |
技能(~/.claude/skills/**) |
真正的 DSH 技能(kebab-case 命名、冲突后缀、默认最多 30 个;README.md/MEMORY.md 及无描述的文件被跳过) |
CLAUDE.md(全局 + 每个项目) |
一个早期提示词段落;项目文件优先 |
settings.json |
DSH 配置建议,附带明确的无法映射键列表 |
| 项目状态(目录、git 分支和脏计数) | 显示在扫描索引、Web 面板徽章和 /resume-claude 交接中 |
用法
在挂载了插件的任意会话中调用这些工具:
claude_scan # 完整扫描(增量缓存)
claude_scan { path: "~/.claude/projects/<slug>" } # 部分扫描
claude_scan { refresh: true } # 跳过缓存,重新扫描全部
claude_scan { projectsLimit: 10, sessionsLimit: 5, fields: "brief" } # 精简输出
import_claude { path: "~/.claude/projects/<slug>/<sessionId>.jsonl" } # 单个会话
import_claude { path: "~/.claude/projects" } # 目录(递归)
import_claude { path: "all" } # 全部
# 随时重新运行:未变更的文件被跳过,增长的 transcript 只追加新的轮次。
# 超过 maxTranscriptBytes 的文件以分块流式导入(无内存上限)。
import_claude { path: "...", force: true } # 全新的完整副本(保留之前的副本)
claude_export { sessionId: "<dsh-session-id>" } # 把 DSH 会话回写为 Claude JSONL
claude_export { sessionId: "...", path: "~/.claude/projects/<slug>/<id>.jsonl" } # 指定目标
命令(用户触发,不占模型轮次):
/claude-import-all # 一次性:扫描 → 导入全部 → 报告 → 注入当前会话
/resume-claude latest # 继续最近的 Claude 会话
/resume-claude <sessionId> # 按源会话 id 或 import-<src> id
/resume-claude <keyword> # 匹配标题;多个匹配会列出,绝不猜测
/claude-move-reset # 重置插件缓存(书签 + 导入映射);导入的会话保留
/claude-export <sessionId> [path] # 导出 DSH 会话为可 resume 的 Claude JSONL transcript
Web 面板:一个浮动迁移面板,包含项目/会话树、状态徽章(未导入 / 已导入 / 已导入并有新轮次 / 源缺失 / 目录缺失 / git 脏)、关键字过滤、分页渲染、每个会话的「导入并继续」+「打开会话」+「刷新会话列表」、带实时进度条和取消的批量导入,以及一个缓存重置按钮。文本跟随浏览器语言(zh/en)。通过插件自身的 /api/claude-move/* JSON 路由在公开 ctx.webServer 接缝上提供。
导入之后
你无需重启 DSH。 导入在完成的那一刻即通过公开的 sessionPersistence 服务持久化落地:
- 服务器端列表(
session.list/workspace.listRPC、CLI、任何新的页面加载)会立即在claudecode工作区下显示导入的会话。 - 面板会自行刷新已打开页面的会话列表,并为每个导入的会话提供 打开会话 按钮。
- 导入的会话可以立即打开、读取和继续 ——
/resume-claude,或点击列表中的会话。随时重新运行导入只会把新轮次同步到相同的会话中。
配置
全部可选,可在 cordis.yml 中覆盖。
| 键 | 默认值 | 含义 |
|---|---|---|
claudeHome |
$CLAUDE_CONFIG_DIR 或 ~/.claude |
Claude 数据根 |
workspaceMode |
claudecode |
claudecode(一个专用工作区)· per-project(每个源 cwd 一个工作区) |
claudecodeDir |
$DSH_HOME/claudecode |
claudecode 工作区文件夹(插件唯一会创建的文件夹) |
scanGit |
true |
Git 探测级别:true(完整)· 'branch'(零 git 调用)· false |
gitTimeoutMs |
5000 |
Git 子进程超时 |
scanConcurrency |
8 |
并行项目扫描上限 |
maxTranscriptBytes |
67108864 |
流式导入阈值(超过则分块) |
excludeProjects |
[] |
要跳过的 slug 子串 |
enableMemory |
true |
将记忆作为实时提示词段落注入 |
memoryMaxBytes |
8192 |
记忆段落上限 |
memoryScope |
current-project |
current-project · all(当前项目优先) |
enableSkills |
true |
将 Claude 技能注册为 DSH 技能 |
maxSkills |
30 |
技能数量上限 |
extraSkillDirs |
[] |
额外的技能目录 |
enableInstructions |
true |
注入全局 + 项目 CLAUDE.md |
resumeMaxChars |
2048 |
交接摘要字符上限 |
resumeMode |
inject |
inject(交接摘要)· agents(ctx.agents.resume) |
enableWebPanel |
true |
注册 /api/claude-move/* 面板路由 |
importConcurrency |
4 |
每批并行读取 + 转换 |
requireApproval |
true |
向导写入询问 ctx.approval(仅 allowed-once) |
codexHome |
$CODEX_HOME 或 ~/.codex |
Codex 数据根 |
opencodeDataHome |
平台 XDG 数据目录/opencode | OpenCode 数据根 |
opencodeConfigHome |
平台 XDG 配置目录/opencode | OpenCode 配置根 |
hermesHome |
$HERMES_HOME 或 ~/.hermes |
Hermes 数据根 |
skillsDir |
$DSH_HOME/skills |
向导技能目标 |
agentsMdPath |
$DSH_HOME/AGENTS.md |
向导记忆/指令目标 |
moveWorkspaceMode |
per-source |
向导导入的工作区分组:per-source · single |
enableExport |
true |
注册 claude_export 工具与 /claude-export 命令 |
exportDir |
$DSH_HOME/claude-export |
默认导出目录(显式 path 始终优先) |
工具与界面
| 界面 | 类型 | 说明 |
|---|---|---|
claude_scan |
工具 | 项目/会话/记忆/技能/设置的结构化索引 |
import_claude |
工具 | 导入单个会话、一个目录或 all(增量;force 生成全新副本) |
claude_export |
工具 | 把 DSH 会话导出为可 resume 的 Claude Code JSONL transcript |
move_detect / move_preview / move_run |
工具 | 四来源向导:扫描、带 diff 的逐项计划、在审批之后执行 |
/claude-import-all |
命令 | 扫描 → 导入全部 → 报告 |
/resume-claude |
命令 | 继续一个 Claude 会话(latest、id 或关键字) |
/claude-move-reset |
命令 | 重置插件缓存(导入的会话保留) |
/claude-export |
命令 | 导出 DSH 会话为可 resume 的 Claude JSONL transcript |
/move |
命令 | 一次性四来源向导 |
| Web 迁移面板 | 客户端 | 带进度、取消、分页、打开会话的浮动面板 |
权限与数据
- 权限:workshop 清单声明
filesystem:read和filesystem:write。 - 读取
~/.claude(transcript、记忆、技能、CLAUDE.md、settings.json)—— 严格只读 —— 以及它导入到的项目目录。 - 写入 通过公开
sessionPersistence服务写 DSH 会话日志(仅 create + append,绝不删除/改写/归档)、工作区注册表记录、$DSH_HOME/claude-move/下的缓存,以及claudecode工作区文件夹。 - 绝不 修改 Claude 源文件、触碰其他应用的数据或访问网络。不读取或传输任何凭据。
安全边界
- 源文件只读;DSH 日志只追加(仅
create+append)。 - 外部 transcript 是不可信输入 —— 其中的任何内容都不会被执行;system/developer/thinking 内容绝不进入续聊交接。
- 仅公开服务 ——
sessionPersistence/workspaceRegistry/tools/commands/systemPrompt/skills/webServer;不改引擎或 UI。 - 密钥仅按位置报告(file:line:kind);
permission/permission-mode/queue-operation记录只计数、不导入。 - 向导写入审批门控 —— 除
allowed-once之外的任何结果都意味着零写入。
已知限制
- 标题来自
custom-title/ai-title/首条提示;Claudesummary记录会被报告,但不映射为 DSH 压缩节点(合成一个有效的压缩事务会伪造其 seq 范围和检查点消息)。 thinking块作为reasoning内容保留,但绝不进入续聊交接。- 被中断的工具调用会以合成的错误结果修复(绝不丢弃),报告为
repaired.synthesized。 - 权限类记录只计数、不导入;DSH 权限预设建议在报告中生成。
- 在没有流式
fs.streamText接口的宿主上,超过maxTranscriptBytes的 transcript 会大声失败,而不是部分导入。 - 在
workspaceMode: 'per-project'下,源目录已删除的会话仍会导入,但工作区挂载失败(保持未分组;workspace.attached: false加上一个reason)。默认的claudecode工作区不依赖源目录。 - 如果 transcript 被就地截断或重置(轮次少于记录的导入),重新导入会跳过它并报告
sourceShrunk;用force: true生成全新的完整副本。 - Web 面板是由插件自身 JSON 路由驱动的零构建浮动面板;它不使用 shell 内部的 UI 插槽系统。
模型体验
- 面向模型的面是这些工具的描述/schema 及其输出:
claude_scan返回结构化索引,import_claude返回逐文件摘要以及警告的位置,claude_export返回导出摘要(目标路径 + 轮次/消息/工具计数)。工具结果本身被记录为tool/result事件,因此一切都可以重建。 - 没有隐藏的面向模型的文本;记忆/
CLAUDE.md段落注册在ctx.systemPrompt上(提示词组装,可从会话日志重建)。
故障排查
- 该行未生效:
dsh --profile <p> --dump-config应打印# == dsh-claude-move;重新运行dsh plugin --profile <p> add ...。 - Web 能启动但静默挂起:由
dsh plugin add初始化的新 profile 只包含dsh-base—— 将@deepseek-ai/dsh-web-app添加到dsh.profile.bundles。安装到已有的webprofile 则无需任何操作。 - 面板路由 404:只有当
enableWebPanel: true且组合了 web 服务器时才会提供这些路由;检查启动日志中的 FAILED fiber。 - 导入失败并提示 "transcript 过大":提高
maxTranscriptBytes或单独导入该文件。 - 导入成功但侧边栏没有显示新会话:页面已经打开 —— 点击一次面板的刷新按钮(或重新加载页面)即可。永远不需要重启 DSH。
- 日志:启动失败会打印到
dsh控制台;插件会为工作区/导入映射问题记录以[claude-move]为前缀的错误。
致谢(开源组件)
本项目采用 Apache License 2.0 许可;以下 MIT 许可组件保留其自身许可(全文见 THIRD_PARTY_NOTICES.md):
- 转换核心 vendored 自 Nwflower/dsh-chat-import(MIT)。
- 发现约定与安全模型来自 Demogorgon314/dsh-resume-plugin(MIT)。
- 记忆/技能注入与 frontmatter 解析模式来自 YYTbit/dsh-plugin-claude-bridge(MIT)。
开发
npm install # peer 依赖:@deepseek-ai/dsh-tools@>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0、@deepseek-ai/cordis、schemastery
npm test # node --test test/*.test.mjs
CI 通过 GitHub Actions(test.yml)在 Linux/macOS/Windows 上以 Node 22 运行完整套件。
主题
deepseek-harness, dsh-plugin, claude-code, migration, session-import, resume
贡献者
- @PerryLink —— 创建者与维护者:导入管线、四来源迁移向导、Web 面板、文档、CI/CD 与发布。
- @OLDnana1 —— 对被中断工具调用损坏的根因分析,该损坏曾使导入会话在续聊时永久返回 HTTP 400。
- @GooodWei —— 发现
README.md(以及任何无描述的.md)被误注册为技能,从而破坏 DSH 的技能加载。
PerryLink DSH Plugin Family
This project is one of the 45 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:
| Plugin | One-liner |
|---|---|
| dsh-auto-review | Second-model auto-review on the approval chain, fail-closed by default |
| dsh-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards and a /tier command |
| dsh-background-agents | Durable background child agents with a Web UI sidebar, messaging and interrupt |
| dsh-budget | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. |
| dsh-catalog | DSH Desktop Market standard catalog source for the PerryLink family |
| dsh-cert-mcp | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence |
| dsh-checkpoint-rewind | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore |
| dsh-claude-move | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH |
| dsh-click | Cross-platform native desktop control for DeepSeek Harness — Windows first. |
| dsh-composer-history | Terminal-style input history for the web composer: arrows, Ctrl+R search |
| dsh-data-quality | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) |
| dsh-defend | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. |
| dsh-doublecheck | Engineering-discipline guard: requirements grill, test gates, adversary review |
| dsh-draw | Unified static-image generation routing for DeepSeek Harness. |
| dsh-fast | Read-only performance diagnostics for DeepSeek Harness. |
| dsh-fund-research | Deterministic research reports for Chinese public mutual funds |
| dsh-github | GitHub PR/issues integration for DSH, every write gated by approval |
| dsh-industry-research | Industry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble |
| dsh-laya | Laya typed decisions (noul/choice/score) as a first-class Cordis service and model-visible tools |
| dsh-library | Local document knowledge base for DeepSeek Harness. |
| dsh-local-ai | Local-model (Ollama) integration for DeepSeek Harness. |
| dsh-lsp-actions | LSP diagnostics, formatting, completion, code actions and rename over language servers |
| dsh-mask | PII masking middleware: anonymize at the model boundary, restore at the display layer |
| dsh-mcp-panel | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors |
| dsh-memento | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool |
| dsh-observe | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. |
| dsh-output-styles | Claude Code outputStyles-equivalent runtime style switching |
| dsh-permission-rules | Claude Code-style declarative allow/deny/ask permission rules with audit |
| dsh-plugin-certification | Community certification registry with repro-checkable grades and badges |
| dsh-plugin-doctor | Zero-dependency static + sandbox smoke detector for DSH plugins |
| dsh-plugin-guide | Plugin-development knowledge base as an on-demand agent skill |
| dsh-plugin-kit | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins |
| dsh-plugin-upgrade | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card |
| dsh-plugin-upgrade-015 | Merged 0.1.3-alpha.1 → 0.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner |
| dsh-reach | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console |
| dsh-research-report | Verifiable research-report engine: content-addressed evidence ledger and sealed versions |
| dsh-score | Multi-dimensional quality scoring for DeepSeek Harness plugins. |
| dsh-session-pin | Pin sessions in the Web sidebar with durable ordering |
| dsh-session-sync | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. |
| dsh-skill-pack-security | Security-audit skill pack: secret scan, dependency and supply-chain review |
| dsh-talk | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. |
| dsh-team-rooms | Cross-session team rooms: shared message bus, task board and timeline |
| dsh-test-drive | Isolated install-and-smoke test drives for DeepSeek Harness plugins. |
| dsh-ticktick | TickTick/Dida365 task bridge: session-header panel + 11 tools |
| dsh-translate | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. |
从 DSH Desktop 市场安装
所有 PerryLink 插件均可在 DSH Desktop 内置市场中浏览:市场 → 来源 → 添加来源 → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选中。安装仍需通过市场的 npm 身份校验与你的确认。
许可证
Apache License 2.0 © 2026 dsh-claude-move contributors
链接
同类插件
Minglink/dsh-infinite-gen-4★ 2160
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
liangmianya/dsh-synapse★ 454
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
ranxianglei/billion-context★ 384
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
Nwflower/dsh-chat-import★ 207
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Totoro-qaq/dsh-plugin-bridge★ 165
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
Anionex/dsh-turn-rewind★ 122
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。