Skip to content

Repository files navigation

Pine logo

Pine

致力于为所有人提供更多可能性的 AI 代理工作区。
Agentic workspace dedicated to expanding possibilities for everyone.

Caution

Pine 仍是超级早期的开发者预览版,不适合日常工作或重要数据。界面、数据格式、Agent 行为和项目结构都可能发生不兼容变更;当前不提供稳定版本、迁移或兼容性保证。

Pine 想解决什么问题

现在的 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.jsonpackageManager 为准。

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 元数据和会话存放在 Electron userData 下,不写入用户项目目录。
  • Pine 不复制、移动或接管项目文件夹;删除 Project 只删除 Pine 自己的元数据目录。

完整文档见 docs/project-system.mddocs/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

License

Pine is free software licensed under the GNU Affero General Public License v3.0.

About

致力于为所有人提供更多可能性的 AI 代理工作区 | Agentic workspace dedicated to expanding possibilities for everyone.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages