Skip to content

Repository files navigation

Proma

Proma 是一个本地优先的 AI 桌面应用,把多模型 Chat、通用 Agent、工作区、Skills、MCP、远程机器人和记忆能力放在同一个开源客户端里。

它不是只面向闲聊的聊天框,而是一个可以长期沉淀个人工作流的 Agent 工作台:简单问题用 Chat,复杂任务交给 Agent,数据和配置尽量留在本地。

Proma 海报

English README | 新手教程 | 下载开源版 | 下载商业版

最新思考 | 2026 Q2–Q3勇敢地解决真实的问题 — Proactive · 个人注意力 · 团队协作 | 往期思考:2026 Q1

现在能做什么

  • Chat 模式:多模型对话、附件解析、图片输入、Markdown / Mermaid / KaTeX / 代码高亮、并排对话、系统提示词、上下文管理。
  • Agent 模式:Agent 内核已全面迁移至 Proma 内置 Pi Agent Runtime,不再依赖第三方 Agent 运行时;支持工作区隔离、权限模式、文件操作、长任务流式输出、计划确认和用户追问。
  • 内嵌浏览器自动化:Agent 可以直接操作内置受管浏览器——打开网页、观察页面结构、点击 / 填写控件、切换标签页,并支持打开 localhost 本地开发服务;站内搜索、登录后页面、动态内容和本地 HTML 预览都能交给 Agent 完成,无需手动复制粘贴。
  • 协作与任务:复杂任务可拆分为可追踪的协作子 Agent / Task,并在消息流中展示调用过程和结果。
  • Skills、MCP 与项目指令:每个 Proma 项目独立配置 Skills 与 MCP Server;项目可通过 AGENTS.md 声明受信项目指令,旧 CLAUDE.md 配置自动迁移。项目文件可使用用户选择的本地项目根目录,也可使用 Proma 托管的空白项目目录。
  • 远程机器人:支持飞书 / Lark 机器人桥接,并已提供钉钉、微信桥接入口,用手机或群聊触发本机 Agent 工作流。
  • 记忆与工具:Chat 和 Agent 可共享工作区记忆,记忆变更自动追踪并在界面提示刷新;支持联网搜索、内置 Chat 工具、Agent 推荐等辅助能力。
  • 本地优先:会话、工作区、附件、配置、Skills 等默认存储在 ~/.proma/,使用 JSON / JSONL 文件组织,不依赖本地数据库。
  • 桌面体验:自动更新、代理设置、文件预览、全局快捷键、快速任务窗口、Agent 灵动岛运行状态、语音输入、亮色 / 暗色 / 跟随系统主题。

快速开始

下载安装

GitHub Releases 下载开源版本,提供 macOS Apple Silicon、macOS Intel、Windows、Ubuntu/Debian x86_64 的 .deb 安装包和 Linux x86_64 AppImage。Linux 的安装、安全边界和支持范围见 Linux 说明

开源版可独立使用,并支持自行配置 AI 供应商渠道。如果你更希望使用 Proma 提供的内置模型渠道和订阅方案,也可以按需了解 Proma 商业版。两个版本面向不同的使用偏好,你可以自由选择适合自己的版本。

对比项开源版商业版
核心桌面能力完整的 Proma 桌面体验,可自由配置工作流保留同样的核心桌面体验
模型渠道自行添加和管理 AI 供应商渠道与 API Key登录后可使用 Proma 官方内置模型渠道,也仍可自行配置第三方渠道
模型价格按所选供应商的规则和价格使用精选模型提供 Proma Cloud 专属优惠,部分模型最高可低至官方参考价 2 折
Agent 安全与稳定需自行评估供应商的安全、协议兼容与稳定性;使用第三方中转站时也需自行判断额外的信任与数据处理风险使用 Proma Cloud 官方托管链路,提供统一的安全与稳定性保障、Agent 协议兼容和模型健康监控,减少不透明第三方中转带来的不确定性
联网与内嵌 AI 能力按需自行配置搜索、生图等服务及对应 API Key提供更完整的 Proma Cloud 联网与内嵌能力,包括 WebSearch,以及 GPT Image 2 生图和编辑
对外 API 与服务主要使用你自行配置的供应商 API可创建独立、可设额度上限的 Proma Cloud API Key,将 LLM、工具和多模态能力接入自己的应用或服务
团队额度管理需自行搭建成员、额度分配与用量管理机制团队管理员可向成员分配或回收共享团队额度,支持按月自动分配,并查看成员用量与额度流水
Skills 分发与协作Skills 为工作区本地能力,团队内分发与共享需自行组织企业版支持 Skills 的组织级分发与团队协作:管理员可将团队沉淀的 Skills 一键下发到成员,成员侧免安装直接使用,并统一管理版本、更新与使用范围
订阅与用量自行管理供应商账号、余额与用量在应用内管理订阅与余额,并查看模型、Agent 和工具的用量明细
从开源版切换直接覆盖安装即可,继续使用已有的本地 Proma 数据

可用模型、价格和权益会随时间调整,以应用内当期展示为准。

企业版与商业授权

如果你的组织计划面向数百至数千名员工规模部署 Proma,可以采购企业版授权;我们也可围绕实际部署需求提供范围明确的轻量定制服务。企业版提供组织级 Skills 分发与团队协作能力,让团队沉淀的最佳实践可以一键下发、统一维护。欢迎通过微信联系:geekthings

首次配置

  1. 打开 Proma,先完成环境检查。Agent 模式依赖本机基础环境,尤其是 Git、Node.js / Bun 以及可用的 Shell。
  2. 进入 设置 > 渠道,添加至少一个 AI 供应商渠道,填写 Base URL、API Key 和模型列表。
  3. Chat 模式可以使用 OpenAI、Anthropic、Google 或 OpenAI 兼容协议的渠道。
  4. Agent 使用 Pi Runtime,可使用任意已启用的模型渠道。
  5. 进入 设置 > Agent,选择默认 Agent 渠道、模型和工作区。
  6. 如需记忆、联网搜索、飞书 / 钉钉 / 微信桥接,在设置页对应 Tab 中继续配置。

模式选择

Chat 适合

  • 日常问答、解释、翻译、润色、轻量代码讨论。
  • 读取附件内容后做总结、改写、比较。
  • 使用联网搜索或记忆工具增强一次性对话。
  • 同时对比多个模型输出,或用不同系统提示词做探索。

Agent 适合

  • 修改、创建、整理本地文件。
  • 调研、编写报告、处理多步骤任务。
  • 使用 MCP、Skills、Shell、Git、项目文件等外部上下文。
  • 需要权限确认、计划模式、后台任务或远程机器人持续跟进的工作。

简单说:只需要回答时用 Chat,需要行动和交付结果时用 Agent。

截图

Chat 快速分析

用 Chat 处理轻量但真实的分析任务:整理读者关注点、生成对比表,并把首屏文案快速定稿。

Proma Chat 快速分析

Agent 工作台

Agent 在项目根目录与会话工作台中读取文件、推进任务、输出表格化结论,并把可复用文件保留在右侧文件面板中。

Proma Agent 工作台

Skills

每个工作区都可以沉淀专属 Skills。截图中的 feedback-synthesis 用于把用户反馈、访谈记录和 issue 聚合成主题、证据与优先级建议。

Proma 工作区 Skills

Skills & MCP

同一个工作区可以管理 stdio / HTTP MCP Server,按需启用或关闭,让 Agent 在不同项目里获得不同的外部上下文。

Proma MCP 配置

流式语音输入(支持全局输入)

Proma 支持豆包的流式语音输入功能,并且支持在 Proma 内使用和 Proma 外部使用:

  • Proma 内部使用:Ctrl + ` 触发识别,再次按下结束自动输入到 Proma 内对应的输入框
  • Proma 外部使用:Ctrl + ` 触发识别,再次按下结束自动输入到当前的光标所在处,如无光标则默认写入到剪贴板

Proma 语音输入

Agent 运行时与模型渠道

Proma 的 Agent 模式由 Pi Agent Runtime 单一驱动,内核来自 @earendil-works/pi-coding-agentpi-agent-corepi-ai,不再依赖任何第三方 Agent 运行时。已启用的 Proma 渠道会动态注册为 Pi provider,支持 OpenAI Chat Completions / Responses、Google Generative AI、Anthropic Messages 及其兼容端点。早期基于 Claude runtime 的历史会话保留为只读记录,可查看但不能继续、分叉或回退。

渠道类型ChatPi Agent
Anthropic / Anthropic 兼容支持支持
DeepSeek、Kimi API / Coding Plan、智谱 Coding Plan、MiniMax、小米 MiMo 等 Anthropic 协议渠道支持支持
OpenAI、OpenAI Responses、Google、智谱 AI、豆包、通义千问支持支持
OpenAI 兼容自定义端点支持支持
ChatGPT 订阅(Codex OAuth)支持
xAI 订阅(Grok OAuth)支持

技术栈

层级技术
运行时Bun
桌面框架Electron 39
前端React 18 + TypeScript
状态管理Jotai
样式Tailwind CSS + Radix UI
富文本输入TipTap
Markdown / 图表 / 公式React Markdown + Beautiful Mermaid + KaTeX
代码高亮Shiki
构建Vite + esbuild
分发electron-builder
Agent RuntimePi: @earendil-works/pi-* @0.82.1

架构概览

Proma 的核心通信路径是:

shared 类型和 IPC 常量
-> main/ipc.ts 注册处理器
-> preload/index.ts 暴露 window.electronAPI
-> renderer Jotai atoms 和 React 组件调用

主进程服务集中在 apps/electron/src/main/lib/

  • agent-orchestrator.ts:Pi Agent 编排、环境变量、事件流、错误处理。
  • adapters/pi-agent-adapter.ts:Pi 运行时适配与会话管理。
  • agent-session-manager.ts:Agent 会话索引和 JSONL 消息持久化。
  • agent-workspace-manager.ts:Proma 工作区、项目根目录、MCP 与 Skills 管理。
  • browser-controller.ts:内置受管浏览器控制、跨会话视图隔离与本地预览。
  • agent-memory-refresh-service.ts:工作区记忆变更追踪与刷新。
  • chat-service.ts:Chat 流式调用、Provider Adapter、工具活动。
  • conversation-manager.ts:Chat 会话索引和消息存储。
  • channel-manager.ts:渠道 CRUD、API Key 加密、连接测试、模型获取。
  • feishu-bridge.ts / dingtalk-bridge.ts / wechat-bridge.ts:远程机器人桥接。
  • chat-tool-*document-parser.tsworkspace-watcher.ts:工具、文档解析和文件监听。

渲染进程以 Jotai 管理状态,关键 atoms 位于 apps/electron/src/renderer/atoms/。Agent IPC 监听器在应用顶层全局挂载,避免切换页面时丢失流式事件、权限请求或后台任务状态。

打包注意事项

Pi 运行时在主进程中作为 esbuild external 依赖运行。apps/electron 的打包脚本会在 electron-builder 前执行 bun run sync:runtime-deps,把下列依赖及其运行时闭包复制到应用目录:

  • @earendil-works/pi-coding-agentpi-agent-corepi-ai
  • Pi 运行时所需的原生模块和 pdfjs-dist

修改打包配置时,请确认:

  • build:main / watch:main 将 Pi runtime 依赖标记为 external。
  • scripts/sync-runtime-deps.ts 的 external runtime 清单与实际依赖一致。
  • electron-builder.yml 保留 Pi native addon 所需的 asarUnpack 规则。
  • 在目标平台测试 bun run dist:fast 后,验证 Pi Agent 可以启动、调用工具和恢复会话。

更完整的工程约定见 AGENTS.md

贡献

欢迎修 Bug、补文档、加测试、完善体验,也欢迎围绕真实场景提交新的 Skills、MCP 配置或 Agent 工作流。

提交 PR 前建议先确认:

  • 使用 Bun 运行脚本,不混用 npm / pnpm lockfile。
  • 状态管理使用 Jotai。
  • 尽量保持本地优先,优先使用配置文件和 JSON / JSONL。
  • TypeScript 不使用 any,对象结构优先使用 interface
  • 新增 IPC 时同步修改 shared 类型、main handler、preload bridge 和 renderer 调用。
  • 影响包行为时递增对应 package 的 patch 版本。
  • 能用测试覆盖的行为尽量补上测试,尤其是共享逻辑、IPC 契约和持久化格式。

作者

Star History

Star History Chart

致谢

许可证

Proma 社区版采用 GNU Affero General Public License v3.0(AGPL-3.0) 开源,完整条款见根目录 LICENSE 文件。

个人 / 非商业使用:自由使用、修改、分发,仅需遵守 AGPL-3.0 条款。

商业使用:在完全遵守 AGPL-3.0 条款的前提下允许进行商业使用,包括但不限于:以源代码或修改后的形式分发软件、通过网络对外提供服务时必须公开完整修改源码(含网络交互层)、衍生作品须以 AGPL-3.0 继续授权。

商业授权(豁免 AGPL-3.0 义务):如果你希望将 Proma 集成到闭源产品、对外提供 SaaS 服务但不想公开衍生代码,或有其他无法满足 AGPL-3.0 条款的商业场景,请通过邮件联系获取商业许可:erlichliu@gmail.com

向本项目提交 Pull Request 即视为同意将贡献以 AGPL-3.0 及未来商业许可形式授权给项目维护者。

About

Proma brings a seamless general-purpose Agent experience to your workflow. Built for 100× professionals and the proactive Agent era

Topics

Resources

Stars

2.2k stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages