by Nwflower
Import 14+ external agent chat histories (Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, ZCode, Grok Build, OpenClaw, Pi, Hermes, Kimi CLI, DSH) into DeepSeek Harness as resumable sessions — full-fidelity, reverse export/sync, bundle backup. | 从 Claude Code、Codex、Reasonix 等 Agent 工具导入历史消息到 DeepSeek Harness 并继续对话。
# Add to your Claude Code skills
git clone https://github.com/Nwflower/dsh-chat-importGuides for using ai agents skills like dsh-chat-import.
dsh-chat-import is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Nwflower. Import 14+ external agent chat histories (Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, ZCode, Grok Build, OpenClaw, Pi, Hermes, Kimi CLI, DSH) into DeepSeek Harness as resumable sessions — full-fidelity, reverse export/sync, bundle backup. | 从 Claude Code、Codex、Reasonix 等 Agent 工具导入历史消息到 DeepSeek Harness 并继续对话。. It has 53 GitHub stars.
dsh-chat-import's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Nwflower/dsh-chat-import" and add it to your Claude Code skills directory (see the Installation section above).
dsh-chat-import is primarily written in JavaScript. It is open-source under Nwflower on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh dsh-chat-import against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Import 14 external agent conversation histories into DeepSeek Harness as full-fidelity, resumable sessions — and export / sync back to Claude Code, Codex, Kimi, or a portable interchange bundle.
💡 Concept · ✨ Features · 🗂 Supported sources · 🚀 Quick start · 🛠 Usage · 🔑 Key behaviors · 🏗️ Tech Stack · 🗺️ Roadmap · ⭐ Star History · 🤝 Contributing
14 agent sources, one plugin — full-fidelity import into DeepSeek Harness, seamless resume, matrix interop / backup / handoff on the way out.
Changelog: CHANGELOG.md · Roadmap: ROADMAP.md · Interchange protocol: docs/INTERCHANGE.md
dsh-chat-import imports conversation histories from Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, ZCode, Grok Build, OpenClaw, Pi Coding Agent, Hermes, Kimi CLI / Kimi Code and DSH session logs — tool calls, reasoning and all — as full-fidelity, resumable DeepSeek Harness sessions. Source files are read read-only (never rewritten), the DSH engine is never touched, and every import becomes a fresh session grouped into the workspace of its source cwd (resolved via the authoritative ~/.claude.json project mapping, greedy slug decoding for Reasonix, with a home-directory sandbox guard).
The reverse direction is covered too: export_claude serializes a DSH session back into a Claude Code JSONL transcript that Claude Code can load with --resume (read-only — your DSH log is never modified), sync_to_claude incrementally appends a session's new turns back to a Claude Code file — guarded, never silently overwriting — and the same matrix extends to Codex rollouts (export_codex) and Kimi wire files (export_kimi), plus a portable interchange bundle (export_bundle / restore_bundle, REQ-56/62) with SHA-256 fingerprints and cross-machine restore.
| Category | Feature | Description |
|---|---|---|
| Import | 14 sources + local JSONL, one plugin | One tool per source — from Claude Code JSONL and Codex rollouts to SQLite databases and session directories, including the Reasonix desktop app and Claude-3p new client roots. |
| Import | Full fidelity | Tool calls & results, thinking blocks, titles, models and timestamps carry over wherever the source records them. |
| Import | Batch import | Point at a directory (or a whole database) and every file / conversation becomes its own session, with a per-file summary. |
| Import | ChatGPT branches | import_chatgpt({ branch: 'all' }) restores every root→leaf branch as its own session; tool messages become real tool/call + tool/result. |
| Resume | Seamlessly resumable | Open an imported session and keep chatting exactly where the source left off — fully tool-enabled (default preset scope + bound default model). |
| Resume | Auto workspace grouping | Sessions land in the workspace of their source cwd (authoritative mapping, then slug decode, with a home-directory sandbox guard; falling back to the source file's directory when that path does not exist locally) — no more "ungrouped". |
| Interop | Matrix export | export_claude / export_codex / export_kimi serialize any DSH session into the target format — DSH↔Claude↔Codex↔Kimi four-way interop. |
| Interop | Fidelity degradation reporting | Every export lists its lossy items (degradations: orphan results, skipped injections, skipped attachments) — nothing is silently dropped. |
| Backup | Portable bundle | export_bundle writes a fingerprint-verified interchange bundle; restore_bundle restores it on this machine or another (cwd-unreachable fallback is reported, not silent). |
| Reverse | Sync back | sync_to_claude appends a session's new complete turns to its Claude Code file — guarded, never overwriting. |
| Handoff | Resume from external history | /resume-claude / /resume-codex generate a handoff summary (untrusted history → goal, files, stop point, next step) into the current session; multi-match lists candidates without guessing. |
| Quality | Verify | verify_session runs a read-only structural audit (seq / event whitelist / surfaceOp / balance / tool pairing) with per-kind repair hints. |
| Protection | Idempotent + incremental | Re-importing an unchanged source skips it; a grown source appends only its new turns. |
| Protection | Context budget protection | Oversized sessions are trimmed to fit a safe context budget, and the trim is reported; compacted: true restores Claude compression summaries. |
| Source | Storage location | Import tool |
|---|---|---|
| Claude Code | ~/.claude/projects/<slug>/<sessionId>.jsonl |
import_claude |
| Claude-3p (new client) | %LOCALAPPDATA%\Claude-3p\claude-code-sessions (metadata → JSONL via cliSessionId) |
import_claude |
| Codex / ChatGPT CLI | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl |
import_codex |
| ChatGPT (web export) | anywhere you saved the export — conversations.json |
import_chatgpt |
| Cursor | ~/.cursor/projects/<slug>/agent-transcripts/<id>/<id>.jsonl |
import_cursor |
| Gemini CLI | ~/.gemini/history/<slot>/chats/session-*.json |
import_gemini |
| Reasonix (CLI + desktop) | ~/.reasonix/sessions/desktop-*.jsonl · %APPDATA%\reasonix\projects\<slug>\sessions\*.jsonl |
import_reasonix |
| opencode | ~/.local/share/opencode/opencode.db |
import_opencode |
| ZCode (z.ai CLI) | ~/.zcode/cli/db/db.sqlite |
import_zcode |
| Grok Build | ~/.grok/sessions/<project>/<session_id>/ |
import_grokbuild |
| OpenClaw | ~/.openclaw/agents/<agent>/sessions/*.jsonl |
import_openclaw |
| Pi Coding Agent | ~/.pi/agent/sessions/--<cwd>--/<timestamp>_<uuid>.jsonl |
import_pi |
| Hermes | ~/.hermes/ (Windows %LOCALAPPDATA%\hermes) |
import_hermes |
| Kimi CLI / Kimi Code | ~/.kimi/sessions/<workdir-md5>/<sessionId>/wire.jsonl · ~/.kimi-code/sessions/<workspaceId>/<sessionId>/agents/main/wire.jsonl |
import_kimi |
| DSH session logs | ~/.dsh/sessions/<encoded-workspace>/<sessionId>/session.jsonl(.zstd) |
import_dsh |
| Any local JSONL | any .jsonl file / directory (auto-detected) |
import_local_jsonl |
Each import preserves what the source actually records — session id, cwd, title, model, timestamps, tool calls & results, reasoning. Sources that record less import what exists; anything a format cannot preserve is explicitly flagged in the import report (e.g. Kimi sub-agent conversations mirrored into the parent wire as SubagentEvent are skipped — the parent's Agent tool call & result are kept, and a sub-agent's own subagents/<agentId>/wire.jsonl or new-layout agents/<agentId>/wire.jsonl can be imported directly). Reasonix V2 sessions merge their *.events.jsonl WAL automatically (walMerged reported); Claude sessions can be imported as their last compression summary + tail with compacted: true.
1. Install — add the plugin to a profile:
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)
2. Import — in any DSH session, import a single file or a whole directory (the same call shape works for all 15 import tools — see the table above):
import_claude({ path: "~/.claude/projects" })
3. Resume — refresh the session list once, open the imported session, and continue chatting — it resumes exactly where the source left off.
4. Two-way incremental sync — the sidebar Import Sessions panel now has a Sync tab: