🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

数字员工工作台 h4dex/opc-nexus

DeepSeek Harness
h4dex60 天前有提交已提供中文文档扫描:含敏感能力

开源的企业版的数字员工工作台, OPC-Nexus(One Person Company Nexus)是一款本地优先的桌面 AI Agent 管理器…

62.4/100
综合分
238
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add h4dex/opc-nexus
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · platform
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 60 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/9/27) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

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

✗npm 包aibox-control-center(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 15:37:26

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件读取剪贴板或密钥环境变量写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 44 处,展示前 36 条)
  • 写入本地文件
    src/main/index.ts:134
    mkdirSync(userDataPath, { recursive: true });
  • 读取本地文件
    src/main/index.ts:155
    if (!existsSync(legacyDb)) return;
  • 读取本地文件
    src/main/index.ts:160
    if (existsSync(currentDb)) {
  • 读取本地文件
    src/main/index.ts:164
    const current = new SQL.Database(new Uint8Array(readFileSync(currentDb)));
  • 写入本地文件
    src/main/index.ts:183
    mkdirSync(currentRoot, { recursive: true });
  • 读取本地文件
    src/main/index.ts:184
    if (existsSync(currentData)) renameSync(currentData, backupData);
  • 写入本地文件
    src/main/index.ts:184
    if (existsSync(currentData)) renameSync(currentData, backupData);
  • 写入本地文件
    src/main/index.ts:188
    mkdirSync(currentData, { recursive: true });
  • 写入本地文件
    src/main/index.ts:189
    copyFileSync(legacyDb, currentDb);
  • 读取本地文件
    src/main/index.ts:190
    for (const entry of readdirSync(legacyData, { withFileTypes: true })) {
  • 写入本地文件
    src/main/index.ts:195
    else copyFileSync(source, target);
  • 读取本地文件
    src/main/index.ts:199
    if (existsSync(backupData) && !existsSync(currentData)) {
  • 发起网络请求
    src/main/index.ts:235
    if (startupQuestLaunch) void questLaunchCoordinator.request(startupQuestLaunch.projectId);
  • 发起网络请求
    src/main/index.ts:245
    void questLaunchCoordinator.request(questRequest.projectId);
  • 删除本地文件
    src/main/index.ts:320
    try { rmSync(temporary, { force: true }); } catch { }
  • 发起网络请求
    src/main/index.ts:492
    void questLaunchCoordinator.request(lastQuestProjectId);
  • 发起网络请求
    src/main/index.ts:513
    { label: '打开 Quest', click: () => { void questLaunchCoordinator.request(lastQuestProjectId); } },
  • 发起网络请求
    src/main/index.ts:1688
    void questLaunchCoordinator.request(lastQuestProjectId);
  • 读取本地文件
    src/main/ipc.ts:413
    const stat = lstatSync(candidate);
  • 写入本地文件
    src/main/ipc.ts:440
    mkdirSync(root, { recursive: true });
  • 写入本地文件
    src/main/ipc.ts:447
    mkdirSync(target, { recursive: false });
  • 删除本地文件递归
    src/main/ipc.ts:658
    try { rmSync(workspace, { recursive: true, force: true }); } catch { }
  • 写入本地文件
    src/main/ipc.ts:921
    writeFileSync(result.filePath, content, 'utf8');
  • 读取本地文件
    src/main/ipc.ts:935
    while (existsSync(target)) target = `${baseTarget}-${suffix++}`;
  • 写入本地文件
    src/main/ipc.ts:937
    mkdirSync(itemsDir, { recursive: true });
  • 写入本地文件
    src/main/ipc.ts:938
    writeFileSync(join(target, 'README.md'), deliverables.renderPackageReadme(pkg), 'utf8');
  • 写入本地文件
    src/main/ipc.ts:939
    writeFileSync(join(target, 'manifest.json'), JSON.stringify(pkg, null, 2), 'utf8');
  • 写入剪贴板
    src/main/ipc.ts:1181
    clipboard.writeText(payload);
  • 写入剪贴板
    src/main/ipc.ts:1184
    clipboard.write({ text: payload });
  • 读取剪贴板
    src/main/ipc.ts:1186
    if (clipboard.readText() === payload) return { ok: true as const };
  • 发起网络请求
    src/main/ipc.ts:1245
    const res = await fetch(`${settings.baseUrl.replace(/ $/, '')}/chat/completions`, {
  • 写入剪贴板
    src/main/ipc.ts:1431
    clipboard.writeText(deps.apiBridge.getBridgeKey());
  • 读取本地文件
    src/main/ipc.ts:1672
    if (!existsSync(absolutePath)) return { ok: false, message: '文件不存在' };
  • 写入剪贴板
    src/main/ipc.ts:1708
    clipboard.writeText(command);
  • 读取本地文件
    src/main/ipc.ts:1947
    const stat = lstatSync(selected);
  • 读取本地文件
    src/main/ipc.ts:1951
    return vision.putAttachment({ data: readFileSync(selected), mimeType: visionMimeForFilename(filename), filename });
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 创建与管理AI数字员工
  • 任务编排与工作流自动化
  • 多引擎接入与消息渠道集成
展开完整介绍(159 字)↓

开源的企业版的数字员工工作台, OPC-Nexus(One Person Company Nexus)是一款本地优先的桌面 AI Agent 管理器。它为单人公司 / 独立开发者提供统一的 AI 数字员工管理平台 —— 从 Agent 创建、任务编排、多引擎接入,到消息渠道集成、工作流自动化和专家团协作,一站式覆盖。

README

由 DeepSeek 最新模型翻译生成
OPC-Nexus · 数字员工 AI Box 面向个人工作室和小公司的本地优先 AI 工作台:老板下令,Hermes 理解和调度,数字员工执行,系统交付真实成果。 当前版本 | 组件 | 版本 | 说明 | | OPC-Nexus 桌面端 | 2.0.1 | Windows 10/11、Ubuntu 22.04+ | | Hermes Runtime | 0.19.0 | Quest 唯一调度引擎,固定 fork 和上游 commit | | Android Bridge | 0.4.3 | 可选手机执行员工,不参与 Quest 调度 | 2.0.1 是 Hermes 架构后的运行时增强版本,与 1.x 的 Nexus 调度架构不兼容。升级时请先备份用户数据;应用会迁移旧数据目录,不会把旧 DSH 调度状态重新启用为第二套控制面。 发布包可携带固定版本的 Codex CLI 与 Pi Agent 运行时,放在应用资源目录并由主进程优先调用。源码仓库不提交 node_modules 或原生二进制;发布前运行 npm run agents:prepare,安装后运行 npm run agents:verify。
展开完整文档(README 剩余 1 节)
OPC-Nexus · 数字员工 AI Box

面向个人工作室和小公司的本地优先 AI 工作台:老板下令,Hermes 理解和调度,数字员工执行,系统交付真实成果。

当前版本

| 组件 | 版本 | 说明 |
| OPC-Nexus 桌面端 | 2.0.1 | Windows 10/11、Ubuntu 22.04+ |
| Hermes Runtime | 0.19.0 | Quest 唯一调度引擎,固定 fork 和上游 commit |
| Android Bridge | 0.4.3 | 可选手机执行员工,不参与 Quest 调度 |

2.0.1 是 Hermes 架构后的运行时增强版本,与 1.x 的 Nexus 调度架构不兼容。升级时请先备份用户数据;应用会迁移旧数据目录,不会把旧 DSH 调度状态重新启用为第二套控制面。

发布包可携带固定版本的 Codex CLI 与 Pi Agent 运行时,放在应用资源目录并由主进程优先调用。源码仓库不提交 node_modules 或原生二进制;发布前运行 npm run agents:prepare,安装后运行 npm run agents:verify。

工作方式

老板 -> Quest / Hermes 对话 -> 澄清(复杂需求才需要) -> 计划草案与员工分工 -> OPC-Nexus Main 校验、审批、派工 -> Codex / Claude / Pi / Hermes Worker / 手机员工 -> 项目目录、预览、运行命令、截图和渠道回执

- Hermes 负责对话理解、澄清、记忆、计划内容和委派建议。
- OPC-Nexus Main 负责项目范围、员工白名单、权限、预算、任务/Run 状态、审批、取消、恢复、交付和审计。
- 数字员工 是独立实体。项目可以使用动态员工池,也可以选择固定员工范围,不强制一对一绑定。
- DSH 不再作为调度器或第二套 Web 工作台;如保留 CLI,只能作为受 Main 治理的执行层。

Hermes 项目工作台

每个项目都需要一个真实、可访问的工作目录。可以在 Quest 中选择目录,或使用默认的:

%USERPROFILE%/opc-nexus/projects/<project-name>-<id>/

项目运行时拥有独立的 HERMES_HOME、loopback 端口、短期认证租约、会话和记忆目录。Hermes Web UI 内嵌在 Quest 中,不向 Renderer 暴露服务 token,也不允许跨项目读取文件、会话或记忆。

连接 Provider

在 Quest 的“连接设置”中填写 Provider 的 Base URL、模型和 API Key,然后点击“读取模型”和“测试”。API Key 只进入 Electron safeStorage,不会写入 README、日志、Renderer 状态或 Hermes 记忆。

Hermes 启动前会检查:

1. 项目工作目录存在且不是符号链接。
2. Provider 有可解密的 API Key、Base URL 和模型。
3. Dashboard 与 API Gateway 都通过 0.19.x 健康检查。

检查失败会显示真实原因并提供连接设置入口,不会伪造“在线”或“任务完成”。

主要能力

- Quest 内嵌 Hermes Chat、澄清、计划、员工进度、独立验收和交付面板。
- 简单需求直达回答;复杂需求走“澄清 -> 计划 -> 批准 -> 派工 -> 交付”。
- 动态调度或项目固定员工范围,支持 @员工、子 Agent 组队和独立验收员工。
- Codex、Claude Code、Pi、Hermes CLI Worker 和 Android Worker 通过统一执行策略接入。
- 项目级 MCP/Skill 选择,能力中心不重复注册旧 DSH 插件。
- 交付 Manifest、目录打开、Markdown/文件预览、启动命令、运行地址、截图和渠道发送。
- Hermes 手机 Web 访问,复用 TLS、一次性配对码和 viewer/operator 角色。
- 企业微信、飞书、微信 iLink Bot 等真实渠道可绑定到项目会话;远程批准、暂停和取消都会审计。
- 调试模式将脱敏 JSONL 写入用户数据目录 logs/,用于排查启动、代理、Gateway、任务和渠道问题。

v2.0.1 使用闭环

推荐按下面的顺序操作一次完整任务:

项目 -> Provider -> Quest -> 澄清(必要时) -> 计划 -> 批准 -> 派工 -> 验收 -> 交付

1. 在项目设置中选择真实工作目录。项目不强制绑定某一个员工;简单任务可以 @ 指定员工,复杂任务由 Hermes 根据能力、权限和预算动态组队。
2. 在 Quest 的连接设置中配置 Base URL、API Key 和模型并执行“读取模型”和“测试”。没有真实 Provider 或执行引擎时,派工会被阻止。
3. 发送老板指令。Hermes 会在需要时提出可持久化的澄清问题,随后生成计划草案;确认计划后由 Main 创建正式版本并派发到 Codex、Pi、Claude、Hermes Worker 或手机 Worker。
4. 在 Quest 右侧治理面板查看员工进度、工具调用、验收和交付 Manifest。交付目录中的文件可以预览、打开目录、复制启动命令或发送到已绑定渠道。
5. 手机扫码只连接当前项目的 Hermes 对话,不会打开 Android 控制台或访问其他项目。手机端的 viewer/operator 权限和桌面端一致。

简单问答可以直接返回;复杂任务必须经过计划和审批。任何服务、Provider、员工或权限不可用时,界面显示真实错误和恢复入口,不生成 Mock 员工、伪成功或虚构产物。

界面预览

以下截图来自真实 Quest/Hermes 验收运行,用来展示组队、交付和手机会话的实际界面:

Quest Hermes staffing

Quest Hermes delivery

Hermes mobile chat

验收边界

v2.0.1 已通过类型检查、单元测试、生产构建、Hermes runtime smoke 和桌面 UI smoke。完整的「老板下令 -> Hermes 组队 -> Codex/Pi 多员工执行 -> 独立验收 -> 复杂交付」仍是发布门禁;两部 30 万字小说的全量写作尚未完成,因此不能把该场景宣称为已交付。发布说明会记录每个场景的实际产物、耗时和阻断原因。

开发与验证

要求 Node.js 20+、npm 10+、Python 3.11(Hermes 准备脚本使用 uv)。

npm ci
npm run hermes:prepare
npm run typecheck
npm test
npm run hermes:verify
npm run hermes:smoke
npm run build

开发模式:

npm run dev

Windows/Linux 打包:

npm run pack:win
npm run pack:linux

GitHub Actions 会在 Windows 和 Ubuntu 上重复运行类型检查、单元测试、Hermes runtime 准备、健康 smoke 和生产构建;Release 还会检查打包目录中的 Hermes 运行时。

安全边界

- contextIsolation: true、nodeIntegration: false,Renderer 不得调用 Node.js API。
- Renderer 只能通过 preload 的类型安全 API 调用 Main;没有通用 ipcRenderer 暴露。
- API Key、token 和渠道凭据只存在 Main/safeStorage 边界。
- 所有任务必须经过项目目录、员工、权限、预算和引擎可用性检查。
- Hermes 进程、代理或 Gateway 崩溃时显示离线/错误并停止相关队列,不显示成功。

文档

- 用户指南
- 更新日志
- 发布指南
- 架构说明
- API 参考
- 第三方声明
- English README

License

MIT © Senke
预览分享卡片长什么样 ↓h4dex/opc-nexus
分享 · DeepSeek Harness Hub
h4dex/opc-nexus

开源的企业版的数字员工工作台, OPC-Nexus(One Person Company Nexus)是一款本地优先的桌面 AI Agent 管理器…

回到顶部