源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# OpenWork README Languages
|
||||
|
||||
Available: [English](../README.md), [简体中文](./README_ZH.md), [繁體中文](./README_ZH_hk.md), [日本語](./README_JA.md)
|
||||
@@ -0,0 +1,231 @@
|
||||
[](https://discord.gg/VEhNQXxYMB)
|
||||
|
||||
[English](../README.md) | 日本語 | [他の翻訳README](./README.md)
|
||||
|
||||
# OpenWork
|
||||
> OpenWorkは、Claude Cowork/Codex(デスクトップアプリ)のオープンソース代替です。
|
||||
|
||||
## 基本理念
|
||||
|
||||
- ローカルファースト、クラウド対応: OpenWorkはワンクリックであなたのマシン上で動作します。メッセージを即座に送信できます。
|
||||
- コンポーザブル: デスクトップアプリ、WhatsApp/Slack/Telegramコネクタ、またはサーバー。用途に合ったものを使えます。ロックインなし。
|
||||
- エジェクタブル: OpenWorkはOpenCodeで動いているため、OpenCodeでできることはすべてOpenWorkでも動作します(UIがなくても)。
|
||||
- シェアリング・イズ・ケアリング: localhostでソロ作業を始め、必要に応じてリモート共有を明示的にオプトインできます。
|
||||
|
||||
<p align="center">
|
||||
<img src="../app-demo.gif" alt="OpenWork デモ" width="800" />
|
||||
</p>
|
||||
|
||||
OpenWorkは、エージェントワークフローを再現可能なプロダクト化されたプロセスとして簡単にリリースできるように設計されています。
|
||||
|
||||
## 代替UI
|
||||
- **OpenWork Server(CLIホスト)**: デスクトップUIなしでOpenWorkサーバーを実行します。
|
||||
- インストール: `npm install -g openwork-server`
|
||||
- 実行: `openwork-server`
|
||||
|
||||
## クイックスタート
|
||||
|
||||
デスクトップアプリを[openworklabs.com/download](https://openworklabs.com/download)からダウンロードするか、最新の[GitHubリリース](https://github.com/different-ai/openwork/releases)を取得するか、以下の手順でソースからインストールしてください。
|
||||
|
||||
- macOSおよびLinux向けのダウンロードが直接利用可能です。
|
||||
- Windowsへのアクセスは現在、[openworklabs.com/pricing#windows-support](https://openworklabs.com/pricing#windows-support)の有料サポートプランで提供されています。
|
||||
- ホステッドOpenWork Cloudワーカーは、チェックアウト後にWebアプリから起動し、デスクトップアプリから`Add a worker` -> `Connect remote`で接続します。
|
||||
|
||||
## なぜOpenWorkか
|
||||
|
||||
現在のOpenCode向けCLIやGUIは開発者を中心に設計されています。つまり、ファイルの差分、ツール名、そしてCLIを公開しなければ拡張が難しい機能に焦点が当てられています。
|
||||
|
||||
OpenWorkは以下を目指して設計されています:
|
||||
|
||||
- **拡張可能**: スキルとOpenCodeプラグインはインストール可能なモジュールです。
|
||||
- **監査可能**: 何が、いつ、なぜ起きたかを表示します。
|
||||
- **権限管理**: 特権フローへのアクセスを制御します。
|
||||
- **ローカル/リモート**: OpenWorkはローカルでもリモートサーバーへの接続でも動作します。
|
||||
|
||||
## 含まれる機能
|
||||
|
||||
- **ホストモード**: ローカルコンピュータ上でOpenCodeを実行します。
|
||||
- **クライアントモード**: URLで既存のOpenCodeサーバーに接続します。
|
||||
- **セッション**: セッションの作成/選択とプロンプトの送信。
|
||||
- **ライブストリーミング**: SSE `/event` サブスクリプションによるリアルタイム更新。
|
||||
- **実行計画**: OpenCodeのTodoをタイムラインとして表示。
|
||||
- **権限**: 権限リクエストを表示し、応答(一度許可 / 常に許可 / 拒否)。
|
||||
- **テンプレート**: 一般的なワークフローを保存して再実行(ローカル保存)。
|
||||
- **デバッグエクスポート**: バグ報告時に、設定 -> デバッグからランタイムデバッグレポートと開発者ログストリームをコピーまたはエクスポート。
|
||||
- **スキルマネージャー**:
|
||||
- インストール済みの `.opencode/skills` フォルダを一覧表示
|
||||
- ローカルのスキルフォルダを `.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`
|
||||
|
||||
### ローカル開発の前提条件(デスクトップ)
|
||||
|
||||
`pnpm dev` を実行する前に、以下がシェルにインストールされ有効になっていることを確認してください:
|
||||
|
||||
- Node + pnpm(リポジトリは `pnpm@10.27.0` を使用)
|
||||
- **Bun 1.3.9+**(`bun --version`)
|
||||
- Rustツールチェーン(Tauri用)、現在の `rustup` stableからのCargo(`Cargo.lock` v4対応)
|
||||
- Xcode Command Line Tools(macOS)
|
||||
- Linux環境では、`pkg-config` が `webkit2gtk-4.1` と `javascriptcoregtk-4.1` を解決できるようにWebKitGTK 4.1開発パッケージが必要
|
||||
|
||||
### 1分間の動作確認
|
||||
|
||||
リポジトリルートから実行:
|
||||
|
||||
```bash
|
||||
git checkout dev
|
||||
git pull --ff-only origin dev
|
||||
pnpm install --frozen-lockfile
|
||||
|
||||
which bun
|
||||
bun --version
|
||||
pnpm --filter @openwork/desktop exec tauri --version
|
||||
```
|
||||
|
||||
### インストール
|
||||
|
||||
```bash
|
||||
pnpm install
|
||||
```
|
||||
|
||||
OpenWorkは現在 `apps/app`(UI)と `apps/desktop`(デスクトップシェル)に配置されています。
|
||||
|
||||
### 実行(デスクトップ)
|
||||
|
||||
```bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
`pnpm dev` は自動的に `OPENWORK_DEV_MODE=1` を有効にするため、デスクトップ開発では個人のグローバル設定/認証/データの代わりに分離されたOpenCode状態を使用します。
|
||||
|
||||
### 実行(Web UIのみ)
|
||||
|
||||
```bash
|
||||
pnpm dev:ui
|
||||
```
|
||||
|
||||
リポジトリのすべての `dev` エントリポイントは同じ開発モード分離にオプトインするため、ローカルテストでは一貫してOpenWork管理のOpenCode状態を使用します。
|
||||
|
||||
### Archユーザー向け:
|
||||
|
||||
```bash
|
||||
sudo pacman -S --needed webkit2gtk-4.1
|
||||
curl -fsSL https://opencode.ai/install | bash -s -- --version "$(node -e "const fs=require('fs'); const parsed=JSON.parse(fs.readFileSync('constants.json','utf8')); process.stdout.write(String(parsed.opencodeVersion||'').trim().replace(/^v/,''));")" --no-modify-path
|
||||
```
|
||||
|
||||
## アーキテクチャ(概要)
|
||||
|
||||
- **ホストモード**では、OpenWorkはローカルホストスタックを実行し、UIをそれに接続します。
|
||||
- デフォルトランタイム: `openwork-server`。OpenCodeとOpenWork APIを同じサーバーで提供します。
|
||||
|
||||
プロジェクトフォルダを選択すると、OpenWorkはそのフォルダを使用してローカルでホストスタックを実行し、デスクトップUIを接続します。
|
||||
これにより、リモートサーバーなしで完全にマシン上でエージェントワークフローの実行、プロンプトの送信、進捗の確認が可能です。
|
||||
|
||||
- UIは `@opencode-ai/sdk/v2/client` を使用して:
|
||||
- サーバーに接続
|
||||
- セッションの一覧表示/作成
|
||||
- プロンプトの送信
|
||||
- SSEイベントのサブスクライブ(サーバーからUIへのリアルタイム更新のストリーミングにServer-Sent Eventsを使用)
|
||||
- Todoと権限リクエストの読み取り
|
||||
|
||||
## フォルダピッカー
|
||||
|
||||
フォルダピッカーはTauriダイアログプラグインを使用します。
|
||||
ケイパビリティの権限は以下で定義されています:
|
||||
|
||||
- `apps/desktop/src-tauri/capabilities/default.json`
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
デスクトップやセッションのバグを報告する必要がある場合は、Issueを作成する前に設定 -> デバッグからランタイムデバッグレポートと開発者ログの両方をエクスポートしてください。
|
||||
|
||||
### 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`(または対象のスクリプトサブセット)で変更を検証してください。
|
||||
- PRを作成する際は `.github/pull_request_template.md` を使用し、実行したコマンド、結果、手動検証手順、およびエビデンスを含めてください。
|
||||
- CIが失敗した場合は、PRの本文でコード関連のリグレッションか外部/環境/認証のブロッカーかを分類してください。
|
||||
- 新しいPRDは `AGENTS.md` に記載されている `.opencode/skills/prd-conventions/SKILL.md` の規約に従い、`apps/app/pr/<name>.md` に追加してください。
|
||||
|
||||
コミュニティドキュメント:
|
||||
|
||||
- `CODE_OF_CONDUCT.md`
|
||||
- `SECURITY.md`
|
||||
- `SUPPORT.md`
|
||||
- `TRIAGE.md`
|
||||
|
||||
初回コントリビューションチェックリスト:
|
||||
|
||||
- [ ] `pnpm install` とベースライン検証コマンドを実行する。
|
||||
- [ ] 変更に明確なIssueリンクとスコープがあることを確認する。
|
||||
- [ ] 動作変更に対してテストを追加/更新する。
|
||||
- [ ] PRに実行したコマンドと結果を含める。
|
||||
- [ ] ユーザー向けフロー変更のスクリーンショット/動画を追加する。
|
||||
|
||||
## チーム・企業向け
|
||||
|
||||
組織でのOpenWork利用に興味がありますか?ぜひお聞かせください — [ben@openworklabs.com](mailto:ben@openworklabs.com) までユースケースについてご連絡ください。
|
||||
|
||||
## ライセンス
|
||||
|
||||
MIT — `LICENSE` をご確認ください。
|
||||
@@ -0,0 +1,198 @@
|
||||
[](https://discord.gg/VEhNQXxYMB)
|
||||
|
||||
[English](../README.md) | 简体中文 | [其他语言](./README.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
|
||||
- **OpenWork Server (CLI 主机)**:无需桌面 UI 即可运行 OpenWork 服务器。使用 `npm install -g openwork-server` 安装,然后运行 `openwork-server`。
|
||||
|
||||
|
||||
## 快速开始
|
||||
在此处下载 dmg:https://github.com/different-ai/openwork/releases(或按照下面的说明从源代码安装)
|
||||
|
||||
## 为什么选择 OpenWork
|
||||
|
||||
当前 opencode 的 CLI 和 GUI 都以开发者为中心。这意味着专注于文件差异、工具名称,以及在不依赖某种形式的 CLI 的情况下难以扩展的功能。
|
||||
|
||||
OpenWork 的设计目标是:
|
||||
- **可扩展**:技能和 opencode 插件是可安装的模块。
|
||||
- **可审计**:显示发生了什么、何时发生以及为什么发生。
|
||||
- **权限控制**:访问特权流程。
|
||||
- **本地/远程**:OpenWork 可以在本地工作,也可以连接到远程服务器。
|
||||
|
||||
## 包含的功能
|
||||
|
||||
- **主机模式**:在您的计算机上本地运行 opencode
|
||||
- **客户端模式**:通过 URL 连接到现有的 OpenCode 服务器
|
||||
- **会话**:创建/选择会话并发送提示
|
||||
- **实时流传输**:SSE `/event` 订阅以获取实时更新
|
||||
- **执行计划**:将 OpenCode 待办事项呈现为时间线
|
||||
- **权限**:显示权限请求并回复(允许一次/始终允许/拒绝)
|
||||
- **模板**:保存并重新运行常见工作流程(本地存储)
|
||||
- **技能管理器**:
|
||||
- 列出已安装的 `.opencode/skills` 文件夹
|
||||
- 将本地技能文件夹导入到 `.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
|
||||
curl -fsSL https://opencode.ai/install | bash -s -- --version "$(node -e "const fs=require('fs'); const parsed=JSON.parse(fs.readFileSync('constants.json','utf8')); process.stdout.write(String(parsed.opencodeVersion||'').trim().replace(/^v/,''));")" --no-modify-path
|
||||
```
|
||||
|
||||
## 架构(高级)
|
||||
|
||||
- 在**主机模式**中,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`
|
||||
|
||||
## 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`。
|
||||
@@ -0,0 +1,198 @@
|
||||
[](https://discord.gg/VEhNQXxYMB)
|
||||
|
||||
[English](../README.md) | 繁體中文 | [其他語言](./README.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
|
||||
- **OpenWork Server (CLI 主機)**:無需桌面 UI 即可運行 OpenWork 伺服器。使用 `npm install -g openwork-server` 安裝,然後運行 `openwork-server`。
|
||||
|
||||
|
||||
## 快速開始
|
||||
在此處下載 dmg:https://github.com/different-ai/openwork/releases(或按照下面的說明從源代碼安裝)
|
||||
|
||||
## 為什麼選擇 OpenWork
|
||||
|
||||
當前 opencode 的 CLI 和 GUI 都以開發者為中心。這意味著專注於檔案差異、工具名稱,以及在不依賴某種形式的 CLI 的情況下難以擴展的功能。
|
||||
|
||||
OpenWork 的設計目標是:
|
||||
- **可擴展**:技能和 opencode 插件是可安裝的模組。
|
||||
- **可審計**:顯示發生了什麼、何時發生以及為什麼發生。
|
||||
- **權限控制**:訪問特權流程。
|
||||
- **本地/遠端**:OpenWork 可以在本地工作,也可以連接到遠端伺服器。
|
||||
|
||||
## 包含的功能
|
||||
|
||||
- **主機模式**:在您的電腦上本地運行 opencode
|
||||
- **客戶端模式**:通過 URL 連接到現有的 OpenCode 伺服器
|
||||
- **會話**:創建/選擇會話並發送提示
|
||||
- **實時流傳輸**:SSE `/event` 訂閱以獲取實時更新
|
||||
- **執行計劃**:將 OpenCode 待辦事項呈現為時間線
|
||||
- **權限**:顯示權限請求並回覆(允許一次/始終允許/拒絕)
|
||||
- **模板**:保存並重新運行常見工作流程(本地存儲)
|
||||
- **技能管理器**:
|
||||
- 列出已安裝的 `.opencode/skills` 資料夾
|
||||
- 將本地技能資料夾導入到 `.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
|
||||
curl -fsSL https://opencode.ai/install | bash -s -- --version "$(node -e "const fs=require('fs'); const parsed=JSON.parse(fs.readFileSync('constants.json','utf8')); process.stdout.write(String(parsed.opencodeVersion||'').trim().replace(/^v/,''));")" --no-modify-path
|
||||
```
|
||||
|
||||
## 架構(高級)
|
||||
|
||||
- 在**主機模式**中,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`
|
||||
|
||||
## 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`。
|
||||
Reference in New Issue
Block a user