Oil UI 的 DeepSeek Harness 原生插件,支持自动切换本地安装的 Oil UI Pro
62.1/100
综合分
185
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add oil-oil/dsh-oil-ui该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-oil-ui(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.19.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 11:38:45
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 107 处,展示前 21 条)
- 读取密钥环境变量lib/index.js:41
const envToken = process.env.OIL_TOKEN?.trim(); - 读取本地文件lib/index.js:44
const raw = await readFile(oilTokenConfigPath(), "utf8"); - 发起网络请求lib/index.js:64
const response = await fetch(`${oilApiRoot()}/v1${path}`, { - 读取本地文件lib/index.js:556
const actual = await realpath(resolve(root, path)); - 读取本地文件lib/index.js:559
const bytes = await readFile(actual); - 读取本地文件lib/index.js:573
root = resolve(await realpath(sourceDirectory), "adapters/dsh"); - 读取本地文件lib/index.js:657
const realSource = await realpath(sourceRoot); - 读取本地文件lib/index.js:661
const actual = await realpath(join(realSource, file)); - 删除本地文件lib/index.js:699
await rm(targetRoot, { - 写入本地文件lib/index.js:703
await mkdir(targetRoot, { recursive: true }); - 写入本地文件lib/index.js:717
await mkdir(dirname(dstPath), { recursive: true }); - 写入本地文件lib/index.js:721
await mkdir(dstPath, { recursive: true }); - 写入本地文件lib/index.js:726
await mkdir(dirname(dstPath), { recursive: true }); - 写入本地文件lib/index.js:733
await writeFile(dstPath, transformed.markdown, "utf8"); - 写入本地文件lib/index.js:734
await chmod(dstPath, info.mode & 511); - 发起网络请求lib/index.js:882
const res = await fetch(VERSIONS_URL, { - 删除本地文件lib/index.js:1128
await rm(orphan, { - 删除本地文件lib/index.js:1142
await rm(staging, { - 执行外部命令来自配置/变量lib/index.js:1940
const child = spawn(executable, args, { - 删除本地文件lib/index.js:2154
if (promptCreated) await rm(promptPath, { force: true }); - 删除本地文件lib/index.js:2811
if (isSinglePngOut) await rm(runOutDir, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-fs@deepseek-ai/dsh-llm@deepseek-ai/dsh-ptc-runtime@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-skill给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
4 张 · 点击查看大图README
由 DeepSeek 最新模型翻译生成作品画廊 · Oil UI Pro ·上游 oil-ui ·安装 ·原生工具 ·
dsh-oil-ui 是 oil-ui 的 DeepSeek Harness 原生插件。
国内 AtomGit 托管:dsh-oil-ui,自动同步 GitHub 仓库。
它把 oil-ui 的界面设计流程直接接进 @deepseek-ai/dsh:先在同屏对比页里摆开 3 个真正拉开差距的方向,挑定后再在当前目录里写代码、截真图、点交互、查多端,照着真实画面一轮轮把界面改到位。
关于设计方法与作品画廊,可直接看 oil-ui 仓库 和 ui.oiloil.org。这里重点说明 dsh-oil-ui 在 DeepSeek Harness 里做了什么,以及怎样配合 Oil UI Pro 使用。
上图 6 件作品(ARCHON、Sonar 声场、Tempo 2026、Atelier Volders、Fonderie Mercier、Vesper)均由 DeepSeek 4.1 Flash 搭配 dsh-oil-ui,仅凭一段简短任务描述在隔离目录里自主探索、生成对比页并完成全部交互与多端校验。
为什么做原生插件
DeepSeek Harness 本身已经有文件读写(read / write / edit)、终端(bash)、看图(read_image)和子代理(subagent)。
展开完整文档(README 剩余 1 节)
作品画廊 · Oil UI Pro ·上游 oil-ui ·安装 ·原生工具 ·
dsh-oil-ui 是 oil-ui 的 DeepSeek Harness 原生插件。
国内 AtomGit 托管:dsh-oil-ui,自动同步 GitHub 仓库。
它把 oil-ui 的界面设计流程直接接进 @deepseek-ai/dsh:先在同屏对比页里摆开 3 个真正拉开差距的方向,挑定后再在当前目录里写代码、截真图、点交互、查多端,照着真实画面一轮轮把界面改到位。
关于设计方法与作品画廊,可直接看 oil-ui 仓库 和 ui.oiloil.org。这里重点说明 dsh-oil-ui 在 DeepSeek Harness 里做了什么,以及怎样配合 Oil UI Pro 使用。
上图 6 件作品(ARCHON、Sonar 声场、Tempo 2026、Atelier Volders、Fonderie Mercier、Vesper)均由 DeepSeek 4.1 Flash 搭配 dsh-oil-ui,仅凭一段简短任务描述在隔离目录里自主探索、生成对比页并完成全部交互与多端校验。
为什么做原生插件
DeepSeek Harness 本身已经有文件读写(read / write / edit)、终端(bash)、看图(read_image)和子代理(subagent)。如果再包一层项目沙箱或过渡 ADAPTER,模型反而要在两套读写工具和两套目录规则之间来回猜。
dsh-oil-ui 直接按 DeepSeek Harness 的原生插件机制设计:
- 直接在当前工作目录读写:不创建额外的 projects/<uuid> 嵌套目录,页面、样式、脚本和截图都落在当前目录,和原生 read / write / read_image 完全一致。
- 只注册 oil-ui 独有的 5 个工具:对比页打包、浏览器截图与交互巡检、公有领域素材检索、AI 生图修图,以及 Skill 状态检查。
- 从上游 oil-ui 自动编译派生:插件把上游 SKILL.md 和 references/.md 里的命令行示例自动改写为原生工具调用。上游更新后,跑一条 pnpm sync:skill 就能同步派生,不用手工维护两套文档。
在 DeepSeek Harness 里怎么跑
给一句简单的需求,智能体会自己走完 探索方向 → 生成同屏对比页 → 实现完整页面 → 截图与子代理走查:
1. 先调 oil_ui_skill_status 检查当前可用的技能(已装 oil-ui-pro 会优先使用 Pro),再用原生 skill 工具加载指南和对应分册。
2. 在 explore/ 下写出 3 个构图、色调和视觉引擎完全不同的首屏候选,调 oil_ui_explorer 打包出单文件 style-explorer.html。
3. 选定方向后写出完整的 index.html(或多屏 screens.html),调 oil_ui_shoot 在真实无头浏览器里截图、模拟点击与输入、检查多端断点,并用原生 read_image 看图改到干净为止。
原生工具与快捷命令
插件向模型暴露 5 个专用工具,参数全部以当前工作目录(cwd)为基准:
| 工具 | 作用 |
| oil_ui_skill_status | 刷新技能状态,返回当前生效的 activeSkillName、生图来源与 oiloil 余额,同时处理版本更新检查和一次性 Pro 提示 |
| oil_ui_explorer | 读取 explore/manifest.json(兼容常见简写字段),把多个首屏候选内联打包成可交互的 style-explorer.html 对比页 |
| oil_ui_shoot | 在真实浏览器里打开本地页面或 URL:支持指定视口尺寸、2x 特写、多状态连拍(states)、交互步骤脚本(steps)、动效序列图(frames)、按需录屏(record / motion)以及按共有元素同比例拼图(stitch 项的 matchWidth / scale、全局 crop),并自动检查控制台报错、横向溢出、断图与文字对比度 |
| oil_ui_media | 搜索、预览和下载免版权/公有领域图片、博物馆馆藏(Met、AIC、Cleveland、Wikimedia、Openverse 等)、视频与地图素材 |
| oil_ui_image | 优先调用本地 image-gen;本机不可用时使用 oiloil 生成或编辑图片,支持指定分辨率;oiloil 返回格式不同时按实际格式保存并返回路径 |
同时向聊天输入框注册 3 个以 oil-ui- 为前缀的 Slash 快捷命令(与其他 oil- 系列技能区分):
| 命令 | 作用 |
| /oil-ui-status [update] | 直接查看当前生效版本(oil-ui / oil-ui-pro)、更新状态与 image-gen 状态;带 update 参数时直接原地更新 |
| /oil-ui-explore <需求描述> | 支持附带参考图/文件,直接发起三方向探索并生成 style-explorer.html 对比页 |
| /oil-ui-review [目标页面或文件] | 支持附带截图/文件,对目标页面抓真图并执行视觉层级 + 可用性双轨走查 |
Oil UI Pro 与更新检查
dsh-oil-ui 内置免费版 oil-ui,开箱就能跑通方向探索与同屏对比页。如果你经常做正式上线页、复杂工作台或需要多轮视觉精修,可以搭配 Oil UI Pro 使用。
Oil UI Pro 多了什么
| 能力 | oil-ui(内置免费版) | Oil UI Pro |
| 设计方向探索 + style-explorer.html 同屏对比 | ✓ | ✓ |
| 真实截图驱动的多轮视觉精修与对比度/排版巡检 | — | ✓ |
| 多状态连拍(states)、交互步骤(steps)与录屏抽帧 | — | ✓ |
| 博物馆/公有领域素材检索(oil_ui_media)与 AI 生图修图(oil_ui_image)完整分册 | — | ✓ |
| 独立视觉与 UX 走查 | 主要流程轻量 UX 走查 | 自主风险探针、深入洞察与同路径复核 |
| 完整场景分册(营销落地页、数据后台、移动多屏、重绘改版、字体子集化) | — | ✓ |
自动识别本地 Pro 与子代理评审注入
在本机安装好 oil-ui-pro(默认位于 ~/.agents/skills/oil-ui-pro 或 ~/.dsh/skills/oil-ui-pro)后,不需要重启 DeepSeek Harness。智能体在任务开始调用 oil_ui_skill_status 时,插件会扫描本机目录,把 oil-ui-pro 的 SKILL.md 和分册编译为原生工具说明,并以高于宿主内置文件加载器的优先级生效。当主智能体派发子代理(subagent)做视觉与交互走查时,插件会自动向子代理注入原生化的 reviewer-manual.md 及 references/ 目录路径,主智能体无需手动拼接手册路径。
Pro 的专用转换规则作为声明式 JSON 数据随 Pro 安装包的 adapters/dsh/ 交付,不进入公开插件。插件只加载兼容版本的规则,不执行其中的 JavaScript;适配资源缺失、无效或与当前转换协议不兼容时,只使用内置 Lite。oil_ui_skill_status 返回的 proAdapterReady、proAdapterError 和 upgradeHint 可用于判断是否需要安装兼容的 Pro 版本。
版本检查与一次性 Pro 提醒
原来在 oil-ui 脚本里的版本更新检查和一次性 Pro 推荐,在 dsh-oil-ui 里直接合进了 oil_ui_skill_status:
- 版本检查与一键更新:调用 oil_ui_skill_status 时,插件每天最多向 https://ui.oiloil.org/api/store/versions 静默核对一次版本号(结果缓存在 ~/.local/state/oil/<name>-update.json,断网或超时会自动跳过并进入退避冷却,不会阻塞任务)。发现新版本时会在返回结果里附上 updateNotice;传入 {"update": true}(或执行 /oil-ui-status update)可直接把当前生效的技能更新到最新。
- 一次性 Pro 提醒:当本机只装了免费版 oil-ui 时,首次调用 oil_ui_skill_status 会在 ~/.local/state/oil-ui/recommended-oil-ui-pro 写下标记,并返回一次 recommendOnceNotice,让智能体在任务收尾时顺带提一句 ui.oiloil.org/pro,之后不再重复打扰。
安装
当前插件声明支持 DeepSeek Harness 0.2.1-rc.2、0.2.1-rc.3、0.2.1-rc.4 与 0.2.1-rc.5,Node.js 需要 22.19.0 或更高版本。其他 Harness 版本需要先核对兼容性。桌面版通过安装目录提供的 dsh 命令,将下方示例中的 --profile web 换成 --profile desktop;管理桌面插件前先完全退出桌面程序。
1. 一行命令安装到 DeepSeek Harness
如果你使用 web 配置档的 DeepSeek Harness Web 界面,在终端运行:
dsh plugin --profile web add github:oil-oil/dsh-oil-ui
国内网络可直接使用 AtomGit 镜像一行安装:
dsh plugin --profile web add git+https://atomgit.com/oil-oil/dsh-oil-ui.git
若使用命令行无头模式,将 --profile web 换成 --profile headless。需要可复现安装时,用完整 commit 锁定快照,例如 github:oil-oil/dsh-oil-ui#58fe551130e416dcdae3118d7ed61138c1601010;请把它替换成你实际要安装的 Release commit,不要只依赖移动的分支名。
仓库已包含预编译好的 lib/index.js 和内置的免费版 oil-ui,安装后无需任何额外构建授权,直接启动 dsh web 即可使用。
从本地源码打包安装
git clone https://github.com/oil-oil/dsh-oil-ui.git
cd dsh-oil-ui
pnpm install --frozen-lockfile
pnpm pack:plugin .work/dsh-oil-ui.tgz
dsh plugin --profile web add ./.work/dsh-oil-ui.tgz
2. 可选配置与运行依赖
插件开箱即用,默认会自动扫描本机的 oil-ui-pro 和 image-gen 技能。如需自定义路径或端口,可在 ~/.dsh/cordis.patch.yml(全局)或 ~/.dsh/profiles/web/cordis.patch.yml(当前配置档)中按行覆盖配置(对应 src/config.ts):
- id: dsh-oil-ui
name: dsh-oil-ui
config:
是否优先启用本机已安装的 oil-ui-pro(默认 true) preferPro: true 可选:指定自定义的 oil-ui-pro 目录(默认自动扫描 .dsh/skills 与 .agents/skills) proSkillDir: /Users/you/.agents/skills/oil-ui-pro 可选:指定 image-gen 脚本路径(默认自动扫描 ~/.dsh/skills/image-gen 与 ~/.agents/skills/image-gen) imageGenScript: /Users/you/.agents/skills/image-gen/scripts/image_gen.py 可选:覆盖默认工作目录与本地截图预览服务端口(0 为自动分配空闲端口) workspaceRoot: /path/to/workspace previewPort: 0
- 浏览器截图(oil_ui_shoot):使用本机安装的 Chrome / Chromium(或 Playwright Chromium);若使用录屏抽帧(record / motion),需本机装有 ffmpeg。
- AI 生图修图(oil_ui_image):优先使用本机 image-gen(需 python3);不可用时读取 OIL_TOKEN 或 ~/.config/oil/config.json 的登录状态调用 oiloil。可用 OIL_API 覆盖 API 地址,默认 https://api.oiloil.org。
从上游 oil-ui 同步更新
当上游 oil-ui 更新了 SKILL.md、分册或脚本时,在仓库根目录运行:
OIL_UI_SOURCE_DIR=../oil-ui pnpm sync:skill
pnpm check
pnpm pack:plugin .work/dsh-oil-ui.tgz
维护规则见开发指南、版本与来源和发布流程。
许可
基于 MIT License 开源。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
oil-oil/dsh-oil-ui
Oil UI 的 DeepSeek Harness 原生插件,支持自动切换本地安装的 Oil UI Pro
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,344已汉化DSH
71.5
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,045已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,202已汉化DSH
71.1