sandbase-harness
sandbaseai
Local-first, self-hosted AI agent runtime and MCP bridge with sandboxed sessions, memory, credentials, audit/replay, and a local Console.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:MayBeTheWorld/dsh-inherit
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
Import agent settings into DeepSeek Harness — one-click migration of MCP servers and Skills from Claude Code / Cursor / Codex / cc-switch into DSH, from a row inside Settings → General → 导入智能体设置.
Developer preview (0.1.0). Community plugin, MIT licensed, not affiliated with DeepSeek.
Codex CLI ships an /import that pulls Claude Code / Cursor config into Codex. DSH had no equivalent. This plugin fills that gap with a General-settings row that opens a centered modal: pick which agents to import (right-side toggle switches, ON = highlighted, OFF = greyed out), expand a source to tick categories, preview first, confirm to write.
~/.claude, ~/.cursor, ~/.codex and cc-switch (~/.cc-switch/cc-switch.db via Node's built-in sqlite) and reports what each one carries.CLAUDE.md/AGENTS.md; memory is injected by capability-matched community plugins — capability detection, never hard-coded plugin names).@deepseek-ai/dsh-mcp-client rows in the profile's cordis.patch.yml (works with no manager plugin, Hanihahaha-style UI plugins, and future official UIs); ~/.dsh/mcp.json (zebbkira-style UI) is the auto-detected alternative target.~/.dsh/skills — SKILL.md directories copied (idempotent, skips existing)..bak-<timestamp> before modification.| Source | MCP | Skills | Instructions | Providers | Memory | Sessions |
|---|---|---|---|---|---|---|
| Claude Code | ✅ | ✅ | ℹ️ native-read | — | ℹ️ by bridge plugin | ⛔ |
| Cursor | ✅ | ✅ | ℹ️ | — | ℹ️ | ⛔ |
| Codex | ✅ (TOML) | ✅ | ℹ️ native-read | — | ℹ️ | ⛔ |
| cc-switch | ✅ (sqlite) | ✅ | — | ℹ️ by switch plugin | ℹ️ | ⛔ |
# from npm (once published)
dsh plugin --profile web add dsh-inherit
# or from a local checkout
dsh plugin --profile web add "D:\path\to\dsh-inherit"
Then open Settings → General → 导入智能体设置.
The package declares dsh.bundle.patch + dsh.client, so dsh plugin add reconciles it into the profile's dsh.profile.bundles layer and serves the browser half at /plugins/dsh-inherit/client.js. New bundles hot-mount after a short delay; host module code changes need a dsh web restart.
dual-face plugin (one bundle row + dsh.client declaration)
├─ lib/index.js host half — /api/dsh-inherit/sources + /api/dsh-inherit/run (loopback-only guard)
├─ lib/import.js pure logic — source scan, multi-format parsing (mcpServers JSON, Codex TOML,
│ cc-switch sqlite), MCP→patch / Skills→~/.dsh/skills
└─ lib/client.js browser half — settings.general.item row → centered Modal → toggle cards →
category checkboxes → preview → confirm
Routes are loopback-only; every write is preceded by a .bak backup; imports are idempotent (same-name servers/skills skipped).
doctor + restore, credential-safe ${VAR} → !!js process.env.VAR. Claude-Code-focused.This plugin differentiates on: General-settings row placement, multi-source toggles, cc-switch sqlite source (providers/MCP/skills/prompts — nobody else reads it), Skills copy, and capability-based plugin detection. It does not (yet) migrate hooks, slash commands, or sessions — pair with dsh-claude-move / dsh-chat-import for those.
cordis.patch.yml / ~/.dsh/mcp.json; mind file permissions. ${VAR} refs are not yet converted to !!js process.env.VAR (unlike dsh-movein) — watch for that in your sources.[A-Za-z0-9_-]{1,32} and be globally unique; sse/ws MCP transports are skipped with a warning.doctor / restore command yet — rollback is manual via the .bak files.react and the slots client service.node --check lib/import.js && node --check lib/index.js && node --check lib/client.js
# source scan + dry-run import (no writes):
node --experimental-sqlite -e "
import('./lib/import.js').then(m => {
console.log(JSON.stringify(m.detectSources(), null, 1).slice(0, 2000))
console.log(JSON.stringify(m.runImport([{source:'claude-code',categories:['mcp']}],{target:'patch',dryRun:true}), null, 1).slice(0, 800))
})"
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: migration。