引言
"如果 Claude Cowork 能开源、本地化运行,那该多好?"
这是"一天一个开源项目"系列的第18篇文章。今天带你了解的项目是 OpenWork (GitHub)。
在 AI 代理工具领域,Claude Cowork 是一个强大的协作工作台,但它是闭源的商业产品。OpenWork 应运而生,它是一个完全开源的桌面应用,由 OpenCode 驱动,实现了与 Claude Cowork 类似的功能:运行 AI 代理、技能和 MCP(模型上下文协议)。更重要的是,它采用"本地优先,云端就绪"的设计理念,让你可以在自己的机器上一键运行,完全掌控自己的 AI 工作流。
为什么选择这个项目?
- 🖥️ 开源替代品:Claude Cowork 的免费开源替代方案
- 🏠 本地优先:在本地运行 AI 代理,数据完全由你掌控
- 🔌 MCP 协议支持:原生支持 Model Context Protocol
- 🧩 可组合架构:桌面应用、聊天应用连接器、服务器模式随意切换
- ⚡ 技能管理器:安装、导入和管理各种技能
- 🌐 跨平台支持:基于 Tauri 构建,支持 macOS、Windows、Linux
- 🔓 可"弹出"设计:甚至无需 UI 也能通过命令行工作
你将学到什么
- OpenWork 的核心架构和设计理念
- 如何在本地部署和运行 AI 代理工作流
- MCP 协议在 OpenWork 中的应用
- 技能系统的使用和管理
- 主机模式与客户端模式的区别和应用场景
- 与其他 AI 工作台工具的对比分析
- 实际应用场景和最佳实践
前置知识
- 对 AI 代理概念有基本了解
- 了解 MCP(Model Context Protocol)协议(可选)
- 熟悉命令行操作(可选)
- 对桌面应用开发有基本概念(可选)
项目背景
项目简介
OpenWork 是一个开源桌面 AI 代理工作台,作为 Claude Cowork 的替代品,由 OpenCode CLI 提供核心能力。它允许用户在本地或服务器上运行 AI 代理、技能和 MCP,支持从单人使用扩展到团队协作共享。OpenWork 采用"本地优先,云端就绪"的设计哲学,让用户可以一键在本地运行 AI 工作流,同时也支持连接远程服务器。
项目解决的核心问题:
- Claude Cowork 是闭源商业产品,无法本地化部署
- 现有 AI 代理工具缺乏统一的技能管理和 MCP 支持
- 团队协作需要共享 AI 工作流,但缺乏开源解决方案
- 开发者需要一个可扩展、可组合的 AI 代理工作台
- 隐私敏感场景需要完全本地化的 AI 代理运行环境
面向的用户群体:
- 需要本地运行 AI 代理的开发者
- 希望使用 Claude Cowork 类似功能但不想付费的用户
- 对 MCP 协议感兴趣的技术人员
- 需要团队共享 AI 工作流的团队
- 对数据隐私有高要求的企业和个人
作者/团队介绍
团队:different-ai
- 背景:专注于开源 AI 工具开发的团队
- 代表作品:OpenWork、file-organizer-2000 等
- 理念:让 AI 工具更加开放、可访问、可组合
- 技术栈:TypeScript、Rust、Tauri、React
项目数据
- ⭐ GitHub Stars: 9.2k+(快速增长中)
- 🍴 Forks: 768+
- 📦 版本: 持续更新中(830+ commits)
- 📄 License: MIT(完全开源,自由使用)
- 🌐 项目地址 : GitHub
- 💬 社区: GitHub Issues 活跃
- 👥 贡献者: 23位贡献者,活跃的社区参与
项目发展历程:
- 2024-2025年:项目创建,实现核心功能
- 持续迭代:添加技能管理器、MCP 支持等新功能
- 社区增长:达到 9.2k+ Stars,成为热门项目
- 多模态支持:支持桌面应用、Web 界面、CLI 等多种使用方式
主要功能
核心作用
OpenWork 的核心作用是提供一个开源的 AI 代理工作台,主要功能包括:
- AI 代理运行:在本地或服务器上运行各种 AI 代理
- 技能管理:安装、导入和管理各种技能(Skills)
- MCP 协议支持:原生支持 Model Context Protocol
- 会话管理:管理多个会话,支持实时提示发送
- 工作流模板:保存工作流模板,支持重复执行
- 权限控制:处理代理的权限请求
- 执行时间线:可视化展示执行计划时间线
- 事件流订阅:支持 SSE 事件流订阅
使用场景
OpenWork 适用于多种 AI 工作流场景:
-
本地开发
- 在本地运行 AI 代理进行开发测试
- 无需云服务即可使用完整功能
- 保护代码和数据隐私
-
团队协作
- 搭建共享的 AI 代理服务器
- 团队成员通过客户端模式连接
- 统一管理技能和工作流
-
自动化任务
- 使用技能自动化重复性任务
- 保存工作流模板重复执行
- 批量处理多个任务
-
MCP 集成
- 连接各种 MCP 服务器
- 扩展 AI 代理的能力
- 与现有工具链集成
快速开始
安装方式
OpenWork 提供多种安装方式:
方式一:下载预构建版本(推荐)
bash
# macOS 用户
# 访问 Releases 页面下载 DMG 文件
# 或访问官网下载
# https://github.com/different-ai/openwork/releases
方式二:从源码构建
bash
# 1. 克隆项目
git clone https://github.com/different-ai/openwork.git
cd openwork
# 2. 安装依赖
pnpm install
# 3. 启动开发服务器
pnpm dev # 桌面应用
pnpm dev:ui # 仅Web界面
系统要求:
- Node.js 18+
- pnpm 包管理器
- Rust(如果需要从源码构建 Tauri)
- macOS / Windows / Linux
基本使用
启动应用:
bash
# 开发模式
pnpm dev
# 生产构建
pnpm build
连接模式选择:
OpenWork 支持两种运行模式:
-
主机模式(Host Mode)
- 在本地启动完整服务
- 适合个人使用或作为团队服务器
-
客户端模式(Client Mode)
- 连接到远程 OpenWork 服务器
- 适合团队协作场景
常用操作示例
bash
# 启动桌面应用(开发模式)
pnpm dev
# 仅启动 Web 界面
pnpm dev:ui
# 构建桌面应用
pnpm build
# 使用 CLI 模式(openwrk)
# openwrk 提供纯命令行的主机模式
核心特性
OpenWork 的核心特性包括:
-
本地优先设计
- 在本地机器上一键运行
- 数据完全由用户掌控
- 无需云服务即可使用
-
可组合架构
- 桌面应用模式
- 聊天应用连接器(如 WhatsApp)
- 服务器模式
-
可"弹出"设计
- 由 OpenCode 驱动
- 甚至无需 UI 也能工作
- 支持 CLI 纯命令行操作
-
会话管理
- 创建和管理多个会话
- 实时发送提示
- 查看会话历史
-
SSE 事件流
- 订阅实时事件
- 跟踪执行进度
- 接收代理响应
-
执行计划时间线
- 可视化展示执行步骤
- 追踪代理行为
- 调试和分析
-
权限请求处理
- 代理权限请求弹窗
- 用户授权控制
- 安全执行保障
-
工作流模板
- 保存常用工作流
- 一键重复执行
- 团队共享模板
-
技能管理器
- 安装新技能
- 导入自定义技能
- 管理已安装技能
项目优势
与其他 AI 工作台工具相比,OpenWork 的优势:
| 对比项 | OpenWork | Claude Cowork | 其他开源方案 |
|---|---|---|---|
| 开源程度 | 完全开源(MIT) | 闭源商业 | 部分开源 |
| 本地运行 | 原生支持 | 云端为主 | 部分支持 |
| MCP 支持 | 原生支持 | 支持 | 有限支持 |
| 技能系统 | 完整 | 完整 | 简单 |
| 跨平台 | macOS/Win/Linux | Web为主 | 各异 |
| 可组合性 | 高(多模态) | 中 | 低 |
| 定制能力 | 高(源码可改) | 低 | 中 |
| 价格 | 免费 | 付费订阅 | 免费/部分付费 |
为什么选择 OpenWork?
- ✅ 完全开源:MIT 许可,自由使用和修改
- ✅ 本地优先:数据隐私有保障
- ✅ MCP 原生:完整的协议支持
- ✅ 多模态支持:桌面、Web、CLI 随心选择
- ✅ 技能生态:丰富的技能管理能力
- ✅ 社区活跃:9.2k+ Stars,持续更新
项目详细剖析
架构设计
OpenWork 采用 Tauri + React 架构,实现跨平台桌面应用:
scss
┌─────────────────────────────────────────────────────────┐
│ USER INTERFACE │
│ 🖥️ Desktop App (Tauri Window) │
│ 🌐 Web UI (React) │
│ 💬 Chat Connectors (WhatsApp, etc.) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ APPLICATION LAYER │
│ 📝 Session Management │
│ 🔧 Skill Manager │
│ 📊 Execution Timeline │
│ 🔐 Permission Handler │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ CORE ENGINE │
│ ⚙️ OpenCode CLI Integration │
│ 📡 SSE Event Stream │
│ 🔌 MCP Protocol Handler │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ RUNTIME LAYER │
│ 🦀 Rust/Tauri (Desktop Runtime) │
│ 📦 Node.js (Server Runtime) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ INTEGRATIONS │
│ 🤖 AI Providers (Claude, OpenAI, etc.) │
│ 🔌 MCP Servers │
│ 📁 Local File System │
└─────────────────────────────────────────────────────────┘
核心组件:
- 用户界面层:Tauri 桌面窗口 + React Web UI
- 应用层:会话管理、技能管理、执行时间线、权限处理
- 核心引擎:OpenCode CLI 集成、SSE 事件流、MCP 协议处理
- 运行时层:Rust/Tauri(桌面)+ Node.js(服务器)
- 集成层:AI 提供商、MCP 服务器、本地文件系统
核心模块分析
1. OpenCode 集成
OpenWork 由 OpenCode CLI 驱动,提供核心 AI 代理能力:
功能:
- 执行 AI 代理任务
- 管理代理生命周期
- 处理代理输入输出
特点:
- 可以脱离 UI 独立运行
- 支持命令行直接调用
- 提供完整的代理能力
2. 技能管理器(Skill Manager)
OpenWork 提供完整的技能管理功能:
功能:
- 浏览和安装新技能
- 导入自定义技能
- 管理已安装技能
- 启用/禁用技能
技能类型:
- 代码生成技能
- 文件操作技能
- 数据处理技能
- 自定义扩展技能
3. 会话管理(Session Management)
功能:
- 创建新会话
- 管理多个并行会话
- 实时发送提示
- 查看会话历史
实现方式:
- 每个会话独立运行
- 支持会话间切换
- 保存会话状态
4. MCP 协议支持
OpenWork 原生支持 Model Context Protocol:
功能:
- 连接 MCP 服务器
- 调用 MCP 工具
- 管理 MCP 资源
应用场景:
- 扩展 AI 代理能力
- 集成外部工具
- 访问外部数据源
5. SSE 事件流
功能:
- 实时订阅执行事件
- 跟踪代理执行进度
- 接收代理响应
实现方式:
- Server-Sent Events 协议
- 实时推送更新
- 低延迟响应
技术栈详解
OpenWork 使用现代化的技术栈:
前端/界面:
- TypeScript (72.1%):主要编程语言
- React:UI 框架
- JavaScript (12.9%):辅助脚本
桌面运行时:
- Tauri:跨平台桌面框架
- Rust (9.1%):Tauri 核心运行时
构建工具:
- pnpm:包管理和工作区管理
- Node.js:JavaScript 运行时
为什么选择这个技术栈?
| 技术 | 选择理由 |
|---|---|
| Tauri | 比 Electron 更轻量,安全性更好 |
| TypeScript | 类型安全,开发体验好 |
| React | 成熟的生态,组件化开发 |
| Rust | 高性能,内存安全 |
| pnpm | 高效的包管理,支持 monorepo |
实际使用案例
案例1:本地开发环境
场景:在本地搭建 AI 辅助开发环境。
实现步骤:
bash
# 1. 克隆并启动 OpenWork
git clone https://github.com/different-ai/openwork.git
cd openwork
pnpm install
pnpm dev
# 2. 在桌面应用中创建新会话
# 3. 安装需要的技能(如代码生成技能)
# 4. 开始与 AI 代理交互
效果:在本地拥有完整的 AI 代理工作台,无需云服务,数据完全本地化。
案例2:团队共享服务器
场景:为团队搭建共享的 AI 代理服务器。
实现步骤:
bash
# 1. 在服务器上启动 OpenWork(主机模式)
pnpm dev:ui # 或使用 openwrk CLI
# 2. 团队成员使用客户端模式连接
# 在 OpenWork 中选择"Client Mode"
# 输入服务器地址连接
# 3. 共享技能和工作流模板
# 4. 团队成员可以协作使用相同的 AI 代理
效果:团队共享 AI 代理资源,统一管理技能和工作流,提高协作效率。
案例3:MCP 集成工作流
场景:通过 MCP 协议扩展 AI 代理能力。
实现步骤:
bash
# 1. 启动 OpenWork
# 2. 配置 MCP 服务器连接
# 在设置中添加 MCP 服务器地址
# 3. AI 代理自动获得 MCP 工具能力
# 4. 在会话中使用 MCP 提供的工具
效果:AI 代理能力大幅扩展,可以访问数据库、文件系统、外部 API 等。
案例4:自动化工作流
场景:创建自动化工作流处理重复性任务。
实现步骤:
bash
# 1. 在 OpenWork 中创建会话
# 2. 执行一系列操作完成任务
# 3. 将工作流保存为模板
# 4. 后续一键执行相同工作流
效果:重复性任务自动化执行,节省时间和精力。
项目地址与资源
官方资源
- 🌟 GitHub : github.com/different-a...
- 📦 Releases : 下载页面
相关项目
- OpenCode: OpenWork 的核心引擎
- Owpenbot: WhatsApp 集成
- Openwrk: CLI 主机模式
适用人群
OpenWork 适合以下人群:
1. 开发者
- ✅ 需要本地 AI 代理环境的开发者
- ✅ 对 Claude Cowork 感兴趣但不想付费的用户
- ✅ 需要定制化 AI 工作流的技术人员
2. 团队用户
- ✅ 需要共享 AI 代理资源的团队
- ✅ 希望统一管理技能和工作流的组织
- ✅ 对数据隐私有要求的企业
3. AI 爱好者
- ✅ 对 MCP 协议感兴趣
- ✅ 希望探索 AI 代理技术
- ✅ 喜欢尝试开源工具
4. 隐私敏感用户
- ✅ 需要完全本地化运行
- ✅ 不希望数据上传云端
- ✅ 需要在离线环境使用
总结
OpenWork 是一个出色的开源 AI 代理工作台,它成功地将 Claude Cowork 的核心功能带入开源世界。通过"本地优先,云端就绪"的设计理念,它让用户可以完全掌控自己的 AI 工作流。
项目亮点回顾:
- 🖥️ 开源替代品:Claude Cowork 的免费开源替代方案
- 🏠 本地优先:数据完全由用户掌控
- 🔌 MCP 协议支持:原生支持 Model Context Protocol
- 🧩 可组合架构:桌面应用、Web、CLI 多模态支持
- ⚡ 技能管理器:完整的技能安装和管理功能
- 🌐 跨平台:基于 Tauri 支持多平台
- 🔓 可"弹出":甚至无需 UI 也能通过命令行工作
适用场景:
- 本地 AI 代理开发环境
- 团队共享 AI 工作台
- MCP 协议集成工作流
- 自动化任务处理
- 隐私敏感的 AI 应用
欢迎来我中的个人主页找到更多有用的知识和有趣的产品