dsh-claude-move
Four-source migration wizard: move Claude Code, Codex, OpenCode and Hermes sessions, memories, skills, instructions and slash commands into DSH (/move wizard with approval gate and idempotent move.json, resumable sessions).
Install
dsh plugin --profile web add dsh-claude-move
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<div align="center">
🚚 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](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
dsh plugin --profile <name> add dsh-claude-move
</div>
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 matrix. Imported logs use session format V3 and cannot be read by
dsh <= 0.1.2-rc.1(upgrading is one-way; re-import from the source transcript is the fallback).
Compatibility matrix (public seams only)
Surface · Used · Fallback when absent
Host services (tools / sessionPersistence / workspaceRegistry / commands / systemPrompt / skills / webServer) · required where listed · optional services register reactively; missing fs fails loud
sessionPersistence dual baseline: legacy listSnapshots / readFrom / append vs handle open / stat / snapshot list() · feature-detected at runtime (API shape, never version) · the header.id resolution guard aborts the scan loudly instead of silently clearing imports.json
streamText-capable fs / ctx.jobs / ctx.agents.resume · feature-detected · whole-file read with loud rejection / own job map / handof
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::30,最后更新 2026-11-05