核心问题: 一个基于双向图的统一工作空间能否替代你现有的整个 SaaS 工具栈?
RepoDaily 采用评分
RepoDaily 将该项目的采用分评为 86/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。
包含 4 个来源、覆盖 2 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。
检测到 6 个工作流步骤、6 个下一步动作,以及 3 个命令/安装信号。
趋势热度为 +1,180 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。
采纳风险标记为 high,并包含 7 条安全说明与 4 条跳过条件。
3 个机会视角、5 个替代方案,以及 4 个类型化模块支撑差异化判断。
文章中包含许可证来源或许可证表述。
文章正文和元数据中检测到 7 个 AI/Agent 相关信号。
项目概览
Macro 是一个将邮件、聊天、文档、任务、AI 智能体、通话和 CRM 合并为单一应用的全合一工作空间。README 中写道,创始团队在上一家创业公司发展到约 20 人时,Slack、Linear、Notion、HubSpot 和 Superhuman 的组合——靠 MCP 和 Zapier 粘合——变得混乱不堪,公司数据'不可计算'。Macro 是从零开始的重新设计:所有功能模块共享一个后端,文档与任务之间、频道消息与邮件之间的交叉引用以双向图的形式原生存储。
前端使用 SolidJS,后端使用 Rust,旨在追求速度与可靠性。实时协作文档采用 CRDT 技术——具体是 loro-crdt 1.13.7(见于 package.json catalog)——文本编辑器运行在 Lexical 0.45.0 上,并通过 overrides 锁定了 20 多个 Lexical 子包。包管理器为 Bun 1.3.5。团队位于纽约和多伦多,已在内部约 15 人团队中持续使用 Macro 两年。
代码库规模庞大。Cargo.toml 工作空间定义了超过 90 个成员,涵盖领域 crate(agent、crm、memory、email_api_client、gmail_client、search_service)、GraphQL 层(graphql_email、graphql_channel、graphql_permission)、客户端缓存变体(cache-core、cache-idb、cache-sqlite、cache-wasm),以及大量服务(email_service、sync-service、mcp_service、document_cognition_service)。TypeScript 侧的工作空间包括 apps/web、packages/observability、packages/collaboration、packages/loro-mirror、packages/lexical-core,以及 Anthropic 状态和 Stripe 支付的 bot 服务。
Macro 中的每个功能模块称为'block'。README 描述了九个 block:邮件(多账户统一收件箱,支持 Gmail、键盘快捷键、共享收件箱)、消息(频道和私信,面向技术讨论)、任务(Linear 风格,与频道和邮件集成)、文档(实时协作、原生 Markdown、CRDT 支持)、画板(2D 看板,支持嵌入 @link)、智能体(团队级共享记忆,可代为执行操作)、通话(录音、转写、记录到团队记忆)、文件存储(从邮件和频道自动导入,可搜索)、Pull Request(关联任务、嵌入频道、对智能体可见的 GitHub 集成)。
为什么现在变热
- 本期获得 1180 颗星,趋势排名第 2,主要吸引力在于 AGPLv3 开源的完整工作空间产品可替代价值数十亿美元的 SaaS 工具栈。
- 完整源码发布——这是一款由约 15 人团队持续使用两年的生产级产品,而非概念验证。
- Rust + SolidJS 技术栈搭配 CRDT 协作(loro-crdt 1.13.7),吸引追求高性能替代 Electron 方案的开发者。
- 跨所有 block 的团队级共享 AI 记忆是核心差异化优势,目前没有任何单一竞品(Slack、Linear、Notion、HubSpot)原生提供。
- 双向图链接使智能体能直接遍历邮件、任务、文档和 CRM 记录之间的关系,无需外部粘合代码。
解决什么问题
- 团队同时使用 5+ 个互不连通的工具——Slack、Linear、Notion、HubSpot、Superhuman——数据模型和上下文不共享。
- 基于 MCP 和 Zapier 的集成胶水在团队超过约 20 人后开始失效,README 称公司变得'不可计算'。
- 工具间频繁切换割裂注意力,交叉引用只能手动完成(把 Slack 消息复制到 Linear 工单、在邮件中粘贴 Notion 链接)。
- AI 智能体被锁定在单一工具内,无法访问其他工具中的数据,限制自动化潜力。
- 每个独立工具按人头收费,小型公司的软件支出不断膨胀。
工作原理
- 应用由模块化的'block'组成——邮件、消息、任务、文档、画板、智能体、通话、文件存储、Pull Request——每个 block 有独立的 UI 界面。
- 所有 block 共享同一个 Rust 后端。任意两个实体之间的交叉引用(文档与任务、频道消息与邮件)以双向图的边存储,而非孤立表中的外键。
- 用户可通过 @link 将任意实体链接到其他实体,创建可供智能体和搜索遍历的关系网络。一个 PR 可以同时关联任务、嵌入频道、对智能体可见。
- 实时文档协作基于 CRDT(loro-crdt 1.13.7)和 Lexical 0.45.0 编辑器,实现无冲突并发编辑。
- 智能体通过 memory 和 embedding crate 支撑的统一团队级记忆层访问数据,MCP 服务提供工具集成接口。通话会被录音、转写并记录到同一记忆层。
- 后端通过 Apollo/GraphQL(async-graphql 7.2.1)通信,sync-service 使用 Bebop 序列化,部署在 AWS Lambda 函数和服务上。
产品演示与界面预览



架构解读:90+ Rust 工作空间成员与 SolidJS 前端
- Cargo.toml 定义了 90+ 工作空间成员,包括领域 crate(agent、crm、memory、embedding、search_service)、GraphQL 层(graphql_email、graphql_channel、graphql_permission、graphql_properties)和基础设施服务(mcp_service、mcp_auth_proxy、sync-service、email_service、document_cognition_service)。
- 前端为 SolidJS,使用 Bun 1.3.5 包管理器。编辑器栈通过 overrides 锁定 Lexical 0.45.0 的 20+ 子包,CRDT 协作使用 loro-crdt 1.13.7。
- 客户端缓存有四种变体:cache-core(共享)、cache-idb(Web IndexedDB)、cache-sqlite(原生)、cache-wasm(WebAssembly),表明面向多平台。
- TypeScript 工作空间包括 packages/observability、packages/collaboration、packages/loro-mirror、packages/lexical-core,以及 AI 编辑、Anthropic 状态和 Stripe 支付服务。
- 后端使用 axum 0.8 处理 HTTP、async-graphql 7.2.1 处理 GraphQL、async-openai 0.36.1 调用 LLM、Bebop 3.1.3 处理 sync-service 序列化。
- AWS 依赖包括 DynamoDB、S3、Lambda、SES v2、SQS、SNS 和 MSK(托管 Kafka),表明采用无服务器事件驱动架构,云端依赖较深。
集成面:Block、@Link 与外部服务
- 九个文档化的 block:邮件(Gmail 多账户)、消息(频道 + 私信)、任务(Linear 风格)、文档(CRDT、原生 Markdown)、画板(2D 看板)、智能体(团队级记忆)、通话(转写)、文件存储(自动导入)、Pull Request(GitHub 关联)。
- MCP 服务和 MCP 认证代理作为独立工作空间成员存在,表明支持 Model Context Protocol 的智能体工具调用。
- GitHub Pull Request 集成将 PR 关联到任务并嵌入频道,同时对智能体可见。
- gmail_client crate 处理邮件接入;email_api_client crate 提供多提供商抽象层。
- unfurl crate 和 unfurl_service 处理链接预览,支持在消息和文档中嵌入外部 URL 的富展示。
- async-openai 0.36.1 启用 chat-completion、embedding 和 byot(自带 token)特性,表明 OpenAI 是主要 LLM 提供商,同时支持自带密钥。
采纳清单:运行和贡献所需步骤
- 本地部署:按照 CONTRIBUTING.md 中引用的 docs/RUNNING_LOCALLY.md 搭建完整应用栈。
- Rust 修改:提交前运行 'cargo fmt' 和 'just clippy',使用 'cargo test -p <crate>' 测试受影响的 crate。
- 数据库修改:修改 SQL 或 migration 后,在仓库根目录运行 'just prepare_db' 刷新 sqlx 查询缓存。
- 前端修改:使用 Bun 1.3.5 安装依赖,用 Biome 或 oxlint 1.73.0 检查代码,用 'tsc --noEmit' 类型检查。
- 贡献需先创建 issue 再提交 PR。分支和 PR 标题遵循 Conventional Commits:'feat(chat): add dev observability' 或 'fix(email): handle empty thread subjects'。
- 许可证为 AGPLv3——贡献意味着你的修改以相同强传染性条款授权。为其他用户托管 Macro 会触发 AGPLv3 源码披露义务。
- 代码风格要求见 docs/STYLE_GUIDE.md。
替代方案对比:Macro 与现有产品的差异
README 明确提到 Slack、Linear、Notion、HubSpot 和 Superhuman 是创始人使用并替代的工具。Macro 的优势在于九个 block 共享同一数据模型和后端,因此任务可以引用邮件线程、文档可以嵌入频道消息、智能体可以遍历所有内容。每个现有产品在各自领域更成熟,但需要外部集成(MCP、Zapier、API 胶水)才能互相连通——而创始人描述的正是这些胶水在规模扩大后崩溃的问题。
权衡在于深度与广度。Linear 的任务管理比 Macro 的 Tasks block 更成熟。Notion 拥有更多模板和第三方集成。Slack 的消息基础设施能应对 Macro 尚未验证的企业级规模。Macro 押注统一图和共享 AI 记忆能弥补深度差距——但如果你的团队痛点不是工具碎片化,而是某一类功能的专业深度,这个押注并不成立。
谁适合关注
适合关注
- 目前同时付费使用 Slack + Linear + Notion + HubSpot 并感受到工具碎片化痛苦的小型团队(约 50 人以下)。
- 希望为 AGPLv3 工作空间平台贡献代码的 Rust 或 SolidJS 工程师。
- 希望 AI 智能体访问跨工具统一上下文,而非每个工具各自隔离的团队。
- 偏好 AGPLv3 保障而非专有 SaaS 锁定的自托管倡导者。
可以先跳过
- 需要企业级 SSO、审计日志或合规认证(HIPAA、SOC 2)的团队——源码包中均未提及。
- 已与 Salesforce 或其他企业级 CRM 平台深度集成的组织——Macro 的 CRM 尚处早期。
- 没有 Rust 经验但需要自托管和调试后端的团队。
- 需要生产级 SLA 的任何人——产品仅由约 15 人内部验证,除本地开发指南外无文档化部署方案。
风险与注意事项
AGPLv3 强传染性许可、90+ 工作空间成员需要大量基础设施、重度 AWS 依赖,以及产品仅由约 15 人内部验证,对外部生产环境使用构成高风险。
- AGPLv3 要求在网络托管修改后的软件时披露源码——这影响任何修改后 Macro 的 SaaS 部署。
- Cargo 工作空间有 90+ 成员,package.json 列出 10 个工作空间包——部署和运维这套架构需要相当大的工程能力。
- AWS 依赖(DynamoDB、Lambda、S3、SES、SQS、SNS、MSK/Kafka)使自托管变得复杂;除 RUNNING_LOCALLY.md 外无文档化的自托管部署路径。
- 锁定的依赖和补丁包(package.json 中有 7 个 patchedDependencies)表明需要持续的依赖管理,外部部署者必须复制这套管理。
- 产品仅由约 15 人持续使用两年——外部大规模验证有限。
- AGPLv3 强传染性许可证覆盖所有贡献;贡献者须按 CONTRIBUTING.md 同意相同条款。
- 独立的 mcp_auth_proxy 服务处理 MCP 智能体工具调用的认证。
- macro_authorization crate 管理权限;graphql_permission crate 通过 API 层暴露权限检查。
- 工作空间中存在 dataloss_prevention_handler 服务,表明具备数据防泄漏能力。
- organization_retention_handler 和 organization_retention_trigger 服务管理数据保留策略。
- email_suppression_handler 管理邮件抑制列表以符合合规要求。
- 集成 AWS Secrets Manager(aws-sdk-secretsmanager 1.104.0)进行凭证管理。
替代方案比较
| 方案 | 适用场景 | 代价 |
|---|---|---|
Notion | 文档和知识库是核心需求,不需要邮件、聊天或 CRM 集成在同一工具中。 | 商业产品,有免费层 |
Linear | 工程问题跟踪是核心需求,任务管理的专业深度比统一上下文更重要。 | 商业产品,有免费层 |
Slack | 企业级团队消息传递是首要需求,需要成熟的集成和合规认证。 | 商业产品,有免费层 |
Twenty CRM | 仅需开源 CRM,不需要工作空间统一。 | 开源,自托管 |
Outline | 需要开源的团队 Wiki 和文档工具。 | 开源,自托管 |
这个趋势说明了什么
通过自托管整合 SaaS 支出
同时为 Slack、Linear、Notion 和 HubSpot 付费的小公司理论上可以用自托管的 Macro 实例替代全部四个工具,消除多个工具的按人头收费。AGPLv3 许可证允许内部自托管而无需披露源码。
运行 docs/RUNNING_LOCALLY.md 确认完整技术栈可在 Macro 自有云之外运行,然后将团队日常使用映射到 Macro 的九个 block。
基于统一数据构建自定义智能体技能
Macro 的 agent crate、skills crate、system_skills crate 和 MCP 服务为自定义 AI 智能体行为提供扩展接口,可通过双向图访问邮件、任务、文档和 CRM 记录——这在数据分散于不同 SaaS 工具时是不可能的。
查看仓库中的 crates/agent、crates/skills 和 crates/mcp_service,了解技能注册 API 和 MCP 工具接口。
在 block 系统上扩展领域专属模块
README 将 block 描述为模块化、可扩展、'像乐高一样'协作,每个模块共享同一后端。有特定领域需求的团队(如制造追踪或法律案件管理 block)可以在现有双向图基础上构建,而非引入又一个独立工具。
查看 complete_graph、entity_mutation 和 foreign_entity 等 crate 中现有 block(如 Tasks 和 Canvas)如何引用共享实体模型。
RepoDaily 判断
Macro 是工作空间领域最具野心的开源发布之一——一个包含 90+ crate 的 Rust 平台搭配 SolidJS 前端,已在内部生产环境持续使用两年。双向图和共享 AI 记忆是真正的差异化特性。但 AGPLv3 许可证、重度依赖 AWS 的架构以及早期阶段的验证规模(约 15 名内部用户)意味着这是一个值得参与和构建的项目,而非可以随意部署到生产环境的产品。对于受工具碎片化困扰的小团队,值得花 2-3 天评估。对于需要企业级稳定性的用户,与现有产品相比的深度差距仍然存在。