Skip to content

dsh-import-from-agents

Verified

dsh-import-from-agents Β· v0.1.0-rc.1 Β· MIT

Import MCP servers and skills from other agent CLIs (Claude Code first) into a DeepSeek Harness profile.

Install

dsh plugin add dsh-import-from-agents

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-import-agents

Import MCP servers and skills from Claude Code and Codex into a DeepSeek Harness profile β€” one command at a time, with full preview and explicit user control.

Overview

DSH shares the ~/.agents/skills convention with other agents, but does not read agent-specific MCP configurations. This plugin bridges that gap:

  • MCP servers are translated from Claude Code (~/.claude.json), project-level .mcp.json, and Codex (~/.codex/config.toml) into dsh-mcp-client plugin rows written to a managed section of the profile's cordis.patch.yml. HMR applies them without a restart.
  • Skills are mapped from ~/.claude/skills into ~/.dsh/skills (or a project-level .dsh/skills) via NTFS junctions or directory copies, with diff preview and granular selection.

Every operation is two-phase β€” preview first, then apply β€” so you always see what will happen before it happens.

Commands

MCP servers

/import-agents preview

Scans all configured sources (Claude global, project .mcp.json, Codex), merges them (later sources override earlier ones for the same server name), and lists every importable server with its transport, endpoint, and source annotation.

Each line is tagged:

  • [OK] β€” importable, with source label ([global], [project], [codex])
  • [SKIP] β€” unsupported transport (SSE) or missing command/URL, with reason
  • [WARN] β€” credential values replaced by process.env.* references
/import-agents apply all
/import-agents apply context7 gitnexus

Writes the selected rows into the profile's cordis.patch.yml inside a managed section delimited by # ── managed by dsh-import-agents ── markers. Everything outside that section is never touched. DSH hot-reloads the patch; each imported server connects through @deepseek-ai/dsh-mcp-client.

All generated rows carry failOnStartupError: false β€” a server that cannot connect does not block profile startup.

Skills

/import-agents skills

Compares ~/.claude/skills (source) against ~/.dsh/skills (target) and shows the diff. Each existing skill is counted as either a junction or a copy. The output includes a guided prompt for the next step:

Source: C:\Users\...\.claude\skills (33 skill(s))
Target: C:\Users\...\.dsh\skills (25 skill(s) β€” 25 junctions, 0 copies)
Scope: global  |  Method: junction (link)

[MISS] context7-mcp
[MISS] gitnexus-cli
...

Reply with your choices:
  scope:  global | project
  method: junction | copy
  skip:   <name> <name> ...
/import-agents skills apply --scope global --method junction --skip context7-mcp

Creates junctions (or copies) for missing skills into the target directory. Flags:

Flag Values Default Description
--scope global, project global Target: ~/.dsh/skills or <cwd>/.dsh/skills
--method junction, copy junction Junction (live link) or independent copy
--skip <name>... β€” Skill names to exclude
--only <name>... β€” Only import these (mutually exclusive with --skip)

Supported sources

Source Config location MCP Skills
Claude Code (global) ~/.claude.json β†’ mcpServers βœ… βœ…
Claude Code (project) <project>/.mcp.json β†’ mcpServers βœ… β€”
Codex ~/.codex/config.toml β†’ [mcp_servers.*] βœ… β€”
~/.agents/skills Shared convention β€” Read natively by DSH

Install

dsh plugin --profile web add dsh-import-from-agents

The bundle manifest auto-registers the plugin β€” no manual patch editing needed.

Security

  • Zero network access. This plugin never makes outbound requests. It reads local config files and writes to one local file.
  • Credentials are never inlined. Environment variable values and HTTP headers that match secret-shaped patterns (token, secret, key, auth, password) are replaced with !!js process.env.* references in the generated patch. Set those variables yourself.
  • Managed section. The only file this plugin writes is the managed section of your profile's cordis.patch.yml. Everything outside the BEGIN/END markers is preserved byte-for-byte. The file is validated as valid YAML before every write.

Limitations

  • SSE transport is not supported by dsh-mcp-client and is skipped with a warning. Future versions may probe for a streamable-http endpoint at the same host.
  • Project-level MCP servers are written to the global profile patch. DSH has project-level skill directories (<project>/.dsh/skills) but its cordis patch files are profile-level only.
  • Skills are mapped from ~/.claude/skills only. Other agent skill directories can be added as sources in future releases.

Development

Node β‰₯ 22, npm or pnpm.

npm install
npm run build        # compiles src/ β†’ lib/ with tsc

@deepseek-ai/* packages are peer dependencies with explicit prerelease ranges so 0.1.0-rc.* harness builds resolve correctly.