dsh-codex-migrate
Migrate Codex CLI conversations / MCP servers / memories into DeepSeek Harness | 把 Codex CLI 的对话、MCP、记忆迁移到 DeepSeek Harness
Install / Use
claude mcp add polarskicpl -- npx -y github:polarskicpl/dsh-codex-migrateIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of dsh-codex-migrate
dsh-codex-migrate scores 83/100 on our quality scale, 3016th of 4,629 Development & Engineering skills we index.
Its MCP Server is 10 KB long, well organised into 17 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 41 days ago, so dsh-codex-migrate is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
dsh-codex-migrate compared with similar skills
All 4 of these similar skills score higher than dsh-codex-migrate; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| dsh-codex-migrate (this skill)by polarskicpl | 83 | 10 | 41d ago | MCP Server |
| taste-skillby Leonxlnx | 100 | 109.6k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 108.5k | 3d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.8k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 69.4k | today | CLAUDE.md |
Frequently asked questions
- How do I install dsh-codex-migrate?
- Run
claude mcp add polarskicpl -- npx -y github:polarskicpl/dsh-codex-migrate. The install tabs above show the steps for each supported agent. - Which AI agents does dsh-codex-migrate work with?
- It is written for Claude Code, Claude Desktop and OpenAI Codex, as a MCP Server file. Other agents that read the same format can often use it too.
- Is dsh-codex-migrate safe to use?
- It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is dsh-codex-migrate still maintained?
- The repository was last updated 41 days ago, so dsh-codex-migrate is actively maintained.
Skill content
View source on GitHubdsh-codex-migrate
<div align="center"> <a href="https://github.com/polarskicpl/dsh-codex-migrate"><img src="https://raw.githubusercontent.com/polarskicpl/dsh-codex-migrate/main/images/banner.webp" alt="dsh-codex-migrate banner" width="520"></a> <p><strong>Predictable one-way structured migration between Codex and DeepSeek Harness</strong></p> <p>English · <a href="./README.zh.md">中文</a></p> </div>Version 2.0 turns the plugin into a two-sided migration bridge. Import Codex tasks into DSH, or move one DSH conversation—or every active conversation in a project—into Codex. Every action is an explicit one-time import; the source conversation is never modified later by background synchronization.
v2.0.4 compatibility update
dsh-codex-migrate@2.0.4 carries the compatibility fixes introduced in v2.0.3 and is verified with the public npm @deepseek-ai/dsh@0.1.5-rc.2 (latest as checked on 2026-09-23). Those fixes address DSH's newer session persistence and Web client modules:
- Codex → DSH: write valid Session V3 events through the lifecycle-scoped
SessionHandleAPI, including flush/close, with a fallback for older persistence services. - DSH Web UI: update the client injection graph, use the active conversation's session ID for “Continue in Codex,” and keep large-history scans responsive with bounded metadata reads and asynchronous transcript reads.
- DSH → Codex: open the imported task through the host operating system when a browser blocks
codex://navigation, while retaining browser navigation as a fallback.
The npm next and alpha DSH channels are not claimed as supported by this release. See the changelog for the release history.
What's new in v2.0
- Two-way one-shot imports: Codex → DSH and DSH → Codex both convert history into the target's structured conversation format instead of flattening everything into plain text.
- Continue in Codex: a native Codex action below DSH assistant replies imports the current conversation and opens the new Codex task.
- Continue in DSH: the bundled MCP server and
continue-in-dshSkill let a Codex user say “Continue in DSH” to import and open the current task in DSH. - Batch migration by project: import every unarchived conversation in a DSH project in one operation while preserving the original workspace path.
- Project-less Codex tasks: conversations without a Codex project are imported into the canonical
(no project)/codex-unprojectedworkspace. - MCP memory Beta:
remember_memory,search_memory, andforget_memoryprovide local persistent memories with global, project, and conversation scopes. - Three memory sources: independently import Codex Markdown memory, bridge MCP memory, and Memory Skill storage.
- Faster inventory refreshes: an incremental cache reparses only new or changed files and isolates corrupted sessions.
- Refined UI: simplified cards and lists, fixed live language switching, and consistent actions, badges, spacing, and dark/light styling.
Entry points
The Codex icon appears beside DSH's native copy and feedback actions:
<div align="center"> <img src="https://raw.githubusercontent.com/polarskicpl/dsh-codex-migrate/main/images/continue-in-codex-action.png" alt="Continue in Codex action in DSH" width="300"> </div>- Select the Codex icon to import one DSH conversation and navigate to Codex.
- Open Settings → Codex Migration → Batch Migration by Project to import every unarchived conversation in a project.
- Say “Continue in DSH” in Codex to import the current Codex task and navigate to DSH.
Version 2.0 intentionally does not provide shared conversations, background bidirectional sync, conflict merging, or a Codex inline monitor. Each import is inspectable, repeatable, and cannot silently rewrite the same history on both sides.
Installation: configure both sides
The complete experience has two local components:
| Component | Installed in | Purpose |
| --- | --- | --- |
| dsh-codex-migrate | DSH | Reads, converts, and creates DSH/Codex conversations; hosts the loopback-only handoff service |
| dsh-codex-bridge MCP + Skill | Codex | Provides “Continue in DSH,” MCP memory tools, and the trigger workflow |
The DSH plugin alone supports settings-page imports and DSH → Codex actions. Install the Codex companion as well to start imports from Codex or use MCP memory.
Requirements
- A working DeepSeek Harness installation.
- Codex desktop, Codex CLI, or the Codex IDE extension.
nodeavailable in the terminal; Node.js 18 or newer is recommended.- Commands below use the DSH
webprofile. Replacewebif you use another profile.
Step 1: install the DSH plugin
First installation:
dsh plugin --profile web add dsh-codex-migrate
Upgrade from an earlier version:
dsh plugin --profile web update dsh-codex-migrate
Restart DSH, then open Settings → Codex Migration. You should see Imported Conversations, Batch Migration by Project, and Memory Import.
Step 2: get the Codex companion
The MCP server and Skill are bundled in this repository, so keep the cloned directory available locally:
git clone https://github.com/polarskicpl/dsh-codex-migrate.git
cd dsh-codex-migrate
If you already cloned the repository, update it with git pull.
Step 3: register the MCP server in Codex
Windows PowerShell:
$bridge = (Resolve-Path ".\codex\dsh-codex-bridge\mcp\server.mjs").Path
codex mcp add dshCodexBridge -- node $bridge --stdio
macOS / Linux:
bridge="$(pwd)/codex/dsh-codex-bridge/mcp/server.mjs"
codex mcp add dshCodexBridge -- node "$bridge" --stdio
If the same MCP name is already registered with an old path, run this first and then repeat the add command:
codex mcp remove dshCodexBridge
Verify the registration:
codex mcp list
Codex also supports direct ~/.codex/config.toml configuration, but the CLI avoids path and TOML escaping mistakes. See the official Codex MCP documentation.
Step 4: install the continue-in-dsh Skill
Windows PowerShell:
$skills = Join-Path $HOME ".agents\skills"
New-Item -ItemType Directory -Force -Path $skills | Out-Null
Copy-Item -Recurse -Force ".\codex\dsh-codex-bridge\skills\continue-in-dsh" $skills
macOS / Linux:
mkdir -p ~/.agents/skills
cp -R ./codex/dsh-codex-bridge/skills/continue-in-dsh ~/.agents/skills/
Codex discovers user skills in ~/.agents/skills. Restart Codex if an updated skill does not appear immediately. See the official Codex Skill documentation.
Step 5: restart and verify
- Start DSH with the migration plugin enabled.
- Restart Codex and confirm that
dshCodexBridgeis connected in/mcp. - Confirm that
continue-in-dshappears in/skills. - Create a test Codex task and enter:
Continue in DSH. - DSH should open the imported conversation. The Agent confirms with:
已同步对话到 DSH。
The MCP server exposes four tools:
| Tool | Purpose |
| --- | --- |
| continue_in_dsh | Import the current Codex task once and open DSH |
| remember_memory | Save a local persistent memory |
| search_memory | Search memories in one scope |
| forget_memory | Delete a memory by ID |
Quick MCP memory Beta test
- In one Codex task, ask:
Use DSH MCP to remember that my test code is ocean-blue-728. - Open another Codex task and ask:
Search DSH MCP memory and tell me my test code. - After it returns
ocean-blue-728, ask it to forget that memory.
Memories are stored locally at ~/.codex/dsh-codex-bridge/memory.jsonl. They are not uploaded by this plugin and do not re-enable shared conversations.
Migrated content
| Content | Codex → DSH | DSH → Codex |
| --- | :---: | :---: |
| User and assistant messages | ✓ | ✓ |
| Tool calls and tool results | ✓ | ✓ |
| Latest regenerated assistant reply | ✓ | ✓ |
| One conversation | ✓ | ✓ |
| Project-less conversations | ✓ | — |
| Batch import by project | ✓ | ✓ |
| AGENTS.md and project text files | Optional | — |
| Codex / MCP / Memory Skill memories | Optional | — |
DSH → Codex uses Codex's supported external-agent session import path. Every task in a project batch receives the same original working directory, while Codex remains responsible for sidebar organization.
Loading performance
The first refresh scans existing Codex sessions. Later refreshes reuse a size + mtime + hash incremental cache and parse only new or changed JSONL files. Removed files are dropped from the cache and corrupted files are isolated.
The cache lives under inventory/ in the migration output directory. Removing it only causes one full rebuild; it does not delete source conversations.
Key configuration
| Key | Default | Meaning |
| --- | --- | --- |
| codexDir | '' | Codex data directory; empty auto-detects ~/.codex |
| outputDir | '' | Migration output; empty uses <DSH_HOME>/codex-sync |
| language | en | en, zh, or auto to follow the UI locale |
| sessionMode | new | all, new, or selected |
| projectMode | all | all or selected |
| includeMemories | true | Import Codex Markdown memory |
| includeMcpMemories | true | Import bridge MCP persistent memory (Beta) |
| includeMemorySkill | true | Import Memory Skill storage |
| importAsDshSessions | true | Create native DSH sidebar conversations |
| bridgeEnabled | true | Enable the loopback-only one-shot handoff service |
Security boundary
- The DSH handoff service binds only to
127.0.0.1. - Mutations require a generated installation token; the token is never stored in this repository.
- Disabling the DSH plugin also stops the handoff service.
- MCP memory stays local and does not automatically send raw project files or complete conversations to third-party services.
- The plugin writes only to the configured
outputDir, DSH session storage, and the local MCP memory file.
Development and release checks
npm run build
npm test
npm run test:bridge
npm pack --dry-run
See CHANGELOG.md for release history.
MIT
Related Skills
taste-skill
109.6kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
108.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
78.8kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
69.4kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
