
PerryLink/dsh-claude-move
dsh-claude-move
Four-source migration wizard for DeepSeek Harness: move Claude Code, Codex, OpenCode and Hermes sessions, memories, skills, instructions and slash commands into DSH, through a /move wizard with resumable, approval-gated, idempotent sessions. Maintenance status: FROZEN since 2026-10-05.
Install
npx @deepseek-ai/dsh plugin --profile <name> add dsh-claude-moveRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-claude-move)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from PerryLink/dsh-claude-move, cleaned of badges and images.
🚚 dsh-claude-move
- 1024 store channel:
npm i -g dsh1024once, thendsh1024 plugin --profile web add dsh-claude-move(counts toward the deepseek1024.com install ranking).
Migrate Claude Code, Codex, OpenCode and Hermes into DeepSeek Harness — copy sessions, memories, skills, instructions and slash commands as resumable DSH sessions, copy-only and approval-gated.
Keep your Claude Code history when you move: one install, resumable sessions, live sync with a running Claude Code, and a four-source migration wizard.
English · 简体中文 · Español · Português · हिन्दी
dsh plugin --profile <name> add dsh-claude-move
Workflow overview: call → plugin → result. The examples below use the real command surface.
Install & uninstall
- git channel (latest
master):dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master"— pure ESM, noprepareorallowBuildsstep. - npm channel (published releases):
dsh plugin --profile web add dsh-claude-move. - tarball channel:
npm packin this repo, thendsh plugin --profile web add ./dsh-claude-move-<version>.tgz. - uninstall: remove the
claude-moverow from the profile's bundles and restartdsh. Imported sessions stay in DSH's data directory; the plugin only writes its cache ($DSH_HOME/claude-move/) and theclaudecodeworkspace folder, and never touches Claude source data.
Compatibility
- Targets
dsh 0.1.6-alpha.2(web profile, session format V3); peer dependencies andengines.dshadmit the six-clause band through>=0.2.1-0 <0.3.0; the 0.2.1 line is statically compatible (no runtime verification recorded). Verified 2026-09-18 (checkJs type gate + 287 assertions, 38 suites). The panel's "open session" button now renders disabled with an explanatory title when the host exposes nosessions.open(), instead of disappearing. Node^22.19 || >=24.0.1.2-rc.1(adapted 2026-09-04): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. - 0.4.0 ships a dual-baseline
sessionPersistenceruntime shim, feature-detected by API shape (never by version): the legacy API (create/append/readFrom,list()returning headers) and the handle seam (createreturning aSessionHandle,list()/stat()returning snapshots) both work. The handle seam is published on the alpha line (@deepseek-ai/dsh-session-persistence/-jsonl0.1.5-rc.2), so the compat workflow covers it. On the handle path every append is followed byflush()(durability barrier) and a pairedclose()(single-writer ownership); headers are stamped with the backend's current format version plus an explicitisSeeded; missing assistant model sources fall back to the provider; and since 0.4.5 synthesizedassistant/messageevents carrystream: []when the backend format version is >= 2 — V3'sSession.fromRestoreassertsArray.isArray(data.stream), so without it a log was written and readable but could not be resumed. Import-scan cleanup refuses to run when a listed element'sheader.idcannot be resolved, soimports.jsonis never silently cleared. - Last verified against a fresh tarball install: real scan, real batch import (idempotent re-import), workspace attach and persistence artifacts confirmed; macOS/Linux covered by the CI ma
…

