Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
[![Discord](https://img.shields.io/badge/discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/VEhNQXxYMB)

English | [简体中文](./README_ZH.md) | [繁體中文](./README_ZH_hk.md)

# OpenWork
> Make your company feel 1000× more productive.

Expand Down
208 changes: 208 additions & 0 deletions README_ZH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
[![Discord](https://img.shields.io/badge/discord-加入-5865F2?logo=discord&logoColor=white)](https://discord.gg/VEhNQXxYMB)

[English](./README.md) | 简体中文 | [繁體中文](./README_ZH_hk.md)

# OpenWork
> 让您的公司提升 1000 倍的生产力。

我们为 AI 智能体配备您团队已经在使用的工具,并让它们从您的行为中学习。您使用 OpenWork 越多,工具之间的连接就越紧密,积累的知识就越多,能够自动化的工作块就越大。

OpenWork 是 opencode 的最简单界面。双击,选择一个文件夹,即可立即获得三大核心优势:
1. 零摩擦设置 — 您现有的 opencode 配置开箱即用,无需迁移
2. 聊天集成 — WhatsApp 和 Telegram 即时可用(一个令牌,全部搞定)
3. 云端就绪 — 每个应用都可以作为客户端;部署到云端,随时随地访问
> **创建安全智能体工作流程并与团队共享的最简单方式**

它是 "Claude Work" 的**可扩展开源替代品**。


<img width="1292" height="932" alt="Screenshot 2026-01-31 at 16 22 39" src="https://github.com/user-attachments/assets/5742be91-9cfb-4212-b32d-cf2a27b1c093" />


<img width="1292" height="932" alt="Screenshot 2026-01-31 at 13 43 30" src="https://github.com/user-attachments/assets/6639d1ef-c831-406e-a812-87fde403e6d5" />


OpenWork 围绕一个核心理念设计:让您可以轻松地将智能体工作流程作为可重复的、产品化的流程进行交付。

它是一个原生桌面应用程序,底层运行 **OpenCode**,但将其呈现为简洁的引导式工作流程:
- 选择工作区
- 开始运行
- 观察进度 + 计划更新
- 需要时批准权限
- 重用有效的方法(命令 + 技能)

目标:让"智能体工作"感觉像一个产品,而不是终端。

## 其他界面

- **Owpenbot (WhatsApp 机器人)**:为运行中的 OpenCode 服务器提供的轻量级 WhatsApp 桥接器。安装方法:
- `curl -fsSL https://raw.githubusercontent.com/different-ai/owpenbot/dev/install.sh | bash`
- 运行 `owpenbot setup`,然后 `owpenbot whatsapp login`,接着 `owpenbot start`
- 完整设置:https://github.com/different-ai/owpenbot/blob/dev/README.md
- **Openwrk (CLI 主机)**:无需桌面 UI 即可运行 OpenCode + OpenWork 服务器。使用 `npm install -g openwrk` 安装。
- 文档:[packages/headless/README.md](./packages/headless/README.md)


## 快速开始
在此处下载 dmg:https://github.com/different-ai/openwork/releases(或按照下面的说明从源代码安装)

## 为什么选择 OpenWork

当前 opencode 的 CLI 和 GUI 都以开发者为中心。这意味着专注于文件差异、工具名称,以及在不依赖某种形式的 CLI 的情况下难以扩展的功能。

OpenWork 的设计目标是:
- **可扩展**:技能和 opencode 插件是可安装的模块。
- **可审计**:显示发生了什么、何时发生以及为什么发生。
- **权限控制**:访问特权流程。
- **本地/远程**:OpenWork 可以在本地工作,也可以连接到远程服务器。

## 包含的功能

- **主机模式**:在您的计算机上本地运行 opencode
- **客户端模式**:通过 URL 连接到现有的 OpenCode 服务器
- **会话**:创建/选择会话并发送提示
- **实时流传输**:SSE `/event` 订阅以获取实时更新
- **执行计划**:将 OpenCode 待办事项呈现为时间线
- **权限**:显示权限请求并回复(允许一次/始终允许/拒绝)
- **模板**:保存并重新运行常见工作流程(本地存储)
- **技能管理器**:
- 列出已安装的 `.opencode/skills` 文件夹
- 从 OpenPackage 安装(`opkg install ...`)
- 将本地技能文件夹导入到 `.opencode/skills/<skill-name>`


## 技能管理器
<img width="1292" height="932" alt="image" src="https://github.com/user-attachments/assets/b500c1c6-a218-42ce-8a11-52787f5642b6" />


## 适用于本地计算机或服务器
<img width="1292" height="932" alt="Screenshot 2026-01-13 at 7 05 16 PM" src="https://github.com/user-attachments/assets/9c864390-de69-48f2-82c1-93b328dd60c3" />


## 快速开始

### 系统要求

- Node.js + `pnpm`
- Rust 工具链(用于 Tauri):通过 `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` 安装
- Tauri CLI:`cargo install tauri-cli`
- 已安装 OpenCode CLI 且可在 PATH 中使用:`opencode`

### 安装

```bash
pnpm install
```

OpenWork 现在位于 `packages/app`(UI)和 `packages/desktop`(桌面外壳)中。

### 运行(桌面版)

```bash
pnpm dev
```

### 运行(仅 Web UI)

```bash
pnpm dev:ui
```

### Arch 用户:

```bash
yay -s opencode # 已发布版本
```

## 架构(高级)

- 在**主机模式**中,OpenWork 启动:
- `opencode serve --hostname 127.0.0.1 --port <free-port>`
- 以您选择的项目文件夹作为进程工作目录。
在主机模式下,OpenWork 直接在您的计算机上后台启动 OpenCode 服务器。
当您选择项目文件夹时,OpenWork 使用该文件夹在本地运行 OpenCode 并将桌面 UI 连接到它。
这允许您完全在您的机器上运行智能体工作流程、发送提示并查看进度,而无需依赖远程服务器。

- UI 使用 `@opencode-ai/sdk/v2/client` 来:
- 连接到服务器
- 列出/创建会话
- 发送提示
- 订阅 SSE 事件(即“服务器发送事件”,用于从服务器向 UI 流式传输实时更新)
- 读取待办事项和权限请求



## 文件夹选择器

文件夹选择器使用 Tauri 对话框插件。
功能权限在以下文件中定义:
- `packages/desktop/src-tauri/capabilities/default.json`

## OpenPackage 说明

如果 `opkg` 未全局安装,OpenWork 会回退到:

```bash
pnpm dlx opkg install <package>
```

## OpenCode 插件

插件是扩展 OpenCode 的**原生**方式。OpenWork 现在通过从技能选项卡读取和写入 `opencode.json` 来管理它们。

- **项目范围**:`<workspace>/opencode.json`
- **全局范围**:`~/.config/opencode/opencode.json`(或 `$XDG_CONFIG_HOME/opencode/opencode.json`)

您仍然可以手动编辑 `opencode.json`;OpenWork 使用与 OpenCode CLI 相同的格式:

```json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-wakatime"]
}
```

## 有用的命令

```bash
pnpm dev
pnpm dev:ui
pnpm typecheck
pnpm build
pnpm build:ui
pnpm test:e2e
```

## 故障排除

### Linux / Wayland (Hyprland)

如果 OpenWork 在启动时因 WebKitGTK 错误(如 `Failed to create GBM buffer`)而崩溃,请在启动前禁用 dmabuf 或合成。尝试以下环境标志之一。

```bash
WEBKIT_DISABLE_DMABUF_RENDERER=1 openwork
```

```bash
WEBKIT_DISABLE_COMPOSITING_MODE=1 openwork
```

## 安全说明

- OpenWork 默认隐藏模型推理和敏感工具元数据。
- 主机模式默认绑定到 `127.0.0.1`。

## 贡献

- 在进行更改之前,请查看 `AGENTS.md` 以及 `VISION.md`、`PRINCIPLES.md`、`PRODUCT.md` 和 `ARCHITECTURE.md` 以了解产品目标。
- 在仓库内工作之前,确保已安装 Node.js、`pnpm`、Rust 工具链和 `opencode`。
- 每次检出后运行一次 `pnpm install`,然后在打开 PR 之前使用 `pnpm typecheck` 加上 `pnpm test:e2e`(或目标脚本子集)验证您的更改。
- 按照 `AGENTS.md` 中描述的 `.opencode/skills/prd-conventions/SKILL.md` 约定,将新的 PRD 添加到 `packages/app/pr/<name>.md`。

## 面向团队和企业

有兴趣在您的组织中使用 OpenWork?我们很乐意听取您的意见 — 请发送邮件至 [benjamin.shafii@gmail.com](mailto:benjamin.shafii@gmail.com) 与我们讨论您的用例。

## 许可证

MIT — 请参见 `LICENSE`。
Loading
Loading