opc-agent
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- execSync — Synchronous shell command execution in electron/bootstrap.cjs
- process.env — Environment variable access in electron/bootstrap.cjs
- fs module — File system access in electron/bootstrap.cjs
- process.env — Environment variable access in electron/cdp.ts
- process.env — Environment variable access in electron/main.ts
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
把本机装好的多个 AI Agent CLI 收进一个 IM 界面:单聊、拉群、按人分派任务。Electron + TypeScript 桌面应用,支持 Claude Code / Codex / Gemini 等十余种 Agent。
OPC Agent
暂用名说明:
OPC是本项目当前的工作名,不是正式名称。正式名称确定后会统一更换,届时仓库中的产品名、包名与文案会一并更新。
本机多 Agent 团队协作桌面应用 —— 把本机安装的各类 Agent 当作通讯录里的联系人,可以单聊,也可以拉群分派任务。

执行轨迹收在答案上方,正文按结论 / 建议分段,右上角标着一轮的处理耗时。
它解决什么问题
本机往往同时装着好几个 Agent CLI(Claude Code、Codex、Gemini、Cursor……),每个都有自己的会话与上下文。想让它们在同一个人物里接力或分工,过去只能手动复制粘贴结果。
OPC Agent 把它们收进一个 IM 界面:通讯录里每个 Agent 是一个联系人,左边选人、右边干活,需要协作时把几个拉进一个群,任务按人分派。Agent 的读取、执行、搜索过程折叠成一行,点开是全部细节。
功能
- 多 Agent 编排 —— 单聊与群聊分派,统一事件协议与块模型
- 首条更快 —— 打开会话即后台预热对应 Agent 的 CLI,首条指令不用再等冷启动
- 跨 Agent 知识库 —— 按本会话 / 本工作区 / 本项目 / 全部范围检索历史会话,来源卡可回到原对话;每个 Agent 的主动检索可单独开关
- 执行轨迹 —— 工具调用逐条可查,文件改动展开成行级 diff;过程折叠成一行结论式摘要,短耗时步骤自动收起
- 验证闭环 —— Agent 说「完成了」之后,真的去跑一遍再回报
- 权限门 —— 全局审批中心,越权操作必须人工放行,通知只提醒不代替批准
- 运行续传 —— 断线重连按
seq续上,不丢已产出的内容 - 工作区面板 —— 文件树、浏览器预览与终端三个面板,与对话同屏;html 预览在严格 CSP 沙箱里渲染(零网络请求),窄窗下以浮层抽屉打开
- 答案渲染 —— 正文、链接与推测内容分级呈现;正文外链可选系统浏览器或应用内打开
- 应用内更新 —— 检查、下载、验签后在退出时替换;运行时版本不一致时提供完整包
- 思考过程展示 —— 按 Agent 能力开关,三态视觉区分
- 项目视图 —— 任务面板与项目维度归档
- 四层记忆 —— 会话 / 用户 / 项目 / 全局,各自独立作用域
- 账号与权益 —— 只读本机 Agent 自己的登录态,显示当前账号与套餐;不代登录、不上传凭据
- 头像与外观 —— 用户头像与 Agent Logo 可自定义,图片按内容哈希落盘、服务端嗅探校验
- 界面细节 —— 设置页按参考图重排(行文法、分区标题、填充式控件),设置项下拉为自绘面板并补齐键盘与读屏;亮暗两套色阶统一框架面,标题栏 / 导航 / 列表同底;排版收口为四档语义令牌,聚焦统一为 2px 中性环;导航栏 56px、图标 20px,边缘用
non-scaling-stroke保住锐度

把几个 Agent 拉进同一个群,任务按人分派,各自带着自己的模型与耗时回复。
内置 Agent
共 16 条接入定义:
| Agent | Agent | Agent | Agent |
|---|---|---|---|
| WorkBuddy | Codex | Gemini | OpenCode |
| Claude Code | Hermes | Cursor | Qoder |
| Qoder CN | 豆包 | ZCode | Kimi |
| Pi | Antigravity CLI | Kimi Code CLI | Trae(暂时下架) |
接入方式有两种,以写死的白名单为准,不做自由发现:
- CLI 探测(13 条):只认定义里写死的命令名,在
PATH与各自约定目录里查找可执行文件。名单外的 CLI 即使装了也不会被自动发现 —— 这是刻意的,避免把 IDE 的图形启动器误判成 CLI。 - 官方 SDK 直连(3 条:WorkBuddy / Claude Code / Codex):走厂商 SDK,SDK 自带平台二进制,不依赖本机
PATH,因此开箱即用;代价是安装包体积(见 THIRD-PARTY.md 的许可说明)。
Trae 目前下架:只认
traecli(企业版),IDE 自带的trae-cn是 VS Code 垫片,接进去会被当成可执行路径、拉起图形窗口。定义保留,恢复只需从RETIRED_AGENT_IDS里删掉 id。

通讯录是一条平铺名单,在线的排在最前;头像角标与行尾状态词都是探测出来的真实结果,不是配置项。
快速开始
两个前提:
- Node.js 22+ —— 数据库用的是
node:sqlite,低版本没有这个内置模块。 - 本机至少装一个 Agent CLI。这个应用本身不含任何模型,它只是把你自己装好的 Agent 收进一个界面。一个 CLI 都没装的话,打开会是空通讯录。
本仓库只提供源码,不发布预编译安装包。 自己
npm run electron:build打出来的包只在你本机可用;
公开分发安装包会牵涉到随包的三方组件(其中 Claude Agent SDK 是「保留所有权利」的专有许可),
具体条款与两条可选路线见 THIRD-PARTY.md。
git clone https://github.com/catex-lab/opc-agent.git
cd opc-agent
npm install
npm run dev # 开发态:前端 5173 + 后端 3000
打包成安装程序:
npm run electron:build # 产物在 release/
技术栈
| 层 | 选型 |
|---|---|
| 桌面壳 | Electron |
| 前端 | React 18 + TypeScript + Vite + TDesign |
| 后端 | Express,构建时内联进主进程 |
| 数据库 | node:sqlite(Node 22 内置模块,不是 better-sqlite3) |
| Agent 接入 | 厂商 SDK(@tencent-ai/agent-sdk / @anthropic-ai/claude-agent-sdk / @openai/codex-sdk)与各 Agent 自有 CLI 两条通道 |
| 终端 | node-pty |
目录结构
opc-agent/
├── electron/ 主进程:窗口、托盘、CDP、终端、更新
├── server/ 内联后端:路由、Agent 注册表、数据库、运行中枢
│ └── agents/ 16 条 Agent 定义与探测逻辑
├── shared/ 前后端共用的类型与事件协议
├── src/ 渲染进程(React)
│ ├── components/ 界面组件
│ ├── hooks/ 数据与状态钩子
│ └── assets/ 图标等静态资源
├── scripts/ 构建、打包与验证脚本(见下)
├── build/ 打包资源(图标源图与 ICO)
└── patches/ 依赖补丁
开发
npm run build # 构建前端与主进程,产物在 dist/ 与 dist-electron/
npm run dev # 热重载开发态(同时起前端 5173 与后端 3000)
npm run screenshots # 重新生成 README 里的截图(离线夹具,不碰真实数据)
更细的构建、打包与验证说明见 DEVELOPMENT.md。
验证
仓库里有一套自建的验证链,不是单元测试,而是在真实界面里断言可观测行为:用 Playwright 驱动本机 Chrome 打开真实页面,必要时用真实鼠标坐标点击并自证命中。
npm run verify:ui # 主链,70+ 段串行
npm run verify:logo # 图标资产与界面标记的一致性
npm run verify:package # 打包产物逐字节核对
共 100+ 条 verify:* 脚本,覆盖并发、主题、密度、深链、停止链路等易回归点。改动前先看 package.json 里的实际条数。
数据与隐私
运行时数据全部落在 data/ 目录,不进版本库(.gitignore 已挡):
| 文件 | 内容 |
|---|---|
chat.db |
会话与消息,真实对话内容 |
agent-credentials.json |
各 Agent 的 API Key / 访问令牌 |
permission-rules.json |
自定义权限规则 |
images/ |
生成的图片 |
应用内不收集统计、不埋点、不做崩溃上报,也没有安装 ID —— 代码里不存在遥测模块。密钥一律从环境变量或本地凭据文件读取,不写进源码。
越权的操作会被拦下来问你:

服务端内置 23 类危险命令 + 14 条需确认,rm -rf、强推主分支这类直接拒绝,任何模式都放不过去。
许可
MIT —— 可自由使用、修改、分发、商用,保留版权声明即可。
src/assets/agent-logos/ 下的图标是各 Agent 厂商的商标,不在 MIT 范围内,
详见 TRADEMARKS.md。
安装包里打进去的第三方组件(Electron、express、node-pty 等)各自适用自己的许可,
完整清单见 THIRD-PARTY-LICENSES.txt,
应用内「设置 → 关于与隐私 → 第三方许可」也能看到主要组件。说明见 THIRD-PARTY.md。
安全
漏洞请走私密报告通道,不要开公开 issue。详见 SECURITY.md。
仓库自带提交前密钥扫描:clone 后跑一次 npm run hooks:install,之后每次提交都会检查
暂存区里有没有疑似密钥。规则与验收见 scripts/secret-scan.mjs 与 npm run verify:hooks。
参与
本仓库暂不接收外部 PR。问题与建议请开 issue,安全漏洞走上面的私密通道,
具体说明见 CONTRIBUTING.md。
状态
版本 1.0.17。
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi