# Open Source License Picker - Compare MIT, Apache & GPL

> Answer a few questions to choose an open source license, compare 15 licenses side by side, and generate a filled-in LICENSE, SPDX headers and manifest fields.

- URL: https://qilingtools.com/en/license-picker
- Category: Developer Tools (https://qilingtools.com/en/dev)
- Tags: [Developer](https://qilingtools.com/en/tags/dev), [DevOps](https://qilingtools.com/en/tags/devops)
- Last updated: 2026-10-26
- Price: Free, no sign-up
- Privacy: Runs locally in the browser; files are never uploaded

MIT, Apache-2.0 or GPL? This tool narrows the choice with five questions: are you licensing code, docs or data; must people who modify and redistribute it keep it open (permissive, file-level, library-level, the whole work, or even network services); do you need an explicit patent grant; must users keep your attribution; and must it be combinable with GPLv2 or GPLv3 projects. Every license gets the reasons it fits or doesn’t. The comparison table lists 15 common licenses (MIT, Apache-2.0, BSD-2/3-Clause, ISC, MPL-2.0, LGPL-2.1/3.0, GPL-2.0/3.0, AGPL-3.0, Unlicense, CC0-1.0, plus CC BY 4.0 and CC BY-SA 4.0 for documentation) by patent grant, notice, change marking, source-disclosure scope, network clause, trademarks, GPL compatibility and OSI/FSF approval. Pick one to generate the full LICENSE with your year and name (the long GNU, Apache and MPL texts are verbatim copies of the official files, loaded on demand), the SPDX identifier with -only / -or-later and dual-license expressions, source-file headers in many comment styles (full notice or REUSE-style SPDX tags), and the license fields for package.json, Cargo.toml, pyproject.toml, composer.json, gemspec and pom.xml plus a README badge. Everything runs in your browser.

## How to use

1. Answer the questions under Help me choose about work type, copyleft, patents, attribution and GPL compatibility, and review the ranked suggestions
2. Open the Comparison tab for details and click a license name to generate it
3. Enter the year, holder and project name, copy or download the LICENSE, and copy the file header and manifest fields

## Features

- Five-question recommender with reasons for and against
- 15 licenses compared: patents, copyleft scope, network clause, GPL compatibility, OSI/FSF
- Verbatim official texts filled with your year and name
- SPDX identifiers (-only / -or-later) and dual-license expressions
- Source headers in many languages: full notice or REUSE SPDX tags
- package.json, Cargo.toml, pyproject.toml and more, plus a README badge
- Long texts lazy-loaded, everything local

## FAQ

### Should I choose MIT or Apache-2.0?

Both are permissive and allow closed-source commercial use. Apache-2.0 adds an explicit patent grant with a retaliation clause (suing for patent infringement ends your license) and requires keeping the NOTICE file and marking changes, which suits company projects and patent-sensitive code; MIT is shorter and simpler. Apache-2.0 is incompatible with GPLv2, which is why Rust projects often use “MIT OR Apache-2.0”.

### What is the difference between GPL, LGPL and AGPL?

GPL is strong copyleft: if you distribute a program containing GPL code, including code linked with it, the whole program must be released under the GPL. LGPL only requires changes to the library itself to be released, so proprietary programs may link to it. AGPL adds a network clause to GPLv3: if you modify it and let users interact with it over a network, you must offer them the source.

### What do -only and -or-later mean?

GNU licenses let you choose “this version only” (e.g. GPL-3.0-only) or “this version or any later version” (GPL-3.0-or-later). The or-later form lets your code be combined with code under future GPL versions, but also accepts terms the FSF publishes in the future. The Linux kernel is GPL-2.0-only, so it cannot absorb GPLv3 code.

### Which license should I use for docs, images or data?

Software licenses target code. For documentation, images and video, CC BY 4.0 (attribution) or CC BY-SA 4.0 (share-alike) are common; for datasets, samples and assets you want everyone to reuse freely, CC0 waives your rights. CC0 explicitly withholds patent rights and is not OSI-approved, so it is not recommended for software. This tool is informational and not legal advice.

## Related tools

- [JSON Formatter](https://qilingtools.com/en/json): Free online JSON formatter: beautify or minify, validate with the exact line and column of any error, browse a collapsible tree, sort keys and escape strings.
- [Base64 Encode/Decode](https://qilingtools.com/en/base64): Free online Base64 encoder and decoder: UTF-8 safe, optional URL-safe variant, convert text to Base64 and back in real time. Processed locally, never uploaded.
- [URL Encode/Decode](https://qilingtools.com/en/url-encode): Free online URL encoder and decoder with encodeURIComponent and encodeURI modes. Escapes Chinese, spaces and special characters. Real-time and local, no upload.
- [JWT Decoder](https://qilingtools.com/en/jwt): Free online JWT decoder: decode the header and payload of a JSON Web Token, show expiry and issued-at times, all locally without uploading the token.
- [Timestamp Converter](https://qilingtools.com/en/timestamp): Free online Unix timestamp converter: convert timestamps and dates, auto-detect seconds or milliseconds, and show local, UTC, ISO 8601 and relative time.
- [Hash / Checksum](https://qilingtools.com/en/hash): Free online hash calculator: SHA-1, SHA-256, SHA-384 and SHA-512 of text or any file through the browser crypto API. Files never leave your device.
- [UUID Generator](https://qilingtools.com/en/uuid): Free online UUID generator: create RFC 4122 UUID v4 in bulk with a cryptographic RNG. Options for uppercase, no hyphens and braces, with one-click copy.
- [Base Converter](https://qilingtools.com/en/base-convert): Free online number base converter: convert between binary, octal, decimal, hexadecimal and any base 2–36. Uses BigInt for huge integers, computed locally.
