DeepSeek Harness Hub
← 返回列表

开箱即用发行版amplifthq/oh-my-dsh

DeepSeek Harnessspec-screened需联网在 GitHub 查看 ↗
✓ 可直接安装

一键装好精选配置,直接开始编码任务

自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node ^22.19.0 || >=24.0.0);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/5 · 已提供中文文档

DeepSeek Harness 的精选发行版。是叠加层,不是分支。

综合分
38.7
GitHub 分
38.7
用户评分
★ Stars
14
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add oh-my-dsh
npm 包 oh-my-dsh 已校验归属本仓库,走 npm 安装最省事
数据截至 2026/9/6(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包oh-my-dsh @ 0.1.7
Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
dsh CLI 依赖要求 0.1.0-rc.8 · 最新 ? 兼容
入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/12 22:11:24

⚠ 该插件运行需访问外部网络 / 远程 API,部署在国内无外网环境时可能无法正常使用。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-fs@deepseek-ai/dsh-hooks-claude-code@deepseek-ai/dsh-hooks-codex@deepseek-ai/dsh-llm@deepseek-ai/dsh-lsp@deepseek-ai/dsh-lsp-stdio@deepseek-ai/dsh-mcp-client@deepseek-ai/dsh-sandbox
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

开箱即用的 DeepSeek Harness 精选发行版。
Overlay,不是 fork。

DeepSeek Harness 提供了优秀的插件框架和一套保守的参考组合。oh-my-dsh 把这些零件装成一台能直接工作的机器:正式 profile、惰性复用现有 MCP 配置、LSP 导航与可恢复语义改名、上游 @file 发现与带 anchor 的行范围快照、安全编辑、默认开启的 SSRF 加固网页抓取、可选 DAP 调试、通知、usage 汇总、持久代码 kernel,以及经审批把验证过的流程蒸馏成可复用技能的 skill forge。

它是原生精选发行版,不是 fork。上游“一切皆插件”的架构保持不变,每项默认选择都可以覆盖。

DeepSeek Harness 仍处于 developer preview。oh-my-dsh 会锁定经过验证的上游版本,不会静默追随破坏性升级。

快速开始

便携版发行包自带 Node.js 运行时和生产依赖闭包,支持 macOS arm64 和 Linux x64(glibc)。无需系统 Node.js、npm、pnpm 或 root 权限。CI 覆盖 Linux 与 macOS(Node 22、24)。原生 Windows 不受支持,请使用 WSL2。

便携版安装(推荐)

这条 URL 会始终跟随最新的非预发布 GitHub Release。不要把 raw git tag 写进安装器地址——tag 会过期,而 main 上的脚本也可能和已发布制品不一致。

curl -fsSL https://github.com/amplifthq/oh-my-dsh/releases/latest/download/install.sh | sh
omd setup
omd

引导脚本和归档来自同一次 latest release。要固定已发布版本,仍用这条安装器 URL,再设置 OMD_VERSION:

OMD_VERSION=v0.1.7 curl -fsSL https://github.com/amplifthq/oh-my-dsh/releases/latest/download/install.sh | sh

引导脚本安装到 ~/.local/share/oh-my-dsh/,链接 ~/.local/bin/omd,并在 PATH 不含系统 Node.js 的情况下运行健康检查。若 ~/.local/bin 不在 PATH 中,安装器会打印当前 shell 的 export 命令。

第一次 setup 可能需要几分钟。它会在 ~/.dsh/profiles/ 下安装两个隔离 profile:

- omd:交互式 Web UI。
- omd-headless:一次性终端任务。

手动归档安装

从最新 GitHub Release 下载平台 tarball、SHA256SUMS 和 release-manifest.json。校验 digest 后解压,运行包内 bin/omd setup。

在 macOS 上,浏览器下载的归档可能带有 quarantine 属性,Gatekeeper 会阻止运行。运行前清除:

xattr -dr com.apple.quarantine oh-my-dsh--darwin-arm64.tar.gz

npm 安装(开发者)

npm 包面向开发者和组合场景,需要本机 Node.js ^22.19.0 或 >=24.0.0:

npm install --global oh-my-dsh
omd setup
omd

不想全局安装也可以使用:

npx oh-my-dsh@latest setup
npx oh-my-dsh@latest

Windows(WSL2)

没有原生 Windows 便携归档、安装器或 CI 任务。不要在 PowerShell 或 cmd.exe 里运行 install.sh。请使用带 glibc 的 WSL2 发行版(推荐 Ubuntu),在 Linux 环境里安装 linux-x64 便携包。

在提升权限的 PowerShell 中:

wsl --install

如系统要求则重启,然后打开 Ubuntu 终端,按便携版安装的命令执行。安装器会识别 Linux-x86_64 并下载 oh-my-dsh--linux-x64.tar.gz。

项目请放在 Linux 文件系统(~/...)。/mnt/c/ 更慢,而且可能破坏 profile 里基于符号链接的 node_modules。Web UI 使用 WSL 里打印的 localhost 地址;Windows 11 通常可以从宿主浏览器打开该回环地址。omd update、omd rollback 和 omd doctor --verify 也都在 WSL 内运行。

原生 Windows 上的 npm 安装尚未测试。若要尝试,仍需本机 Node.js ^22.19.0 或 >=24.0.0,且不能代替便携渠道。

两个渠道共享同一 OMD 版本和 Cordis 组合。只有 npm 和所有必需的便携版 artifact 都通过检查,release 才算完整。

发行渠道

| 渠道       | 受众                             | 运行时           | 安装方式                        |
| ---------- | -------------------------------- | ---------------- | ------------------------------- |
| 便携版 | 终端用户                         | 归档内嵌 Node.js | install.sh 引导或手动 tarball |
| npm    | 开发者、自定义 profile、下游组合 | 自备 Node.js     | npm install -g 或 npx       |

便携模式由内嵌 distribution.json 检测,不依赖环境变量。用户状态(~/.dsh/)在两个渠道间共享,但每个 profile 的 node_modules 同时只归一个渠道所有:便携版 setup 符号链接到不可变闭包;npm setup 用 npm 物化。两者都不会改动你的 cordis.patch.yml。

更新、回滚与校验

便携版安装支持前台更新和回滚,不会触碰用户数据:

omd update                  # 检查 stable 渠道、下载、校验并切换
omd rollback              # 切回保留的上一版本
omd doctor --verify       # 对照 distribution-files.json 校验当前版本每个文件

omd update 获取独占锁,校验 SHA-256 digest,运行健康检查,仅在验证通过后原子切换 current。它不会更新已在运行的进程,也不会在后台运行。已是最新版本时,成功退出且不改动任何内容。

omd rollback 在校验内嵌 distribution identity 后,将 current 切到保留的 previous 版本。被替换的版本成为新的回滚目标,因此回滚可逆。它不访问网络,也不修改 ~/.dsh/。

npm 或源码模式下,omd update 和 omd rollback 会说明版本管理应通过 npm 进行。

便携模式下 omd doctor 报告 distribution identity(版本、平台、上游 dsh pin、内嵌 Node.js)。加 --verify 时,对照内嵌 SHA-256 manifest 校验所选版本下的每个文件。

卸载

便携版卸载需手动执行:

rm -rf ~/.local/share/oh-my-dsh
rm ~/.local/bin/omd

~/.dsh/ 存放 profile、session、skill、锻造插件和 patch。OMD 在更新、回滚或卸载时从不删除它。

npm 卸载:

npm uninstall -g oh-my-dsh

能力分层

OMD 将每项能力归入四个层级之一:

| 层级                                 | 含义                                                       | 示例                                                                                        |
| ------------------------------------ | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Core(核心)                     | 随 artifact 发布,默认组合已启用                           | 上游 web/headless 运行时、OMD 一阶插件、proposal 控制、加固 web fetch、内置 language server |
| Bundled optional(随包可选)     | 在闭包中但保持惰性,需经审批路径显式激活                   | 精选插件库:dsh-skill-badge、dsh-pkg-info                                               |
| Curated integrations(精选集成) | 审查过的元数据、setup 指引或 skill;外部运行时不在 base 中 | browser-use CLI、Playwright MCP、Context7——需单独安装,有各自的网络行为                     |
| User growth(用户增长)          | 在不可变 base 之外;更新和回滚后保留                       | 用户 skill、Plugin Forge 产物、本地 MCP 定义、锻造插件、信任决策                            |

有外部前置条件的功能记为 curated integration,不称为「内置」或「开箱即用」。

你会得到什么

打开就能工作的 coding profile

- 默认使用 workspace-write + ask:保持效率,但不会静默获得完整主机权限。
- 同时提供原生工具和上游 Code Mode。
- 显式配置 compaction、timeout、instruction budget 和 coding persona。
- 网页抓取默认开启,走 SSRF 加固 provider——私有、回环、链路本地和云 metadata 地址在请求前和建连时双重拦截。
- 默认提供时区时间上下文、审批通知、长任务通知,以及"输入排队在运行中回合之后"的提示。
- 启动目录会自动注册为 workspace,Web UI 选择器直接从你所在的位置开始。
- 可通过 Web Models 页面使用上游多 provider 支持。

代码智能

内置 TypeScript/JavaScript、Python、JSON、HTML、CSS/SCSS/Less 和 YAML language server。PATH 中存在时,还会自动接入 rust-analyzer、gopls、clangd 和 sourcekit-lsp。

模型会获得上游只读 LSP 能力,用于 definition、references、implementation 和 hover。semantic_refactor 额外提供可预览的符号改名:language server 返回多文件 edit 后,OMD 会验证所有路径和文件版本、展示精确 proposal、在一次审批后应用,并请求 diagnostics。发布中途失败会回滚已写文件;回滚不完整时会保留私有恢复日志。

复用已有 agent 配置

oh-my-dsh 原地读取兼容配置,不会复制或改写原文件:

- AGENTS.md、CLAUDE.md、GEMINI.md、.cursorrules、always-on Cursor rules、Copilot instructions 和用户级 Claude/Codex 指令。
- 项目级和用户级 .dsh、.agents、.claude、.cursor、.codex skills。
- Claude、Cursor、Codex JSON/TOML 中的 MCP server;定义保持惰性,只有 session 显式激活时才启动。
- 上游支持的 Claude Code / Codex command hooks。
- Claude、Cursor、Codex 命令目录中的 Markdown commands。

项目 MCP、hooks 和导入 skills 只有在显式信任 Git 根目录后才会启用:

cd path/to/repository
omd trust add .

请先审查仓库。信任只会让项目定义进入目录;MCP 进程仍需单独创建激活 proposal 并审批。

惰性 MCP 能力控制

导入和预设 MCP server 在发现阶段不会启动进程、展开凭据或注入工具 schema。模型可以搜索 server 名和之前缓存的非敏感工具元数据,再创建激活 proposal。只有执行 proposal_control apply 才会为当前 agent session 启动该 server。

常用控制:

- /omd-mcp [query]:列出惰性与已激活 server,不会触发激活。
- mcp_control:列出、搜索,以及准备激活/停用 proposal。
- proposal_control:审批前展示命令或 URL path、脱敏后的参数、工作目录和配置来源,再应用或丢弃 proposal。
- 停用会 dispose 上游 MCP fiber 并移除对应工具。

精选插件库

plugin_control 把同一套 proposal 平面推进到 harness 本身。它先列出或查看审查过的 dsh 插件,再为当前 session 准备装载或卸载。发现和准备 proposal 时不会 import 插件包;只有你批准 proposal_control apply 后,系统才会核对已安装包的精确版本,以及审查过的 name/provide/inject manifest,然后 import 并通过 agent.ctx.plugin() 挂载。卸载调用 fiber.dispose(),由 Cordis 按逆序撤销插件注册的 effects。

这是 OMD 能授予的最高权限:插件激活后与 harness 同进程运行,拥有完整的环境变量、文件系统和网络权限。Proposal 会明确写出这一点。因此 v1 只能按 id 选择随包提供的 presets/plugins.json;任意 npm 包名、路径、URL 和运行时安装在接口里都不可表达。/omd-plugins 显示插件可用性和当前 session 状态。

精选插件库目前刻意只收两个通过审查的插件:

- dsh-skill-badge——提供 DeepSeek 官方署名技能;固定在审查过的 0.1.0-rc.8,只有经批准的 session 装载才会激活。
- dsh-pkg-info——提供只读的 pkg_info 工具,查询公开 npm / PyPI 元数据;固定在审查过的社区制品 0.1.1,目录记录其仓库、发布者、npm integrity 和源码 commit,并在审批前明确注册表网络访问(含默认重定向行为)及公开元数据暴露风险。

准入、拒绝证据和审查规则见《精选插件库策展规范》。

插件锻造

plugin_forge 是 skill forge 在能力轴上的对应物:Agent 可以为自己编写一个小型 dsh 插件(比如缺失的工具),把完整源码装进审批门控的 proposal。在你批准 proposal_control apply 之前不写盘、不挂载;批准后源码持久化到 $DSH_HOME/forged-plugins//(scope user)或 /.dsh/forged-plugins//(scope project),校验你审查过的 SHA-256 摘要,再经与精选插件库相同的控制器挂载。卸载走 Cordis effects 逆序撤销;prepare_load 可在之后的会话里按同一摘要重新挂载已锻造的版本;/omd-forged 列出锻造插件的版本、摘要、session 状态和已归属的调用次数。

选择压是记下来的,不是猜的:挂载之后,工具调用按 Cordis effect 标签(以及这次挂载里 schemas() 新出现的工具)归属到对应插件,并追加到该插件的 usage 日志。capability_search 会标出 forged 锻造插件;零命中搜索记入 $DSH_HOME/omd/capability-gaps.jsonl,给后续锻造、修订、退役一个方向。/omd-gaps 和 plugin_forge gaps 列出这些缺口。plugin_forge prepare_promote 组装一份给人审的 PR 草稿——当前源码、digest 历史、用量、缺口,以及满是 REPLACE_WITH_ 占位符的目录条目——写到该插件的 promotions/ 目录。当 eval_control 已挂载时,晋升还要求一条不 regress 的 compare mode=diff,以及一条 faithful 的 compare mode=ablate。运行时绝不写 presets/plugins.json。会话产物晋升进精选目录,仍然是一条 pull request。

静态纪律在 proposal 创建之前强制执行:只接受合法 ESM(V8 经 node --check 解析,不执行任何代码);静态 import 仅允许 @deepseek-ai/cordis 和 @deepseek-ai/dsh-tools;禁止动态 import() 和 require;源码 ≤ 32 KiB;必须导出 name 和 apply,挂载时与声明的 manifest 再次核对。import 白名单是为了审查清晰度,不是沙箱:进程内 JavaScript 无法被限制,注册工具的 execute 体仍能触及 globalThis、fetch 和 process。白名单保证每个模块依赖在审查时可见,但不限制运行时能力。锻造插件以 harness 的完整权限运行,而且这段代码是 Agent 在本次会话中写的——proposal 审查就是全部的信任决策,因此 proposal 携带完整源码、提取出的 import 清单、声明的预期 effects 和疑似密钥告警;commit 结果会把实际观测到的 Cordis effect 标签与声明并列展示。

能力发现平面

capability_search 是只读搜索入口,覆盖 tools、skills、斜杠命令、惰性/已激活 MCP server、精选 session 插件,以及 Agent 锻造插件。稳定引用形如 tool:bash、mcp:omd-playwright、plugin:dsh-skill-badge、plugin:forged/user/。锻造结果带 forged 标记,下一步走 plugin_forge 而不是 plugin_control。每条结果带状态、摘要、来源和精确下一步。发现平面从不启动 MCP 进程、从不 import 包、从不展开凭据、也从不创建 proposal。零命中搜索会记为能力缺口。人类侧对应命令是 /omd-capabilities [查询]。

评测工作流

eval_control 用机器断言给冻结的 harness 快照打分。四个动作:snapshot、run、compare、show。run 必须带明确的 snapshot_digest,从不推断当前会话。产物在 $DSH_HOME/omd/eval;show(可选 query)是文件系统通道,没有叙述性摘要。compare mode=diff 是晋升门禁;compare mode=ablate 是对单个 skill/plugin 的有无对照。eval 已挂载时,plugin_forge prepare_promote 要同时有不 regress 的 diff 和 faithful 的 ablate;用 skill_control prepare_save 更新已有 skill 也要一条 faithful ablate(首次写入仍是提案)。分数不读助手文本、LLM judge 或自评。Eval 不 apply proposal、不写目录、不挂载插件。/omd-eval 列出打包任务和最近 runs。这是环境。

优化器(只提议,不落地)

opt_control 在锁定动作集上做持久化 bandit:prepare_promote、prepare_forge、prepare_unload、prepare_save、noop。策略文件在 $DSH_HOME/omd/opt/policy.json。两个动作:suggest、show。suggest 用新的 eval_control compare 给上次提议记账,只观察已经过 eval 门禁的候选,然后返回一个臂和下一步工具调用。它从不 apply proposal、不编造插件源码或 skill 正文、也不写 presets/plugins.json。/omd-opt 读策略。选择和保留仍然是 proposal_control apply。

OMD 日用扩展

- @file 发现与范围 anchor:rc.8 的 Web 输入框会补全普通 @path 和 @"带空格的路径"。这类引用只保留路径,模型需要内容时再调用 read。追加 :start-end,例如 @path:12-40 或 @"带空格的路径":12-40,才会把该工作区范围显式注入同一个 model step;内容有大小上限,并渲染为 hash_edit 可直接使用的 anchor。两个 profile 都支持范围快照。
- hash_edit 使用逐行 anchor 和最终 filesystem version guard,安全替换多行内容。
- semantic_refactor 创建带版本保护、可恢复的多文件 LSP 改名事务。
- kernel 提供 session 级持久 JavaScript/Python 状态,并能回调 dsh 工具。
- 可选 advisor 使用第二个模型复核已完成的顶层回合。
- /usage 显示当前会话;omd usage 汇总已持久化会话。
- 默认关闭的 DAP 调试:debug_control 为 debugpy、lldb-dap 或自定义 stdio adapter 准备 launch/attach proposal;只有批准后的 apply 才会启动 adapter 和被调试进程。
- 默认关闭的精选 MCP 预设:memory、context7、playwright。
- Skill forge:skill_control prepare_save 把本次会话里真正执行并验证过的流程蒸馏成持久的 SKILL.md;/omd-distill [焦点] 会排入一个起草回合。Proposal 携带精确的写前/写后全文和疑似密钥告警;只有你批准 proposal_control apply 后才落盘——原子写入、路径包含性校验、并发修改守卫。scope project 写入 /.dsh/skills/(仅本仓库),scope user 写入 $DSH_HOME/skills/(所有项目)。上游 skill watcher 实时感知新文件,同一会话即可使用。上限:slug ≤ 41 字符、描述 ≤ 500 字符、正文 ≤ 32 KiB。
- 随包提供 review-changes、systematic-debugging、verify-before-done、browser-use-cli skills。
- 脚本式浏览器:随包的 browser-use-cli skill 让 Agent 通过普通 shell 工具把 Python 管道给经过审计的 browser-use CLI 来驱动真实浏览器,每次执行都走现有的命令审批。该 skill 默认使用一次性 profile 的隔离浏览器、强制关闭厂商遥测、禁止访问私网和云元数据地址;接管用户已登录的 Chrome 必须经过 Chrome 自身的授权弹窗。

常用命令

omd                              # 启动 Web UI
omd headless "修复失败的测试"     # 运行一个任务后退出
omd setup                        # 安装或升级两个 profiles
omd update                       # 便携版:检查 stable 渠道并安装新版本
omd rollback                     # 便携版:切回保留的上一版本
omd doctor [--verify]            # 安装状态;--verify 校验文件 digest(便携版)
omd config                       # 输出最终 Cordis 组合
omd usage                        # 汇总已保存会话的 token usage
omd preset list                  # 查看精选 MCP 预设
omd preset enable context7       # 将预设加入惰性 MCP 目录
omd trust add .                  # 信任当前仓库的项目集成
omd dsh --help                   # 直接调用底层 dsh CLI

配置

模型

在 Web Models 页面中配置 DeepSeek 或上游多 provider adapter。后者支持 OpenAI、Anthropic、Google、OpenRouter 和兼容网关。

搜索与抓取

搜索 provider 的选择顺序是:

1. DSH_WEB_SEARCH_PROVIDER
2. 存在 EXA_API_KEY 时使用 Exa
3. 存在 PERPLEXITY_API_KEY 时使用 Perplexity
4. DeepSeek search

HTTP fetch 默认开启,走 OMD 的加固 provider:IP 字面量和本地惯用域名在发出任何请求前就被拒绝,且每次 DNS 解析都会在建连时重新校验,重定向和 DNS rebinding 都无法触达回环、私有网段、链路本地或云 metadata 地址。上游自带的 provider 没有这层防护,这正是参考组合里 fetch 默认关闭的原因——OMD 选择补上防护而不是继承这份摩擦。(旧的 OMD_ENABLE_WEB_FETCH 开关已不再需要。)

OMD_DISABLE_WEB_FETCH=1 omd        # 彻底关闭 fetch 工具
OMD_WEB_FETCH_ALLOW_PRIVATE=1 omd  # 允许访问私有/内网地址(仅限可信网络)
DSH_WEB_FETCH_PROVIDER=http omd    # 显式退回上游无防护 provider

fetch 被关闭时,shell 里对公网 URL 的抓取(curl、wget、HTTPie)会转为审批提示,而不是静默绕过缺失的工具——这正是模型带着伪装浏览器 User-Agent 偷偷降级到 curl 的常见失败模式。对本地和私有地址的抓取(curl localhost:3000)永远不会被拦截。

Advisor

只有同时配置下面两个值后 advisor 才会启用:

export OMD_ADVISOR_PROVIDER=anthropic
export OMD_ADVISOR_MODEL=claude-fable-5
omd

每次复核都会增加延迟和一次额外模型调用。

调试

DAP 调试默认关闭:

OMD_ENABLE_DEBUG=1 omd

debug_control adapters 列出发现结果:debugpy(python3/python 可 import 时)、lldb-dap(PATH 上存在时),以及插件配置里的自定义 stdio adapter。launch 和 attach 只会返回 proposal;必须经用户批准的 proposal_control apply 才会启动 adapter 和被调试进程。批准后的 session 支持断点、单步、栈与变量查看,以及在被调试进程内求值表达式——该求值能力会写进审批文本。被调试程序和断点文件必须位于工作区内;runInTerminal 反向请求会被拒绝。

本地覆盖

修改 profile 自己的 cordis.patch.yml 可以覆盖该 profile;omd setup 会保留这些文件。$DSH_HOME/cordis.patch.yml 在所有 profile 之后应用,因此拥有最终优先级。

Proposal 与恢复生命周期

能力激活、debug launch/attach、技能保存和源码修改统一使用 prepare → inspect → approve → commit → verify。Proposal 只存在于当前 session,不能自行授权;应用时始终进入上游 approval service。

语义重构只接受纯文本 WorkspaceEdit。资源创建/删除/改名、server 主动发起的 workspace/applyEdit 和 workspace/executeCommand 都会被拒绝。恢复日志保存在 $DSH_HOME/omd/refactors/,权限为 0600;成功应用或回滚后删除。它保证中断后可恢复,但不宣称跨文件系统的崩溃原子性。

安全说明

- 可以选择 danger-full-access,但它永远不是默认值;提交已准备的 proposal 时仍会要求审批。
- 项目集成受 omd trust 保护。
- MCP 定义在发现阶段不会启动、展开环境变量或暴露 schema。只有审批激活后才在 host 侧展开,值不会进入模型提示或元数据缓存。
- 语义重构拒绝 session workspace 之外的 edit,并在写入前重新检查每个已观察文件的版本。
- OMD 只注入显式的 @file:start-end 范围:仅解析工作区内文件、限制内容大小,并把附件当作数据而不是指令;普通 @file 不附加内容。
- 网页抓取在 URL 校验和 DNS 建连两个环节拦截私有、回环、链路本地和云 metadata 地址(对 rebinding 免疫)。OMD_WEB_FETCH_ALLOW_PRIVATE=1 会移除该防护;DSH_WEB_FETCH_PROVIDER=http 选择的上游 provider 没有这层防护。
- DAP 调试默认关闭,需 OMD_ENABLE_DEBUG=1。launch 和 attach 仍要经过批准的 proposal;被调试路径必须位于工作区内。
- dsh 无法确定当前文件时,不会把 glob-scoped Cursor rule 错误应用到全局。
- 持久 kernel 以当前主机用户身份执行;它默认需要审批,不是安全沙箱。
- dsh 没有 provider-neutral 定价接口,因此不会伪造金额。

兼容性

| oh-my-dsh      | DeepSeek Harness(@deepseek-ai/dsh) | Node.js / 运行时                                 |
| -------------- | --------------------------------------- | ------------------------------------------------ |
| main(未发布) | 0.1.0-rc.8(精确锁定)                | 内嵌(便携版)或 ^22.19.0 \|\| >=24.0.0(npm) |
| 0.1.7          | 0.1.0-rc.7(精确锁定)                | 内嵌(便携版)或 ^22.19.0 \|\| >=24.0.0(npm) |
| 0.1.0–0.1.6    | 0.1.0-rc.6(精确锁定)                | ^22.19.0 \|\| >=24.0.0                         |

上游仍处于 developer preview,因此 oh-my-dsh 锁定一个经过验证的版本,绝不静默追随破坏性变更。每周 canary 工作流会额外用 dsh@next 测试 overlay,上游即将发布的不兼容变更会先变成 issue,而不是先砸到用户。升级流程见 docs/upstream-upgrade-playbook.md。

架构

发布包是正式的 dsh bundle,组合顺序如下:

@deepseek-ai/dsh-base
→ @deepseek-ai/dsh-web-app 或 @deepseek-ai/dsh-headless
→ oh-my-dsh
→ profile/cordis.patch.yml
→ $DSH_HOME/cordis.patch.yml

Bundle 位于 bundles/omd.cordis.yml,独立插件位于 packages/。

开发

贡献流程和分支规则见 CONTRIBUTING.md,其中「Good first contributions」一节列出了门槛最低的入口(内置技能、curated MCP preset、对抗性测试)。改动该放在 overlay 还是上游,见《为什么是 overlay 而不是 fork》。

git clone https://github.com/amplifthq/oh-my-dsh.git
cd oh-my-dsh
pnpm install
pnpm typecheck
pnpm test
./bin/omd setup
./bin/omd

许可

MIT。与 DeepSeek 无隶属或背书关系。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群