# Macro (macro-inc/macro)

Open-source **all-in-one team workspace** (email, chat, docs, tasks, agents, calls, CRM) from Macro Inc. Primary ingest is `docs/RUNNING_LOCALLY.md`: the local path is a Nix + Docker **developer stack**, not a turnkey self-host installer. Fetched 2026-08-15.

Tags: product, workspace, rust, solidjs, agpl, self-host, agents, crm, email, mcp, nix, docker

## Who / what

| Field | Value |
|---|---|
| Product | **Macro** — unified workspace with shared team-level memory |
| Org / repo | [macro-inc/macro](https://github.com/macro-inc/macro) (public) |
| Site / app | https://macro.com · https://macro.com/app |
| Docs | https://docs.macro.com · FAQ https://docs.macro.com/faq |
| License | **AGPLv3** (`LICENSE.txt`; GitHub `agpl-3.0`). README: "fully open source — not open core" |
| Stack | SolidJS client + Rust services (README). Languages API: Rust + TypeScript dominate |
| Created | 2025-11-08 10:18 AM ET |
| API snapshot | 3254★ / 321 forks / 60 open issues (2026-08-15 ~5:20 PM ET) |
| Homepage field | https://macro.com |
| Primary source | raw/`macro-running-locally-2026-08-15/RUNNING_LOCALLY.md` |

Not the same as [[buzz-block]] (Block/Nostr workspace), [[hermes-agent]] (self-hosted agent runtime), or [[grok-bot]] (managed cloud teammates).

## Summary

Macro's pitch is one operating system instead of Slack + Linear + Notion + HubSpot + Superhuman glued by MCP/Zapier. Surfaces are purpose-built **blocks** on one backend; @mentions are a **bidirectional graph**. Designed in NYC and Toronto; dogfooded by a team of ~15 for two years (README). Hosted product is the supported path (Gmail client, iOS app, SOC 2 Type II). The repo is AGPLv3 as of a 2026-05-31 BSL→AGPL move (FAQ). `just run_local --no-doppler` stands up Postgres, Redis, LocalStack, OpenSearch, Kafka, and FusionAuth in Docker plus host-built Rust services — enough for auth, documents, email, and search, with Google/GitHub/Stripe/CloudFront stubbed.

## Product (README)

Lede (quoted): unifies "email + messages + docs + tasks + agents + CRM into a single fast interface with shared team-level memory." Everything is @linked and searchable.

| Block | Stated job |
|---|---|
| Email | Multi-account Gmail inbox, keyboard-first (Superhuman-inspired). FAQ: Macro is an **email client**, not a mail server. Outlook / IMAP "soon" |
| Messages | Channels + DMs for focused technical discussion; first replies inline |
| Tasks | Linear-inspired; create from email, `c t`, `/task`, checkboxes, `@Macro`, agents, MCP/API |
| Docs | Markdown + CRDTs + Cloudflare Durable Objects; @mentions; agent-native editing |
| Canvas | 2D board with embedded @links |
| Agents | Team-level memory (nightly synthesis); MCP surface; model picker |
| Calls | Recorded, transcribed, logged to team memory |
| Files | Auto-imported from email/channels, searchable |
| PRs | GitHub; link to tasks; embed in channels |
| CRM | Companies/contacts, custom properties, email sync; deal gets an auto channel |

How it ties together (README): bidirectional @linking; **channel-based permissions** (mention in a channel → members get access); unified memory; one inbox (Signal vs Noise).

Hosted MCP (README):

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

Layout (README tree; counts not re-counted): `apps/web` SolidJS (browser, Tauri, mobile); `apps/docs`; **42** services/workers/Lambdas; **167** Rust crates; shared TS packages; Pulumi; `docker/` Compose; `nix/` pin.

Security (README): zero retention with model providers; no training on customer data; SOC 2 Type II; reports to security@macro.com. README also shows an ISO 27001 badge image — **not independently verified** beyond the image alt text.

FAQ extras (not in RUNNING_LOCALLY): raised ~$30M led by a16z (BoxGroup, 3kVC, others) — first-party claim, not verified here. No free plan for teams.

## License and self-host

- **AGPLv3** on the monorepo. Contributions licensed the same (CONTRIBUTING.md).
- FAQ: was BSL / source-available; AGPL since **May 31 2026** (FAQ cites an X post by `j_becke`; tweet not re-fetched). Copyleft: build on Macro → keep AGPLv3, or buy a different license (`licensing@macro.com`).
- Self-host is **allowed** under AGPL and **not the focus** (FAQ, "as of June 2026"). Hosted is the product with iOS + Apple/Google/GitHub approvals, AWS, SOC 2. Self-host would need licenses for (or must disable) LiveKit, FusionAuth, PostHog, "and so on." They hope to improve self-host later in 2026. FedRAMP / own infra: `self-host@macro.com`. FAQ: HIPAA / EU residency are available on the **managed** product without self-hosting.

Do not equate `just run_local` with production self-host.

## Running locally (RUNNING_LOCALLY.md)

Developer stack. Local mode runs **without Doppler**. Infra in Docker: Postgres, Redis, LocalStack, OpenSearch, Kafka, FusionAuth. Dummy AWS credentials and fixed test secrets.

### Requirements

1. [Nix](https://nix.dev/install-nix)
2. Docker + Compose v2 (Desktop, OrbStack, or Colima)

```bash
git clone https://github.com/macro-inc/macro.git
cd macro
nix develop
# if that fails:
nix develop --extra-experimental-features nix-command --extra-experimental-features flakes
```

Nix shell provides `just`, Cargo, Rust toolchain, Bun, sqlx, zig, cargo-zigbuild. Default shell **omits** Tauri platform deps: `nix develop .#tauri-linux` or `.#tauri-android` (x86_64 Linux).

Preflight: `just doctor-local` (daemon, toolchain, ports).

### Start

| Command | Who | What |
|---|---|---|
| `just run_local --no-doppler` | most people | Code-defined local config + stubs. **Common path.** |
| `just run_local` | Doppler / team | Pulls `lcl_personal`, then local defaults; real integration values |
| `just run_local --no-doppler --env-file ./local.env` | mix | Override only the integrations you care about |
| `just run_dev` | team | Binaries against **shared dev** cloud; needs Doppler |
| `just stack up` | headless / CI | Same stack, no TTY loop; frontend built once, served at `/app/` |

`run_local` builds Rust services, starts infra + backends + proxy + frontend, prints URLs.

Works with stubs: **auth, documents, email, search**. Does **not** work against real Google / GitHub / Stripe / CloudFront until you supply keys.

Signup: no seeded accounts. Any email → FusionAuth OTP → **Mailpit** http://localhost:8025 (not a real inbox).

Seed (recommended):

```bash
just seed-scenario apply --file seed/scenarios/team-perms.json
```

Creates personas + a realistic permissioned world. Prints login links (`http://alice.localhost:3000/app/login?email=alice@seed.macro.local`). Also: `status`, `reset`, `matrix`. Rows tagged with scenario id `5eed`.

### Day-to-day

- Attached: `r` rebuild changed Rust services; `q` stop and remove containers (use `q`, not the window close).
- Named instances: `--instance agent-a` (own Compose project, volumes, networks, ports). `--port-base 31000` if the default window is busy.
- Same `--instance` and `--port-base` on seed/status or you hit the wrong database.
- macOS: port **8080** (WebDriver) and **8090** (other dev servers) steal auth/proxy — frontend loads, APIs return HTML. `just doctor-local` lists busy ports.
- Host build: `cargo zigbuild` on the host; binaries mounted into a shared runtime image. Docker does not compile those services on a normal start.
- Docker-built and **stale unless** `--build-aux-services`: `sync_service`, `lexical_service`, `websocket_service`.
- Headless extras: `just stack status --json`, `update`, `update --frontend`, `down`. First `stack up` snapshots DB migrate + FusionAuth kickstart + search indices under `infra/local/generated/.snapshots`.
- Also: `status_local`, `stop_local`, `destroy_local`, `reset_local`.

### Integration stubs

| Integration | Stub |
|---|---|
| Google SSO / Gmail | Unavailable; local signup still works; no inbox sync |
| GitHub login | Unavailable |
| Stripe | Checkout/subscription fail; signup stores a placeholder customer id |
| CloudFront signing | Unsigned download URLs (OK vs local S3) |

Internal DB/Redis/OpenSearch/API-key stubs are already correct local values.

## Repo snapshot (API 2026-08-15)

Do not treat as a live dashboard.

- 3254 stars, 321 forks, 60 open issues, 45 subscribers
- Rust + TypeScript monorepo; Just + Nix present
- `docs/` on main: RUNNING_LOCALLY, STYLE_GUIDE, CLOUD_STORAGE, PROPERTY_TARGET_ENTITY_TYPE_PLAN
- Latest commit from `/commits?per_page=1`: `4067868` (2026-08-14 4:54 PM ET). `pushed_at` is 2026-08-15 5:09 PM ET — SHA may not be HEAD
- README star-history alt text still says "1698 stars" — stale caption vs API count

## Caveats

- **Local ≠ production self-host.** FAQ defers a real self-host story. FusionAuth/LiveKit/PostHog licensing applies if you try to run "for real."
- **Heavy.** GitHub `size` 1.7M (KB units); 42 services; 167 crates; host Rust + zigbuild + several data stores. No RAM/disk minimum is documented.
- **Stubs.** A `--no-doppler` stack will not do Google login, Gmail sync, GitHub login, or Stripe. "Email" in the "fully functional" sentence is local email, not Gmail.
- **Doppler** is the team path (`run_local` without `--no-doppler`, and `run_dev`). Outsiders should not expect it.
- AGPL copyleft if you ship a hosted derivative.
- Hardware minimums, preview image internals (`infra/preview/README.md`), and CLOUD_STORAGE.md were **not** ingested.
- BSL→AGPL tweet not re-fetched; $30M raise is a FAQ claim.

## Fit for Josh

Useful as a **product entity** (AGPL Slack/Linear/Notion/HubSpot replacement with first-party agents + hosted MCP) and as a **local-run recipe** if he wants to compile the monorepo. Not a homelab one-liner like [[ia-local-casa]] or a single-binary memory server like [[perseus-vault]]. Hosted MCP is a connector target for [[hermes-agent]] / Cursor / Claude Code; it does not replace those runtimes. Closest wiki peer is [[buzz-block]] (workspace + agents), different license and architecture.

## Related

- [[buzz-block]]
- [[hermes-agent]]
- [[grok-bot]]
- [[docker-mcp-toolkit-homelab]]
- [[youtube-agentos-claude-sdk]]
- [[perseus-vault]]
- raw/`macro-running-locally-2026-08-15/`

## Sources

1. **Primary:** https://github.com/macro-inc/macro/blob/main/docs/RUNNING_LOCALLY.md — raw/`macro-running-locally-2026-08-15/RUNNING_LOCALLY.md`
2. https://raw.githubusercontent.com/macro-inc/macro/main/README.md
3. https://raw.githubusercontent.com/macro-inc/macro/main/CONTRIBUTING.md
4. https://raw.githubusercontent.com/macro-inc/macro/main/LICENSE.txt
5. https://docs.macro.com/faq
6. GitHub API `/repos/macro-inc/macro`, `/languages`, `/contents/docs`, `/commits?per_page=1` (2026-08-15)
