Counted 10 October 2026
Which open-source projects changed their licence
Borehole reads each project's root licence file commit by commit. Of the 401 public projects in its library, 109 changed that licence in a way that changes what users may do. 63 of them narrowed it, and 21 now grant source-available terms, which are not open source. The counts move as the library grows.
What they grant now
| Licence kind today | Projects |
|---|---|
| Permissive | 25 |
| Weak copyleft | 8 |
| Strong copyleft | 17 |
| Network copyleft | 38 |
| Source available | 21 |
Changes by year
The busiest year was 2023, with 24 changes. A project that changed twice counts twice.
| Year | Changes | Last narrowed |
|---|---|---|
| 2004 | 1 | |
| 2005 | 1 | |
| 2006 | 1 | |
| 2007 | 2 | 1 |
| 2008 | 1 | 1 |
| 2009 | 1 | |
| 2010 | 3 | |
| 2011 | 6 | |
| 2012 | 1 | |
| 2013 | 5 | |
| 2014 | 7 | 2 |
| 2015 | 4 | |
| 2016 | 10 | 3 |
| 2017 | 6 | 2 |
| 2018 | 12 | 5 |
| 2019 | 6 | 2 |
| 2020 | 17 | 10 |
| 2021 | 11 | 9 |
| 2022 | 15 | 7 |
| 2023 | 24 | 17 |
| 2024 | 16 | 9 |
| 2025 | 8 | 3 |
| 2026 | 3 | 2 |
"Last narrowed" counts each project once, in the year its terms last moved toward fewer rights.
Every change, newest first
| Project | Licence history | Now |
|---|---|---|
| thingsboard/thingsboard | Apache-2.0 → BUSL-1.1 (2026-09-28) | Source available |
| calcom/cal.com | MIT → AGPL-3.0 (2021-09-20) → MIT (2026-04-15) | Permissive |
| teslamate-org/teslamate | MIT → AGPL-3.0 (2026-02-13) | Network copyleft |
| rstudio/shiny | GPL-3.0 → MIT (2025-12-16) | Permissive |
| luckypennysoftware/automapper | MIT → a choice of RPL-1.5 or a commercial licence (2025-07-02) | Network copyleft |
| emqx/emqx | MPL-1.1 → MIT (2014-12-07) → Apache-2.0 (2016-02-15) → Apache-2.0 AND BUSL-1.1 (2021-12-29) → BUSL-1.1 (2025-05-06) | Source available |
| open-webui/open-webui | Apache-2.0 → MIT (2023-10-08) → BSD-3-Clause (2025-01-10) → BSD-3-Clause with a branding condition (2025-05-05) | Source available |
| redis/redis | BSD-3-Clause → a choice of RSALv2 or SSPL-1.0 (2024-03-20) → a choice of RSALv2, SSPL-1.0 or AGPL-3.0 (2025-05-01) | Network copyleft |
| zitadel/zitadel | Apache-2.0 → AGPL-3.0 (2025-04-02) | Network copyleft |
| teableio/teable | AGPL-3.0 → AGPL-3.0 with additional terms (2025-04-01) | Network copyleft |
| maplibre/maplibre-compose | MPL-2.0 → BSD-3-Clause (2024-11-22) | Permissive |
| hiddify/hiddify-app | CC-BY-NC-SA-4.0 → GPL-3.0 with a non-commercial condition and an attribution term (2024-10-29) | Source available |
| element-hq/element-x-android | Apache-2.0 → AGPL-3.0 (2024-09-10) | Network copyleft |
| element-hq/element-x-ios | Apache-2.0 → AGPL-3.0 (2024-09-06) | Network copyleft |
| stirling-tools/stirling-pdf | Apache-2.0 → GPL-3.0 (2023-05-20) → MIT (2024-09-02) | Permissive |
| codeberg.org/forgejo/forgejo | MIT → BSD-3-Clause (2014-03-25) → MIT (2014-11-06) → GPL-3.0 (2024-08-22) | Strong copyleft |
| localsend/localsend | GPL-3.0 → MIT (2022-12-23) → Apache-2.0 (2024-08-17) | Permissive |
| lobehub/lobehub | MIT → Apache-2.0 with a commercial-licence condition (2024-06-17) | Source available |
| mrkai77/loop | Apache-2.0 → MIT (2023-06-15) → GPL-3.0 (2024-04-18) | Strong copyleft |
| gitbutlerapp/gitbutler | FSL-1.0-MIT → FSL-1.1-MIT (2024-03-12) | Source available |
| duplicati/duplicati | LGPL-2.1 → MIT (2024-03-01) | Permissive |
| getsentry/relay | BUSL-1.1 → FSL-1.0-ALv2 (2023-11-17) → FSL-1.1-ALv2 (2024-02-27) | Source available |
| immich-app/immich | MIT → AGPL-3.0 (2024-02-12) | Network copyleft |
| dimillian/icecubesapp | Apache-2.0 → AGPL-3.0 (2024-02-10) | Network copyleft |
| unkeyed/unkey | GPL-3.0 → AGPL-3.0 (2024-02-05) | Network copyleft |
| xtdb/xtdb | MIT → AGPL-3.0 (2022-06-09) → MIT (2023-03-28) → MPL-2.0 (2023-11-24) | Weak copyleft |
| akaunting/akaunting | GPL-3.0 → BUSL-1.1 (2023-10-03) | Source available |
| hashicorp/consul | MPL-2.0 → BUSL-1.1 (2023-08-11) | Source available |
| hashicorp/vault | MPL-2.0 → BUSL-1.1 (2023-08-11) | Source available |
| hashicorp/nomad | MPL-2.0 → BUSL-1.1 (2023-08-10) | Source available |
| hashicorp/terraform | MPL-2.0 → BUSL-1.1 (2023-08-10) | Source available |
| leantime/leantime | GPL-2.0 → AGPL-3.0 (2023-08-02) | Network copyleft |
| twentyhq/twenty | MIT → AGPL-3.0 (2023-07-17) | Network copyleft |
| makeplane/plane | Apache-2.0 → AGPL-3.0 (2023-06-28) | Network copyleft |
| triggerdotdev/trigger.dev | Apache-2.0 → MIT (2023-01-31) → MPL-2.0 (2023-06-23) → Apache-2.0 (2023-06-26) | Permissive |
| linkwarden/linkwarden | MIT → GPL-3.0 (2023-04-23) → AGPL-3.0 (2023-05-31) | Network copyleft |
| signalapp/signal-android | GPL-3.0 → AGPL-3.0 (2023-05-05) | Network copyleft |
| directus/directus | GPL-3.0 → BUSL-1.1 (2023-04-26) | Source available |
| ultralytics/ultralytics | GPL-3.0 → AGPL-3.0 (2023-04-14) | Network copyleft |
| formbricks/formbricks | AGPL-3.0 → MIT (2022-11-10) → AGPL-3.0 (2023-03-29) | Network copyleft |
| dani-garcia/vaultwarden | GPL-3.0 → AGPL-3.0 (2023-02-12) | Network copyleft |
| kimai/kimai | MIT → AGPL-3.0 (2022-12-31) | Network copyleft |
| automattic/pocket-casts-ios | GPL-2.0 → MPL-2.0 (2022-09-15) | Weak copyleft |
| qbittorrent/qbittorrent | GPL-2.0 → GPL-with-exception (2009-04-05) → GPL-2.0 (2022-09-15) | Strong copyleft |
| akka/akka-core | Apache-2.0 → BUSL-1.1 (2022-09-07) | Source available |
| coollabsio/coolify | AGPL-3.0 → Apache-2.0 (2022-08-11) | Permissive |
| sixlabors/imagesharp | Apache-2.0 → AGPL-3.0 (2020-04-30) → Apache-2.0 (2020-06-07) → SixLabors-Split-1.0 (2022-07-16) | Source available |
| rustdesk/rustdesk | GPL-3.0 → AGPL-3.0 (2022-06-27) | Network copyleft |
| inngest/inngest | Apache-2.0 → GPL-3.0 (2022-04-12) → SSPL-1.0 with additional terms (2022-05-27) | Source available |
| mealie-recipes/mealie | MIT → AGPL-3.0 (2022-05-09) | Network copyleft |
| n8n-io/n8n | Apache-2.0 with the Commons Clause and an attribution term → SUL-1.0 (2022-03-17) | Source available |
| files-community/files | GPL-3.0 → EULA (2018-06-14) → Apache-2.0 (2018-07-13) → LGPL-3.0 (2018-12-27) → GPL-3.0 (2021-01-01) → MIT (2022-02-27) | Permissive |
| surrealdb/surrealdb | Apache-2.0 → BUSL-1.1 (2021-12-14) | Source available |
| appflowy-io/appflowy | Apache-2.0 → AGPL-3.0 (2021-11-09) | Network copyleft |
| htop-dev/htop | GPL-2.0 → GPL-with-exception (2010-02-24) → GPL-2.0 (2021-08-26) | Strong copyleft |
| minio/minio | Apache-2.0 → AGPL-3.0 (2021-04-23) | Network copyleft |
| grafana/grafana | Apache-2.0 → AGPL-3.0 (2021-04-20) | Network copyleft |
| livebook-dev/livebook | AGPL-3.0 → Apache-2.0 (2021-04-13) | Permissive |
| pretix/pretix | AGPL-3.0 → Apache-2.0 (2015-02-10) → AGPL-3.0 with terms on offering it as a service and an attribution term (2021-04-12) | Network copyleft |
| notepad-plus-plus/notepad-plus-plus | GPL-2.0 → GPL-3.0 (2021-01-24) | Strong copyleft |
| antennapod/antennapod | MIT → GPL-3.0 (2020-11-30) | Strong copyleft |
| graylog2/graylog2-server | GPL-3.0 → SSPL-1.0 with additional terms (2020-11-16) | Source available |
| signalapp/signal-desktop | GPL-3.0 → AGPL-3.0 (2020-11-04) | Network copyleft |
| logseq/logseq | EPL-2.0 → AGPL-3.0 (2020-10-12) | Network copyleft |
| plausible/analytics | MIT → AGPL-3.0 (2020-10-12) | Network copyleft |
| photoprism/photoprism | MIT → GPL-3.0 (2018-10-06) → MIT (2018-10-13) → Apache-2.0 (2018-10-31) → GPL-3.0 (2018-12-03) → AGPL-3.0 (2020-06-16) | Network copyleft |
| codeberg.org/river/river | MIT → GPL-3.0 (2020-05-02) | Strong copyleft |
| outline/outline | BSD-3-Clause → BUSL-1.1 (2020-03-07) | Source available |
| codeberg.org/emersion/soju | MIT → AGPL-3.0 (2020-02-07) | Network copyleft |
| raysan5/raylib | BSD-3-Clause AND Zlib → Zlib (2015-08-27) → CC-BY-NC-4.0 (2018-06-20) → Zlib (2020-01-29) | Permissive |
| simplex-chat/simplex-chat | MIT → AGPL-3.0 (2020-01-26) | Network copyleft |
| navidrome/navidrome | Apache-2.0 → GPL-3.0 (2016-03-13) → AGPL-3.0 (2017-04-01) → GPL-3.0 (2020-01-22) | Strong copyleft |
| gofiber/fiber | GPL-3.0 → MIT (2020-01-06) → Apache-2.0 (2020-01-13) → MIT (2020-01-16) | Permissive |
| firefly-iii/firefly-iii | MIT → GPL-3.0 (2017-10-22) → AGPL-3.0 (2019-10-05) | Network copyleft |
| streamlit/streamlit | MIT → proprietary (2018-11-05) → Apache-2.0 (2019-08-23) | Permissive |
| exelban/stats | GPL-3.0 → MIT (2019-07-02) | Permissive |
| appwrite/appwrite | AGPL-3.0 → BSD-3-Clause (2019-05-12) | Permissive |
| esphome/esphome | MIT → GPL-3.0 (2019-04-17) | Strong copyleft |
| kanidm/kanidm | GPL-3.0 → MPL-2.0 (2019-02-03) | Weak copyleft |
| pixelfed/pixelfed | MIT → AGPL-3.0 (2018-06-05) | Network copyleft |
| anuken/mindustry | MIT → GPL-3.0 (2018-03-22) | Strong copyleft |
| iv-org/invidious | MIT → AGPL-3.0 (2018-01-28) | Network copyleft |
| casey/just | Apache-2.0 → CC0-1.0 (2017-11-30) | Permissive |
| pi-hole/pi-hole | GPL-2.0 → EUPL-1.1 (2017-03-02) → EUPL-1.2 (2017-06-20) | Network copyleft |
| jabref/jabref | GPL-2.0 → MIT (2017-02-15) | Permissive |
| bitwarden/server | GPL-3.0 → AGPL-3.0 (2016-12-03) | Network copyleft |
| mastodon/mastodon | GPL-2.0 → AGPL-3.0 (2016-09-21) | Network copyleft |
| aseprite/aseprite | GPL-2.0 → GPL-2.0 AND EULA (2016-02-16) → EULA (2016-08-29) | Source available |
| ocaml/opam | GPL-3.0 → LGPL-3.0 WITH OCaml-LGPL-linking-exception (2013-05-15) → LGPL-2.1 WITH OCaml-LGPL-linking-exception (2016-06-07) | Weak copyleft |
| gitlab.com/inkscape/inkscape | GPL-2.0 AND LGPL-2.1 → GPL-2.0 (2016-05-08) | Strong copyleft |
| penpot/penpot | proprietary → MPL-2.0 (2016-03-01) | Weak copyleft |
| puma/puma | LGPL-2.1 → Ruby (2006-06-30) → BSD-3-Clause AND Ruby (2011-09-24) → BSD-3-Clause (2016-02-25) | Permissive |
| koalaman/shellcheck | AGPL-3.0 → GPL-3.0 (2015-06-20) | Strong copyleft |
| syncthing/syncthing | MIT → GPL-3.0 (2014-10-01) → MPL-2.0 (2015-03-17) | Weak copyleft |
| fsprojects/paket | Unlicense → MIT (2014-08-29) | Permissive |
| wallabag/wallabag | WTFPL → MIT (2014-07-25) | Permissive |
| koreader/koreader | GPL-3.0 → AGPL-3.0 (2014-03-23) | Network copyleft |
| obsproject/obs-studio | GPL-3.0 → GPL-2.0 (2013-12-03) | Strong copyleft |
| mpv-player/mpv | GPL-2.0 → GPL-3.0 (2011-03-24) → GPL-2.0 (2013-10-12) | Strong copyleft |
| gitlab.com/fdroid/fdroidclient | GPL-2.0 → GPL-3.0 (2013-04-12) | Strong copyleft |
| mitmproxy/mitmproxy | GPL-3.0 → GPL-with-exception (2011-06-01) → MIT (2013-03-17) | Permissive |
| sequel-ace/sequel-ace | GPL-2.0 → MIT (2012-07-25) | Permissive |
| laravel/laravel | MIT → Unlicense (2011-07-26) → MIT (2011-11-24) | Permissive |
| libgit2/libgit2 | BSD-3-Clause → GPL-2.0 (2008-11-01) → GPL-with-exception (2011-09-18) | Weak copyleft |
| openrefine/openrefine | proprietary → BSD-2-Clause (2010-03-30) → BSD-3-Clause (2010-10-20) | Permissive |
| awesomewm/awesome | MIT → GPL-2.0 (2007-09-12) | Strong copyleft |
| nicotine-plus/nicotine-plus | GPL-2.0 → GPL-3.0 (2007-07-10) | Strong copyleft |
| sqlalchemy/sqlalchemy | LGPL-2.1 → MIT (2005-12-31) | Permissive |
| processone/ejabberd | GPL-2.0 → GPL-with-exception (2004-10-09) | Weak copyleft |
Paid editions beside an open licence
These projects kept an open licence for most of their code and added source-available terms for a paid edition in its own files. They are not counted above.
- meilisearch/meilisearch: A paid edition was added under MIT AND BUSL-1.1; the rest stays MIT
Why a licence change matters in diligence
Code taken under the old terms stays under them. A buyer, a host or a fork may rely on either set, so both matter. A change toward source-available terms can restrict production use or offering the software as a service.
How this is counted
- Each project counts once, from its newest public reading.
- Only the root licence file counts, as it changed on the main line. A change on a branch counts when it lands.
- A change that no release carried is set aside.
- A move from one permissive licence to another is not counted: it changes nobody's rights in a way diligence weighs.
- A change Borehole could not confirm from the history is left out.
Read a project, or your own
The library lists every project counted here.
Survey a repository: free on public repositories. Private code is read on your own machine by a collector whose source you can read first.