What Is the License for Macro? Understanding the AGPL-3.0 Terms

Macro is released under the GNU Affero General Public License v3.0 (AGPL-3.0), with the full license text stored in the repository's top-level LICENSE.txt file.

This article explains what the Macro license means for users and contributors, how the AGPL-3.0 applies across the project's Cargo workspace structure, and what to know about individual crate licensing. The AGPL-3.0 is a strong copyleft license designed to ensure that all users who interact with the software over a network can access the source code.

The Primary License: AGPL-3.0

According to the macro-inc/macro source code, the entire codebase is governed by the GNU Affero General Public License v3.0. This license extends the GPL's copyleft provisions to cover network use—meaning if you run a modified version of Macro as a network service, you must make your source code available to users.

The definitive license text resides in [LICENSE.txt](https://github.com/macro-inc/macro/blob/main/LICENSE.txt) at the repository root. No other file supersedes this document for the project as a whole.

How Licensing Works in the Cargo Workspace

Macro is organized as a Cargo workspace containing multiple crates. This structure creates a two-tier licensing system:

  • Repository-level: LICENSE.txt establishes AGPL-3.0 as the governing license
  • Crate-level: Individual Cargo.toml files may declare additional permissive licenses (MIT, Apache-2.0) for specific components

Checking License Information

To verify a crate's declared license, examine its manifest:


# From a crate's Cargo.toml

[package]
name = "document-storage-service"
version = "0.1.0"
license = "MIT OR Apache-2.0"

Despite these crate-level declarations, the overarching project license remains AGPL-3.0. The workspace root [Cargo.toml](https://github.com/macro-inc/macro/blob/main/Cargo.toml) references this top-level policy.

AGPL-3.0 Implications for Different Use Cases

Self-Hosted Deployments

Running Macro on your own infrastructure triggers AGPL-3.0's network provision clause. You must provide source code to all users who interact with your deployment.

Redistribution

Distributing Macro binaries or source code requires:

  • Including the LICENSE.txt file
  • Providing clear attribution
  • Making your modifications available under AGPL-3.0

Contributing to Macro

All contributions to the macro-inc/macro repository are implicitly licensed under the project's AGPL-3.0 terms. The [README.md](https://github.com/macro-inc/macro/blob/main/README.md) typically includes a license badge or statement confirming this policy.

Setting Up a New Crate with Proper Licensing

When adding a crate to the Macro workspace, align its Cargo.toml with the repository's licensing approach:

[package]
name = "my_new_crate"
version = "0.1.0"
edition = "2021"
license = "AGPL-3.0"

Cargo publishes this license metadata to crates.io, ensuring consistency with the repository's top-level license.

Key License Files in Macro

File Location Purpose
LICENSE.txt Repository root Full AGPL-3.0 license text
Cargo.toml Workspace root Workspace manifest with license references
README.md Repository root Project overview with license badge
Cargo.toml Individual crate directories Per-crate license declarations

Summary

  • Macro's license is AGPL-3.0, a strong copyleft license covering network use
  • The full license text lives in LICENSE.txt at the repository root
  • Individual crates may list MIT or Apache-2.0 in their Cargo.toml files, but the overall project license is AGPL-3.0
  • Self-hosters must comply with network source provision requirements
  • New crates should declare license = "AGPL-3.0" to maintain consistency

Frequently Asked Questions

Is Macro free to use commercially?

Yes, the AGPL-3.0 permits commercial use. However, any modified version you run as a network service must have its source code made available to users. This requirement distinguishes AGPL-3.0 from more permissive licenses like MIT or Apache-2.0.

Why do some crates show MIT or Apache-2.0 licenses?

Individual crate Cargo.toml files may declare dual licensing for specific components, often to facilitate reuse in other projects. These declarations do not override the repository-wide AGPL-3.0 policy stated in LICENSE.txt.

How do I comply with Macro's license when self-hosting?

Maintain a copy of LICENSE.txt with your deployment, document any modifications you make, and provide a download link or repository containing your modified source code to all users who access your Macro instance over a network.

Can I change Macro's license for my own deployment?

No. The AGPL-3.0 terms require that derivative works remain under the same license. You cannot relicense Macro or modifications thereof under proprietary or more permissive terms without explicit permission from all copyright holders.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →