What Is the Amnezia-Client License? GPL‑3.0 Terms and Compliance Guide

The amnezia-client software is released under the GNU General Public License version 3 (GPL‑3.0), a copyleft license that permits free use, modification, and distribution provided derivative works adhere to the same license terms.

The amnezia-vpn/amnezia-client repository provides a cross-platform VPN application designed to circumvent internet censorship. Understanding the amnezia-client license is critical for developers contributing code, distributing binaries, or integrating the client into larger systems while maintaining compliance with open-source obligations.

Verifying the GPL‑3.0 License in Source Files

The repository’s top-level LICENSE file contains the complete, unmodified text of the GNU General Public License version 3. This file confirms that all source code in the repository—including core components like client/vpnConnection.cpp—is governed by GPL‑3.0 terms. The README.md also provides a concise statement referencing this licensing choice for quick verification.

Third-Party License Documentation

Because the project bundles external dependencies, the repository includes a THIRD_PARTY_LICENSES.md file. This document lists the specific licenses of all upstream components, ensuring full license compliance and proper attribution for libraries incorporated into the build. Reviewing this file is essential for understanding the complete license landscape of a distributed binary.

GPL‑3.0 Compliance Requirements

As a copyleft license, GPL‑3.0 imposes specific obligations on anyone distributing the software or derivative works:

  • You must provide recipients with the complete source code.
  • Modified versions must be licensed under GPL‑3.0 (not a proprietary license).
  • Original copyright notices must be preserved in all copies.
  • The LICENSE file text must accompany any binary distribution.

These requirements ensure that improvements to the amnezia-client remain available to the community.

Accessing License Information Programmatically

Developers embedding or extending amnezia-client can programmatically retrieve license text to display within application interfaces, fulfilling GPL‑3.0’s requirement to provide license notices.

Reading the License in C++

The following C++ example demonstrates how to load the embedded LICENSE resource using Qt's file system:

#include <QFile>
#include <QTextStream>
#include <QDebug>

int main() {
    QFile licenseFile(":/LICENSE");          // Embedded resource path
    if (!licenseFile.open(QIODevice::ReadOnly)) {
        qWarning() << "Cannot open LICENSE file";
        return 1;
    }
    QTextStream in(&licenseFile);
    QString firstLine = in.readLine();       // Should read “GNU GENERAL PUBLIC LICENSE”
    qInfo() << "Amnezia‑Client licence:" << firstLine;
    return 0;
}

This implementation reads the first line of the license file, which should contain "GNU GENERAL PUBLIC LICENSE", verifying the resource is correctly bundled.

Displaying the License in Qt Quick (QML)

For Qt Quick-based user interfaces, you can load the complete license text using XMLHttpRequest:

import QtQuick 2.15
import QtQuick.Controls 2.15

Dialog {
    id: licenceDialog
    title: "License"
    modal: true
    width: 600
    height: 400

    ScrollView {
        anchors.fill: parent
        TextArea {
            readOnly: true
            text: {
                // Load LICENSE from the resources folder
                var request = new XMLHttpRequest();
                request.open("GET", "qrc:/LICENSE", false);
                request.send(null);
                return request.responseText;
            }
            wrapMode: Text.Wrap
        }
    }

    Button {
        text: "Close"
        anchors.horizontalCenter: parent.horizontalCenter
        onClicked: licenceDialog.close()
    }
}

This QML component creates a modal dialog that displays the full GPL‑3.0 text, ensuring end users have direct access to license terms as required by the amnezia-client license.

Summary

  • The amnezia-client is licensed under GPL‑3.0, located in the repository root LICENSE file.
  • The THIRD_PARTY_LICENSES.md file documents all external component licenses for compliance.
  • Derivative works must be distributed under GPL‑3.0 with source code availability.
  • Code examples in C++ and QML demonstrate how to programmatically access and display the license text.

Frequently Asked Questions

Is Amnezia-Client open source?

Yes. According to the LICENSE file in the amnezia-vpn/amnezia-client repository, the software is released under GPL‑3.0, which qualifies as free and open-source software. This grants users the freedom to examine, modify, and redistribute the source code.

Can I modify and redistribute Amnezia-Client?

Yes, but with conditions. The GPL‑3.0 license permits modification and redistribution, provided that you license your modified versions under GPL‑3.0 as well, include the complete source code, and maintain all original copyright notices found in files like client/vpnConnection.cpp.

Where can I find third-party license information?

Third-party license details are cataloged in the THIRD_PARTY_LICENSES.md file located in the repository root. This document identifies the licenses of all bundled libraries and dependencies, ensuring transparent compliance with upstream requirements.

Do I need to open source my modifications?

If you distribute a modified version of amnezia-client, either as source or binary, GPL‑3.0 requires you to provide the corresponding source code under the same license terms. Private modifications that are not distributed do not trigger this requirement.

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 →