dsh-codex-sync MCP server
Commit Oct 5, 2026Synchronizes chat histories, custom skills, and MCP server configurations bidirectionally between OpenAI Codex and DeepSeek Harness.
Also known as Walvez/dsh-codex-sync
- Stars
- 30
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- —
- Last commit
- Oct 5, 2026
- License
- MIT
What is dsh-codex-sync MCP?
dsh-codex-sync synchronizes chat histories, custom skills, and MCP server configurations bidirectionally between OpenAI Codex and DeepSeek Harness.
Summary generated from the project's README
About dsh-codex-sync MCP server
Developers working across OpenAI Codex and DeepSeek Harness can maintain a unified workflow using this bidirectional bridge. It synchronizes project chat histories, custom skills, and MCP server configurations between the two environments to prevent configuration drift and lost context. By mounting skills from ~/.codex/skills directly into the DeepSeek Harness catalog, it allows for live updates without requiring a restart.
The tool provides automated MCP mirroring by watching the ~/.codex/config.toml file and dynamically reflecting server settings. It also includes a reverse bridge that can be installed in Codex via a single command to allow the agent to search and install DeepSeek plugins. Users manage these connections through a native UI modal in the DeepSeek sidebar, which includes controls for importing conversations, exporting chats, and repairing session logs. This setup ensures that reasoning traces, tool calls, and workspace-specific contexts remain consistent regardless of which interface is being used.
What you can do with it
- 1Sync chat histories between platformsAn AI client can import existing Codex conversations into DeepSeek Harness while preserving prompts, assistant outputs, and tool-call trajectories.
- 2Mirror MCP server configurationsA developer can automatically sync their Codex MCP toolchain to DeepSeek Harness by watching the local configuration file.
- 3Repair corrupted session logsIf switching models causes errors in imported chats, you can use a repair command to fix sequence gaps and missing markers.
Written from the project's README. Every use case is checked against a quote from it.
How to install dsh-codex-sync MCP
Formats verified 10 Nov 2026Install dsh-codex-sync MCP in Claude Code
$ claude mcp add dsh-codex-sync -- npx -y dsh-codex-syncInstall dsh-codex-sync MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"dsh-codex-sync": {
"command": "npx",
"args": [
"-y",
"dsh-codex-sync"
]
}
}
}Install dsh-codex-sync MCP in VS Code
.vscode/mcp.json
{
"servers": {
"dsh-codex-sync": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dsh-codex-sync"
]
}
}
}Install dsh-codex-sync MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"dsh-codex-sync": {
"command": "npx",
"args": [
"-y",
"dsh-codex-sync"
]
}
}
}Install dsh-codex-sync MCP in Codex
~/.codex/config.toml
[mcp_servers.dsh-codex-sync] command = "npx" args = ["-y", "dsh-codex-sync"]
Install dsh-codex-sync MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"dsh-codex-sync": {
"command": "npx",
"args": [
"-y",
"dsh-codex-sync"
]
}
}
}Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work
- Source repository linked and reachablewalvez/dsh-codex-sync is public and reachablegithub.com/walvez/dsh-codex-sync ↗Pass
- Package names this repository as its sourcedsh-codex-sync names walvez/dsh-codex-sync as sourcenpmjs.com/package/dsh-codex-sync ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-10-05github.com/walvez/dsh-codex-sync ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from dsh-codex-syncPass
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHub⚡ dsh-codex-sync
Two-way Codex↔DSH bridge: skills from ~/.codex/skills, session import with workspace attach, live MCP mirroring of mcp_servers, and a Codex-side reverse MCP installer.
2-way project chat sync · Live Skills mount · Auto MCP mirroring · Native modern UI
🤔 Why dsh-codex-sync?
When using OpenAI Codex, developers build up significant workflow assets:
- Rich project chat histories with complete code contexts, architecture decisions, and debugging steps;
- Custom Skills libraries under
~/.codex/skillswith tailored instructions and scripts; - Configured MCP toolchains for databases, web searches, and browser automation.
When adopting or exploring DeepSeek Harness (DSH), developers typically face major friction:
- Lost conversation history: Incompatible session formats prevent resuming past Codex tasks in DSH;
- Configuration duplication and drift: Skills and MCP servers must be manually recreated and maintained in two separate tools;
- One-way dead ends: Most migration scripts are one-time destructive copies that offer no clean way to safely bring DSH continuations back to Codex.
dsh-codex-sync eliminates this friction completely. It is not a throwaway migrator, but a production-grade, continuous two-way bridge between Codex and DSH.
✨ Key Highlights
1. 💬 Two-Way Safe Project Chat Portability (Codex ⇄ DSH)
- Import from Codex:
- Browse conversations grouped by workspace folder in an intuitive project tree;
- Preserves user prompts, assistant outputs, reasoning traces, and tool-call trajectories;
- Automatically attaches imported sessions to matching workspaces for seamless continuation;
- Incremental re-import: Codex conversations continued after the initial import are marked as
updatedand append only new turns without creating duplicate sessions.
- Export to Codex:
- Export DSH native conversations or continuations back into Codex;
- Automatically matches Codex's workspace catalog, gracefully locking unknown directories to prevent orphan threads;
- Creates clean, standalone Codex rollouts (
history_mode: legacy) and SQLite index entries without modifying or overwriting original Codex histories; - View and continue chats in Codex immediately after restarting the Codex app.
- Sub-Agent Thread Filtering:
- Hides internal sub-agent threads by default to keep the conversation list focused;
- Easily expand and nest sub-agents under parent threads for selective, independent export.
2. ⚡ Live First-Class Skills Mounting
- Mounts
~/.codex/skills/*/SKILL.mddirectly into DSH's native skill catalog; - Full support for nested directory resources and multi-file skill bundles;
- Zero-restart updates: Edit a skill file on disk, and DSH recognizes the change on the next turn.
3. 🔌 Automated Bidirectional MCP Mirroring
- Codex → DSH: Watches
~/.codex/config.tomllive, dynamically mirroring[mcp_servers.*]to DSH with conflict avoidance and stderr silencing; - DSH → Codex (Reverse Bridge): Single-command setup (
npx dsh-codex-sync codex-install) equips your Codex agent with tools to search, inspect, and install DSH plugins.
4. 🎨 Native Modern UI Experience
- Adaptive Sidebar Trigger: Sits right beside the workspace header when expanded, and aligns below the search button when collapsed;
- Centered Modal Panel: High-contrast, backdrop-blurred settings card with intuitive action cards, real-time switch feedback, and zero UI cutoff;
- Polished Design Integration: Uses native DSH design tokens (
--dsw-alias-*), pure CSS transitions with zero hover artifacts, and responsive text truncation.
📦 Quick Start
1. Install in DSH
Install via DSH Plugin Market (recommended):
dsh plugin --profile web add dsh-codex-sync
Or configure inside your profile's cordis.patch.yml:
- insert:
- id: codex-sync
name: dsh-codex-sync
config:
maxSkills: 30
mcpMirrorDeny:
- node_repl
mcpMirrorSilent:
- exa
2. Configure Codex Reverse MCP Bridge (Optional)
# Register [mcp_servers.dsh-plugins] in ~/.codex/config.toml
npx dsh-codex-sync codex-install
# Run diagnostic health check
dsh-codex-sync doctor
🎛️ Sync Settings & Toggles
Click the Codex Icon in the sidebar to open the centered control modal:
| Section | Item | Command / Config Key | Description |
|---|---|---|---|
| Actions | Import from Codex | /import-all |
Open project picker to import chats into DSH |
| Export to Codex | /export-codex |
Export DSH chats into new Codex conversation copies | |
| Repair sessions¹ | /repair-sessions [--fix] |
Scan stored session logs for replay damage and heal them in place (see below) | |
| Mirror status | /mcp-status |
Modal overview of MCP servers, health, and statuses | |
| Refresh states | /codex-settings |
Re-sync all switch states from the host | |
| Features | Import commands | enableImport |
Enable /import-codex slash command family |
| Auto import | autoImport |
Automatically import new Codex chats on startup | |
| Instructions | enableInstructions |
Inject instructions.md / AGENTS.md into prompt |
|
| Config summary | enableConfig |
Inject config.toml model settings summary into prompt |
|
| Skills | enableSkills |
Register ~/.codex/skills as live DSH skills |
|
| MCP mirror | mcpMirror |
Auto-mirror [mcp_servers.*] (applies immediately) |
|
| Language | Language Switcher | Language |
Toggle between 简体中文 / English |
¹ A subtle hint at the bottom-left of the settings modal links imported-chat errors to this command.
🩺 Troubleshooting: token meter / replay errors on imported chats
Symptom — switching the model or running compaction on an (imported) conversation fails with:
command.execute failed: internal: token meter: assistant/message at seq N has no matching step/start event
corrupt session log: seq gap in committed region at line L
Why — DSH's token meter validates the whole event log via cold replay when the model changes (provider usage anchors become invalid). Logs written before v1.6.0 lacked paired step/start…step/end markers, and mixed logs can carry stale seq citations — both fail loud only during that replay.
Fix — run this in any DSH chat (or dsh-codex-sync repair-sessions --fix in a terminal):
/repair-sessions --fix
The repair merges seams, inserts missing step markers, remaps citations, renumbers sequences, validates every candidate with the real @deepseek-ai/dsh-token-meter, and keeps a .bak next to each repaired log. Imports created by v1.6.0+ are replay-safe by construction, so this should never trigger again.
🤖 Built-in Agent Skill (codex-sync)
This package bundles a first-class codex-sync skill. Your DSH AI Agent can operate synchronization tasks on your behalf:
- "Dry-run importing my Codex conversations" → runs
/import-codex --dry-run - "Check current MCP mirror status" → runs
/mcp-status - "Turn on auto-import" → runs
/auto-import on
📄 License
MIT License © 2026 Walvez
dsh-codex-sync MCP questions
How do I add dsh-codex-sync MCP to Claude Code?
Run claude mcp add dsh-codex-sync -- npx -y dsh-codex-sync in your terminal. Add --scope user to make it available in every project.
How do I add dsh-codex-sync MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What should I do if I encounter token meter or replay errors on imported chats?
You can run the /repair-sessions --fix command within a DSH chat to heal session logs and fix sequence gaps.