源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)

This commit is contained in:
agent-radar
2026-09-02 01:05:41 +08:00
commit 04bac1f6e2
2200 changed files with 489415 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
# OpenWork README Languages
Available: [English](../README.md), [简体中文](./README_ZH.md), [繁體中文](./README_ZH_hk.md), [日本語](./README_JA.md)
+231
View File
@@ -0,0 +1,231 @@
[![Discord](https://img.shields.io/badge/discord-加入-5865F2?logo=discord&logoColor=white)](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` をご確認ください。
+198
View File
@@ -0,0 +1,198 @@
[![Discord](https://img.shields.io/badge/discord-加入-5865F2?logo=discord&logoColor=white)](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`。
+198
View File
@@ -0,0 +1,198 @@
[![Discord](https://img.shields.io/badge/discord-加入-5865F2?logo=discord&logoColor=white)](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`。