# @sakura12/oh-my-deepseekharness 中文文档

规范地址：https://npmcn.com/package/%40sakura12/oh-my-deepseekharness/

版本：0\.7\.2
npm 元数据更新时间：2026-11-02T08:45:41.523Z
中文译文更新时间：2026-11-02T10:10:11.221Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40sakura12/oh-my-deepseekharness
原文对照：https://npmcn.com/package/%40sakura12/oh-my-deepseekharness/?lang=original
项目主页：https://github.com/1225Sakura/oh-my-deepseekharness#readme
源码仓库：https://github.com/1225Sakura/oh-my-deepseekharness

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.8 MB，233 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22\.19\.0
- 运行依赖：2 个
- peer 依赖：@deepseek-ai/dsh-llm \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/dsh-skill \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/dsh-tools \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/dsh-storage \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/schemastery ^3\.18\.2，@deepseek-ai/dsh-commands \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/dsh-mcp-client \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/dsh-system-prompt \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0，@deepseek-ai/dsh-storage-domain \>=0\.1\.2-rc\.1 \<0\.1\.3 \|\| \>=0\.1\.5-rc\.1 \<0\.1\.6 \|\| \>=0\.1\.7-rc\.1 \<0\.2\.0 \|\| \>=0\.2\.0-rc\.1 \<0\.3\.0
- 首次发布：2026-09-21T08:34:33.011Z
- 最新版本发布：2026-11-02T08:45:41.343Z
- 已发布版本数：20（近 12 个月 20 个）

## 中文简介

DeepSeek Harness的多代理编排层——49项技能，58个MCP工具，图形DAG运行时，团队管道和HUD （OMC/OMX适配）

## 安装

```sh
npm install @sakura12/oh-my-deepseekharness
```

也可以使用：`pnpm add @sakura12/oh-my-deepseekharness`、`yarn add @sakura12/oh-my-deepseekharness`、`bun add @sakura12/oh-my-deepseekharness`

## README

# oh-my-dsh (omd)

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://npmcn.com/package/%40sakura12/oh-my-deepseekharness/LICENSE) [![Node.js >=22.19.0](https://img.shields.io/badge/node-%3E%3E22.19.0-brightgreen)](https://nodejs.org/) [![Tests: 652 passed](https://img.shields.io/badge/tests-652%20passed-brightgreen)](https://npmcn.com/package/%40sakura12/oh-my-deepseekharness/tests)

**DeepSeek Harness 的多智能体编排层** —— OMC / OMX 编排理念的 dsh 宿主适配实现。 Multi-agent orchestration layer for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), adapted from:

-   [oh-my-claudecode (OMC)](https://github.com/Yeachan-Heo/oh-my-claudecode) — Claude Code 编排层
-   [oh-my-codex (OMX)](https://github.com/Yeachan-Heo/oh-my-codex) — Codex 编排层

omd 以单个 dsh 插件交付：注入编排协议到系统提示词、注册 49 个 skill 目录 + 33 个 `omd-agent-*` 角色卡（66 个双语文件，会话技能目录共 82 条）与 3 个斜杠命令、挂载内置 MCP server 提供 58 个状态/记忆/协调/代码智能/graph 运行时工具。三种执行模式（autopilot / ralph / team）：autopilot 与 ralph 由 dsh 原生 `goal` / `ralph` 工具驱动前台循环；team 由 `lib/team.js` 领队运行时驱动（阶段状态机 + 队员 UUID 生命周期 + mailbox + heartbeat + merge 计划，无 tmux——dsh 无承载面）。

* * *

## 安装 / Install

```bash
# 发布后（npm 包名 @sakura12/oh-my-deepseekharness——注意裸 oh-my-dsh 是 npm 上另一个已停更的包）
dsh plugin --profile <profile> add @sakura12/oh-my-deepseekharness

# 本地开发（指向本仓库路径；以你的检出路径替换）
dsh plugin --profile <profile> add /path/to/oh-my-deepseekharness
```

> `<profile>` 是 dsh 的隔离配置/插件组合单元（本机如 `web`）；`dsh plugin` 实为转发 pnpm 到该 profile 目录，add/remove 均用 npm 包名。**装完必须重启或重载 profile**（重开 `dsh web`）再开新会话，插件树才会重载生效——然后在会话里输入「setup omd」走安装向导，或直接 `/omd-doctor` 验装。

要求：Node.js ≥ 22.19；dsh 宿主兼容范围以 package.json 的 peerDependencies 为权威（0.1.2 / 0.1.5 / 0.1.7 三条 0.1.x 线与 ≥0.2.0-rc 线；0.2.0-rc.2 与 0.2.1-rc.5 实测全绿——0.2.1 删除了 subagents 服务级 `start`（改 `startActivation`），0.7.1 起 `omd_delegate` 经双形态 feature-detect 自适应新旧两线）。兼容性质证的逐条证据台账是仓内审计产物（`.omd/plans/`，gitignored），不随 npm 包发布。所有 `@deepseek-ai/*` 依赖均为宿主义务（peerDependencies，缺失自动降级，见下文「依赖边界」）。可选能力依赖（optionalDependencies，缺席显式降级不阻断）：`@ast-grep/napi`（ast\_grep\_\* 工具）、`vscode-jsonrpc` / `vscode-languageserver-protocol` / `vscode-uri`（lsp\_\* 工具）。

验装：安装后在会话中输入 `/omd-doctor`（不确定可用入口时先 `/omd` 看速查）。

**开发改动 → GUI 生效（install-local）**：profile 依赖若从 npm 解析（如 `^0.4.9`），仓库里的改动不会到达运行中的 GUI（2026-10-26 审查实证：实装 0.4.9 vs 仓库 0.5.1 漂移）。闭合链路：

```powershell
pwsh scripts/install-local.ps1   # npm pack → 装进 profile → 按提示重启 dsh web
```

> 注意：该脚本是直接覆盖 profile `node_modules` 的快装路径；下次在 profile 里跑 pnpm install/add 会被冲掉。长期方案是把 profile 依赖改为本地路径（`dsh plugin add <仓库路径>`）或发布新版。

* * *

## 快速上手 / Quick Start

三种执行模式，一句话启动：

| 模式 | 一句话示例 | 说明 |
| --- | --- | --- |
| **autopilot** | `autopilot 帮我做一个 CLI 字数统计工具` | 自然语言触发，goal 驱动的全流程自动编排（访谈→规划→执行→双评审门→沉淀检查点） |
| **ralph** | `ralph: 把 README 的测试徽章数字同步到当前实际值` | 显式触发：行首 `ralph:` 或「用 ralph …」（锚定守卫防误触发；`/ralph` 斜杠形态经技能面加载，同效）；PRD + 证据契约的迭代循环，前台阻塞 |
| **team** | `用 team 调研插件市场生态并出报告` | 无关键词，只能显式调用；五阶段流水线 + 领队运行时（`team_phase_transition` 状态机 / `team_register_worker` 生命周期 / `team_mail_*` 信箱 / `team_heartbeat_scan` / `team_merge_plan`） |

三个斜杠命令与取消/诊断入口：

| 操作 | 命令 |
| --- | --- |
| 速查帮助 | `/omd`（模式关键词 / 技能总览 / HUD 与记忆入口） |
| 取消当前模式 | 输入 `cancelomd`（或 `stopomd`），或斜杠命令 `/omd-cancel` |
| 验装诊断 | `/omd-doctor`（注册计数 / Config / MCP 冒烟 / `.omd` 可写性） |

> 退役关键词 `ultrawork` / `ulw` / `uw` / `ccg` 不再触发，命中时会提示改用 autopilot 或 team（如 `autopilot <你的任务>`）。
> 
> 触发词 `code review` / `代码评审` 命中的是**行内指引块**（轻量提示），不是完整 review 技能流程；要完整评审请显式调用（如「用 review 技能评审这次改动」）。

* * *

## 能力速览 / Capabilities

| 维度 | 内容 |
| --- | --- |
| 执行模式 | **3** 种：autopilot（goal 循环）/ ralph（PRD 迭代）/ team（五阶段流水线 + 领队运行时），模式互斥 + 触发守卫防误触发 |
| 角色 | **33** 个委派角色卡（`omd-agent-*`：OMC 19 + OMX 移植 14——api-reviewer / style-reviewer / performance-reviewer / quality-reviewer / quality-strategist / build-fixer / dependency-expert / information-architect / vision / product-analyst / product-manager / ux-researcher / researcher / explore-harness），各带档位（low 5 / medium 17 / high 11）与职责资产 |
| Skills | **49** 个（中英双语资产）：3 执行模式 + 规划 + 质量 + 研究 + 记忆 + 基础设施与元 + OMX 移植 4（analyze / best-practice-research / design / performance-goal） |
| MCP 工具 | **58** 个（内置 `omd-state` MCP server）：`state_*`×5 / `notepad_*`×6 / `prd_*`×4 / `handoff_*`×3 / `team_*`×18（c5/c6/c8 + 领队运行时 + `team_cancel` 取消路径） / `events_*`×1/ `trace_*`×4 / `hud_*`×2 / `graph_*`×6（U4 graph DAG 运行时：validate/run/status/resume/node\_result/gate\_resolve）/ 代码智能×9（`ast_grep_*`×2 + `lsp_*`×7） |
| Team 运行时 | `lib/team.js`：阶段状态机（team-plan→prd→exec→verify→fix(≤3，状态机强制)→终态）/ 队员 registry（workerId=UUID，runId=owner-epoch，终态不可复活）/ mailbox（in=队员→队长 progress/blocker/done/question，out=队长→队员 nudge/assign/answer）/ heartbeat（`team_heartbeat_scan` 按需扫描 + 插件侧周期检测定时器——检测+呈面，催促归队长模型，绝不自动杀）/ merge 计划（树∩主仓冲突候选 + 建议序，执行归模型） |
| HUD | 三层承载：web GUI 右侧边栏 `omd-hud` 面板（client half，`lib/client.js`，自适应轮询五要素卡：活跃 5s，空转退避至 ≤30s；full preset 另渲染「队员」「工具调用」两区）/ 数据路由 `GET /oh-my-dsh/hud.json`（loopback 私有面另聚合 team registry 为 `workers`、聚合 `.omd/state/events.jsonl` 派发事件总线为 `toolCalls`，MCP wire 零变化）/ MCP `hud_render` `hud_summary`（CLI 会话同款摘要） |
| 代码智能 | `ast_grep_search` / `ast_grep_replace`（结构化语法检索/重写，$VAR/$$$VARS 元变量，dryRun 默认不落盘）；`lsp_start/stop/status/document_symbols/references/definition/diagnostics`（Config `codeIntel.lspServers` 注册表驱动，单实例/崩溃重启 ≤2/随 MCP server 退出回收） |
| Hook 与定时 | c2 keyword-hook（`agent/pre-step` 原生拦截点，唯一 hook 电线）+ team heartbeat 周期检测定时器（Config `team.heartbeatIntervalMs`，默认 60s，0=关闭） |
| 跨会话记忆 | `omd_memory_set/get/list/delete`（宿主 storage domain 承载）+ notepad 三区（priority 永久 / working 7 天 / MANUAL 永不清理）+ autopilot/ralph 收尾沉淀检查点（替代 OMC hook 自动 learner） |
| 路由 | c3 自适应路由（4 特征 + 表上限钳制 + fallback 审计）+ `omd_delegate` 硬路由工具（tier/model 经 spawn 路径强制生效） |

功能点对齐全景（OMC/OMX 45 功能点：✅34 / ⚠️1 / ❌0 / 🚫10 含决定记录）见 `docs/feature-parity-audit.md`。

* * *

## 配置 / Config

插件配置（cordis Config，schemastery 校验）：

| 键 | 类型 / 默认 | 说明 |
| --- | --- | --- |
| `language` | `'zh' | 'en' | 'both'`，默认 `'zh'` | 资产语言：中文 / 英文 / 中文正文+英文术语 |
| `tiers.low` | 模型标识，默认 `'inherit'` | 档位→模型映射；值可为 `provider/model` 或 **`'inherit'`**（继承主会话模型） |
| `tiers.medium` | 同上，默认 `'inherit'` | 同上 |
| `tiers.high` | 同上，默认 `'inherit'` | 同上 |
| `roleOverrides` | `dict<string>`，默认 `{}` | 角色级覆盖，优先于 tiers，如 `{ "omd-agent-code-reviewer": "deepseek/deepseek-reasoner" }` |
| `stateDir` | 字符串，默认 `'.omd'` | 项目状态目录名（改名注意：协议与技能文档多处按 `.omd/` 举例，改名后文档示例同步失效，非必要不建议改） |
| `autopilot.maxIterations` | 自然数 ≥1，默认 `10` | autopilot 最大轮次（`create_goal` 的 max\_goal\_rounds 默认值） |
| `autopilot.maxQaCycles` | 自然数 ≥1，默认 `5` | QA 循环上限 |
| `autopilot.maxValidationRounds` | 自然数 ≥1，默认 `3` | re-validation 轮次上限 |
| `team.heartbeatIntervalMs` | 自然数，默认 `60000` | 插件侧 heartbeat 周期检测间隔（0=关闭定时器；`team_heartbeat_scan` 按需扫描仍可用） |
| `team.staleAfterMs` | 自然数 ≥1，默认 `300000` | 队员无心跳 stale 阈值 |
| `hudRoute` | 布尔，默认 `true` | HUD 数据路由 `/oh-my-dsh/hud.json` 开关（安全阀：该 loopback 只读路由无鉴权、`?cwd=` 可读任意已存在目录的 `.omd` 摘要——多用户/非可信本机环境可关闭；MCP `hud_render` 不受影响） |
| `hudPreset` | `'minimal' | 'focused' | 'full'`，默认 `'focused'` | HUD 面板预设：minimal=纯卡文本 / focused=主模式卡+告警 / full=追加记忆三区/队员/工具调用/数据面 |
| `graph.stalledAfterMs` | 自然数 ≥1，默认 `600000` | graph run 停滞告警阈值（HUD 告警面扫描用，默认 10 分钟） |
| `codeIntel.astGrep` | 布尔，默认 `true` | ast\_grep\_\* 开关（`@ast-grep/napi` 缺席时工具显式报错） |
| `codeIntel.lspServers` | `dict`，默认 `{}` | LSP 注册表：`{ <name>: { command, args?, languages?, env? } }`——语言服务器本体由用户环境提供 |

配置示例（写在 **profile 目录的 `cordis.patch.yml`**——如 `C:\Users\<你>\.dsh\profiles\<profile>\cordis.patch.yml`，不是包内自带的同名只读挂载补丁；用 `- id: oh-my-dsh` + `config:` 覆盖形式，改完重载 profile）：

```yaml
# <profile 目录>/cordis.patch.yml（追加一条；文件里已有其他插件条目则并列）
- id: oh-my-dsh
  config:
    language: zh
    tiers:
      low: inherit          # 继承主会话
      high: deepseek-reasoner
    roleOverrides:
      omd-agent-verifier: deepseek/deepseek-reasoner
    autopilot:
      maxIterations: 15
    team:
      heartbeatIntervalMs: 60000
    codeIntel:
      lspServers:
        typescript:
          command: typescript-language-server
          args: ["--stdio"]
          languages: [typescript]
```

### 「stale」阈值总表（同一术语三处语义，一处可查）

| 面 | 阈值 | 配置键 | 含义 |
| --- | --- | --- | --- |
| team 队员心跳 | 5 分钟 | `team.staleAfterMs` | 队员超阈值无心跳 → stale（检测+呈面，绝不自动杀） |
| 模式状态（ralph/autopilot 等非 team） | 2 小时 | 无（规格 §5.4 定值） | 状态文件超阈值未更新 → HUD/协议判 stale（只报告不自动续跑） |
| graph run 停滞 | 10 分钟 | `graph.stalledAfterMs` | journal 超阈值未推进且有等待节点 → HUD 告警行 |

### 迁移说明 / Migration（0.4.4 → 0.4.5 行为变更）

**`tiers` 三档默认值从写死的 `glm-5.3-flash` 改为 `'inherit'`（继承主会话模型路由）**。影响面：

-   已显式配置 `tiers` 或经 `roleOverrides` 覆盖的部署：**不受影响**；
-   经 `omd_delegate` 显式指定 `model` 的派发：**不受影响**（显式 model 绕过档位表，一等硬指定）；
-   未做任何配置的部署：档位派发从「固定 glm-5.3-flash」变为「继承主会话模型」——成本敏感部署（希望档位派发继续走指定小模型）应在 Config 中把 `tiers.<tier>` 显式写回具体模型 id。

* * *

## 状态目录 / `.omd/` Layout

所有模式状态落在项目目录的 `.omd/`（可用 `stateDir` 改名），取消/崩溃后可恢复：

```
.omd/
├── state/
│   ├── sessions/<sessionId>/<mode>-state.json   # 每会话每模式状态（active/phase/iteration）
│   ├── run-state.json                           # c6 七字段镜像（CAS，队长独占写）
│   ├── boulder.json                             # ralph 进度石
│   └── events.jsonl                             # U8 派发事件总线（route/fallback，append-only，读面尾部窗口 64 KiB；写面 ≥1MiB 轮转单档 events.jsonl.1——.1 归档不进读面/聚合）
├── plans/          # autopilot/team 计划
├── specs/          # 规格文档
├── prd/            # ralph PRD（JSON + reconciliation.jsonl 台账）
├── handoffs/       # team 阶段交接（五段固定格式）
├── team/<runId>/   # team 运行时：phase.json / registry.json / mailbox/{in,out}/*.jsonl
├── trace/          # trace 时间线（<traceId>.jsonl，append-only；读面 8MiB 上限——超限策略性拒绝，引导另开新 trace）
├── worktrees/      # c5 team 运行树（gitignored，两阶段拆除）
├── graph-runs/     # graph 运行（journal.jsonl + descriptor.json 快照 + outputs/ + fence 旁文件 owner.lock/owner.epoch/owner.json）
├── checkpoints/    # 恢复快照
├── logs/
├── wiki/           # LLM Wiki 知识库（index.md + log.md + 分类页）
└── notepad.md      # 三区记事本（Priority 永久 / Working 7 天过期 / MANUAL 永不清理）
```

> `.omd/` 是运行时产物，建议加入 `.gitignore`。

* * *

## 降级与依赖边界 / Graceful Degradation

-   **零第三方 dsh 插件依赖**：不依赖任何非 `@deepseek-ai/*` 官方插件。
-   启动时能力探测与注册结果汇总渲染进系统提示词的能力矩阵（其中 core/storage 两项由 probe.js 实测探测；skills/mcpServer/delegate/keywordHook/teamHeartbeat/hudRoute/codeIntel/memoryTools/commands 九项为 apply 注册结果的追加记录——「注册成功」不等于「探测通过」），降级时协议指导模型走文件直读兜底：
    -   核心 inject 服务（tools/skills/systemPrompt/commands）缺失 → 插件启动即报错（唯一硬依赖）；
    -   `storage` 缺失 → 记忆工具不注册；
    -   MCP server 挂载失败 → `state_*`/`notepad_*`/`prd_*`/`handoff_*`/`team_*`/`trace_*`/`hud_*`/`graph_*` 不可用，协议降级为直接读写 `.omd/` 文件；
    -   `@ast-grep/napi` 缺失 → `ast_grep_*` 显式报错（probe 记 `codeIntel: unavailable`），LSP 不受影响；
    -   `webServer` 缺席（CLI 会话）→ HUD 数据路由不注册（probe 记 `hudRoute: skipped`，MCP `hud_render` 同款可用）；
    -   运行 `/omd-doctor` 可随时查看当前降级状态。
-   **graph 运行时授权面（已知暴露面登记）**：descriptor 内 command 节点是经 pwsh 执行的任意 shell 行，`bin/graph-runner.mjs` 与 MCP `graph_run` 同权——只运行你撰写或信任的 descriptor。MVP 阶段为声明式信任（无 allowlist/沙箱），登记于 docs/code-quality-logic-review.md 安全节。

* * *

## 开发 / Development

```bash
npm test            # vitest 全量（53 files / 652 tests）
npm run test:watch
```

`lib/client.js`（HUD client half）是**手工维护的懒加载 CJS bundle**（无构建步骤），格式经 `tests/lib/client-bundle.test.js` 沙箱断言；dsh web 宿主需重启以装载/更新 client 插件。

上游快照约定：`reference/`（gitignored 本机快照）升级 OMC/OMX 版本后，必须同轮更新 `docs/upstream-form-*.md` 形态卡与 `docs/feature-parity-audit.md`，并跑 `npm test -- upstream-forms` 守门（两层门：仓内一致性恒跑；reference 缺席环境漂移层 skip 属预期）。

## License

MIT

## 常见问题

### @sakura12/oh-my-deepseekharness 是什么？

DeepSeek Harness的多代理编排层——49项技能，58个MCP工具，图形DAG运行时，团队管道和HUD （OMC/OMX适配）

### 如何安装 @sakura12/oh-my-deepseekharness？

在项目目录运行 npm install @sakura12/oh-my-deepseekharness，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@deepseek-ai/schemastery（^3\.18\.2）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 omd-graph-runner，可以用 npx omd-graph-runner 直接运行。

### @sakura12/oh-my-deepseekharness 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/sakura12\_\_oh-my-deepseekharness 是否存在。

### @sakura12/oh-my-deepseekharness 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @sakura12/oh-my-deepseekharness 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.19\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @sakura12/oh-my-deepseekharness 可以商用吗？

@sakura12/oh-my-deepseekharness 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @sakura12/oh-my-deepseekharness 还在维护吗？

最新版本 0\.7\.2 发布于 2026/11/02（1 天前）；至今共发布 20 个版本，其中过去 12 个月发布了 20 个；首次发布于 2026/09/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

