<div align="center">

# ChatCode CLI Chat Import

**A ChatCode CLI plugin that imports conversation history from 19 AI coding tools, so you can continue right where you left off.**

> **All sessions, continued in ChatCode CLI.**

[![English](https://img.shields.io/badge/lang-English-blue.svg)](README.md) [![简体中文](https://img.shields.io/badge/lang-%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87-red.svg)](README.zh-CN.md)

[![version](https://img.shields.io/npm/v/@chatcode/cco-chat-import?style=flat&label=version&color=4D6BFE)](https://www.npmjs.com/package/@chatcode/cco-chat-import)
[![downloads](https://img.shields.io/npm/dm/@chatcode/cco-chat-import?style=flat&label=downloads&color=4D6BFE)](https://www.npmjs.com/package/@chatcode/cco-chat-import)
[![GitHub stars](https://img.shields.io/github/stars/Nwflower/dsh-chat-import?style=flat&label=%E2%98%85&color=08C)](https://github.com/Nwflower/dsh-chat-import)
[![license](https://img.shields.io/badge/license-MIT-2EA44F?style=flat)](LICENSE)

</div>

## Intro

`ChatCode CLI Chat Import` imports conversation history with full context from other agents, turning it into a seamlessly resumable ChatCode CLI session.

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

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

## Install

```bash
chatcode-cli plugin --profile web add @chatcode/cco-chat-import          # npm package
chatcode-cli plugin --profile web add -w link:/path/to/dsh-chat-import   # local checkout (symlink)
```

## Usage

### Startup auto import

On the first ChatCode CLI startup after installing the plugin, existing ChatCode CLI history is scanned and imported automatically. The lower-left sidebar shows the scan state, then `completed / total` while importing, followed by the total, successful, failed, and skipped counts for five seconds. Later startups do not rescan when `imports.json` already exists.

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.

Claude Code imports exclude complete, known CLI-injected tag-wrapped records (such as command context and system reminders) from user turns.

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

3. **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.

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

## Companion tool: config migration

Only need to migrate **configuration** (skills, hooks, global settings) rather than conversation history? [dsh-movein](https://github.com/sjh9714/dsh-movein) handles config migration and complements this plugin -- ChatCode CLI Chat Import only handles conversation history, and each tool works standalone. Its first-migration guide ([中文](https://github.com/sjh9714/dsh-movein/blob/main/docs/first-migration.zh.md)) 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 ChatCode CLI skills); for full config migration (hooks, permission rules, settings), use dsh-movein.

## Features

| Capability | Entry points | Description |
| --- | --- | --- |
| Batch import | `import_chat` (19 formats) · `scan_discover` · sidebar panel | Import 18+ 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 ChatCode CLI sessions back to Claude / Codex / Kimi |
| Bidirectional sync | panel "Sync" tab | Incremental sync in both directions (external ↔ ChatCode CLI), off by default |

## Docs

| Document | Description |
| --- | --- |
| [Usage Reference](docs/USAGE.md) | Full parameters, examples and edge cases for every tool / command |
| [Interchange protocol](docs/INTERCHANGE.md) | Interchange v1 protocol and bundle format |
| [Changelog](CHANGELOG.md) | Version history |
| [Roadmap](ROADMAP.md) | Shipped / planned |
| [Contributing](CONTRIBUTING.md) | Development setup, commit rules, security & privacy |

## Star History

[![Star History Chart](https://api.star-history.com/chart?repos=Nwflower/dsh-chat-import&type=date&legend=top-left&sealed_token=sAq09Z4DmwD843pzhg7azZtfXs8zW_Xij3fvCo3Ns1BGAgNeP_Zl1xU9YiUacS74_EzDXKHFpW3Bfj13ClcEMRzAhh4mVrl4a20ijURAGU_Oz6RROQYDYw)](https://www.star-history.com/?type=date&repos=Nwflower%2Fdsh-chat-import)
