Macro is a team workspace that combines email, channels and direct messages, tasks, collaborative documents, a canvas, calls, file storage, pull requests, a customer relationship management (CRM) module, and AI agents in one interface. Every surface shares the same backend, and cross-references between items, such as a document and a task or a channel message and an email, are stored as a bidirectional graph: @mention a record from anywhere and both sides know about each other. Permissions follow channels, so anything mentioned in a channel is shared with its members.
| Block | What it does |
|---|---|
| Multi-account unified inbox with keyboard shortcuts and shared inboxes; Gmail | |
| Messages | Channels and direct messages where the first replies show inline and the rest collapse into a thread |
| Tasks | Lightweight issues created from emails, docs, - [ ] bullets, channels, agent chats, or the MCP/API/SDK |
| Docs | Real-time collaborative, markdown-native documents built on CRDTs, with @mentions, history, forking, and offline editing |
| Canvas | 2D board with embedded @links to tasks, files, and emails |
| Agents | Team-level memory; can take action on your behalf |
| Calls | Recorded, transcribed, and logged to team memory |
| File storage | Auto-imported from email and channels, searchable |
| Pull requests | Linked to tasks, embeddable in channels, available to agents |
| CRM | Company and contact objects with custom properties, email sync, and enrichment |
Because the whole team's activity lives in one database, Macro maintains a shared team memory. A nightly job synthesises conversations, direct messages, sent and received email, tasks, and calls into an updated memory document stored as plain markdown, which you can export or edit by asking the assistant. That memory is available to the built-in agent, to any model chosen from the model picker (OpenAI, Google, Anthropic, and others), and to external agents over the Model Context Protocol (MCP). The MCP and tool surface covers close to all of what the UI can do, with no rate limits, and includes a unified search that queries PDF attachments parsed out of email directly. Coding agents such as Claude Code or Codex connect with a single claude mcp add command.
Agents can edit documents whether open or closed, operating as peers inside the CRDT collaboration system alongside human editors, so conflicts are resolved by the same mechanism. Scheduled automations use this to keep documents such as team status pages current. The client is written in SolidJS and runs in the browser, as a Tauri desktop app, and as an iOS app; services are in Rust with a hexagonal layout, collaboration runs on Cloudflare durable objects, and the repository includes a local Compose stack for self-hosting.
Features
- Unified inbox: emails, channel messages, @mentions, task assignments, and agent replies in one list, split into signal and noise, navigable with j, k, and e
- Bidirectional @linking: mentioning a doc, task, email, company, or contact creates a two-way link stored in a graph
- Channel-based permissions: joining a channel grants access to everything mentioned in it; leaving revokes it
- Team memory: a nightly synthesis of conversations, email, tasks, and calls, stored as editable markdown
- MCP and tool surface: near-complete coverage of UI actions for internal and external agents, with no rate limits
- Agent-native docs: agents edit CRDT documents as collaborators; automations keep them updated
- Task creation everywhere: from email, c t, /task in a doc, a - [ ] bullet, @Macro in chat, agent chat, or the API
- Colocated CRM: each deal gets its own channel; mentioning a company or contact links the conversation to the record
- Window manager: three or more splits so you can draft while reviewing prior threads
- Multi-platform client: browser, Tauri desktop, and iOS, with a local Compose stack for self-hosting
