dsh-chat-import README

The project's README from github.com/Nwflower/dsh-chat-import. As one markdown file: README.md.

DSH Chat Import

DSH Chat Import

A DeepSeek Harness plugin that imports conversation history from 18+ AI coding tools, so you can continue right where you left off.

All sessions, continued in DSH.

English 简体中文

version downloads GitHub stars GitCode license Awesome DSH Plugin dsh.so install

Intro

DSH Chat Import imports conversation history with full context from other agents, turning it into a seamlessly resumable DeepSeek Harness session.

Now covers import from 20 agents: Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, MiMo Code, ZCode, Grok Build, OpenClaw, Pi Coding Agent, Hermes, Kimi CLI / Kimi Code, Kilo Code, Qoder CLI, WorkBuddy, Qwen Work CN (千问办公) and DSH session logs.

Export back to: Claude Code, Codex, Kimi Code.

Supported Agents

Claude Code
Claude Code
Codex
Codex
ChatGPT
ChatGPT
Cursor
Cursor
Gemini
Gemini CLI
Reasonix
Reasonix
OpenCode
OpenCode
MiMo Code
MiMo Code
Kilo Code
Kilo Code
ZCode
ZCode
Grok Build
Grok Build
OpenClaw
OpenClaw
Pi Coding Agent
Pi Coding Agent
Hermes
Hermes
Kimi CLI
Kimi CLI
Qoder CLI
Qoder CLI
WorkBuddy
WorkBuddy
Qwen Work CN
Qwen Work CN
DSH
DSH

Install

dsh plugin --profile web add dsh-chat-import                    # npm package
dsh plugin --profile web add -w link:/path/to/dsh-chat-import   # local checkout (symlink)

Usage

  1. Import — pick the conversations to import from the "Import sessions" panel in the bottom-right of the GUI and import with one click, or have your agent call the context tool:
import_chat({ format: "claude", path: "~/.claude/projects" })
import_chat({ format: "chatgpt", path: "~/Downloads/chatgpt-export/conversations.json" })
import_chat({ format: "local-jsonl", path: "D:\downloads\session.jsonl" })

Reasonix directory imports conservatively collapse only recovery ancestors proven by both a strict semantic prefix and an explicit parent_id lineage. Ambiguous or divergent files remain separate; use lineageMode: "physical" for one session per JSONL.

  1. Resume — refresh the session list, open the imported session, and keep chatting from where the source left off.

  2. Sync (optional) — the panel's "Sync" tab offers bidirectional incremental sync, off by default. Sub-agent conversations are filtered out by default in both directions.

  3. Tool injection (optional) — the "Session Import" settings section exposes three injectTools levels: Minimal (default, keeps only the import_chat entry tool resident; low-frequency management tools stay out of context), Full (all 13 tools), and Off (invisible to the agent; the GUI panel still works). Tool descriptions are slimmed down to selection-time essentials; behavioral details ride along in execution results and error text, only when needed.

Full tool / command usage (parameters, examples, edge cases) lives in docs/USAGE.md.

Companion tool: config migration

Only need to migrate configuration (skills, hooks, global settings) rather than conversation history? dsh-movein handles config migration and complements this plugin -- DSH Chat Import only handles conversation history, and each tool works standalone. Its first-migration guide (中文) walks through a preview-first, apply-second, verify-each-step flow.

The combined flow of the two tools has not been jointly validated, and cross-linking is not a mutual endorsement; check sources, targets, duplicate-import and retraction boundaries for each tool separately.

This plugin's import_agents is a lightweight asset mover (it persists pi/opencode/Claude/Codex agents, prompts and skills as DSH skills); for full config migration (hooks, permission rules, settings), use dsh-movein.

Features

Capability Entry points Description
Batch import import_chat (20 formats) · scan_discover · sidebar panel Import 19+ sources with one tool; each conversation becomes its own session
Import history & purge sidebar panel History tab View imports.json records; remove plugin-created sessions (with confirmation)
Full-fidelity resume Imported sessions Tool calls & results, reasoning, titles, models and timestamps carry over
Export back export_chat (format: claude / codex / kimi) Serialize DSH sessions back to Claude / Codex / Kimi
Bidirectional sync panel "Sync" tab Incremental sync in both directions (external ↔ DSH), off by default

One documented exception to full fidelity: failed ghost retry steps. When a tool call never received its result and the very next step re-emits the same call id verbatim, the dead step is dropped at import — the result already pairs with the re-emitted call. Duplicate call ids in the imported log would hard-fail DSH's conversation folding (a second start for the same id), swallowing the whole trajectory after the first duplicate. See the droppedRetrySteps counter on the converter result.

Docs

Document Description
Usage Reference Full parameters, examples and edge cases for every tool / command
Interchange protocol Interchange v1 protocol and bundle format
Changelog Version history
Roadmap Shipped / planned
Contributing Development setup, commit rules, security & privacy

Star History

Star History Chart

dsh-chat-import (Nwflower/dsh-chat-import)

migration
Searching Database…

What is this?DSH Chat Import is a plugin for DeepSeek Harness (DSH) that imports conversation history from 25+ AI coding agents (Claude Code, Codex, Cursor, Gemini, ChatGPT and others) into DSH as fully resumable sessions, keeping tool calls, reasoning and results intact.
Is this a standalone app or does it need DeepSeek Harness?It's a plugin that runs inside DeepSeek Harness (DSH), not a standalone app — it adds a sidebar panel and a set of callable tools (importchat, exportchat, scandiscover) to the DSH GUI.
How do I import my old conversations?Open the 'Import sessions' panel in the bottom-right of the DSH GUI, pick the conversations you want, and import them with one click — or have your agent call the importchat tool directly.
Do I need anything besides DeepSeek Harness itself?You need DeepSeek Harness installed (the plugin runs inside it) and Node.js 22.13 or newer, since the project is a Node-based plugin.
Does every conversation import with 100% fidelity?Almost — the one documented exception is 'ghost retry' steps: if a tool call never got a result and the next step re-emits the same call id, the dead step is dropped on import to avoid a hard failure in DSH's conversation folding.
Can I export a DSH session back to the original tool?Yes — the exportchat tool serializes DSH sessions back to Claude Code, Codex, or Kimi Code format.
Can I keep an imported session synced with the original source?Yes, the panel's 'Sync' tab offers optional bidirectional incremental sync between the external tool and DSH, but it's off by default.
What do the injectTools levels do?They control how much of the plugin's tooling stays visible to the agent: Minimal (default) keeps only the entry tool in context, Full exposes all 13 tools, and Off hides them entirely while the GUI panel still works.
Does this also migrate my agent config and skills?Only lightly — it can persist agents/prompts/skills as DSH skills via importagents, but full config migration (hooks, permission rules, settings) is handled by the companion tool dsh-movein.
Creator
Nwflower
Size
4.5 MB
Stars
238
Age
2mo
Commits · 90 Days