Macro:团队一体化工作空间
本文目录
Macro 是面向你和团队的一体化工作空间。它把邮件 + 消息 + 文档 + 任务 + 智能体 + CRM 统一到一个快速界面中,并共享团队级记忆。工作空间中的所有内容都通过 @ 链接相互关联、可被搜索,因此你的团队(以及你的智能体)无需再切换工具。
为什么是 Macro#
我们构建 Macro,是因为我们想要一个属于自己的初创公司的单一操作系统。市面上有很多优秀的软件产品,我们全都用过——Slack、Linear、Notion、HubSpot 和 Superhuman——但它们无法作为一个系统协同工作。当我们将上一个创业项目扩展到约 20 人时,问题开始出现:每个团队都有了各自的工具,整个公司靠 MCP 和 Zapier 勉强维系。公司变得不可计算,一片混乱。
Macro 是对工作软件的一次彻底重新设计,从底层开始就作为一个单一系统构建。
由我们在纽约和多伦多设计,团队约 15 人内部试用(dogfooding)了两年。使用 SolidJS 和 Rust 构建,以获得速度与可靠性。我们专注于打造一款任何小型公司,或大公司内的小团队,都能用作其“操作系统”的产品。
功能#
Macro 由多个“块”(blocks)组成,这些块被设计为模块化、可扩展,并能像乐高积木一样协同工作。对于每个块,我们都研究了最优秀的前作,并努力做得更好。
每个界面都是为其职责专门打造的,而不是由通用块原语组合而成——但它们都共享同一个后端;文档与任务之间、频道消息与邮件之间的交叉引用,都以双向图(bidirectional graph)的形式原生存储。
| 块 | 文档 | 功能 |
|---|---|---|
| 邮件 | 文档 → | 多账户统一收件箱、键盘快捷键和共享收件箱。Gmail。 |
| 消息 | 文档 → | 为专注的技术讨论而设计的频道和私信。 |
| 任务 | 文档 → | 受 Linear 启发的任务,与频道、邮件和智能体紧密集成。 |
| 文档 | 文档 → | 实时协作、基于 CRDT 的 Markdown 原生文档,支持 @提及。 |
| 画布 | 文档 → | 2D 白板,可嵌入指向任务、文件和邮件的 @链接。 |
| 智能体 | 文档 → | 统一的团队级记忆,可以代表你采取行动。 |
| 通话 | 文档 → | 录制、转录并记录到团队记忆中,供智能体使用。 |
| 文件存储 | 文档 → | 从邮件和频道自动导入,完全可搜索。 |
| 拉取请求 | 文档 → | 关联到任务,可嵌入频道,可供智能体使用。 |
| CRM | 文档 → | 客户和联系人对象、自定义属性、邮件同步、数据充实。 |
多个带优秀 AI 工具的邮箱,集成 CRM#
Macro Mail 的灵感来自 Superhuman 键盘优先的界面,并加入了几个关键特性:
- 多账户。在同一个收件箱中分拣你所有的 Google 账户,使用相同的标签和共享系统。也可以分别处理。
- 统一收件箱:邮件、消息、@提及和待办任务都在同一个列表中。使用 j、k 和 e 导航所有内容。
- 更好的 AI,配备专为跨收件箱工作而设计的工具/MCP 接口,帮助你的智能体更准确地检索信息。例如,我们提供统一的搜索工具,让智能体直接搜索所有文件附件 PDF(从邮件中解析出来),而不是先拉取邮件线程再取附件。你还可以直接在 AI 聊天中起草、编辑和发送邮件,无需打开邮箱。
- 多任务能力——Macro 内置窗口管理器,可创建 3 个以上分屏(随显示器尺寸扩展),让你在查看历史邮件的同时起草新邮件。
- 公司/联系人对象。Macro 原生具备 CRM 能力,因此你可以用 cmd+k 跳转到某个联系人,例如 tim@acme.com,查看你与这个人之间的所有邮件;也可以跳转到公司,查看你团队每个人与该公司所有人之间的所有邮件和文件,例如 @acme.com。所有这些都能在邮件界面内完成,无需打开 HubSpot 或 Salesforce 这类笨重的 CRM。按联系人或公司聚合的邮件信息也提供给智能体使用,使它们能更好地处理 CRM 类查询和操作。
Macro Mail 与频道、文档、任务和代码位于同一个界面。从任意邮件出发,点击“task”即可创建一个关联任务,例如为工程师创建一张来自客户支持邮件的工单。可以在文档中 @提及邮件,例如在 Todos.md 中写入 @Re: Contract Signature.eml。在 Macro 中,你的邮件与所有工具、你的团队被纳入同一个权限系统:只需点击“共享”,就能把邮件分享到任意私信或频道——无需截图。
邮件文档 →
专注技术讨论的团队聊天#
Macro Chat 被设计得比 Slack 更专注。前几条回复会内联显示,其余则折叠进线程,因此繁忙的频道也能保持可读。线程具有独立权限,你可以通过复制链接在不同频道间共享线程。所有内容都存储在双向图中,因此任务会 @链接到创建它的消息,客户支持邮件会与支持频道关联,CRM 记录在消息中被讨论时也会更新,等等。核心理念是:(i)消息应当成为中心,任务、邮件、文档和内容管理都以轻量方式围绕它构建,智能体应当像人类用户一样成为一等公民;(ii)消息需要更专注、更可读,以适合技术对话,而不是变成一场场上下文丢失、进展与噪音难以区分的混战。
消息文档 →
围绕聊天构建的任务管理#
Linear 最近发布了一份报告,称问题追踪(issue tracking)已经死了。我们同意这一点,但更强的说法是:问题追踪从来就没有真正奏效过,至少对我们而言如此。我们确实努力尝试过,并责怪自己,但在与其他公司交流后才发现,没有人是在“正确地”使用他们的问题追踪器。如果情况如此,那么问题就在于工具的设计,而不是使用它的公司。
传统问题追踪器或项目管理工具的核心问题是它们会过时。它们过时的原因是:(i)它们与团队聊天中真正发生对话的地方(例如 Slack、Macro、Discord 等)是分离的系统;(ii)除了追踪工作之外,它们并没有增加多少额外价值。它们是一件苦差事,短期有成本,只承诺长期收益。相比 2D 白板,它们过于僵硬、过于主观,也不符合你的项目实际运作方式。
解决方案并不是完全放弃追踪。我们试过,那只是另一种形式的混乱。我们找到的解决方案是轻量级问题,与频道和私信紧密耦合,让问题追踪自然发生在对话本身所在的地方。
在 Macro 中创建任务很容易。在可能的情况下,创建的任务会与创建它的上下文(例如一封客户邮件)双向链接,因此完整链条——“我们为什么做这件事” → 任务 → 智能体 → 拉取请求——都可以在一个系统中审计。
从邮件创建任务:
- 在任何地方通过 c t
- 在 Markdown 文档中使用 /task
- 选中任意 - [ ] 项目符号并点击“Task”
- 在任意频道或私信中 @Macro 创建任务
- 在任意智能体聊天中
- 通过外部 MCP、API 或 SDK
任务文档 →
由 CRDT 驱动的 @链接 Markdown 文档#
我们希望所有内容都在一个 Markdown 编辑器中完成,无需切换工具。
- 原生 Markdown 兼容,支持批量导入/导出(参见“文件优先于应用”范式)
- 借助 CRDT 和 Cloudflare Durable Objects 实现实时协作,感觉就像在同一台电脑上编辑。编辑几乎即时到达,而不是像 Google Docs 那样一顿一顿地出现
- 版本控制:历史记录和分叉,配有简洁的 UI 用于拖动查看历史。目前仍是 v1,要更接近 git 还有很多工作要做,或者我们最终可能会加入 git 兼容性
- 离线编辑与协调
- @链接到工作空间中的所有内容:邮件、文档、任务、消息、频道、公司、联系人等。像 Notion,但支持多模态
- 移动端友好,可在我们的 iOS 应用或网页上使用(Android 应用即将推出)
- 智能体原生编辑,由一群作为对等节点、像人类协作者一样在 CRDT 协作系统中工作的智能体驱动。参见 Wolf 关于此事的技术博客。可通过 MCP 或内部智能体使用
智能体可以编辑打开或关闭的文档。智能体编辑的一个有趣用例是维护团队上下文。例如,我们有一个 Macro 自动化每天运行,更新办公室台球游戏的 Markdown 文档。它会扫描所有频道,看是否有人今天赢了,然后更新文档。如果有人已经编辑过文档,它能知道并放弃更新。冲突由 CRDT 协作系统原生处理。
文档 →
自我保持更新的 CRM#
独立 CRM 的问题与任务追踪器相同:它并不保持最新。CRM 只部分反映现实,因此如果你想了解某笔交易的最新状态,仍然得给 AE/SDR 发消息询问上下文。CRM 也过于僵硬且闭源,而在 Airtable/Notion 中 DIY 的 CRM 又无法提供按公司/联系人/交易聚合邮件这一 CRM 的核心功能。我们考察了所有 CRM,包括新的 AI 原生 CRM,虽然它们设计得不错,但从结构上就注定会随着时间推移而失效。
Macro 的解决方式是把 CRM 与团队聊天和邮件放在一起,而不是另设一个系统。当你在消息中 @提及某个公司记录时,你的团队可以点击该记录查看最新情况——这比先导航到 CRM 找到记录、再回到 Slack 粘贴进去快得多,而速度上的差异会带来完全不同的体验。其次,@提及公司/联系人会在该消息与记录之间创建双向链接,因此之后你可以从记录回溯发生过的对话。这解决了我们在 Attio/HubSpot/Salesforce 上遇到的核心问题:关于交易真正重要的对话并不发生在 CRM 里,而是发生在消息中。Macro 把这变成一个特性,而不是让你因此感到自己缺乏条理。这不是你的错,是 CRM 的错!
除了上一段所述内容,我们并未对 CRM 的核心理念进行创新。这些本不该有多么新奇:
- 看板视图和可自定义的交易阶段、列表视图、保存的视图、可共享的视图、个人和团队视图等
- 公司上的“备注”实际上使用与频道/私信相同的系统,因此你可以 @提及并做所有你在频道中预期能做的事。基本上,每笔交易都会自动拥有自己的频道,并固定在该交易记录上
- 在任意备注、消息、任务、拉取请求等中 @提及公司或联系人,即可在记录与该对象之间创建双向链接。例如,从一项工程任务中 @提及某家公司,以记录他们的请求。一切都会串联起来
CRM 文档 →
智能体与统一的团队级记忆#
由于 Macro 将团队上下文放在同一个数据库中,它处于独特的位置,可以提供具备业务全部运营上下文的团队级记忆。我们每天都通过 cron 任务做到这一点。你的记忆会根据团队对话、私信、发送和接收的邮件、创建和完成的任务等更新。所有内容会在一次处理中综合起来,而不是分散进行,并与你之前的记忆结合,形成新的记忆输出。最终结果是:
- 相比只从以往聊天中构建记忆的聊天机器人,Macro 对你正在做什么、关心什么拥有最好的记忆
- 该记忆可通过 MCP 提供给外部智能体,也可通过模型选择器提供给任何 AI 模型(OpenAI、Google、Anthropic 等),实现最大可移植性
- 记忆以 Markdown 明文存储,你可以随意导出。要手动更新,只需让 AI 记住某些内容/更新你的记忆
团队记忆非常方便。例如,我拍了一张自己在纸质笔记本上写的一些功能创意的截图,然后让智能体创建工单并分配给合适的工程师,它完美完成了任务,而且完全没有使用任何运行时工具。
记忆并不打算涵盖一切。Macro 还提供工具/MCP 接口,几乎 100% 覆盖你在 Macro UI 中能做的事情,因此你的智能体不会像在大多数 SaaS 中那样受到能力限制。MCP 也没有速率限制。
智能体文档 →
你的编程智能体也可以使用 Macro。把 Claude Code、Codex 或任何 MCP 客户端指向你的工作空间:
claude mcp add --transport http macro https://mcp-server.macro.com/mcp
参见 MCP 设置和智能体 recipes,了解连接后它们能做什么。
一切如何协同工作#
如上所述,每个块都被设计为同类最佳。我们精心设计了 Chat、Docs、Email、Agents 等每一个产品,让它们在单独使用时都能超越你的现状。但真正精彩之处在于它们如何结合在一起,如何做到大于各模块之和。
- 双向 @链接。在消息中 @提及文档,双方都会知道彼此的存在。你的工作空间变成一张可以双向导航的上下文网络。
- 基于频道的权限。你在频道中 @提及的任何内容都会自动共享给频道成员。加入频道即获得访问权限,离开即失去权限。无需反复申请权限。
- 统一记忆。智能体记得整个团队在邮件、消息、任务、文档和通话中正在做什么,而不仅仅是你自己的聊天历史。每晚刷新。
- 一个收件箱。邮件、频道消息、任务分配、@提及和智能体回复都汇聚到同一个地方,并分为“信号”和“噪音”。全程键盘优先。
深入阅读:核心概念涵盖块、提及、属性和权限;FAQ 涵盖对比、许可和自托管。
使用托管应用#
注册并连接你的 Gmail 或 Google Workspace 账户。Macro 可在任何现代浏览器中运行,手机端有 iOS 应用。入门指南会带你从全新账户走到可用配置,大约需要 15 分钟。从 Notion、Slack、Superhuman 或 Linear 过来?参见“切换到 Macro”。
本地运行#
要针对托管服务运行前端,或运行本地技术栈,请遵循“在本地运行”指南。
要贡献代码,请参见 CONTRIBUTING.md。
目录结构#
macro/
├── apps/
│ ├── web/ SolidJS 客户端 — 浏览器、Tauri 桌面端、移动端
│ └── docs/ docs.macro.com
├── services/ 42 个可部署服务、worker 和 Lambda 处理程序
├── crates/ 167 个 Rust 库 — 领域逻辑、模型、数据库客户端
├── packages/ 共享 TypeScript — collaboration、lexical-core、loro-mirror
├── infra/ Pulumi 定义
├── docker/ 本地 Compose 栈
├── nix/ 固定版本的开发 shell 和构建输入
└── tooling/ 仓库脚本和代码生成器
服务遵循六边形架构:入站适配器、带端口的领域核心、出站适配器。docs/development/style-guide.md 中有相关约定,CONTRIBUTING.md 涵盖 PR 流程。
安全#
企业级安全。对模型提供商零数据保留,包括不会用客户数据训练模型。通过 SOC 2 Type II 认证。我们欢迎负责任的安全报告,并根据严重性和影响支付赏金。请将报告发送至 security@macro.com。
许可证#
Macro 完全开源——不是“开放核心”——采用 GNU Affero 通用公共许可证 v3.0。详见 LICENSE.txt。
你可以根据 AGPLv3 的条款自行托管 Macro;FAQ 涵盖相关事项。如果你想在另一种许可证下基于 Macro 构建,请联系 licensing@macro.com。如需托管或商业合作,请联系 self-host@macro.com。
社区#
有想法、想贡献,或者想参与 Macro 的开发?
- 功能请求:contact@macro.com
- 贡献:参见我们的贡献指南
- 招聘:teo@macro.com
在 GitHub 上给我们加星#
如果 Macro 让你感兴趣/对你有用,请向上滚动并给仓库加一颗星(滚动到本页顶部 -> 点击右上角的 Star)。星标是大多数用户了解 Macro 的方式,因为它能让我们在 GitHub 搜索和趋势页面中排名更高。