SkillAgentSearch skills...

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-migrate

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

83/100

Supported Platforms

Claude Code
Claude Desktop
OpenAI Codex

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.

Substance
29/30
Structure
20/20
Description
15/15
Adoption
4/20
Freshness
15/15

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.

SkillScoreStarsUpdatedFormat
dsh-codex-migrate (this skill)by polarskicpl831041d agoMCP Server
taste-skillby Leonxlnx100109.6ktodayCLAUDE.md
Agent-Reachby Panniantong100108.5k3d agoCLAUDE.md
headroomby headroomlabs-ai10078.8ktodayCLAUDE.md
ai-job-searchby ai-job-search-dev10069.4ktodayCLAUDE.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.

dsh-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 SessionHandle API, 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-dsh Skill 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-unprojected workspace.
  • MCP memory Beta: remember_memory, search_memory, and forget_memory provide 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.
  • node available in the terminal; Node.js 18 or newer is recommended.
  • Commands below use the DSH web profile. Replace web if 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

  1. Start DSH with the migration plugin enabled.
  2. Restart Codex and confirm that dshCodexBridge is connected in /mcp.
  3. Confirm that continue-in-dsh appears in /skills.
  4. Create a test Codex task and enter: Continue in DSH.
  5. 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

  1. In one Codex task, ask: Use DSH MCP to remember that my test code is ocean-blue-728.
  2. Open another Codex task and ask: Search DSH MCP memory and tell me my test code.
  3. 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

View on GitHub
GitHub Stars10
CategoryDevelopment
Updated1mo ago
Forks2

Languages

JavaScript

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info