dsh-claude-move

sessiontested: passnpmApache-2.0

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).

下载量 / Downloads
2,537
依赖体积 / node_modules
7.23 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-claude-move

Sandbox test results

StageResult
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 dsh1024 once, then dsh1024 plugin --profile web add dsh-claude-move (counts toward the deepseek1024.com install ranking).

![Gitee](https://gitee.com/perrylink/dsh-claude-move)

![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/PerryLink/dsh-claude-move)

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.

![License](LICENSE)

![DSH plugin](https://github.com/topics/dsh-plugin)

![dsh-doctor](https://github.com/PerryLink/dsh-plugin-doctor#verified-徽章)

![DSH Market](https://dsh.market/)

![Node](#)

![CI](https://github.com/PerryLink/dsh-claude-move/actions)

![Version](https://github.com/PerryLink/dsh-claude-move/releases)

![npm version](https://www.npmjs.com/package/dsh-claude-move)

![npm downloads](https://www.npmjs.com/package/dsh-claude-move)

[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, no prepare or allowBuilds step.
  • npm channel (published releases): dsh plugin --profile web add dsh-claude-move.
  • tarball channel: npm pack in this repo, then dsh plugin --profile web add ./dsh-claude-move-<version>.tgz.
  • uninstall: remove the claude-move row from the profile's bundles and restart dsh. Imported sessions stay in DSH's data directory; the plugin only writes its cache ($DSH_HOME/claude-move/) and the claudecode workspace folder, and never touches Claude source data.

Compatibility

  • Targets dsh 0.1.6-alpha.2 (web profile, session format V3); peer dependencies and engines.dsh admit 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 no sessions.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 sessionPersistence runtime shim, feature-detected by API shape (never by version): the legacy API (create/append/readFrom, list() returning headers) and the handle seam (create returning a SessionHandle, list()/stat() returning snapshots) both work. The handle seam is published on the alpha line (@deepseek-ai/dsh-session-persistence / -jsonl 0.1.5-rc.2), so the compat workflow covers it. On the handle path every append is followed by flush() (durability barrier) and a paired close() (single-writer ownership); headers are stamped with the backend's current format version plus an explicit isSeeded; missing assistant model sources fall back to the provider; and since 0.4.5 synthesized assistant/message events carry stream: [] when the backend format version is >= 2 — V3's Session.fromRestore asserts Array.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's header.id cannot be resolved, so imports.json is 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

Links

GitHub · Homepage · npm

Same category