Licensing Information for the macro-inc/macro Project: AGPL-3.0 Explained
The macro-inc/macro repository is released under the GNU Affero General Public License version 3 (AGPL-3.0), requiring distribution of source code for all public deployments including SaaS offerings.
Understanding the licensing information for the macro-inc/macro project is essential before integrating this open-source codebase into your applications. According to the repository's source code, the project explicitly adopts the AGPL-3.0 license, which extends the traditional GPL requirements to cover network interactions and cloud deployments. This article explains where to find the official license declarations, what compliance obligations they create, and how to handle licensing within your development workflow.
Official License Declaration in README.md
The primary licensing statement appears in the project's README.md file at lines 38-42. As stated in the source code:
"Macro is fully open source … under the GNU Affero General Public License v3.0"
This declaration establishes the copyleft nature of the project. Any derivative work or deployment must comply with the AGPL-3.0 terms, which mandate that users interacting with the software over a network receive access to the corresponding source code.
Full License Text in LICENSE.txt
The complete legal text resides in LICENSE.txt at the repository root (lines 1-3 onward). This file contains the unmodified GNU Affero General Public License version 3.0 text, providing the full legal framework governing use, modification, and distribution.
When auditing your dependencies, always verify that the LICENSE.txt file contains the string "GNU Affero General Public License" to confirm the repository maintains its stated AGPL-3.0 status.
Network Use and SaaS Compliance Requirements
The AGPL-3.0 license creates specific obligations for modern deployment scenarios. Unlike standard GPL licenses, the AGPL's "network use is distribution" clause requires that any publicly accessible instance of Macro—including SaaS offerings or hosted services—must make the complete source code available to all users.
Key compliance requirements include:
- Source Availability: You must provide the complete source code of the running version to every user who interacts with the software over a network.
- Modifications: Any changes you make to the codebase must be released under the same AGPL-3.0 terms.
- Attribution: Copyright notices and license texts must remain intact in all copies.
Commercial Licensing for Proprietary Use
If you wish to embed Macro code into a proprietary product without open-sourcing your entire application, you must obtain a separate commercial license. The maintainers explicitly offer alternative licensing arrangements for organizations requiring closed-source deployments.
Contact information for commercial licensing inquiries is available in the "License" section of README.md. This dual-licensing approach allows enterprises to use Macro while protecting their intellectual property, provided they negotiate terms with the copyright holders.
Practical Implementation Examples
When working with the macro-inc/macro codebase, implement these patterns to ensure proper license management and compliance tracking.
Displaying License Information in CLI Applications
For command-line tools built on Macro, load and display the license file at runtime to inform users of their rights:
use std::fs;
fn main() {
// Load the license file bundled with the project
let license = fs::read_to_string("LICENSE.txt")
.expect("Unable to read LICENSE.txt");
println!("Macro is licensed under AGPL‑v3:\n\n{}", license);
}
This Rust example reads the bundled LICENSE.txt at runtime and outputs the full AGPL-3.0 text, satisfying attribution requirements for interactive applications.
Validating License Files in CI Pipelines
Automate license compliance checks in your continuous integration workflow to prevent accidental removal of licensing files:
#!/usr/bin/env bash
# Ensure the repository contains a LICENSE file and that it mentions AGPL
if grep -q "GNU Affero General Public License" LICENSE.txt; then
echo "✅ License file present and AGPL‑v3 confirmed"
else
echo "⚠️ License file missing or does not contain AGPL‑v3"
exit 1
fi
The script validates that the repository’s LICENSE.txt includes the AGPL-3.0 identifier, catching license file corruption or accidental deletion before deployment.
Adding License Headers to Source Files
Include standard headers in new Rust source files to clearly mark them as part of the AGPL-3.0 project:
//! Macro – AGPL‑v3
//!
//! This file is part of the Macro project and is subject to the
//! terms of the GNU Affero General Public License version 3.
//! See `LICENSE.txt` for the full license text.
fn some_feature() {
// implementation …
}
Placing a short header comment in each source file makes the licensing terms clear to downstream users and helps prevent proprietary misappropriation.
Summary
- The macro-inc/macro project is licensed under AGPL-3.0, as declared in
README.md(lines 38-42) and codified inLICENSE.txt. - Network deployments trigger distribution requirements, meaning SaaS operators must provide source code to all users.
- Commercial licenses are available for proprietary use by contacting the maintainers listed in the README.
- Compliance automation should validate the presence of
LICENSE.txtand "GNU Affero General Public License" strings in CI pipelines. - Source file headers should reference the AGPL-3.0 terms to maintain clear licensing boundaries in the codebase.
Frequently Asked Questions
What license does macro-inc/macro use?
The project uses the GNU Affero General Public License version 3 (AGPL-3.0). This is explicitly stated in the README.md file and confirmed by the full license text in LICENSE.txt. The AGPL-3.0 is a strong copyleft license designed to ensure that network users receive the same freedoms as those running software locally.
Do I need to open source my modifications if I run Macro as a SaaS?
Yes. The AGPL-3.0's "network use is distribution" clause requires you to provide the complete source code—including any modifications—to every user who accesses your SaaS deployment. This obligation distinguishes AGPL from standard GPL licenses, which only require source distribution when physically transferring software copies.
Can I use macro-inc/macro in a proprietary product?
Not without obtaining a commercial license. The AGPL-3.0 requires that any distributed or publicly accessible derivative work remain open source under the same license terms. Organizations wishing to embed Macro code in closed-source products must contact the maintainers (via the License section in README.md) to negotiate separate commercial licensing terms.
Where is the full license text located in the repository?
The complete AGPL-3.0 license text is located in LICENSE.txt at the repository root, beginning at line 1. The README.md file (lines 38-42) provides a summary and points to this full text, while also offering contact information for commercial licensing inquiries.
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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →