openyak/openyak

One chat. Every agent. A universal interface for AI agents running on your computer.

OpenYak – 用于 AI 代理的本地桌面工作区

它是什么

  • OpenYak 是一个开源桌面应用程序 (Electron + React),让您能与由大型语言模型支持的代理(如 Codex 和 Claude Code)进行对话,同时将所有文件、对话记录和项目状态保留在您自己的机器上。
  • 它不是模型托管服务;您仍然需要一个可运行的 Codex 或 Claude Code 运行环境(官方 CLI 工具)以及对应的账户凭证。

主要功能

功能 您将获得什么
持久化对话工作区 项目、任务和对话记录存储在本地的 SQLite 数据库中,因此您可以重新访问或切换代理而不会丢失上下文。
原生运行环境集成 OpenYak 通过 stdio 直接与官方 Codex App Server 或 Claude Agent SDK 通讯。亦支持选用的 ACP 兼容层。
以文件为中心的工作流程 当代理参考文件时,OpenYak 会在持久化标签页中打开它。它可以渲染 Markdown、HTML (沙盒化)、PDF、DOCX 和语法高亮的源代码。
共享浏览器视图 使用 Playwright MCP 和专用的 Chrome 实例,用户和代理皆可控制同一个网页。取得控制权会暂停代理;释放控制权则将页面交还。
跨平台 UI 浅色/深色主题、可调整大小的面板、macOS Dock 图标和菜单栏快捷方式。(Linux/Windows 支持仍在 alpha 阶段。)
可扩展架构 前端位于 app/ (Electron + React)。核心数据处理和运行环境事件标准化位于 core/ (Rust + SQLite)。文档描述了运行环境合约以及两者之间使用的 core-protocol。

如何在本地执行

  1. 安装 Node 26 和 Rust 1.90(仓库锁定了确切版本;mise install 可以自动设置它们)。
  2. 克隆仓库,运行 npm install,然后运行 npm run dev。这会构建 Rust 核心、启动 Electron 并启用热重载。
  3. 通过环境变量 OPENYAK_CODEX_BIN / OPENYAK_CLAUDE_BIN 将应用程序指向您的本地 Codex 或 Claude 二进制文件。可选设置 OPENYAK_DATA_DIR 以建立隔离的工作区,或设置 OPENYAK_AGENT_TRANSPORT=acp 以使用兼容性适配器。

技术细节

  • app/ – Electron 外壳加上 React UI,显示对话、文件工作台和共享浏览器面板。
  • core/ – Rust 库,将项目、任务和对话记录存储在 SQLite 中,并标准化来自代理运行环境的事件。
  • Docs – 架构、运行环境合约、共享浏览器设计和 CI 工作流程皆记录在 docs/ 文件夹中。

目前状态

  • 项目处于 v2 alpha 阶段。核心功能可运行,但安装程序、完整的 Windows/Linux 验证以及更广泛的代理支持仍在进行中。
  • UI 可以渲染文件并显示共享浏览器,但完整的计算机使用工具(例如原生桌面控制)尚未整合。

授权

  • Apache-2.0。

以上所有细节均直接取自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目