致力于为所有人提供更多可能性的 AI 代理工作区。
Agentic workspace dedicated to expanding possibilities for everyone.
Caution
Pine 仍是超级早期的开发者预览版,不适合日常工作或重要数据。界面、数据格式、Agent 行为和项目结构都可能发生不兼容变更;当前不提供稳定版本、迁移或兼容性保证。
现在的 AI Agent 大多是为开发者设计的:终端 TUI、编辑器插件、命令行参数。会用它们的人已经得到了效率红利,而每天处理文档、表格、报表、资料整理的大多数人,只能通过网页聊天框间接触碰自己的文件。
Pine 是这些人的桌面 harness:
- 办公文件是一等公民。文本、图片、视频、PDF、DOCX、XLS/XLSX、PPTX 都能在工作区内直接预览和编辑,Agent 操作的正是你看到的文件。
- 看得见、管得住。Agent 的每次读取、思考、工具调用和文件修改都完整呈现在会话 transcript 中;执行前可以审批、拒绝或给指引,随时中止。
- 本地优先。项目、会话和文件都留在你的电脑上;模型连接(API key / OAuth)由你自己配置,Pine 不做中转。
- 界面向 Codex 这类优秀的 Agent 体验看齐,并且完全开源(AGPL-3.0)——这套「普通人可用的 Agent 桌面工作区」不该是闭源产品独有的。
一句话概括使用方式:
创建 Project → 授权文件夹 → 和 Agent 对话 → 审批 / 接管 → 文件与结果
| 项目 | 当前情况 |
|---|---|
| 版本 | 0.1.0,开发者预览版 |
| 核心闭环 | Project Library → 文件夹授权 → 持久化会话 → Agent 工具调用 → 结果回显 |
| 已验证 | bun run check 通过;57 个测试文件、395 个测试通过,14 个跳过 |
| 打包 | bun run build 已在 macOS arm64 完成 Electron Forge 打包流程 |
| 发行 | CI 当前发布 macOS Apple Silicon / Intel nightly snapshot;Windows/Linux maker 已配置但尚未作为验证过的发布渠道 |
- 项目管理:创建、搜索、打开、删除 Project;一个 Project 可关联多个文件夹,逐个设置只读 / 读写权限和默认工作目录。
- Agent 会话:流式回复、工具调用事件、持久化会话;继续 / 中止 / 重命名 / 删除、全文搜索、steering 消息、上下文用量展示。
- 文件工作区:文件树(新建、重命名、移动、删除)、路径复制、多标签浏览。
- 审批与权限:Agent 的本地工具(
read/write/edit/bash)严格限制在授权范围内;越界操作(如访问外部路径)必须走privileged_bash并单独审批。 - 模型与认证:Provider / model catalog、API key / OAuth 登录、模型切换、thinking level;配置搜索 API key 后还可使用
web_search/web_fetch(带 URL、域名和大小校验)。 - 桌面体验:中英文界面、浅色 / 深色 / 跟随系统主题、多标签、窗口快捷键、macOS 侧栏模糊。
| 模式 | 行为 | 适合场景 |
|---|---|---|
| Let Me Review | 需要审批的调用逐一交给用户确认 | 希望逐步审查 Agent 行动 |
| Auto Approve | 在项目沙箱内自动执行;越过边界时请求审批 | 日常使用 |
| YOLO | 关闭 Pine 的沙箱、文件夹限制和审批门;使用原生权限 | 仅适合明确理解风险的实验 |
需要 Bun,版本以根目录 package.json 的 packageManager 为准。
git clone https://github.com/Starlight-Intelligence/pine.git
cd pine
bun install --frozen-lockfile
bun run dev在应用中创建一个 Project,选择 Agent 可以访问的文件夹,然后新建 Session 开始工作。
| 命令 | 用途 |
|---|---|
bun run dev |
启动桌面端开发环境 |
bun run build |
执行 Electron Forge 打包流程 |
bun run check |
格式、Lint、类型检查与单元测试 |
bun run test |
运行单元测试 |
bun run test:coverage |
生成测试覆盖率报告 |
bun run typecheck |
运行 TypeScript / Vue 类型检查 |
bun run shadcn:add <component> |
使用固定版本的 shadcn-vue CLI 添加组件 |
- Renderer 不直接访问 Node.js、文件系统或 shell,只通过最小 preload IPC 与 Main process 通信。
- Agent runtime 运行在独立的 Electron utility process 中,基于 Pi Agent Core。
- 文件请求使用
{ folderId, relativePath },由 Main process 校验路径边界;Project 元数据和会话存放在 ElectronuserData下,不写入用户项目目录。 - Pine 不复制、移动或接管项目文件夹;删除 Project 只删除 Pine 自己的元数据目录。
完整文档见 docs/project-system.md 与 docs/agent-execution-environment.md。
apps/
desktop/ Electron 桌面端
packages/ 预留的共享包目录
docs/ 产品、架构与执行环境文档
技术栈:Electron Forge · Vue 3 · TypeScript · Vue Router · Pinia · shadcn-vue · Reka UI · Tailwind CSS v4 · Vitest · Bun workspace · Pi Agent Core。
Pine 仍在快速迭代,欢迎 Issue、设计讨论和代码贡献。提交改动前请运行:
bun run check项目约定:直接依赖使用精确版本,锁文件随依赖变更提交;提交遵循 Conventional Commits;一个逻辑变更对应一个提交。更多约定见 AGENTS.md。
Pine is free software licensed under the GNU Affero General Public License v3.0.