[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82490":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},82490,"Proma","proma-ai\u002FProma","proma-ai","把最丝滑的通用 Agent 体验带进你的工作流，为 100x 专业用户而生的未来产品，正在实现 proactive Agent 阶段。基于 Claude Agent SDK 的完整开源实践，原生支持飞书群聊调用、灵活接入任意大模型供应商 —— 让顶级 Agent 能力真正跑在你每天用的地方。","https:\u002F\u002Fproma.cool\u002Fdownload",null,"TypeScript",1247,173,6,94,0,24,68,73,72,102.02,"GNU Affero General Public License v3.0",false,"main",true,[27,28,29,30,31,32,33,34],"agent","agent-sdk","agents","chatbot","chatgpt","claude","gemini","llm","2026-06-12 04:01:38","# Proma\n\nProma 是一个本地优先的 AI 桌面应用，把多模型 Chat、通用 Agent、工作区、Skills、MCP、远程机器人和记忆能力放在同一个开源客户端里。\n\n它不是只面向闲聊的聊天框，而是一个可以长期沉淀个人工作流的 Agent 工作台：简单问题用 Chat，复杂任务交给 Agent，数据和配置尽量留在本地。\n\n![Proma 海报](https:\u002F\u002Fimg.erlich.fun\u002Fpersonal-blog\u002FuPic\u002Fpb.png)\n\n\u003Cvideo width=\"560\" controls>\n  \u003Csource src=\"https:\u002F\u002Fimg.erlich.fun\u002Fpersonal-blog\u002FuPic\u002F%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D%20Proma.mp4\" type=\"video\u002Fmp4\">\n\u003C\u002Fvideo>\n\n[English README](.\u002FREADME.en.md) | [新手教程](.\u002Ftutorial\u002Ftutorial.md) | [下载开源版](https:\u002F\u002Fgithub.com\u002FErlichLiu\u002FProma\u002Freleases) | [下载商业版](https:\u002F\u002Fproma.cool\u002Fdownload)\n\n> **最新思考 ｜ 2026 Q2–Q3**：[勇敢地解决真实的问题 — Proactive · 个人注意力 · 团队协作](.\u002Fproma-thinking\u002Fproma-2026-q2-q3-thinking.md) ｜ 往期思考：[2026 Q1](.\u002Fproma-thinking\u002Fproma-2026-q1-thinking.md)\n\n## 现在能做什么\n\n- **Chat 模式**：多模型对话、附件解析、图片输入、Markdown \u002F Mermaid \u002F KaTeX \u002F 代码高亮、并排对话、系统提示词、上下文管理。\n- **Agent 模式**：基于 `@anthropic-ai\u002Fclaude-agent-sdk` 的通用 Agent，支持工作区隔离、权限模式、文件操作、长任务流式输出、计划确认和用户追问。\n- **SubAgent \u002F Tasks**：复杂任务可以通过 Claude Agent SDK 的 Agent 工具拆分为子 Agent \u002F Task，并在消息流中展示调用过程和结果。\n- **Skills & MCP**：每个工作区可以独立配置 Skills、MCP Server 和工作区文件，适合沉淀可复用能力。\n- **远程机器人**：支持飞书 \u002F Lark 机器人桥接，并已提供钉钉、微信桥接入口，用手机或群聊触发本机 Agent 工作流。\n- **记忆与工具**：Chat 和 Agent 可共享记忆能力，并支持联网搜索、内置 Chat 工具、Agent 推荐等辅助能力。\n- **本地优先**：会话、工作区、附件、配置、Skills 等默认存储在 `~\u002F.proma\u002F`，使用 JSON \u002F JSONL 文件组织，不依赖本地数据库。\n- **桌面体验**：自动更新、代理设置、文件预览、全局快捷键、快速任务窗口、语音输入、亮色 \u002F 暗色 \u002F 跟随系统主题。\n\n## 快速开始\n\n### 下载安装\n\n从 [GitHub Releases](https:\u002F\u002Fgithub.com\u002FErlichLiu\u002FProma\u002Freleases) 下载开源版本。当前 release notes 以 `v0.9.12` 为准，提供 macOS Apple Silicon、macOS Intel 和 Windows 安装包。\n\n如果你希望开箱即用、减少 API 配置成本，也可以使用 [Proma 商业版](https:\u002F\u002Fproma.cool\u002Fdownload)。商业版和开源版并行运行，主要区别是商业版提供内置渠道和订阅方案。\n\n### 首次配置\n\n1. 打开 Proma，先完成环境检查。Agent 模式依赖本机基础环境，尤其是 Git、Node.js \u002F Bun 以及可用的 Shell。\n2. 进入 **设置 > 渠道**，添加至少一个 AI 供应商渠道，填写 Base URL、API Key 和模型列表。\n3. Chat 模式可以使用 OpenAI、Anthropic、Google 或 OpenAI 兼容协议的渠道。\n4. Agent 模式需要 Anthropic 协议或 Anthropic 兼容协议渠道，例如 Anthropic、DeepSeek、Kimi API、Kimi Coding Plan。\n5. 进入 **设置 > Agent**，选择默认 Agent 渠道、模型和工作区。\n6. 如需记忆、联网搜索、飞书 \u002F 钉钉 \u002F 微信桥接，在设置页对应 Tab 中继续配置。\n\n## 模式选择\n\n### Chat 适合\n\n- 日常问答、解释、翻译、润色、轻量代码讨论。\n- 读取附件内容后做总结、改写、比较。\n- 使用联网搜索或记忆工具增强一次性对话。\n- 同时对比多个模型输出，或用不同系统提示词做探索。\n\n### Agent 适合\n\n- 修改、创建、整理本地文件。\n- 调研、编写报告、处理多步骤任务。\n- 使用 MCP、Skills、Shell、Git、项目文件等外部上下文。\n- 需要权限确认、计划模式、后台任务或远程机器人持续跟进的工作。\n\n简单说：**只需要回答时用 Chat，需要行动和交付结果时用 Agent。**\n\n## 截图\n\n### Chat 快速分析\n\n用 Chat 处理轻量但真实的分析任务：整理读者关注点、生成对比表，并把首屏文案快速定稿。\n\n![Proma Chat 快速分析](.\u002Fdocs\u002Fassets\u002Fscreenshots\u002Fproma-chat-demo.png)\n\n### Agent 工作台\n\nAgent 在工作区里读取文件、推进任务、输出表格化结论，并把可复用文件保留在右侧工作区面板中。\n\n![Proma Agent 工作台](.\u002Fdocs\u002Fassets\u002Fscreenshots\u002Fproma-agent-demo.png)\n\n### Skills\n\n每个工作区都可以沉淀专属 Skills。截图中的 `feedback-synthesis` 用于把用户反馈、访谈记录和 issue 聚合成主题、证据与优先级建议。\n\n![Proma 工作区 Skills](.\u002Fdocs\u002Fassets\u002Fscreenshots\u002Fproma-skills-demo.png)\n\n### Skills & MCP\n\n同一个工作区可以管理 stdio \u002F HTTP MCP Server，按需启用或关闭，让 Agent 在不同项目里获得不同的外部上下文。\n\n![Proma MCP 配置](.\u002Fdocs\u002Fassets\u002Fscreenshots\u002Fproma-mcp-demo.png)\n\n### 流式语音输入(支持全局输入)\nProma 支持豆包的流式语音输入功能，并且支持在 Proma 内使用和 Proma 外部使用：\n- Proma 内部使用：Ctrl + ` 触发识别，再次按下结束自动输入到 Proma 内对应的输入框\n- Proma 外部使用：Ctrl + ` 触发识别，再次按下结束自动输入到当前的光标所在处，如无光标则默认写入到剪贴板\n- \n![Proma 语音输入](.\u002Fdocs\u002Fassets\u002Fscreenshots\u002Fproma-typeless-input.png)\n\n## 支持的模型渠道\n\n| 供应商 | Chat | Agent | 协议说明 |\n| --- | --- | --- | --- |\n| Anthropic | 支持 | 支持 | Anthropic Messages API |\n| DeepSeek | 支持 | 支持 | Anthropic 兼容协议 |\n| Kimi API | 支持 | 支持 | Anthropic 兼容协议 |\n| Kimi Coding Plan | 支持 | 支持 | Anthropic 兼容协议，使用专用认证头 |\n| OpenAI | 支持 | 暂不支持 | Chat Completions |\n| Google | 支持 | 暂不支持 | Gemini Generative Language API |\n| 智谱 AI | 支持 | 支持 | Anthropic 兼容协议 |\n| MiniMax | 支持 | 支持 | Anthropic 兼容协议 |\n| 豆包 | 支持 | 支持 | Anthropic 兼容协议 |\n| 通义千问 | 支持 | 支持 | Anthropic 兼容协议 |\n| 自定义端点 | 支持 | 暂不支持 | OpenAI 兼容协议 |\n\n> **Kimi Coding Plan 用户须知**：Proma 已获得 Kimi 官方白名单支持，使用 Proma 连接 Kimi Coding Plan 不会触发第三方客户端封号策略，可放心使用。\n\nAgent 模式底层使用 Claude Agent SDK，因此目前要求渠道提供 Anthropic 或 Anthropic 兼容协议。Chat 模式则通过 `@proma\u002Fcore` 的 Provider Adapter 统一接入不同协议。\n\n## 本地数据\n\nProma 采用本地文件存储，方便备份、迁移和排查问题。\n\n```text\n~\u002F.proma\u002F\n├── channels.json\n├── conversations.json\n├── conversations\u002F\n│   └── {conversation-id}.jsonl\n├── agent-sessions.json\n├── agent-sessions\u002F\n│   └── {session-id}.jsonl\n├── agent-workspaces\u002F\n│   └── {workspace-slug}\u002F\n│       ├── workspace-files\u002F\n│       ├── mcp.json\n│       └── skills\u002F\n├── attachments\u002F\n├── user-profile.json\n├── settings.json\n└── sdk-config\u002F\n```\n\nAPI Key 会通过 Electron `safeStorage` 加密后写入 `channels.json`。Proma 不使用本地数据库，核心数据结构以 JSON 配置和 JSONL 追加日志为主。\n\n## 开发\n\nProma 是 Bun workspace monorepo。\n\n```text\nproma-v2\u002F\n├── packages\u002F\n│   ├── shared\u002F     # 共享类型、IPC 常量、配置、工具函数\n│   ├── core\u002F       # Provider Adapter、SSE、代码高亮\n│   └── ui\u002F         # 共享 React UI 组件\n└── apps\u002F\n    └── electron\u002F   # Electron 桌面应用\n```\n\n当前主要包版本：\n\n| 包 | 版本 | 职责 |\n| --- | --- | --- |\n| `@proma\u002Felectron` | `0.10.7` | Electron 桌面应用 |\n| `@proma\u002Fshared` | `0.1.20` | 共享类型、IPC 常量、配置和工具 |\n| `@proma\u002Fcore` | `0.2.9` | Provider Adapter、SSE、Shiki 高亮 |\n| `@proma\u002Fui` | `0.1.6` | 共享 React UI 组件 |\n\n常用命令：\n\n```bash\n# 安装依赖\nbun install\n\n# 开发模式：自动启动 Vite + Electron + 热重载\nbun run dev\n\n# 构建 Electron 应用\nbun run electron:build\n\n# 构建并运行\nbun run electron:start\n\n# 类型检查\nbun run typecheck\n\n# 测试\nbun test\n```\n\nElectron 子应用内也提供更细的脚本：\n\n```bash\ncd apps\u002Felectron\n\nbun run dev:vite\nbun run dev:electron\nbun run build:main\nbun run build:preload\nbun run build:renderer\nbun run dist:fast\n```\n\n## 技术栈\n\n| 层级 | 技术 |\n| --- | --- |\n| 运行时 | Bun |\n| 桌面框架 | Electron 39 |\n| 前端 | React 18 + TypeScript |\n| 状态管理 | Jotai |\n| 样式 | Tailwind CSS + Radix UI |\n| 富文本输入 | TipTap |\n| Markdown \u002F 图表 \u002F 公式 | React Markdown + Beautiful Mermaid + KaTeX |\n| 代码高亮 | Shiki |\n| 构建 | Vite + esbuild |\n| 分发 | electron-builder |\n| Agent SDK | `@anthropic-ai\u002Fclaude-agent-sdk@0.3.143` |\n\n## 架构概览\n\nProma 的核心通信路径是：\n\n```text\nshared 类型和 IPC 常量\n  -> main\u002Fipc.ts 注册处理器\n  -> preload\u002Findex.ts 暴露 window.electronAPI\n  -> renderer Jotai atoms 和 React 组件调用\n```\n\n主进程服务集中在 `apps\u002Felectron\u002Fsrc\u002Fmain\u002Flib\u002F`：\n\n- `agent-orchestrator.ts`：Agent 编排、环境变量、SDK 调用、事件流、错误处理。\n- `agent-session-manager.ts`：Agent 会话索引和 JSONL 消息持久化。\n- `agent-workspace-manager.ts`：工作区、MCP、Skills 和工作区文件管理。\n- `chat-service.ts`：Chat 流式调用、Provider Adapter、工具活动。\n- `conversation-manager.ts`：Chat 会话索引和消息存储。\n- `channel-manager.ts`：渠道 CRUD、API Key 加密、连接测试、模型获取。\n- `feishu-bridge.ts` \u002F `dingtalk-bridge.ts` \u002F `wechat-bridge.ts`：远程机器人桥接。\n- `memory-service.ts`、`chat-tool-*`、`document-parser.ts`、`workspace-watcher.ts`：记忆、工具、文档解析和文件监听。\n\n渲染进程以 Jotai 管理状态，关键 atoms 位于 `apps\u002Felectron\u002Fsrc\u002Frenderer\u002Fatoms\u002F`。Agent IPC 监听器在应用顶层全局挂载，避免切换页面时丢失流式事件、权限请求或后台任务状态。\n\n## 打包注意事项\n\n`@anthropic-ai\u002Fclaude-agent-sdk` 在 `0.2.113+` 后改为平台 native binary 分发。Proma 的 esbuild 配置会把 SDK 标记为 external，`electron-builder.yml` 会把 SDK 主包和平台子包一起打进安装包。\n\n修改打包配置时请特别确认：\n\n- 主进程 esbuild 保持 `--external:@anthropic-ai\u002Fclaude-agent-sdk`。\n- `apps\u002Felectron\u002Fpackage.json` 的 `optionalDependencies` 包含目标平台的 SDK 子包。\n- `apps\u002Felectron\u002Felectron-builder.yml` 的 `files` 包含 SDK 主包和平台子包。\n- 其它普通 npm 依赖通常应由 esbuild 打包进 `main.cjs`，不要随意 external。\n\n更完整的工程约定见 [AGENTS.md](.\u002FAGENTS.md)。\n\n## 贡献\n\n欢迎修 Bug、补文档、加测试、完善体验，也欢迎围绕真实场景提交新的 Skills、MCP 配置或 Agent 工作流。\n\n提交 PR 前建议先确认：\n\n- 使用 Bun 运行脚本，不混用 npm \u002F pnpm lockfile。\n- 状态管理使用 Jotai。\n- 尽量保持本地优先，优先使用配置文件和 JSON \u002F JSONL。\n- TypeScript 不使用 `any`，对象结构优先使用 `interface`。\n- 新增 IPC 时同步修改 shared 类型、main handler、preload bridge 和 renderer 调用。\n- 影响包行为时递增对应 package 的 patch 版本。\n- 能用测试覆盖的行为尽量补上测试，尤其是共享逻辑、IPC 契约和持久化格式。\n\nProma 目前设有 PR 赠金计划。提交 PR 时可以在描述中留下邮箱，方便后续发放。\n\n![Proma PR Bounty](https:\u002F\u002Fimg.erlich.fun\u002Fpersonal-blog\u002FuPic\u002FPR%20%E8%B5%A0%E9%87%91%201.png)\n\n## 作者\n\n- 个人网站：[erlich.fun](https:\u002F\u002Ferlich.fun)\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=ErlichLiu%2FProma&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=ErlichLiu\u002FProma&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=ErlichLiu\u002FProma&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=ErlichLiu\u002FProma&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n\n## 致谢\n\n- [Shiki](https:\u002F\u002Fshiki.style\u002F)：代码高亮。\n- [Beautiful Mermaid](https:\u002F\u002Fgithub.com\u002Flukilabs\u002Fbeautiful-mermaid) 与 [Mermaid](https:\u002F\u002Fmermaid.js.org\u002F)：Mermaid 图表渲染与官方兜底渲染。\n- [Cherry Studio](https:\u002F\u002Fgithub.com\u002FCherryHQ\u002Fcherry-studio)：多供应商桌面 AI 产品启发。\n- [Lobe Icons](https:\u002F\u002Fgithub.com\u002Flobehub\u002Flobe-icons)：AI \u002F LLM 品牌图标。\n- [Craft Agents OSS](https:\u002F\u002Fgithub.com\u002Flukilabs\u002Fcraft-agents-oss)：Agent SDK 集成模式参考。\n- [MemOS](https:\u002F\u002Fmemos.openmem.net)：记忆能力参考与集成。\n\n## 许可证\n\nProma 社区版采用 [GNU Affero General Public License v3.0（AGPL-3.0）](.\u002FLICENSE) 开源，完整条款见根目录 `LICENSE` 文件。\n\n**个人 \u002F 非商业使用**：自由使用、修改、分发，仅需遵守 AGPL-3.0 条款。\n\n**商业使用**：在完全遵守 AGPL-3.0 条款的前提下允许进行商业使用，包括但不限于：以源代码或修改后的形式分发软件、通过网络对外提供服务时必须公开完整修改源码（含网络交互层）、衍生作品须以 AGPL-3.0 继续授权。\n\n**商业授权（豁免 AGPL-3.0 义务）**：如果你希望将 Proma 集成到闭源产品、对外提供 SaaS 服务但不想公开衍生代码，或有其他无法满足 AGPL-3.0 条款的商业场景，请通过邮件联系获取商业许可：[erlichliu@gmail.com](mailto:erlichliu@gmail.com)。\n\n向本项目提交 Pull Request 即视为同意将贡献以 AGPL-3.0 及未来商业许可形式授权给项目维护者。\n","Proma 是一个本地优先的 AI 桌面应用，旨在为用户提供丝滑的通用 Agent 体验。其核心功能包括多模型 Chat、通用 Agent、工作区、Skills、MCP 以及远程机器人支持。基于 Claude Agent SDK，Proma 原生支持飞书群聊调用，并能灵活接入任意大模型供应商。该工具特别适用于需要长期沉淀个人工作流的场景，如文件管理、复杂任务处理和团队协作。通过将数据和配置尽量留在本地，Proma 确保了用户数据的安全性和隐私性。此外，Proma 还提供了丰富的桌面体验功能，如自动更新、代理设置、文件预览等，使得用户可以更高效地完成日常工作。",2,"2026-06-11 04:08:45","high_star"]