macro-inc/macroPublic

Macro is a unified workspace for teams: email, chat, docs, tasks, agents, calls, and CRM — @-linked together with shared AI memory.

AI summary: A unified workspace combining email, messaging, docs, tasks, and CRM into a single computable graph.

Stars
4.3K
+41 today
Forks
408
Watchers
45
Open issues
23
Open PRs
87
Contributors
~24
Commits
5.5K
Branches
744

RustAGPL-3.0Created Nov 8, 2025Last push 1d agoLatest release v2026.9.9.0+82 stars this week+1.7K this month

Star history

since Nov 23, 2025
02K4KNov 2025Feb 2026Jun 2026Sep 2026
4.3K stars as of Sep 9, 2026, tracked back to Nov 23, 2025. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 1 commit2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 3 commits2025-11-09: 20 commits2025-11-10: 17 commits2025-11-11: 29 commits2025-11-12: 27 commits2025-11-13: 28 commits2025-11-14: 27 commits2025-11-15: 11 commits2025-11-16: 1 commit2025-11-17: 29 commits2025-11-18: 17 commits2025-11-19: 26 commits2025-11-20: 30 commits2025-11-21: 17 commits2025-11-22: 3 commits2025-11-23: 2 commits2025-11-24: 19 commits2025-11-25: 10 commits2025-11-26: 10 commits2025-11-27: 1 commit2025-11-28: 14 commits2025-11-29: 0 commits2025-11-30: 1 commit2025-12-01: 31 commits2025-12-02: 22 commits2025-12-03: 12 commits2025-12-04: 12 commits2025-12-05: 19 commits2025-12-06: 2 commits2025-12-07: 0 commits2025-12-08: 27 commits2025-12-09: 21 commits2025-12-10: 13 commits2025-12-11: 34 commits2025-12-12: 19 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 46 commits2025-12-16: 25 commits2025-12-17: 17 commits2025-12-18: 25 commits2025-12-19: 10 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 7 commits2025-12-23: 9 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 1 commit2025-12-28: 2 commits2025-12-29: 7 commits2025-12-30: 2 commits2025-12-31: 2 commits2026-01-01: 0 commits2026-01-02: 1 commit2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 12 commits2026-01-06: 20 commits2026-01-07: 33 commits2026-01-08: 18 commits2026-01-09: 43 commits2026-01-10: 1 commit2026-01-11: 0 commits2026-01-12: 35 commits2026-01-13: 37 commits2026-01-14: 16 commits2026-01-15: 39 commits2026-01-16: 2 commits2026-01-17: 2 commits2026-01-18: 0 commits2026-01-19: 9 commits2026-01-20: 33 commits2026-01-21: 19 commits2026-01-22: 15 commits2026-01-23: 14 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 27 commits2026-01-27: 19 commits2026-01-28: 21 commits2026-01-29: 15 commits2026-01-30: 11 commits2026-01-31: 2 commits2026-02-01: 0 commits2026-02-02: 16 commits2026-02-03: 25 commits2026-02-04: 25 commits2026-02-05: 25 commits2026-02-06: 25 commits2026-02-07: 0 commits2026-02-08: 3 commits2026-02-09: 27 commits2026-02-10: 24 commits2026-02-11: 13 commits2026-02-12: 23 commits2026-02-13: 10 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 5 commits2026-02-17: 22 commits2026-02-18: 23 commits2026-02-19: 27 commits2026-02-20: 27 commits2026-02-21: 0 commits2026-02-22: 2 commits2026-02-23: 13 commits2026-02-24: 21 commits2026-02-25: 21 commits2026-02-26: 17 commits2026-02-27: 22 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 20 commits2026-03-03: 15 commits2026-03-04: 18 commits2026-03-05: 15 commits2026-03-06: 21 commits2026-03-07: 2 commits2026-03-08: 1 commit2026-03-09: 19 commits2026-03-10: 29 commits2026-03-11: 19 commits2026-03-12: 28 commits2026-03-13: 20 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 30 commits2026-03-17: 19 commits2026-03-18: 34 commits2026-03-19: 27 commits2026-03-20: 18 commits2026-03-21: 9 commits2026-03-22: 0 commits2026-03-23: 31 commits2026-03-24: 26 commits2026-03-25: 33 commits2026-03-26: 31 commits2026-03-27: 15 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 33 commits2026-03-31: 32 commits2026-04-01: 17 commits2026-04-02: 16 commits2026-04-03: 7 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 28 commits2026-04-07: 30 commits2026-04-08: 25 commits2026-04-09: 29 commits2026-04-10: 21 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 29 commits2026-04-14: 26 commits2026-04-15: 32 commits2026-04-16: 26 commits2026-04-17: 21 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 38 commits2026-04-21: 38 commits2026-04-22: 31 commits2026-04-23: 43 commits2026-04-24: 44 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 32 commits2026-04-28: 21 commits2026-04-29: 31 commits2026-04-30: 31 commits2026-05-01: 21 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 34 commits2026-05-05: 23 commits2026-05-06: 28 commits2026-05-07: 19 commits2026-05-08: 27 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 23 commits2026-05-12: 35 commits2026-05-13: 40 commits2026-05-14: 21 commits2026-05-15: 28 commits2026-05-16: 1 commit2026-05-17: 0 commits2026-05-18: 41 commits2026-05-19: 28 commits2026-05-20: 36 commits2026-05-21: 44 commits2026-05-22: 28 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 8 commits2026-05-26: 41 commits2026-05-27: 38 commits2026-05-28: 35 commits2026-05-29: 27 commits2026-05-30: 0 commits2026-05-31: 2 commits2026-06-01: 21 commits2026-06-02: 38 commits2026-06-03: 22 commits2026-06-04: 20 commits2026-06-05: 18 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 48 commits2026-06-09: 60 commits2026-06-10: 48 commits2026-06-11: 46 commits2026-06-12: 25 commits2026-06-13: 1 commit2026-06-14: 0 commits2026-06-15: 36 commits2026-06-16: 45 commits2026-06-17: 24 commits2026-06-18: 28 commits2026-06-19: 15 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 38 commits2026-06-23: 21 commits2026-06-24: 25 commits2026-06-25: 25 commits2026-06-26: 1 commit2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 22 commits2026-06-30: 37 commits2026-07-01: 16 commits2026-07-02: 20 commits2026-07-03: 9 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 50 commits2026-07-07: 37 commits2026-07-08: 62 commits2026-07-09: 43 commits2026-07-10: 42 commits2026-07-11: 4 commits2026-07-12: 2 commits2026-07-13: 40 commits2026-07-14: 43 commits2026-07-15: 46 commits2026-07-16: 46 commits2026-07-17: 30 commits2026-07-18: 6 commits2026-07-19: 1 commit2026-07-20: 37 commits2026-07-21: 16 commits2026-07-22: 38 commits2026-07-23: 42 commits2026-07-24: 19 commits2026-07-25: 2 commits2026-07-26: 2 commits2026-07-27: 25 commits2026-07-28: 31 commits2026-07-29: 27 commits2026-07-30: 26 commits2026-07-31: 24 commits2026-08-01: 0 commits2026-08-02: 1 commit2026-08-03: 11 commits2026-08-04: 22 commits2026-08-05: 32 commits2026-08-06: 9 commits2026-08-07: 31 commits2026-08-08: 0 commits2026-08-09: 2 commits2026-08-10: 32 commits2026-08-11: 20 commits2026-08-12: 24 commits2026-08-13: 19 commits2026-08-14: 7 commits2026-08-15: 1 commit2026-08-16: 0 commits2026-08-17: 15 commits2026-08-18: 26 commits2026-08-19: 28 commits2026-08-20: 30 commits2026-08-21: 25 commits2026-08-22: 8 commits2026-08-23: 2 commits2026-08-24: 21 commits2026-08-25: 32 commits2026-08-26: 24 commits2026-08-27: 24 commits2026-08-28: 14 commits2026-08-29: 1 commit2026-08-30: 3 commits2026-08-31: 35 commits2026-09-01: 23 commits2026-09-02: 32 commits2026-09-03: 33 commits2026-09-04: 30 commits2026-09-05: 4 commits2026-09-06: 2 commits2026-09-07: 5 commits2026-09-08: 27 commits2026-09-09: 10 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits
5,472 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    5,472 commits in 52 weeks

  • Continuous integration

    Automated checks passing

  • Repeat trending

    11 trending appearances

What macro does

Macro fundamentally redesigns team software by merging disjointed tools—like Slack, Linear, Notion, and Gmail—into one cohesive operating system built on a shared bidirectional graph. Instead of relying on fragile integrations or switching context, every entity in Macro, whether a task, document, or message, natively cross-references each other. This creates a highly searchable, team-level memory where context is never lost across different operational silos. Built in Rust and SolidJS, the platform prioritizes extreme speed and reliability to ensure teams can manage their entire workflow without the chaos of fragmented SaaS products.

Macro is designed for startups and small-to-medium teams suffering from tool fatigue and fragmented communication. It is ideal for highly technical, fast-moving teams that require a central, extremely fast 'operating system' where all company knowledge and workflows are interconnected. Users should be looking for a complete replacement of their existing disjointed SaaS stack.

  • Bidirectional Graph Architecture: natively links docs, tasks, messages, and emails so cross-references are permanent and universally searchable.
  • Unified Interface: replaces multiple separate applications with a single, fast workspace designed for focused technical discussions and operations.
  • High-Performance Tech Stack: engineered using Rust for backend reliability and SolidJS for a highly responsive, immediate frontend experience.
  • Modular Block Design: provides purpose-built surfaces for different tasks while ensuring they all communicate flawlessly through the shared backend.
  • Universal Search and Memory: creates a computable company memory where AI agents and team members can instantly locate context across all domains.
  • Integrated Communication: combines a multi-account unified email inbox with internal channels and direct messaging to centralize all correspondence.

Where teams use it

Startup Operating System

Used by small to medium teams to completely replace their fragmented stack of SaaS tools, centralizing all operations into one platform.

Contextual Task Management

Used by engineering teams to link specific codebase discussions in messaging channels directly to actionable tasks and technical documentation.

Unified Client Communication

Used by account managers to track external emails and immediately reference them alongside internal CRM notes and project deliverables.

Cross-Functional Collaboration

Used by product teams to ensure marketing, development, and support are all looking at the exact same, interconnected data and context.

Getting started: https://docs.macro.com

README

main branch

Macro is the all-in-one workspace for you and your team. It unifies email + messages + docs + tasks + agents + CRM into a single fast interface with shared team-level memory. Everything in your workspace is @linked and searchable so your team (and your agents) never have to switch tools.


Why Macro

We built Macro because we wanted a single operating system for our startup. There are many good software products, and we used them all — Slack, Linear, Notion, HubSpot, and Superhuman — but they don't work together as one system. As we scaled our last venture to ~20 people things started to break: every team got their own tools and the company was held together by MCP and Zapier. The company was not computable. It was chaotic.

Macro is a complete redesign of work software from the ground up as a single system.

Designed by us in NYC and Toronto, dogfooded by our team of ~15 for two years. Built in SolidJS and Rust for speed and reliability. We're focused on building something that any small company or team at a larger company can use as their "operating system".


Features

Macro is composed of 'blocks' designed to be modular, extensible, and work together like Lego. For each block, we studied the best prior art and tried to make it even better.

Each surface is purpose-built for its job rather than composed from a generic block primitive — but every one of them shares the same backend; cross-references between a doc and a task, or a channel message and an email, are natively stored as a bidirectional graph.

Block Docs What it does
Email Docs → Multi-account unified inbox, keyboard shortcuts, and shared inboxes. Gmail.
Messages Docs → Channels and direct messages designed for focused technical discussions.
Tasks Docs → Linear-inspired tasks, tightly integrated with channels, email, and agents.
Docs Docs → Real-time collaborative, markdown-native docs built on CRDTs, with @mentions.
Canvas Docs → 2D board with embedded @links to tasks, files, and emails.
Agents Docs → Unified, team-level memory. Can take action on your behalf.
Calls Docs → Recorded, transcribed, and logged to team memory for agents.
File storage Docs → Auto-imported from email and channels, fully searchable.
Pull requests Docs → Linked to tasks, embeddable in channels, available to agents.
CRM Docs → Customer and contact objects, custom properties, email sync, enrichment.

Multiple email inboxes w/ good AI tools, integrated CRM

Macro Mail is inspired by Superhuman's keyboard-first interface with a few key additions:

  1. Multi-account. Triage all your Google accounts in a single inbox, with the same tagging and sharing system. Or triage individually.
  2. Unified inbox: emails, messages, @mentions, and tasks to complete, all in the same list. Use j k and e to navigate everything.
  3. Better AI, with a tools/MCP surface designed to work across inboxes and to help your agents more accurately retrieve information. For example, we expose a unified search tool that allows agents to search all file attachment PDFs (parsed out of email) directly, rather than pulling email threads then attachments. You can also draft, edit and send emails right from AI chats, without opening your email.

Macro email thread with actions, tags, and properties in the sidebar

  1. Multitasking ability — Macro has a built-in window manager that lets you create 3+ splits (scales with monitor size) so you can draft emails while reviewing prior threads.
  2. Company/Contact objects. Macro has native CRM capability so you can cmd+k to a contact, like tim@acme.com to see all emails between you and that person, or companies, to see all emails and files between everyone on your team and everyone at that company, e.g. @acme.com. All of this right from your email without having to open a heavyweight CRM like HubSpot or Salesforce. Email aggregation by contact or company is also available to your agents so they can better assist with CRM-type queries and actions.

Macro Mail lives in the same interface as channels, docs, tasks, and code. From any email, hit "task" to create a linked task, e.g. a ticket for an engineer from a customer support email. @mention emails in documents, e.g. @Re: Contract Signature.eml inside of Todos.md. In Macro, your email is brought into the fold with all of your tools, and your team, in the same permissions system: just hit Share to share an email to any DM or channel — no need to screenshot.

Email docs →


Team chat for focused technical discussions

Macro Chat is designed to be more focused than Slack. The first couple of replies show inline and the rest collapse into a thread, so a busy channel stays readable. Threads are permissioned severally so you can share threads across channels by copying links. Everything is stored in a bidirectional graph, so tasks @link to messages that created them, customer support emails tie into support channels, CRM records get updated when they're discussed in messages, etc. The core idea is that (i) messaging should be the centerpiece around which tasks, mail, docs, and content management are built, all in a lightweight way, and agents should be first-class citizens like human users and (ii) messaging needs to be more focused and readable for technical conversations, and not turn into battles where context is lost and progress is indistinguishable from noise.

Macro #Engineers channel with threads, mentions, and an inline GitHub check

Messages docs →


Task management built around chat

Linear recently published a report that issue tracking is dead. We agree with that, but the stronger form is that issue tracking never really worked, at least for us. We really tried and we blamed ourselves, but as we talked to other companies, it turns out that nobody was using their issue tracker "correctly". And if that's the case, the problem is the design of the tool, not the companies that use it.

The core problem with traditional issue trackers or project management tools is that they get out of date. The reason they get out of date is that (i) they're a separate system from where the conversation really happens in team chat (e.g. Slack, Macro, Discord, etc.) and (ii) they don't add much benefit beyond tracking the work. They're a chore with near-term costs and only the promise of long-term benefit. They're too rigid compared to a 2D canvas, too opinionated, and don't match how your project actually functions.

The solution isn't to forgo tracking entirely. We tried that and it was a different form of chaos. The solution we've found is lightweight issues tightly coupled to your channels and DMs, so that issue tracking naturally occurs where the conversation itself happens.

Macro tasks list grouped by assignee, with a task detail showing its source message and linked PR

Creating tasks in Macro is easy. Where possible, tasks created are bidirectionally linked to the creating context (e.g. a customer email) so the full chain is auditable from "why are we doing this" → task → agent → pull request, all in one system.

  • Create a task from an email
  • From anywhere via c t
  • From a markdown doc with /task
  • From any - [ ] bullet by highlighting and clicking "Task"
  • @Macro create tasks in any channel or DM
  • In any agent chat
  • Via external MCP, API or SDK

Tasks docs →


@linked markdown docs powered by CRDTs

We wanted everything in a single markdown editor without switching tools.

  • Native markdown compatibility and bulk/import export (see "file over app" paradigm)
  • Live collaboration with CRDTs and Cloudflare durable objects make it feel like you're editing on the same computer. Edits come in ~instantly instead of ka-chunking like Google Docs
  • Version control: history and forking, with a neat UI for scrubbing history. This is still in v1, there's a lot to do to get it closer to git, or we may eventually add git compatibility.
  • Offline editing and reconciliation.
  • @-linked to everything in your workspace: email, docs, tasks, messages, channels, companies, contacts, etc. Like Notion but multi-modal
  • Mobile-friendly, in our iOS app or on the web (Android app coming soon)
  • Agent native editing, powered by swarms of agents operating as peers in the CRDT collaboration system like human collaborators. See Wolf's tech blog on this. Use via MCP or internal agent.

A PRD in Macro with tags, assignees, properties, and references

Agents can edit documents that are open or closed. One interesting use case for agentic editing is to maintain team-context. For example we have a Macro Automation that runs daily to update our in-office Pool Games markdown doc. It scans through all of the channels to see if anyone has one and then updates the doc. If somebody has already edited the doc, it can know that and forgo the update. Conflicts are handled natively by the CRDT collaboration system.

Docs →


CRM that keeps itself up to date

The problem with standalone CRM is the same as with task trackers: it's not up to date. The CRM only partially reflects reality, so if you want to know what the latest status on a deal is you still have to message the AE/SDR and ask for context. CRMs are also too rigid and closed-source, while DIY CRMs in Airtable/Notion don't provide email aggregation by Company/Contact/Deal that is the core feature of CRM. We went through all the CRMs, including the new AI-native ones, and while they're well-designed they're just structurally set up to fail over time.

Macro fixes this by colocating your CRM with your team chat and email, instead of having a separate system. When you @mention a company record in a message, your team can click that record to see the latest — it's much faster than navigating to your CRM to find the record, going back to Slack and pasting it in, and this speed difference makes all the difference. Secondly, @mentioning a Company/Contact creates a bidirectional link between that message and the record, so from the record later you can trace the conversations that happened. This fixes the core issue we had with Attio/HubSpot/Salesforce: the actual important conversation about a deal happens not in the CRM but over messages. Macro makes this a feature rather than making you feel disorganized about it. It's not your fault, it was the CRM's fault!

Macro CRM board grouped by pipeline stage

We haven't innovated on the core idea of CRM other than what you read in the above paragraph. None of this should be that interesting:

  • Kanban board and customizable deal stages, list view, saved views, shareable views, personal and team views, etc.
  • "Notes" on the company actually use the same system as channels/DMs, so you can @mention and do all of the things you expect in a channel. Basically, every deal gets its own channel, automatically, that's pinned right to the deal record
  • @mention the company or contact from any note, message, task, pull request, etc., to create a bidirectional link between the record and that thing. For example, @mention a company from an engineering task to note their request. It all ties together.

CRM docs →


Agents and unified team-level memory

Since Macro has the team context in a single database, it is uniquely positioned to offer team-level memory with full context of all of the operations of the business. We do this every day via a cron job. Your memory is updated from team conversations, your DMs, your sent and received emails, tasks created and completed, etc. All of this is synthesized together in one pass, rather than severally, and combined with your previous memory to form the new memory output. The net result:

  • Macro has the best memory on what you're working on and what you care about vs. chatbots that only build memory from prior chats
  • This memory is available to external agents via MCP, or any AI model (OpenAI, Google, Anthropic, etc.) through the model picker for maximum portability
  • The memory is plainly stored in markdown so you can export it as you please. To manually update it, just ask the AI to remember something/update your memory

Team memory comes in quite handy. For example, I took a screenshot of some features I'd written in a paper notepad and asked the agent to create tickets and assign to the appropriate engineer which it did perfectly without any runtime tool use.

A Macro task being handed off to a coding agent, with a linked branch

Memory isn't supposed to encompass everything. Macro also has a tool/MCP surface with near 100% coverage of the things you can do in Macro's UI, so that your agents aren't limited in what they can do like they are in most SaaS. There are also no rate limits on MCP.

Agents docs →

Your coding agents can use Macro too. Point Claude Code, Codex, or any MCP client at your workspace:

claude mcp add --transport http macro https://mcp-server.macro.com/mcp

See MCP setup and agent recipes for what they can do once connected.


How it all works together

As we've discussed above, each of the blocks is designed to be best-in-class. We have thoughtfully designed each of Chat, Docs, Email, Agents, etc., to improve on your status quo individually. But where it all comes together is how it's more than the sum of its modules; it's how they work together.

Bidirectional @linking. @mention a doc in a message and both know about each other. Your workspace becomes a web of context you can navigate in either direction.

Channel-based permissions. Anything you @mention in a channel is automatically shared with its members. Join a channel, gain access; leave, lose it. No permission-request dance.

Unified memory. Agents remember what your whole team is doing across email, messages, tasks, docs, and calls, not just your own chat history. Refreshed nightly.

One inbox. Emails, channel messages, task assignments, @mentions, and agent responses all land in one place, split into Signal and Noise. Keyboard-first throughout.

Deeper reading: key concepts covers blocks, mentions, properties, and permissions; the FAQ covers comparisons, licensing, and self-hosting.


Using the hosted app

Sign up and connect your Gmail or Google Workspace account. Macro runs in any modern browser, with an iOS app for your phone. The getting started guide takes you from a fresh account to a working setup in about 15 minutes. Coming from Notion, Slack, Superhuman, or Linear? See Switch to Macro.


Running it locally

To run the frontend against hosted services, or to run the local stack, follow Running locally.

To contribute, see CONTRIBUTING.md.


Layout

macro/
├── apps/
│   ├── web/       SolidJS client — browser, Tauri desktop, mobile
│   └── docs/      docs.macro.com
├── services/      42 deployable services, workers, and Lambda handlers
├── crates/        167 Rust libraries — domain logic, models, db clients
├── packages/      shared TypeScript — collaboration, lexical-core, loro-mirror
├── infra/         Pulumi definitions
├── docker/        local Compose stack
├── nix/           pinned dev shell and build inputs
└── tooling/       repo scripts and code generators

Services follow a hexagonal layout: inbound adapters, a domain core with ports, outbound adapters. docs/STYLE_GUIDE.md has the conventions and CONTRIBUTING.md covers the PR process.


Security

ISO 27001 and SOC 2 Type II badges

Enterprise-grade security. Zero data retention with model providers, including no training on customer data. SOC 2 Type II certified. We welcome responsible security reports and pay bounties in accordance with severity and impact. Send reports to security@macro.com.


License

Macro is fully open source — not "open core" — under the GNU Affero General Public License v3.0. See LICENSE.txt for details.

You can self-host Macro under the terms of the AGPLv3; the FAQ covers what that involves. If you want to build on top of Macro under a different license, contact licensing@macro.com. For managed hosting or commercial arrangements, contact self-host@macro.com.


Community

Have an idea, want to contribute, or want to work on Macro?


Star us on GitHub

If Macro is interesting/useful to you, please scroll up and give the repo a star (scroll to the top of this page -> click Star in top right). Stars are how most users hear about Macro because they move us up GitHub's search and trending pages.

Star history for macro-inc/macro, from launch to 3608 stars
View on GitHub

Recent activity

commits and pull requests

Releases and announcements

214 total
  1. v2026.9.9.0v2026.9.9.0Sep 9, 20268 downloads

    ## What's Changed * refactor(agent): use TanStack transcript virtualization by @404Wolf in https://github.com/macro-inc/macro/pull/6246 * feat(new-layout): update new app views by @dev-rb in https://github.com/macro-inc/macro/pull/6224 * fix(calendar): name a shared calendar organizer instead of its address by @gbirman in https://github.com/macro-inc/macro/pull/6228 * feat(crm): add role-gated deal stage endpoints by @ptaranat in https://github.com/macro-inc/macro/pull/6242 * feat(document_cognition_service): migrate document cognition service to gateway by @whutchinson98 in https://github.com/macro-inc/macro/pull/6216 * feat(graphql): expose user favorites query by @seanaye in https://github.com/macro-inc/macro/pull/6250 * fix(cursor): recover missed runs safely by @404Wolf in https://github.com/macro-inc/macro/pull/6233 * chore(calendar): gate team out of office behind a feature flag by @gbirman in https://github.com/macro-inc/macro/pull/6253 * refactor(channels-view): channel rail composition by @dev-rb in https://github.com/macro-inc/macro/pull/6254 * feat(web): reorder favorites through optimistic GraphQL mutation by @seanaye in https://github.com/macro-inc/macro/pul

  2. v2026.9.7.1v2026.9.7.1Sep 8, 202634 downloads

    ## What's Changed * fix(agent): use shared channel message width by @404Wolf in https://github.com/macro-inc/macro/pull/6245 * feat(activity): most-active entities as an inline chip row under the graph by @synoet in https://github.com/macro-inc/macro/pull/6236 * fix(channels): fix pin to bottom by @synoet in https://github.com/macro-inc/macro/pull/6247 **Full Changelog**: https://github.com/macro-inc/macro/compare/v2026.9.7.0...v2026.9.7.1

  3. v2026.9.7.0v2026.9.7.0Sep 7, 202622 downloads

    ## What's Changed * fix(channels): attribute AI-created channels to Automation by @synoet in https://github.com/macro-inc/macro/pull/6197 * feat(auth): serve authentication-service on the gateway /auth prefix by @whutchinson98 in https://github.com/macro-inc/macro/pull/6166 * fix(auth): update auth to use gateway urls by @whutchinson98 in https://github.com/macro-inc/macro/pull/6200 * fix(app): bundle updater with new auth gateway by @whutchinson98 in https://github.com/macro-inc/macro/pull/6201 * fix(tags): fix link to tag util by @sedson in https://github.com/macro-inc/macro/pull/6189 * fix(email): include viewed history in backfill catch-up by @seanaye in https://github.com/macro-inc/macro/pull/6172 * fix(web): bound GraphQL cache recovery retries by @seanaye in https://github.com/macro-inc/macro/pull/6173 * feat(web): use normalized GraphQL cache for previews by @seanaye in https://github.com/macro-inc/macro/pull/6181 * feat(email_service): migrate email service to gateway by @whutchinson98 in https://github.com/macro-inc/macro/pull/6202 * Seanaye/feat/batch upsert with index by @seanaye in https://github.com/macro-inc/macro/pull/6204 * fix: constant time eq by @whut

  4. v2026.9.3.0v2026.9.3.0Sep 3, 202637 downloads

    ## What's Changed * feat(image_proxy_service): migrate image proxy service to gateway by @whutchinson98 in https://github.com/macro-inc/macro/pull/6145 * fix(local): derive DCS FusionAuth OAuth redirect from instance port by @whutchinson98 in https://github.com/macro-inc/macro/pull/6153 * feat(new-layout): add new thin, big icon sidebar behind layout feature flag by @sedson in https://github.com/macro-inc/macro/pull/6149 * fix(channel/agent): extract magic chip message + id on all reply paths by @sedson in https://github.com/macro-inc/macro/pull/6157 * feat(agent_harness_service): migrate agent harness service to gateway by @whutchinson98 in https://github.com/macro-inc/macro/pull/6155 * fix(web): gate the inbox notified_at sort behind a PostHog flag by @gbirman in https://github.com/macro-inc/macro/pull/6158 * feat(new-layout): new channels view by @dev-rb in https://github.com/macro-inc/macro/pull/6146 * feat(web): better feature flag definition and use interface by @dev-rb in https://github.com/macro-inc/macro/pull/6102 * refactor(web): use new feature flag interface by @dev-rb in https://github.com/macro-inc/macro/pull/6104 * fix(fusionauth): carry granted scopes onto

  5. v2026.9.2.0v2026.9.2.0Sep 2, 202628 downloads

    ## What's Changed * fix(email): order thread messages null-safe so previews resolve the subject by @gbirman in https://github.com/macro-inc/macro/pull/6120 * chore(service_url): remove unused and dead service urls by @whutchinson98 in https://github.com/macro-inc/macro/pull/6126 * feat(infra): add typed shared-gateway listener priorities by @whutchinson98 in https://github.com/macro-inc/macro/pull/6127 * feat(calendar): manage calendar accounts from the calendar view by @gbirman in https://github.com/macro-inc/macro/pull/6124 * chore: make ci fast by @404Wolf in https://github.com/macro-inc/macro/pull/5802 * perf(cache): reduce unnecessary cache revision work by @seanaye in https://github.com/macro-inc/macro/pull/6113 * Seanaye/feat/add task projections by @seanaye in https://github.com/macro-inc/macro/pull/6117 * fix(split-layout): hold last layout when the resize zone measures zero by @gbirman in https://github.com/macro-inc/macro/pull/6123 * feat(unfurl): migrate unfurl-service onto the shared gateway by @whutchinson98 in https://github.com/macro-inc/macro/pull/6128 * docs(calendar): add Calendar block page by @git-julia in https://github.com/macro-inc/macro/pull/6129

Code frequency

additions and deletions
+1.4M-1.4MWeek of 2025-10-26: +2,975 linesWeek of 2025-10-26: -281 linesWeek of 2025-11-02: +602,147 linesWeek of 2025-11-02: -0 linesWeek of 2025-11-09: +22,308 linesWeek of 2025-11-09: -19,068 linesWeek of 2025-11-16: +48,508 linesWeek of 2025-11-16: -34,531 linesWeek of 2025-11-23: +16,311 linesWeek of 2025-11-23: -8,180 linesWeek of 2025-11-30: +100,233 linesWeek of 2025-11-30: -94,964 linesWeek of 2025-12-07: +19,031 linesWeek of 2025-12-07: -23,242 linesWeek of 2025-12-14: +40,319 linesWeek of 2025-12-14: -29,016 linesWeek of 2025-12-21: +3,460 linesWeek of 2025-12-21: -1,568 linesWeek of 2025-12-28: +9,119 linesWeek of 2025-12-28: -4,686 linesWeek of 2026-01-04: +36,856 linesWeek of 2026-01-04: -39,182 linesWeek of 2026-01-11: +84,335 linesWeek of 2026-01-11: -41,086 linesWeek of 2026-01-18: +29,994 linesWeek of 2026-01-18: -23,441 linesWeek of 2026-01-25: +28,940 linesWeek of 2026-01-25: -27,793 linesWeek of 2026-02-01: +27,209 linesWeek of 2026-02-01: -17,199 linesWeek of 2026-02-08: +40,352 linesWeek of 2026-02-08: -29,807 linesWeek of 2026-02-15: +33,378 linesWeek of 2026-02-15: -22,034 linesWeek of 2026-02-22: +24,026 linesWeek of 2026-02-22: -7,634 linesWeek of 2026-03-01: +46,791 linesWeek of 2026-03-01: -18,043 linesWeek of 2026-03-08: +27,865 linesWeek of 2026-03-08: -12,389 linesWeek of 2026-03-15: +32,843 linesWeek of 2026-03-15: -10,060 linesWeek of 2026-03-22: +35,406 linesWeek of 2026-03-22: -21,993 linesWeek of 2026-03-29: +23,177 linesWeek of 2026-03-29: -11,461 linesWeek of 2026-04-05: +35,138 linesWeek of 2026-04-05: -21,786 linesWeek of 2026-04-12: +30,674 linesWeek of 2026-04-12: -12,767 linesWeek of 2026-04-19: +100,687 linesWeek of 2026-04-19: -50,373 linesWeek of 2026-04-26: +81,458 linesWeek of 2026-04-26: -97,472 linesWeek of 2026-05-03: +42,456 linesWeek of 2026-05-03: -28,097 linesWeek of 2026-05-10: +37,003 linesWeek of 2026-05-10: -18,295 linesWeek of 2026-05-17: +55,419 linesWeek of 2026-05-17: -41,175 linesWeek of 2026-05-24: +79,048 linesWeek of 2026-05-24: -46,093 linesWeek of 2026-05-31: +47,436 linesWeek of 2026-05-31: -18,412 linesWeek of 2026-06-07: +80,742 linesWeek of 2026-06-07: -22,649 linesWeek of 2026-06-14: +35,909 linesWeek of 2026-06-14: -15,573 linesWeek of 2026-06-21: +41,261 linesWeek of 2026-06-21: -20,195 linesWeek of 2026-06-28: +77,073 linesWeek of 2026-06-28: -17,403 linesWeek of 2026-07-05: +1,358,281 linesWeek of 2026-07-05: -1,269,410 linesWeek of 2026-07-12: +607,201 linesWeek of 2026-07-12: -537,017 linesWeek of 2026-07-19: +87,033 linesWeek of 2026-07-19: -17,332 linesWeek of 2026-07-26: +192,645 linesWeek of 2026-07-26: -22,876 linesWeek of 2026-08-02: +108,070 linesWeek of 2026-08-02: -22,309 linesWeek of 2026-08-09: +76,614 linesWeek of 2026-08-09: -20,802 linesWeek of 2026-08-16: +236,520 linesWeek of 2026-08-16: -81,039 linesWeek of 2026-08-23: +152,129 linesWeek of 2026-08-23: -17,421 linesWeek of 2026-08-30: +386 linesWeek of 2026-08-30: -159 linesOct 26, 2025Aug 30, 2026
+4.9M lines added, -2.9M removed over the last year.

Commits per week

last 52 weeks
2380Week of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 1 commitsWeek of 2025-11-02: 3 commitsWeek of 2025-11-09: 159 commitsWeek of 2025-11-16: 123 commitsWeek of 2025-11-23: 56 commitsWeek of 2025-11-30: 99 commitsWeek of 2025-12-07: 114 commitsWeek of 2025-12-14: 123 commitsWeek of 2025-12-21: 17 commitsWeek of 2025-12-28: 14 commitsWeek of 2026-01-04: 127 commitsWeek of 2026-01-11: 131 commitsWeek of 2026-01-18: 90 commitsWeek of 2026-01-25: 95 commitsWeek of 2026-02-01: 116 commitsWeek of 2026-02-08: 100 commitsWeek of 2026-02-15: 104 commitsWeek of 2026-02-22: 96 commitsWeek of 2026-03-01: 91 commitsWeek of 2026-03-08: 116 commitsWeek of 2026-03-15: 137 commitsWeek of 2026-03-22: 136 commitsWeek of 2026-03-29: 105 commitsWeek of 2026-04-05: 133 commitsWeek of 2026-04-12: 134 commitsWeek of 2026-04-19: 194 commitsWeek of 2026-04-26: 136 commitsWeek of 2026-05-03: 131 commitsWeek of 2026-05-10: 148 commitsWeek of 2026-05-17: 177 commitsWeek of 2026-05-24: 149 commitsWeek of 2026-05-31: 121 commitsWeek of 2026-06-07: 228 commitsWeek of 2026-06-14: 148 commitsWeek of 2026-06-21: 110 commitsWeek of 2026-06-28: 104 commitsWeek of 2026-07-05: 238 commitsWeek of 2026-07-12: 213 commitsWeek of 2026-07-19: 155 commitsWeek of 2026-07-26: 135 commitsWeek of 2026-08-02: 106 commitsWeek of 2026-08-09: 105 commitsWeek of 2026-08-16: 132 commitsWeek of 2026-08-23: 118 commitsWeek of 2026-08-30: 160 commitsWeek of 2026-09-06: 44 commitsSep 14, 2025Sep 6, 2026
5.5K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 2 commitsSun 9:00 — 5 commitsSun 10:00 — 2 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 2 commitsSun 14:00 — 4 commitsSun 15:00 — 9 commitsSun 16:00 — 2 commitsSun 17:00 — 2 commitsSun 18:00 — 4 commitsSun 19:00 — 7 commitsSun 20:00 — 1 commitsSun 21:00 — 2 commitsSun 22:00 — 3 commitsSun 23:00 — 2 commitsMon 0:00 — 1 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 11 commitsMon 9:00 — 45 commitsMon 10:00 — 77 commitsMon 11:00 — 97 commitsMon 12:00 — 124 commitsMon 13:00 — 92 commitsMon 14:00 — 146 commitsMon 15:00 — 133 commitsMon 16:00 — 133 commitsMon 17:00 — 112 commitsMon 18:00 — 87 commitsMon 19:00 — 42 commitsMon 20:00 — 15 commitsMon 21:00 — 7 commitsMon 22:00 — 3 commitsMon 23:00 — 5 commitsTue 0:00 — 1 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 2 commitsTue 6:00 — 0 commitsTue 7:00 — 1 commitsTue 8:00 — 24 commitsTue 9:00 — 50 commitsTue 10:00 — 75 commitsTue 11:00 — 117 commitsTue 12:00 — 108 commitsTue 13:00 — 108 commitsTue 14:00 — 115 commitsTue 15:00 — 120 commitsTue 16:00 — 148 commitsTue 17:00 — 136 commitsTue 18:00 — 95 commitsTue 19:00 — 37 commitsTue 20:00 — 16 commitsTue 21:00 — 8 commitsTue 22:00 — 9 commitsTue 23:00 — 8 commitsWed 0:00 — 3 commitsWed 1:00 — 0 commitsWed 2:00 — 1 commitsWed 3:00 — 1 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 1 commitsWed 7:00 — 2 commitsWed 8:00 — 16 commitsWed 9:00 — 40 commitsWed 10:00 — 76 commitsWed 11:00 — 116 commitsWed 12:00 — 113 commitsWed 13:00 — 86 commitsWed 14:00 — 112 commitsWed 15:00 — 114 commitsWed 16:00 — 121 commitsWed 17:00 — 121 commitsWed 18:00 — 101 commitsWed 19:00 — 56 commitsWed 20:00 — 16 commitsWed 21:00 — 12 commitsWed 22:00 — 7 commitsWed 23:00 — 3 commitsThu 0:00 — 1 commitsThu 1:00 — 2 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 22 commitsThu 9:00 — 43 commitsThu 10:00 — 85 commitsThu 11:00 — 94 commitsThu 12:00 — 113 commitsThu 13:00 — 89 commitsThu 14:00 — 123 commitsThu 15:00 — 112 commitsThu 16:00 — 140 commitsThu 17:00 — 120 commitsThu 18:00 — 74 commitsThu 19:00 — 33 commitsThu 20:00 — 10 commitsThu 21:00 — 12 commitsThu 22:00 — 7 commitsThu 23:00 — 6 commitsFri 0:00 — 3 commitsFri 1:00 — 1 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 2 commitsFri 8:00 — 10 commitsFri 9:00 — 33 commitsFri 10:00 — 91 commitsFri 11:00 — 95 commitsFri 12:00 — 76 commitsFri 13:00 — 84 commitsFri 14:00 — 102 commitsFri 15:00 — 97 commitsFri 16:00 — 91 commitsFri 17:00 — 92 commitsFri 18:00 — 40 commitsFri 19:00 — 15 commitsFri 20:00 — 10 commitsFri 21:00 — 5 commitsFri 22:00 — 1 commitsFri 23:00 — 3 commitsSat 0:00 — 2 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 1 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 1 commitsSat 10:00 — 3 commitsSat 11:00 — 4 commitsSat 12:00 — 0 commitsSat 13:00 — 3 commitsSat 14:00 — 1 commitsSat 15:00 — 7 commitsSat 16:00 — 6 commitsSat 17:00 — 7 commitsSat 18:00 — 3 commitsSat 19:00 — 5 commitsSat 20:00 — 2 commitsSat 21:00 — 8 commitsSat 22:00 — 5 commitsSat 23:00 — 5 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Aug 22, 2026weekly#10+1,456
Aug 21, 2026weekly#10+1,456
Aug 20, 2026weekly#6+2,557
Aug 19, 2026weekly#5+2,627
Aug 18, 2026weekly#5+2,724
Aug 17, 2026weekly#6+2,588
Aug 16, 2026daily#4+436
Aug 16, 2026weekly#6+2,434
Aug 15, 2026daily#4+436
Aug 14, 2026daily#4+1,239
Aug 13, 2026daily#2+227
  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    389.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    284.7K stars · Shell

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    255.9K stars · JavaScript