From 2879c925969b9c087e80d514395142ddbfd7e2d1 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 1 May 2026 16:51:03 +0200 Subject: [PATCH 001/413] clean up the "why not llms" section to have more brought overarching categories and a prologue --- README.md | 56 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 045d024..dfde1cd 100644 --- a/README.md +++ b/README.md @@ -1287,7 +1287,19 @@ All-in-one solutions for stitching together a desktop. # Why not LLMs? -Could use some help writing this with concrete receipts on environmental, social, political, and economic/labor harms. +As a brief explanation of the reasoning behind, we are against AI for the following reasons: + +- legal issues +- ethical issues +- poor code quality + +We've broken down all of those sections and more below, but before you dive into that, one of the common questions and discussions that happens here is, "if something ever had slop in it, how can it ever be good again?" and that's usually in relation to projects that have dropped AI or projects that are forks of something that once had AI in it. We believe strongly that you can always be better and you can also reduce harm. In the same way you wouldn't consider a vegetarian "not a vegetarian" because they once ate meat even though they no longer eat meat, we don't consider a project permenantly tainted if they once used AI but now do not. + +You can always be a better person and communities can always be better communities. + +We don't gatekeep being better. + +Please feel free to open pull requests if you'd like to add more data to any section below, or if you have a suggestion for another section that you think would be helpful to include. ## Legal Ramifications @@ -1319,25 +1331,6 @@ AI companies use data from across the web for training their models, most often FOSS projects listed in this repo are using tooling that blatantly disregard licensing and violate of Codes of Conduct, making said tools antithetical to FOSS' purpose. -## Environmental Impact - -To start learning a bit more, you can checkout the wikipedia page on [Environmental impact of artificial intelligence](https://en.wikipedia.org/wiki/Environmental_impact_of_artificial_intelligence#Individual_level). We're very open to people contributing other explanations, links, and resources to learn more about this. Here's what we've gathered so far: - -- [MIT News: Generative AI’s environmental impact](https://news.mit.edu/2025/explained-generative-ai-environmental-impact-0117) -- [MIT Technology Review: We did the math on AI’s energy footprint. Here’s the story you haven’t heard.](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/) - -## Labor - -AI usage and normalization contributes to labor violations in many ways that are obvious and some you may not be aware of. - -On one hand, many things that you think are "AI" are actually humans in another country pretending to be an AI chatbot for you for either extremely low wages or in some cases, no wages e.g. prison labor. This is particularly common for "friend"/"sex" bots, but it is also extremely common in the image/video identification. You can find a bit more info at the following links: - -- [Long hours and low wages: the human labour powering AI’s development](https://theconversation.com/long-hours-and-low-wages-the-human-labour-powering-ais-development-217038) -- [OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic](https://time.com/6247678/openai-chatgpt-kenya-workers/) -- ['AI Is African Intelligence': The Workers Who Train AI Are Fighting Back](https://www.404media.co/ai-is-african-intelligence-the-workers-who-train-ai-are-fighting-back/) -- [These Prisoners Are Training AI: In high-wage Finland, where clickworkers are rare, one company has discovered a novel labor force—prisoners.](https://web.archive.org/web/20260108224812/https://www.wired.com/story/prisoners-training-ai-finland/) -- [Amazon grocery stores previously reported to use AI actually used people in India](https://www.businessinsider.com/amazons-just-walk-out-actually-1-000-people-in-india-2024-4?op=1) - ## Poor Code Quality Vibe coding / agentic workflows result in poorer code quality, and relaxed oversight practices. These effects may be compounded by the common practice of using additional LLM-based tooling to provide code-reviews. @@ -1367,7 +1360,28 @@ This also often results in massive security holes. * [In a study evaluating over 500k code samples, LLM-generated code was found to contain more high-risk security vulnerabilities than human-generated code](https://arxiv.org/abs/2508.21634) * [LLMs make up package names, making them vulnerable to incorporating malicious code in "slopsquatting" attacks](https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/) ([Arxiv study](https://arxiv.org/abs/2406.10279)) -## Health and Safety +## Ethical Issues + +### Environmental Impact + +To start learning a bit more, you can checkout the wikipedia page on [Environmental impact of artificial intelligence](https://en.wikipedia.org/wiki/Environmental_impact_of_artificial_intelligence#Individual_level). We're very open to people contributing other explanations, links, and resources to learn more about this. Here's what we've gathered so far: + +- [MIT News: Generative AI’s environmental impact](https://news.mit.edu/2025/explained-generative-ai-environmental-impact-0117) +- [MIT Technology Review: We did the math on AI’s energy footprint. Here’s the story you haven’t heard.](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/) + +### Labor + +AI usage and normalization contributes to labor violations in many ways that are obvious and some you may not be aware of. + +On one hand, many things that you think are "AI" are actually humans in another country pretending to be an AI chatbot for you for either extremely low wages or in some cases, no wages e.g. prison labor. This is particularly common for "friend"/"sex" bots, but it is also extremely common in the image/video identification. You can find a bit more info at the following links: + +- [Long hours and low wages: the human labour powering AI’s development](https://theconversation.com/long-hours-and-low-wages-the-human-labour-powering-ais-development-217038) +- [OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic](https://time.com/6247678/openai-chatgpt-kenya-workers/) +- ['AI Is African Intelligence': The Workers Who Train AI Are Fighting Back](https://www.404media.co/ai-is-african-intelligence-the-workers-who-train-ai-are-fighting-back/) +- [These Prisoners Are Training AI: In high-wage Finland, where clickworkers are rare, one company has discovered a novel labor force—prisoners.](https://web.archive.org/web/20260108224812/https://www.wired.com/story/prisoners-training-ai-finland/) +- [Amazon grocery stores previously reported to use AI actually used people in India](https://www.businessinsider.com/amazons-just-walk-out-actually-1-000-people-in-india-2024-4?op=1) + +### Health and Safety There's been a number of high profile incidents that have resulted in endangerment or death. Here's some examples: From f218812c742de191c4a06d450116b4ebf1195b96 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 1 May 2026 16:54:14 +0200 Subject: [PATCH 002/413] add removal requirements as super script --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dfde1cd..8356050 100644 --- a/README.md +++ b/README.md @@ -1293,7 +1293,7 @@ As a brief explanation of the reasoning behind, we are against AI for the follow - ethical issues - poor code quality -We've broken down all of those sections and more below, but before you dive into that, one of the common questions and discussions that happens here is, "if something ever had slop in it, how can it ever be good again?" and that's usually in relation to projects that have dropped AI or projects that are forks of something that once had AI in it. We believe strongly that you can always be better and you can also reduce harm. In the same way you wouldn't consider a vegetarian "not a vegetarian" because they once ate meat even though they no longer eat meat, we don't consider a project permenantly tainted if they once used AI but now do not. +We've broken down all of those sections and more below, but before you dive into that, one of the common questions and discussions that happens here is, "if something ever had slop in it, how can it ever be good again?" and that's usually in relation to projects that have dropped AI or projects that are forks of something that once had AI in it. We believe strongly that you can always be better and you can also reduce harm. In the same way you wouldn't consider a vegetarian "not a vegetarian" because they once ate meat even though they no longer eat meat, we don't consider a project permenantly tainted if they once used AI but now do not See our [removal requirements](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal) for more details. You can always be a better person and communities can always be better communities. From 4590139fca9bf3291e99dfa85949d90cd2d21fc1 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:28:22 +0200 Subject: [PATCH 003/413] add git for windows as tainted (#612) originally submitted by @0x403 in #237 Co-authored-by: @0x403 Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/612 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 045d024..d13501a 100644 --- a/README.md +++ b/README.md @@ -332,7 +332,7 @@ This is a section for repos that are similar to this one either because they are > [!note] > #### Mobile Launchers Alternatives -> +> > - [Ion Launcher](https://f-droid.org/en/packages/one.zagura.IonLauncher/) > - [Pie Launcher](https://f-droid.org/en/packages/de.markusfisch.android.pielauncher/) @@ -1193,6 +1193,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | +| [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | From 4a8112f0c0f9a87146cec149cfba862806e10cbf Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:33:49 +0200 Subject: [PATCH 004/413] add libGDX (#613) - closes #324 - originally submitted by @0x403 in #241 Co-authored-by: @0x403 Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/613 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d13501a..cdad171 100644 --- a/README.md +++ b/README.md @@ -992,6 +992,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [Gradle](https://github.com/gradle/gradle) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gradle/gradle/blob/master/AI_POLICY.md)) | [Apache Ant] | +| [libGDX](https://libgdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.gamedev.place/@badlogic/115697365956020092), [2](https://github.com/libgdx/libgdx/commit/3335e7598fb061cadc6472e8f4dffe811d438ab2)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Maven](https://github.com/apache/maven) | [3.9.12](https://github.com/apache/maven/tree/maven-3.9.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/apache/maven/pull/11632)) | [Apache Ant] | ### JavaScript And TypeScript From fe791a81cf5f3f35be3300905df2e671b9d7fccd Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:39:00 +0200 Subject: [PATCH 005/413] add BananyBlog (#614) originally added by @lejun in #273 Co-authored-by: @lejun Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/614 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cdad171..053d492 100644 --- a/README.md +++ b/README.md @@ -376,6 +376,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | | [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | From 531ca449a41456240abb69b82461b871eb0796fc Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:45:40 +0200 Subject: [PATCH 006/413] add BRouter, GraphHopper, and OSRM (#615) originally submitted by @lejun in #321 Co-authored-by: @lejun Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/615 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 053d492..5be54af 100644 --- a/README.md +++ b/README.md @@ -771,14 +771,18 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [BRouter](https://brouter.de/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jonnybbb/brouter/pull/5)) | | [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | +| [GraphHopper](https://github.com/graphhopper/graphhopper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/graphhopper/graphhopper/pull/3333)) | | [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | | [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | +| [OSRM](https://project-osrm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Project-OSRM/osrm-backend/blob/master/AGENT.md)) | | [Vespucci](https://vespucci.io/) | [`c1053f9`](https://github.com/MarcusWolschon/osmeditor4android/commit/c1053f9a8612937b56d0ae5802cfeae35943f911) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MarcusWolschon/osmeditor4android/blob/e6aea69c6f14fad37d1fbb9c09bc7b19d4c4d452/README.md#aillm-generated-contributions)) | > [!Note] > ### Mapping Alternatives > * [Navit](https://github.com/navit-gps/navit) for car navigation +> * [OpenRouteService](https://openrouteservice.org/) > * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. ## Messaging From 657e5f0ec8795032e1d9a2a0d36cadc2299c95ef Mon Sep 17 00:00:00 2001 From: Olivia Date: Sat, 2 May 2026 11:50:32 +0200 Subject: [PATCH 007/413] Replace lutris issue link with archive.org (#611) The issue has been deleted, or at least 404s now Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/611 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5be54af..31e0ff6 100644 --- a/README.md +++ b/README.md @@ -735,7 +735,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | [`2.20.1`](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.20.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/5373)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help)| -| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | +| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260312043526/https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | | [umu](https://github.com/Open-Wine-Components/umu-launcher) | [`1.3.0`](https://github.com/Open-Wine-Components/umu-launcher/releases/tag/1.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Wine-Components/umu-launcher/commit/424ffbf63c64107b87d948a7bbbea64d419bce4d), [2](https://github.com/Open-Wine-Components/umu-launcher/commit/12eb390fee3821fa3260ea856006e39ed85b26ae)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ### Mod managers From 9b17bdc9d92808af2a32fb792778679256a47f22 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 12:07:11 +0200 Subject: [PATCH 008/413] add Dentrite, matrix-rust-sdk; remove signal; update messaging section to split clients and servers (#616) - adds originally authored by @lejun in #399 Still ok with someone doing further work to split organize these sections better and if they'd like, to add a bridges section. Co-authored-by: @lejun Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/616 --- README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 31e0ff6..87eae96 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) - * [Messaging Alternatives by protocols](#messaging-alternatives-by-protocols) + * [Messaging Servers](#messaging-servers) + * [Messaging Clients](#messaging-clients) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Networking](#networking) * [Networking security tools](#networking-security-tools) @@ -787,11 +788,24 @@ This is a section for repos that are similar to this one either because they are ## Messaging +### Messaging Servers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | +| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | + +> [!Note] +> #### Messaging Server Alternatives by protocols +> - IRC servers overall don't seem to have AI-committed code + + +### Messaging Clients + | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | -| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) | [Element Web](https://github.com/element-hq/element-web/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-web/commit/68070b2e9788f0e5396f4c9d532b05e146e6ad60)) | [Element X Android](https://github.com/element-hq/element-x-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-android/blob/develop/AGENTS.md)) @@ -801,22 +815,20 @@ This is a section for repos that are similar to this one either because they are | [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | -| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] -> ### Messaging Alternatives by protocols +> #### Messaging Client Alternatives by protocols > - [matrix] > - [Cinny](https://github.com/cinnyapp/cinny) (web) -> - [nheko](http://nheko.im/) (desktop, Linux phones) > - [FluffyChat](https://github.com/krille-chan/fluffychat) (cross-platform) +> - [nheko](http://nheko.im/) (desktop, Linux phones) > - [xmpp](https://xmpp.org/) > - [Conversations](https://conversations.im/) (android) > - [Kaidan](https://invent.kde.org/network/kaidan) (cross-platform) -> - IRC clients and servers overall don't seem to have AI-committed code > - [WeeChat](https://github.com/weechat/weechat): Multi-protocol -> - [Signal](https://signal.org/) +> - IRC clients overall don't seem to have AI-committed code ## Microcontroller Tools and Libraries @@ -1050,6 +1062,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [iced](https://github.com/iced-rs/iced),
[imgui](https://github.com/imgui-rs/imgui-rs),
[relm](https://github.com/antoyo/relm) | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | +| [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162)), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | From 9dd896cf5f4c7854e2b7c1c0abc0565923e76a3e Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 12:19:58 +0200 Subject: [PATCH 009/413] add libresprite (#617) originally added by @0x403 in #254 Co-authored-by: @0x403 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/617 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87eae96..f7945e1 100644 --- a/README.md +++ b/README.md @@ -551,6 +551,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | | [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | +| [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] From 6dcd1872d3039c356acc6658bdc35b3963b4a325 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 2 May 2026 12:39:27 +0200 Subject: [PATCH 010/413] Refactor Operating Systems section; add Ubuntu (#571) * The operating systems section has been split into BSD-based, GNU/Linux-based, Kernels, and Other OSes * Added Ubuntu Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/571 Reviewed-by: Admin --- README.md | 70 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index f7945e1..8d73342 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,13 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Networking security tools](#networking-security-tools) * [Networking security tool alternatives](#networking-security-tool-alternatives) * [Operating Systems](#operating-systems) + * [BSD-based](#bsd-based) + * [Alternative BSD-based operating systems](#alternative-bsd-based-operating-systems) + * [GNU/Linux-based](#gnu-linux-based) + * [Alternative GNU/Linux-based operating systems](#alternative-gnu-linux-based-operating-systems) + * [Kernels](#kernels) + * [Other](#other-operating-systems) + * [Other alternative operating systems](#other-alternative-operating-systems) * [Package Managers](#package-managers) * [Package Manager Alternatives](#package-manager-alternatives) * [Peripheral Managers](#peripheral-managers) @@ -855,34 +862,59 @@ This is a section for repos that are similar to this one either because they are ## Operating Systems -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | -| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | See below | -| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | See below | -| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | -| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | -| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | -| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | -| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | -| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +> [!NOTE] +> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. + +### BSD-based + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | +| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | +| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md), [2](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | +| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | > [!NOTE] -> #### Alternative operating systems -> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. +> #### Alternative BSD-based operating systems +> * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) > * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) -> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. -> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) -> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) -> * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) -> ##### Linux kernel-based distributions that explicitly ban LLM/GenAI contributions. + +### GNU/Linux-based + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | +| [Ubuntu](https://ubuntu.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ubuntu.com/ai), [2](https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130)) | See below | + +> [!NOTE] +> #### Alternative GNU/Linux-based operating systems > * [Chimera Linux](https://chimera-linux.org/) has [banned LLMs](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing) > * [elementary OS](https://elementary.io/) has [banned LLMs](https://docs.elementary.io/contributor-guide/development/generative-ai-policy) > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) > * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) +### Kernels + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +### Other Operating Systems + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | +| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | +| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +> [!NOTE] +> #### Other alternative operating systems +> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. +> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) + ## Package Managers | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 977941b8f90035cf43abdefb5b66c23f7dc82b23 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 12:47:15 +0200 Subject: [PATCH 011/413] add vaultwarden, fix keepassxc last untainted version (#618) - closes #275 Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/618 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8d73342..b5cf3a9 100644 --- a/README.md +++ b/README.md @@ -943,13 +943,13 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | -| [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [KeepassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | > [!Note] > ### Password Manager Alternatives -> * [vaultwarden] (server) / [rbw](https://github.com/doy/rbw) (client) +> * [rbw](https://github.com/doy/rbw) (client) > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. -> * [KeePassXC 2.7.9](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) was released before the statement, and was awarded 3 year security Visa by the French National Cybersecurity Agency ([ANSSI](https://cyber.gouv.fr/)) for a First-level Security Certification (CSPN), valid in France and Germany, under report No. ANSSI-CSPN-2025/16 ([archive.org](https://web.archive.org/web/20251128131437/https://cyber.gouv.fr/produits-certifies/keepassxc-version-279), [certificate](https://messervices.cyber.gouv.fr/visas/ANSSI-CSPN-2025-16-certificat.pdf)). > * [KeePassChi](https://codeberg.org/keepasschi/keepasschi): A fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051). > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. > * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. From 48f271eead467f455edb7f0f2256c12959f4548f Mon Sep 17 00:00:00 2001 From: NormPlum Date: Sat, 2 May 2026 14:30:40 +0200 Subject: [PATCH 012/413] Add Backdrop CMS (#621) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/621 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5cf3a9..2ecd53a 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Backdrop CMS](https://backdropcms.org/) | [`1.33.2`](https://github.com/backdrop/backdrop/releases/tag/1.33.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/backdrop/backdrop-issues/issues/440#issuecomment-4357835721)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | From cfda84cd86094ffa4f91bfc48eade5cc9ace64b5 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 14:38:56 +0200 Subject: [PATCH 013/413] add ethical-tldr as an alternative to tldr (#620) This project is still under heavy development, but is a fork of tldr without AI. See also #619 that calls for collaborators Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/620 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ecd53a..b565f0f 100644 --- a/README.md +++ b/README.md @@ -502,7 +502,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr) (alpha),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) (alpha) | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Command-Line Shells From 01112791534f36b4a980c9e6d6ac7ad4383db4b7 Mon Sep 17 00:00:00 2001 From: fausty Date: Sat, 2 May 2026 16:35:33 +0200 Subject: [PATCH 014/413] Add gotests (#166) Latest release is about AI. Claude is all over the commits. Co-authored-by: jeremiah Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/166 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b565f0f..2a39018 100644 --- a/README.md +++ b/README.md @@ -1035,9 +1035,11 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | +| gotests | [v1.6.0](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | + ### Java | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From cf9ec1665a315b2a1ff2981f507e9dc9807f0f7c Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 16:41:14 +0200 Subject: [PATCH 015/413] clean up of spacing and links for go and cli shell add ons (#622) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/622 --- README.md | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 2a39018..cec02e1 100644 --- a/README.md +++ b/README.md @@ -509,40 +509,40 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [`nushell`](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | +| [nushell](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | | [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | -| [`xonsh`](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | -| [`yash`](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | +| [xonsh](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | +| [yash](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | > [!NOTE] > #### Alternative Bourne Shell Implementations -> * [`dash`](http://gondor.apana.org.au/~herbert/dash/) -> * [`bash`](https://www.gnu.org/software/bash/) -> * [`oksh`](https://github.com/ibara/oksh) +> * [dash](http://gondor.apana.org.au/~herbert/dash/) +> * [bash](https://www.gnu.org/software/bash/) +> * [oksh](https://github.com/ibara/oksh) > * [Busybox](https://busybox.net/) `ash` > * [Schilytools] `bosh` > [!NOTE] > #### Alternative Shell Languages -> * [`elvish`][Elvish] -> * [`fish`](https://fishshell.com/) -> * [`rc`](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) -> * [`execline`](https://www.skarnet.org/software/execline/) +> * [elvish](https://elv.sh) +> * [fish](https://fishshell.com/) +> * [rc](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) +> * [execline](https://www.skarnet.org/software/execline/) ### Addons and Prompts | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [`oh-my-posh`](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`oh-my-bash`](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`ohmyzsh`](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`spaceship-prompt`](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers -> * [`zimfw`](https://github.com/zimfw/zimfw) +> * [zimfw](https://github.com/zimfw/zimfw) ## Computer Graphics @@ -1035,11 +1035,10 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | -| gotests | [v1.6.0](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | +| [gotests](https://github.com/cweill/gotests) | [`v1.6.0`](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | - ### Java | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -1517,7 +1516,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal -[Elvish]: https://elv.sh [Eqonomize]: https://eqonomize.github.io/ [GNU Emacs]: https://www.gnu.org/software/emacs/ [Epiphany]: https://apps.gnome.org/Epiphany From d0a173a39416bf7da666ced291156ab9cad819fd Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 22:20:56 +0200 Subject: [PATCH 016/413] remove alpha state of ethical-tldr as you can now install it and use it as is (#624) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/624 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cec02e1..16c98cf 100644 --- a/README.md +++ b/README.md @@ -502,7 +502,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr) (alpha),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) (alpha) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Command-Line Shells From 4b3334d7a69f30f93f23450c51c23c7013b028a7 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 23:09:32 +0200 Subject: [PATCH 017/413] missing word --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8356050..518db2d 100644 --- a/README.md +++ b/README.md @@ -1287,7 +1287,7 @@ All-in-one solutions for stitching together a desktop. # Why not LLMs? -As a brief explanation of the reasoning behind, we are against AI for the following reasons: +As a brief explanation of the reasoning behind this repo, we are against AI for the following reasons: - legal issues - ethical issues From 1acb04e205a1bd574d3cd71363f5625f5244ac37 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 3 May 2026 09:32:16 +0200 Subject: [PATCH 018/413] Update VS Code entry (#626) Ideally, I would change "AI Sponsored" to "Advertises AI", but for now, this will (hopefully) do. VS Code recently [made Copilot "co-author" attribution the default](https://github.com/microsoft/vscode/pull/310226), even when Copilot is disabled. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/626 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16c98cf..ed7f451 100644 --- a/README.md +++ b/README.md @@ -642,7 +642,7 @@ This is a section for repos that are similar to this one either because they are | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | | [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | [Lapce](https://lap.dev/lapce/)
[Gram](https://codeberg.org/GramEditor/gram) (fork)
Others (GNU Emacs, etc.) | > [!Note] From df00e269dbd8efebe3f695fc0a82d8f3260d72c8 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Sun, 3 May 2026 20:57:32 +0200 Subject: [PATCH 019/413] Add Amiberry (Amiga emulator) to the tainted list (#631) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/631 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed7f451..fdfc9a0 100644 --- a/README.md +++ b/README.md @@ -758,6 +758,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | | [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ## Language and Localization From 6b8eaf12c97e4e0b6cc9a77d00b2dfa0ceed4658 Mon Sep 17 00:00:00 2001 From: cloudskater Date: Sun, 3 May 2026 22:22:42 +0200 Subject: [PATCH 020/413] Add Audacity (and Tenacity as an alternative) (#476) This is my first time trying to make a pull request for literally anything. I copy-pasted from other parts of the file and edited until it looked right, so I hope it all works as intended! Wanted to make it known that Tenacity is confirmed to be anti-AI for copyright reasons as well as ethical. Only the former is mentioned [here](https://codeberg.org/tenacityteam/tenacity/src/branch/main/CONTRIBUTING.md), but [Avery King](https://codeberg.org/generic-pers0n) understands the environmental and ethical issues too (I messaged him personally about the topic). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/476 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fdfc9a0..7547ec5 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) * [Digital Audio Workstations](#digital-audio-workstations) + * [Digital Audio Editors](#digital-audio-editors) * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) * [Podcast Aggregators](#podcast-aggregators) @@ -350,6 +351,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| +| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | From 3d639f2cbeac6151236834a25b58c234b8fa6a6f Mon Sep 17 00:00:00 2001 From: picatsv Date: Mon, 4 May 2026 12:13:37 +0200 Subject: [PATCH 021/413] add barebox (#634) it's technically lower level than a bootloader but it effectively functions as one since it can load and boot a kernel Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/634 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7547ec5..e1828a5 100644 --- a/README.md +++ b/README.md @@ -428,6 +428,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [barebox](https://github.com/barebox/barebox) | [`fe328bc`](https://github.com/barebox/barebox/commit/fe328bcb8a40e407c7928b6256af4a69aacfab67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/barebox/barebox/commit/e3078309ff30c88fab260c6dd08f9208802c7c4c)) | [Coreboot](https://review.coreboot.org/coreboot.git),
[EDK2 (UEFI)](https://github.com/tianocore/edk2),
[U-Boot](https://github.com/u-boot/u-boot) | [Limine](https://github.com/Limine-Bootloader/Limine) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/small-hack/open-slopware/pulls/263#issuecomment-12690237), [2](https://codeberg.org/small-hack/open-slopware/pulls/285#issue-4234860)) | [Hyper](https://github.com/UltraOS/Hyper), [GRUB](https://www.gnu.org/software/grub/) | ## Build Systems and Task Runners From c0cebd337c8cc9536fd89459fba5bd9687496de3 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 4 May 2026 12:18:57 +0200 Subject: [PATCH 022/413] add how to slop free fork doc (#629) - closes #627 Co-authored-by: @Pixelo789 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/629 --- CODE_OF_CONDUCT.md | 4 + HOW_TO_SLOP_FREE_FORK.md | 217 ++++++++++++++++++++++ README.md | 4 +- {evidence/img => img/evidence}/vscode.png | Bin img/how_to/clone_tldr.png | Bin 0 -> 280308 bytes img/how_to/copy_new_repo_url_codeberg.png | Bin 0 -> 123643 bytes 6 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 HOW_TO_SLOP_FREE_FORK.md rename {evidence/img => img/evidence}/vscode.png (100%) create mode 100644 img/how_to/clone_tldr.png create mode 100644 img/how_to/copy_new_repo_url_codeberg.png diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f18403d..3198860 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -3,10 +3,12 @@ - No racism. - No xenophobia. - No colorism/featurism. +- No casteism. - No transphobia. - No homophobia/queerphobia. - No sexism. - No albeism. +- No islamophobia, antisemitism, or hatred to anyone based on their religion or lack thereof. - No classism. - No fascism. @@ -67,6 +69,8 @@ We're going to do a 2 strike rule here with an optional warning. You are out on - Please do not reach out to the maintainers or collaborators of this repo anywhere but this repo specifically (unless they have given explicit permission to do so). We do not operate our personal email or fediverse accounts as extensions of this repo and will not take feedback there. We need a proper work life balance. Please respect that. +- No complaining about purity rules, "walking on egg shells", etc. If you can't behave professionally here, then please just kindly exit. + This repo is specifically meant for identifying LLM usage in other projects, and coordinating on alternatives. You can also come here to ask others to please help you in chatting with another repo maintainer to sway them away from AI usage. But you need to do all of it *with kindness*. We have no interest in a rage feedback atmosphere here and won't tolerate it. Please consider your words before you hit send. ## Accessibility diff --git a/HOW_TO_SLOP_FREE_FORK.md b/HOW_TO_SLOP_FREE_FORK.md new file mode 100644 index 0000000..74c49a9 --- /dev/null +++ b/HOW_TO_SLOP_FREE_FORK.md @@ -0,0 +1,217 @@ +# How to create a slop free fork + +So you found out something you love is tainted with slop and now you want to do something about it? + +First off, congrats and thank you! That's a huge step and we're excited for the community you build! 💙 + +## How to fork a repo from a last untainted commit/version + +Should you see a project you'd really like to fork on this list, here's how you would go about that. + +> [!warning] +> Before you fork, make sure to check the licensing! It's important that you understand the license of whatever you fork, and never remove the old LICENSE. Safe to fork licenses include, but are not limited to: MIT, GPL, AGPL, Apache 2.0, CCv4, BSD. You can learn more about licensing in [Codeberg's documentation on licensing](https://docs.codeberg.org/getting-started/licensing/). + +Let's take tldr-pages as an example, as that was something the community recently hard forked into ethical-tldr. Here's how it was done. + +1. Setup a new home for your fork. We recommend using [codeberg.org](https://codeberg.org)! Codeberg has [great docs on setting up your first repo](https://docs.codeberg.org/getting-started/first-repository/). We recommend not adding a `.gitignore`, `LICENSE`, or `README` to start with, because your clone will likely already have those and so you want to make sure you don't run into any git merge conflicts :) Do make sure to note that your repo is a fork of the repo you're forking at first though, just to make sure no one gets confused. + +2. Since we're using tldr as an example, we'll assume the project you want to fork is already in this repo. Go to the table where the software you want to fork is (for instance the [Cheat Sheets and Documentation section](https://codeberg.org/small-hack/open-slopware#cheat-sheets-and-documentation)), which looked like this: + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +3. Go to the source repo and find the clone URL. In this case, you would go to [tldr-pages](https://github.com/tldr-pages/tldr). Since it's on GitHub, you should see a green button that says "<> Code". Click the green button, then click "HTTPS" and you should be able to copy that URL. + + a screenshot of the https://github.com/tldr-pages/tldr page where someone has clicked the code button. The green code button is circled in orange with an orange arrow pointing to it. The HTTPS tab and the web URL to clone also have an orange square around them with an orange arrow pointing to the url + + > [!tip] + > In the above case, the tldr repo was linked in the first column of the table, but in cases where it's not you can just click the lasted untainted version link and chop off everything after the name of the project, so https://github.com/tldr-pages/tldr/releases/tag/v2.3 becomes https://github.com/tldr-pages/tldr + +4. Open up a terminal and find a directory where you'd like to keep this project. Then clone the repo there. Here is an example where we keep things in the projects directory within your home directory: + + ```bash + # creates a directory called projects in your ~, which is your home directory + mkdir -p ~/Projects + + # change your current directory into the new projects directory + cd ~/Projects + + # clones the repo in your projects directory + git clone https://github.com/tldr-pages/tldr.git + + # changes directory to your recently cloned project (in this example, it's the tldr repo) + cd tldr + ``` + +5. Grab the new location of your new repo :) If you're using codeberg, you want to grab the SSH url for cloning, which you can find just below the repo stats. We've highlighted it and also we show you the button you can click to copy it easily here: + + Screenshot of the top of the page for https://codeberg.org/small-hack/ethical-tldr where we've highlighted the clone url and drawn orange arrows pointing to the word SSH, the URL, and the copy button. They exist just below the repo states, but before the repo's code search bar and repo files + +6. Change the upstream origin of your repo to be your new fork's SSH URL. There are two ways to do this. The first way is to use the `git` command: + + ```bash + git remote set-url origin ssh://git@codeberg.org/small-hack/ethical-tldr.git + ``` + + Another way is to edit the `.git/config` file Use your editor of choice to open the following file: + + ```bash + # We're using neovim here, but you can use any editor you're comfortable with. + # If you're new, nano is always a safe bet as it has tips at the bottom of the screen. + neovim .git/config + ``` + + The file will look like this: + + ```config + [core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + [remote "origin"] + url = https://github.com/tldr-pages/tldr.git + fetch = +refs/heads/*:refs/remotes/origin/* + [branch "main"] + remote = origin + merge = refs/heads/main + ``` + + You want to change your the value of "url" to your new SSH URL. In this case, it would look like this, since the new repo is ethical-tldr: + + ```config + [core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + [remote "origin"] + url = ssh://git@codeberg.org/small-hack/ethical-tldr.git + fetch = +refs/heads/*:refs/remotes/origin/* + [branch "main"] + remote = origin + merge = refs/heads/main + ``` + +7. Here comes the part where you check out the last known untainted commit or version. In this case, the last version of `v2.3`. You can do a hard reset of your fork to that exact version. This drops all the commits after that. To do that, run the following: + + ```bash + # hard reset your branch to the old commit or version + git reset --hard v2.3 + + # force push up your now untainted repo + git push --force + ``` + +8. The initial steps are now done and your new forked repo's history starts at the exact last known good version. Advanced git users can now cherry pick LLM commits out of the repo, but we recommend not doing that unless you're very confident with git. Instead, we think it's best that you create new commits to remove the AI and LLM generated code, because then this also keeps a cleaner history. In your "No AI Policy" or in your README, you can self disclose that the repo contains old commits from an LLM, but that you're working on replacing them or that you will not replace old commits, but all new commits will be done by humans. Either is fine. When it comes to AI Functionality, you'll also want to disclose that immediately and perhaps create an issue that says "Remove AI Functionality" to show users that you intend to remove that. You could also ask for help that that time. + + > [!note] + > Are you an advanced git user? Do you want to add more docs here on how to remove old LLM commits from the forked repo? Feel free to submit a PR and we'll test your instructions to make sure they're safe before merging it :) + +## Tips for a healthy community + +To start off, we recommend you do two things: + +- Create a "Code of Conduct" +- Create a "No AI Policy" + +### Code of Conduct + +This may seem like it's not related to the whole "No AI" thing we're all about, but it's incredibly important to creating safe and healthy communities. There will be people who try to cross lines and it's important that from outset, you both create rules for what is not allowed, and a process for enforcing those rules. We recommend the following be added to a `CODE_OF_CONDUCT.md` at the root level of your repo, immediately (this is straight from our own code of conduct): + +
+ + CODE_OF_CONDUCT.md example + + ```md + # Code of Conduct + + ## No Bigotry + + - No racism. + - No xenophobia. + - No colorism/featurism. + - No casteism. + - No transphobia. + - No homophobia/queerphobia. + - No sexism. + - No albeism. + - No islamophobia, antisemitism, or hatred to anyone based on their religion or lack thereof. + - No classism. + - No fascism. + + ## Strike system + + We're going to do a 2 strike rule here with an optional warning. You are out on your second strike. We are not doing three strikes. + + 1. **warning**: You made a sarcastic or aggressive comment attacking another user here or elsewhere, regardless of which side you are on. You will get a reminder that you need to be kind here and if you need a comment by another user addressed, you must tag an admin. This warning and any warnings after it are *optional* and may be skipped if you are doing something that falls into the [No Bigotry](#no-bigotry) rules, or if you are clearly operating in bad faith. + + 2. **Strike one**: You made a comment that was off-base, slightly rude, but was not egregious enough to be banned, yet. + + 3. **Strike two**: After 1 strike, you behaved the same way again. + + > [WARNING] + > If you are caught being excessively rude here, especially if you're displaying a form of severe bigotry or bringing an inappropriate tone, we reserve the right to ban you from the repo with no strikes and if necessary, we will report you to codeberg.org. + + # Be kind or be gone + + - We don't want drive by sarcastic comments. + + - No references to bodily fluids (vomit, urine, feces), this includes emojis. It's gross and unproductive. + + - We don't want people talking about how they never liked a particular piece of software because they didn't like the features. + + - We don't want anyone personally attacking anyone from this repo or other repos. + + - We will delete off-topic comments that have rude vibes or are encouraging a generally rage-feedback atmosphere. + + - This repo is not a substitute for social media. The maintainers do not have the mental health bandwidth to manage such a community. + + - Please do not reach out to the maintainers or collaborators of this repo anywhere but this repo specifically (unless they have given explicit permission to do so). We do not operate our personal email or fediverse accounts as extensions of this repo and will not take feedback there. We need a proper work life balance. Please respect that. + + - No complaining about purity rules, "walking on egg shells", etc. If you can't behave professionally here, then please just kindly exit. + + ## Accessibility + + ### Alt Text + + Please provide alt text descriptions for any images you post. This is so that users that are blind or low vision know what is being posted as their screenreaders can read it aloud. This is also useful for people who speak other languages so that they can translate any text from the screenshot and understand context. If you don't provide alt text after being asked to, we will count that as a warning, and if you still fail to do so, it will be a strike. We make exceptions if you yourself have a disability preventing you from doing so. Please kindly ask that someone else provide alt text for you, and when they do, please update your image's alt text. (*You do not need to disclose your disability.* It is fine to ask others to provide alt text for you for ANY reason.) + ``` + +
+ +If you do not outline exactly what is and is not allowed, you will get a lot of people saying "I didn't know I couldn't do that" and it will make enforcing your boundaries difficult. People will always disagree with some decisions you and your community make, and they will want to "take it offline", so it's important that you do not allow that, or your personal social media and messaging will become bad for your mental health. If you'd like to set up a social media account/server or a chat server, we recommend keeping it separate from your personal accounts, so that you have an easy way to disconnect at the end of the day or on your weekends. + +### No AI Policy + +This one is obvious in this repo, but in other repos, it's always important to set clear expectations. Failure to do so may cause people to test the boundaries and also land you on this list. We don't say that to be threatening, but our community takes a complete hard line stance on ALL AI/LLM usage. + +Some examples of "No AI Polices" that you can take take a look at for inspiration are: + +- [wafrn's Contributring Doc](https://codeberg.org/wafrn/wafrn/src/branch/main/CONTRIBUTING.md) + +- [Loupe's Use of Generative AI Policy](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) + +But in general you want to outline the following: + +- No AI or LLM usage is allowed in this repo for contributions in Issues, Pull Requests, or Discussions. This includes bug finding, optimizations, security passes. + - You are not permitted to ingest this repo with AI or LLMs of any kind + - Any AI generated PRs will be rejected. +- We do not accept funding from AI companies. + +Do your best to not leave any wiggle room for anyone testing the waters on using AI in any way, this includes "self hosted LLMs". + +## Advertising your new fork + +We're so happy to hear you created a new slop free fork! You'll probably want some community help though. Here's what you can do to summon the open source community: + +1. Make sure your repo has all the appropriate and relevant topics, so for example, if you've forked the tldr-pages repo, tag the repo with `tldr`, and `cheatsheets`. Topics are managed the main page of your repository, directly under your repo's description. + + +### Adding new collaborators + +Codeberg also has great docs on [how to add new collaborators](https://docs.codeberg.org/collaborating/invite-collaborators/)! + +> [!warning] +> Ensure you trust anyone you give access to your repo. Don't add people as collaborators whom you've never interacted with before! diff --git a/README.md b/README.md index e1828a5..7a9ef9a 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ Want to *add*, *update*, or *remove* a project listed below? Check out our [**Co See a project on here that you love, and wish wasn't on here? Check out our [**No AI Request Template**](./NO_AI_REQUEST_TEMPLATE.md). +Ready to fork a project to introduce a No AI policy? Check out our [**How to Slop Free Fork Guide**](./HOW_TO_SLOP_FREE_FORK.md). + * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) * [Vibecode](#vibecode) @@ -645,7 +647,7 @@ This is a section for repos that are similar to this one either because they are | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | | [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./img/evidence/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | [Lapce](https://lap.dev/lapce/)
[Gram](https://codeberg.org/GramEditor/gram) (fork)
Others (GNU Emacs, etc.) | > [!Note] diff --git a/evidence/img/vscode.png b/img/evidence/vscode.png similarity index 100% rename from evidence/img/vscode.png rename to img/evidence/vscode.png diff --git a/img/how_to/clone_tldr.png b/img/how_to/clone_tldr.png new file mode 100644 index 0000000000000000000000000000000000000000..4600d09effc3e949d063cbe8ecd5c4ecb518d42e GIT binary patch literal 280308 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

;2e!(Mvheok)?N7KDsJBW$tghgJi))xgr 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

&(%IJNOuO$R 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

8Jq^nxcx}M|e#(pU;X)mSL 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

d&{Q756}?O{>LlONFe#_2E?R+RC`e4UJJ}w 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 z zXj;B%jAD|^%;%<$_KySkD|*QWfi<%EsZ>|&mvepQ@OzHDoVuu^k=h zR|X~N1cW6zy@EY`ZxX^MN|Q30ty0v}eZ}C#3Kgwzt$c4-yn#g7<0d#nV@lb85}BK{ zc{FwB5_TP#jBqD2)bKm$v9(@qhbud9bWs)MQTg54rM)O%c%xNYCv2?^KB}(h;?HMd zVlwr>?M}FSWZT72S*J>iZ2wdZIA?3UD;+@^Y!QVI3%^MCyS@lCTy>yGg z=DQa3@lq-Qxw&qOd4RLPzfyv7nnUz5NqF(%L@!tQm?M8t=GUE`T?%5YXg`8c|G$rP z9#dIZnEzI@{+y6d$8Ai-M3-~ib~amSs5zjmy_l-uHjt*-@rjwJ)}fu&4Kri307=aM zRZk+XBo_}3)ra=A)%~3u&PR{l8asuyd!?ojav~ zgv84Xzw;n9b%nO~;9^_>+nM4#xC1H+Tz$(WCN?FUC$FZawvXv!a@{=hOft}4Tv}q) z780V=C5}r?Ep0hHv|GkXtrh4s29Z!d+Y4d(nwZD}ZbWZrXaLT)N+1∋^ty+@oIcuV^b;S*a#pA9Ww= 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 z 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 Z==&_}ETfNKYhnPG+*@VoQYpj0{{z$seOv$l literal 0 HcmV?d00001 From 9a4264257c515982c6ee65bb6b73dbf6c78177a4 Mon Sep 17 00:00:00 2001 From: Ember Date: Mon, 4 May 2026 20:24:18 +0200 Subject: [PATCH 023/413] Add caddy, add section in networking for reverse proxies (#636) I put the reverse proxy section at the start of networking because excluding the 'Networking' security tools would come after Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/636 Reviewed-by: Admin --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 7a9ef9a..e536026 100644 --- a/README.md +++ b/README.md @@ -857,6 +857,12 @@ This is a section for repos that are similar to this one either because they are ## Networking +### Reverse proxies + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [caddy](https://github.com/caddyserver/caddy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/caddyserver/caddy/blob/master/AGENTS.md), [2](https://github.com/caddyserver/caddy/pull/7666), [3](https://github.com/caddyserver/caddy/pull/7492)) | + ### Networking security tools | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| From 89ccfd8773cee6dc2cf86c77e81dba8f4ba6d47e Mon Sep 17 00:00:00 2001 From: matu6968 Date: Tue, 5 May 2026 08:43:47 +0200 Subject: [PATCH 024/413] add Mongoose as tainted (due to AI spec files in device dashboard examples) (#637) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/637 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e536026..1595083 100644 --- a/README.md +++ b/README.md @@ -1012,6 +1012,7 @@ This is a section for repos that are similar to this one either because they are | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | [GnuTLS] | +| [Mongoose](https://mongoose.ws) | [`7a21199`](https://github.com/cesanta/mongoose/commit/7a21199d4a64dc9d941417f3ddef12b89905af1f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cesanta/mongoose/commit/97c53ec5a6e36a7c9ab188314d96ac0772f6c793), [2](https://github.com/cesanta/mongoose/commit/c937144b651eff9c2d4396f1e1d5b43d43956b2e)) | [libmicrohttpd] | | [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | [GnuTLS] | | [raylib](https://github.com/raysan5/raylib) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/raysan5/raylib/discussions/5712#discussioncomment-16411612)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [*See systemd section*](#system-services-and-daemons) | [basu](https://sr.ht/~emersion/basu/) | @@ -1546,6 +1547,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [iocraft]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java +[libmicrohttpd]: https://www.gnu.org/software/libmicrohttpd/ [LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ [LibreOffice Draw]: https://www.libreoffice.org/download/download-libreoffice/ [LibreTube]: https://libretube.dev From 8ff185d99390682cb7da42148e5e1de18159e378 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 5 May 2026 08:44:36 +0200 Subject: [PATCH 025/413] Add Benchmarking section with Hyperfine (#596) Part of #55 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/596 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 1595083..f9385ae 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) * [Podcast Aggregators](#podcast-aggregators) + * [Benchmarking](#benchmarking) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) @@ -382,6 +383,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [AntennaPod](https://github.com/AntennaPod/AntennaPod) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md), [2](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Benchmarking + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Hyperfine](https://github.com/sharkdp/hyperfine) | [`v1.19.0`](https://github.com/sharkdp/hyperfine/releases/tag/v1.19.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/sharkdp/hyperfine/blob/327d5f4d9107141929f67f062bf9ef59f98b7399/README.md#sponsors)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Blogging Software ### Content Management Systems From 017b5528e8319c1e7a6f6316491b6a7725ebfc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 16:49:47 +0200 Subject: [PATCH 026/413] Change "Notepad++ for Mac" to "Nextpad++", and put None as the last untainted version (#652) This PR renames Notepad++ for Mac to Nextpad++, since they changed their name, and changes the URLs to the website and GitHub repos (for the proof of permissive AI policy) to the new name as well. It also puts None as the last untainted version, since Notepad++ for Mac has been since the beginning a vibecoded port to macOS made without the involvement of the original Notepad++ project. I made a new PR because the old one (#650) used the same fork I used for the Modrinth PR (#401), and for some reason that added the Modrinth commits to this one too... Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/652 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9385ae..8c59541 100644 --- a/README.md +++ b/README.md @@ -649,7 +649,7 @@ This is a section for repos that are similar to this one either because they are | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Notepad++ for Mac](https://notepad-plus-plus-mac.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | From 656e428daaddab223cd19c377a006fe6eca9b2fd Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 6 May 2026 19:08:15 +0200 Subject: [PATCH 027/413] Add LVGL and cryptography as tainted to Programming Language-Specific Tooling section (#647) LVGL and cryptography are split into seperate commits as each commit modifies seperate sub sections Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/647 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8c59541..66db0b2 100644 --- a/README.md +++ b/README.md @@ -1018,6 +1018,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | [GnuTLS] | | [Mongoose](https://mongoose.ws) | [`7a21199`](https://github.com/cesanta/mongoose/commit/7a21199d4a64dc9d941417f3ddef12b89905af1f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cesanta/mongoose/commit/97c53ec5a6e36a7c9ab188314d96ac0772f6c793), [2](https://github.com/cesanta/mongoose/commit/c937144b651eff9c2d4396f1e1d5b43d43956b2e)) | [libmicrohttpd] | | [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | [GnuTLS] | @@ -1097,6 +1098,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [Black](https://github.com/psf/black) | [`25.9.0`](https://github.com/psf/black/releases/tag/25.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/black/commit/43dbc2f1ccbd74d4eea1c3615fe854961e6a07b7), [2](https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab), [3](https://github.com/psf/black/commit/8ab9719dcbeedccadf5d458d8139df38fcf84285))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/psf/black/pull/4790), [2](https://github.com/psf/black/pull/4804), [3](https://github.com/psf/black/pull/4825)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | +| [`cryptography`](https://github.com/pyca/cryptography) | [`44.0.0`](https://github.com/pyca/cryptography/releases/tag/44.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pyca/cryptography/blob/main/AGENTS.md), [2](https://github.com/pyca/cryptography/commit/ce7f263d2b5492222497966e4132010caf650a70), [3](https://github.com/pyca/cryptography/commit/62d0783211a329c5d1d27b52c527a245e9bc842b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pyca/cryptography/pull/12976), [2](https://github.com/pyca/cryptography/pull/13137), [3](https://github.com/pyca/cryptography/pull/12937)) | [PyCryptodome](https://github.com/Legrandin/pycryptodome) | | [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| From 5c2657fc94638acad8e1b9289dc9bf85e9e4b1b1 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 6 May 2026 19:44:14 +0200 Subject: [PATCH 028/413] Add Penlighter as an alternative to Penlight (#649) Teehee, self promotion :upside_down_face:. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/649 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66db0b2..621ba34 100644 --- a/README.md +++ b/README.md @@ -1088,7 +1088,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight) | +| [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight)
[Penlighter](https://codeberg.org/slop-free/Penlighter) (fork, WIP) | ### Python From 539e0a35e7c49f7ba5a9c4190f9aa804c9741882 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 6 May 2026 19:55:32 +0200 Subject: [PATCH 029/413] Add Webiny as tainted, sort Content Managment Systems sub-category and add more evidence to Ghost (#654) Discovered Webiny in a YouTube ad while watching a video, so decided to take a look at it and sure enough it has slop Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/654 Reviewed-by: Admin --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 621ba34..6e00118 100644 --- a/README.md +++ b/README.md @@ -397,11 +397,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Backdrop CMS](https://backdropcms.org/) | [`1.33.2`](https://github.com/backdrop/backdrop/releases/tag/1.33.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/backdrop/backdrop-issues/issues/440#issuecomment-4357835721)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | -| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | +| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Ghost](https://ghost.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/blob/main/AGENTS.md), [2](https://github.com/TryGhost/Ghost/pull/27666), [3](https://github.com/TryGhost/Ghost/pull/27642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TryGhost/Ghost/pull/27667), [2](https://github.com/TryGhost/Ghost/pull/27211)) | [WriteFreely] | +| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | +| [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))| [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | ### Static Site Generators From 58cfbafb989342f034cb95483258e5fba20f834f Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 5 May 2026 14:53:43 -0800 Subject: [PATCH 030/413] Add Numbat --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6e00118..00032bb 100644 --- a/README.md +++ b/README.md @@ -989,6 +989,7 @@ This is a section for repos that are similar to this one either because they are | [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | | [mruby](https://github.com/mruby/mruby/releases/tag/3.3.0) | [`v3.3.0`](https://github.com/mruby/mruby/releases/tag/3.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mruby/mruby/commit/b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mruby/mruby/pull/6482), [2](https://github.com/mruby/mruby/pull/6572)) | See below | | [Nim](https://nim-lang.org/) | [`e2a3063`](https://github.com/nim-lang/Nim/commit/e2a306355ca179aa256a2cee7a0d3a809538c8b9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nim-lang/Nim/pull/24564), [2](https://github.com/nim-lang/Nim/pull/25429), [3](https://github.com/nim-lang/Nim/pull/25439)) | [Ada](https://www.adaic.org/)? | +| [Numbat](https://numbat.dev/) | [`18f81b1`](https://github.com/sharkdp/numbat/commit/18f81b19dc8698b29048ab0166a3a87dcadd34b7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/numbat/blob/88b2e81a35d06942101d74e9b368081f02555f4f/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [OCaml](https://ocaml.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ocaml/ocaml/blob/trunk/AI.md), [2](https://github.com/ocaml/ocaml/pull/14702#issue-4186687842)) | [SML](https://smlfamily.github.io/) | | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | From 1cf80b1fa06c63262493887466fbc58cdf728239 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 5 May 2026 15:08:07 -0800 Subject: [PATCH 031/413] Add Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 00032bb..04d19d1 100644 --- a/README.md +++ b/README.md @@ -983,6 +983,7 @@ This is a section for repos that are similar to this one either because they are | [Dart](https://dart.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md#ai-contribution-guidelines), [2](https://github.com/dart-lang/sdk/tree/6cd3938741d48681330363b3553da8eccf335407/.agents/skills), [3](https://github.com/dart-lang/core/tree/0def20c4bef2b242db15b38202a54735101f5791/.gemini)) | See below | | [Elixir](https://elixir-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elixir-lang/elixir/blob/main/CONTRIBUTING.md#ai-contributions)) | See below | | [Gerbil Scheme](https://github.com/mighty-gerbils/gerbil) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mighty-gerbils/gerbil/pull/1397)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | +| [Go](https://go.dev) | [`go1.22.4`](https://github.com/golang/go/releases/tag/go1.22.4) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://go.dev/gopls/features/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/golang/go/commit/b8be5de81ee78f51fbd600498093b542e75a710e), [2](https://github.com/golang/go/commit/f8f87129646ca3821b3926e649c856a960d6bc9e), [3](https://github.com/golang/go/commit/26d5e160750b34a537cce0f1bfd47f663a110d27))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/golang/go/discussions/67901)) | See below | | [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | From 766885f51dcd637a7099e439915f364635d25505 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 6 May 2026 00:27:08 -0800 Subject: [PATCH 032/413] Mention Go taint in Go libraries/tooling section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 04d19d1..6ca2acb 100644 --- a/README.md +++ b/README.md @@ -1054,6 +1054,8 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr ### Go +Note that Go is itself tainted; see [the Programming Languages section](#programming-languages). + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From a232dbca4136a0675b01c68c21ff04c5e47012aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 11:27:06 -0400 Subject: [PATCH 033/413] Removed CotEditor as a Nextpad++ alternative and added it as tainted --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ca2acb..85551bf 100644 --- a/README.md +++ b/README.md @@ -643,6 +643,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7)) ([2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | | [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | See note software below | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | See editors below | @@ -650,7 +651,7 @@ This is a section for repos that are similar to this one either because they are | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | From 0581684ed73e2afe25b800c5e4f60a5e04ffd778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 13:19:57 -0400 Subject: [PATCH 034/413] Fixed parenthese for the CotEditor evidence --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 85551bf..b83a22e 100644 --- a/README.md +++ b/README.md @@ -641,9 +641,9 @@ This is a section for repos that are similar to this one either because they are ## Editors -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |None Permissive AI policy (1, 2) See editors below |---|:---:|---|---| -| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7)) ([2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | +| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | | [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | See note software below | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | See editors below | From f0c86442f928a5f025d4a119b08b376616a58a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 13:22:33 -0400 Subject: [PATCH 035/413] Fixed the table that got broken accidentally --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b83a22e..85ef892 100644 --- a/README.md +++ b/README.md @@ -641,7 +641,7 @@ This is a section for repos that are similar to this one either because they are ## Editors -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |None Permissive AI policy (1, 2) See editors below +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | From 0ebcdf774499e2d8a77271be077e5dc8116652b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 22:24:26 +0200 Subject: [PATCH 036/413] Add ms-edit (#653) Unsurprisingly, Microsoft's TUI text editor is slop Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/653 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85ef892..5c4d9b0 100644 --- a/README.md +++ b/README.md @@ -650,6 +650,7 @@ This is a section for repos that are similar to this one either because they are | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) [`v2.3.0`](https://github.com/lem-project/lem/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb)) | [Hemlock](https://phemlock.common-lisp.dev/) | | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | +| [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | See editors below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | | [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | From bf470ca4a68aa5599ab7b92618ea1331607eafe4 Mon Sep 17 00:00:00 2001 From: Lily Gruman Date: Wed, 6 May 2026 22:39:44 +0200 Subject: [PATCH 037/413] Add Slint (#603) Not surprising, I suppose. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/603 Reviewed-by: Admin --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c4d9b0..5eee660 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Lua](#lua) * [Python](#python) * [Rust](#rust) + * [Alternative GUI crates](#alternative-gui-crates) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Social Media](#social-media) @@ -1123,17 +1124,25 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [iced](https://github.com/iced-rs/iced),
[imgui](https://github.com/imgui-rs/imgui-rs),
[relm](https://github.com/antoyo/relm) | +| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2), [2](https://github.com/emilk/egui/pull/8088), [3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948), [2](https://github.com/emilk/egui/pull/7617), [3](https://github.com/emilk/egui/pull/7577)) | See below | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | | [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162)), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | +| [Slint](https://github.com/slint-ui/slint) | [`1.14.1`](https://github.com/slint-ui/slint/tree/v1.14.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slint-ui/slint/blob/master/AGENTS.md), [2](https://github.com/slint-ui/slint/commit/f479ae6d8ee24de17634e22e8079374222a4a8fd)) | See below | | [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | | [zbus](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [zerocopy](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +> [!Note] +> #### Alternative GUI crates +> - [GTK](https://github.com/gtk-rs/gtk4-rs) +> - [iced](https://github.com/iced-rs/iced) +> - [imgui](https://github.com/imgui-rs/imgui-rs) +> - [relm](https://github.com/antoyo/relm) + > [!Note] > > Also, there is an advisory database of Rust slopware crates, which you can use in tools like From 9026500e5e2e5ceea9b6401920a5d8a1ed7f9c3f Mon Sep 17 00:00:00 2001 From: micdan5 Date: Thu, 7 May 2026 00:41:07 +0200 Subject: [PATCH 038/413] Add LogFox & Logcat Reader (#640) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/640 Reviewed-by: Admin --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 5eee660..dca5ec0 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,9 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Servers](#servers) * [Clients](#clients) * [System Base](#system-base) + * [System Logs Managers](#system-logs-managers) + * [Android](#android) + * [Alternatives for Android](#alternatives-for-android) * [System Services and Daemons](#system-services-and-daemons) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) @@ -1204,6 +1207,23 @@ This section is strictly for software implementing a core set of UNIX-like utili | [plan9port](https://9fans.github.io/plan9port/) | [`0155f29`](https://github.com/9fans/plan9port/commit/0155f29bdc3cf0cab017fd7b33bf9e93cb9af64c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/9fans/plan9port/pull/748)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [uutils](https://uutils.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/uutils/coreutils/pull/11717), [2](https://github.com/uutils/coreutils/commit/6e18efb218dbd4d7ad7441d255d02fb0c1df4bf0) [3](https://github.com/uutils/coreutils/pull/11918#issuecomment-4284527284))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/uutils/coreutils/pull/7266), [2](https://github.com/uutils/coreutils/pull/10505), [3](https://github.com/uutils/coreutils/pulls?q=copilot)) | [Busybox](https://busybox.net/),
GNU coreutils | +## System Logs Managers + +### Android + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Logcat Reader](https://github.com/darshanparajuli/LogcatReader) | [`877cc0a`](https://github.com/darshanparajuli/LogcatReader/commit/877cc0a17be6d39c5797301eb0d5ff7e6dd4e341), version [2.3.1](https://github.com/darshanparajuli/LogcatReader/releases/tag/v2.3.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darshanparajuli/LogcatReader/blob/main/AGENTS.md), [2](https://github.com/darshanparajuli/LogcatReader/commit/842bd4033c4e6332a77424866ee92383a6acafac), [3](https://github.com/darshanparajuli/LogcatReader/commit/5b891a0dcd2abda7ea7b8434e23282f4d6baaa13))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/darshanparajuli/LogcatReader/pull/118#pullrequestreview-3954825326)) | +| [LogFox](https://github.com/F0x1d/LogFox) | [`dd1405c`](https://github.com/F0x1d/LogFox/commit/dd1405c67737601b27530533feeebf73711fe47e), version [2.0.7](https://github.com/F0x1d/LogFox/releases/tag/v2.0.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/F0x1d/LogFox/blob/master/AGENTS.md), [2](https://github.com/F0x1d/LogFox/tree/master/.claude), [3](https://github.com/F0x1d/LogFox/commit/c7953ec38f480c4d0a8ec5311e03ff2d562422b3)) | + +> [!note] +> +> #### Alternatives for Android +> +> - [Rootless Logcat](https://github.com/tananaev/rootless-logcat) +> - [aShell You](https://github.com/DP-Hridayan/aShellYou) or [aShell](https://gitlab.com/sunilpaulmathew/ashell) running the `logcat`command. +> - Direct use of the `logcat` command in the Android shell. + ## System Services and Daemons | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 2360bfaa77d22fe3a055a125d3870fc2819a7577 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Thu, 7 May 2026 07:47:40 +0200 Subject: [PATCH 039/413] Add Scratch and TurboWarp (#581) Credits to [this YouTube video](https://www.youtube.com/watch?v=tKsA_i5vKeE) for the idea. Truly disappointing, especially since I started my coding journey with Scratch back in primary school. It's like a betrayal. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/581 Reviewed-by: Admin --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index dca5ec0..51923c8 100644 --- a/README.md +++ b/README.md @@ -1004,7 +1004,9 @@ This is a section for repos that are similar to this one either because they are | [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | +| [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | +| [TurboWarp](https://turbowarp.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | | [Typescript](https://www.typescriptlang.org/) | [`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/TypeScript/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/TypeScript/commit/c9e7428bb76f0543a3555d0af87777e7db3a41e6), [3](https://github.com/microsoft/TypeScript/commit/ad04bf7488384a5dcdf7d250ccb8e5263021a8ff)) | See below | > [!Note] @@ -1605,6 +1607,8 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Rio Terminal]: https://github.com/raphamorim/rio [Servo]: https://servo.org/ [Schilytools]: https://codeberg.org/schilytools/schilytools +[Scratch 1.4]: https://scratch.mit.edu/scratch_1.4 +[Scratch 2]: https://scratch.mit.edu/download/scratch2 [Showtime]: https://apps.gnome.org/Showtime/ [SMPlayer]: https://www.smplayer.info/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden From 420c6c8db1bbc88bfe43259a4ac445c29da52a02 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 7 May 2026 13:18:50 +0200 Subject: [PATCH 040/413] Move explainshell and clean up cheat sheets section (#662) * Explainshell is now in the cheat sheets section. * The cheat sheets section has been sorted and the title is now in Title Case. Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/662 Reviewed-by: Admin --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 51923c8..4d2b810 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Desktop Browsers](#desktop-browsers) * [Headless Browsers](#headless-browsers) * [Mobile Browsers](#mobile-browsers) - * [Cheat sheets and documentation](#cheat-sheets-and-documentation) + * [Cheat Sheets and Documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Computer Graphics](#computer-graphics) @@ -515,12 +515,13 @@ This is a section for repos that are similar to this one either because they are > * [IronFox] For Android, while not officially related to LibreWolf, some of the same developers work on it. > * [waterfox] For Android. -## Cheat sheets and documentation +## Cheat Sheets and Documentation | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | ## Command-Line Shells @@ -613,7 +614,6 @@ This is a section for repos that are similar to this one either because they are | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | | [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | -| [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | | [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 6763c855f898fb3e9a487c0ae61c9c93ce53fbd3 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 7 May 2026 13:20:25 +0200 Subject: [PATCH 041/413] =?UTF-8?q?Move=20Atuin=20to=20Shells=20=E2=80=94?= =?UTF-8?q?=20Addons=20and=20Prompts=20and=20clean=20up=20that=20section?= =?UTF-8?q?=20(#664)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *You can never take away my em-dashes :grin:!* * Moved Atuin to Shells — Addons and Prompts. * Sorted said section and fixed badges per discussion in #638. Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/664 Reviewed-by: Admin --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4d2b810..f4fcb4c 100644 --- a/README.md +++ b/README.md @@ -552,11 +552,12 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696)) | Built-in shell history | | [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | +| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers @@ -611,7 +612,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | | [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 9793321f35a6fd0e836c6e278f9a7d7a42164dc1 Mon Sep 17 00:00:00 2001 From: yuli Date: Thu, 7 May 2026 13:21:34 +0200 Subject: [PATCH 042/413] add Odin (#658) Maybe also a good idea to reach out to them and ask about adding a no ai policy, since there seems to be very little ai generated code and [the core maintainer has called llms bullshitting engines](https://x.com/TheGingerBill/status/1886328090797760691) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/658 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4fcb4c..4dd3f37 100644 --- a/README.md +++ b/README.md @@ -998,6 +998,7 @@ This is a section for repos that are similar to this one either because they are | [Nim](https://nim-lang.org/) | [`e2a3063`](https://github.com/nim-lang/Nim/commit/e2a306355ca179aa256a2cee7a0d3a809538c8b9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nim-lang/Nim/pull/24564), [2](https://github.com/nim-lang/Nim/pull/25429), [3](https://github.com/nim-lang/Nim/pull/25439)) | [Ada](https://www.adaic.org/)? | | [Numbat](https://numbat.dev/) | [`18f81b1`](https://github.com/sharkdp/numbat/commit/18f81b19dc8698b29048ab0166a3a87dcadd34b7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/numbat/blob/88b2e81a35d06942101d74e9b368081f02555f4f/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [OCaml](https://ocaml.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ocaml/ocaml/blob/trunk/AI.md), [2](https://github.com/ocaml/ocaml/pull/14702#issue-4186687842)) | [SML](https://smlfamily.github.io/) | +| [Odin](https://odin-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/odin-lang/Odin/commit/1a7f78b66578492103607628d2cd4a2de70b29ec), [2](https://github.com/odin-lang/Odin/commit/bd6148dd6b77920cf64fea8804b205e8257e8a66)) | See below | | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | From e50e8af19666073c39db8f001880d42848135da4 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 7 May 2026 13:23:13 +0200 Subject: [PATCH 043/413] Add Expat (#660) Of course, THE XML library is tainted... Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/660 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4dd3f37..f6c3d51 100644 --- a/README.md +++ b/README.md @@ -1028,6 +1028,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| +| [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From f189e88cd873894d6f0942f0b3fd78ca0dbfaf95 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Fri, 8 May 2026 00:56:15 +0200 Subject: [PATCH 044/413] Add back Warp with it's fork aka OpenWarp and Waveterm (#665) Since Warp got open sourced, this commit reverts #26, while at it also sorted the terminal emulators list and added Waveterm Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/665 Reviewed-by: Admin --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f6c3d51..4f70cdb 100644 --- a/README.md +++ b/README.md @@ -1246,9 +1246,12 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | +| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | +| [OpenWarp](https://openwarp.zerx.dev) | None | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://openwarp.zerx.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zerx-lab/warp/commit/8f4eef1fce88c17c2cf1af452ea2e7f348fc8406), [2](https://github.com/zerx-lab/warp/commit/0c6b5d37c5a65eba97abe01587b65d3db8427aa9), [3](https://github.com/zerx-lab/warp/commit/52f4e17905fba725b62738d882c65662532a347b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zerx-lab/warp/pull/48)) | +| [Warp](https://warp.dev) | None |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://warp.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/warpdotdev/warp/commit/fc1157e066576bf0d577ab18426d66a5d5dcc3da), [2](https://github.com/warpdotdev/warp/commit/1d1c06db0fd7ccfea7e99ad938f7278a12cdf575), [3](https://github.com/warpdotdev/warp/commit/6ea1a52af1d02914ab43e2f2e4e37f1dedaa99fd))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/warpdotdev/warp/pull/10004), [2](https://github.com/warpdotdev/warp/pull/9956), [3](https://github.com/warpdotdev/warp/pull/9910))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/warpdotdev/warp/issues/10359#issuecomment-4397177289), [2](https://github.com/warpdotdev/warp/issues/10358#issuecomment-4396700787), [3](https://github.com/warpdotdev/warp/issues/10355#issuecomment-4396359216))| +| [Waveterm](https://www.waveterm.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.waveterm.dev/waveai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wavetermdev/waveterm/pull/3122), [2](https://github.com/wavetermdev/waveterm/commit/57e4e27a291642406060c795d69c63450ee9229d), [3](https://github.com/wavetermdev/waveterm/commit/bda8421377f4abcf9c30cfc9a40bfa7190a1f72e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wavetermdev/waveterm/pull/3289), [2](https://github.com/wavetermdev/waveterm/pull/3247), [3](https://github.com/wavetermdev/waveterm/pull/3222)) | > [!NOTE] > #### Alternative terminal emulators From d32f472bd3f3b1ebc2d1279aa609befcbb397192 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 8 May 2026 15:43:36 +0200 Subject: [PATCH 045/413] update style guide with full tag examples and required ordering (#666) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/666 --- STYLE.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/STYLE.md b/STYLE.md index 1ab3fde..fb41220 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,20 +16,23 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.com) | [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [coolSlopFreeProject] | -| [formallyOKSoftware](https://linktofinesoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [alrightSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): - [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) - [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) - [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) -- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) - [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) - [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) +- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) - [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) +> [!note] +> The above order is the official order you should add your tags in. + **Don't know what the alternative or last known good version is?** Use this badge in its place: - [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) @@ -89,6 +92,6 @@ The above "Alternative(s)" column is for software that has a 1:1 parity or is a > * [coolSlopFreeProject]: This can be a short description and [link to anti-AI policies](somelink.link). -[alternativeSoftware]: https://verygoodnotslopware.com "alternative software" -[coolSlopFreeProject]: https://verygoodnotslopware2.com "another alternative software" -[alrightSlopFreeProject]: https://veryoknotslopware3.com "another extra alternative software" +[alternativeSoftware]: https://verygoodnotslopware.tld "alternative software" +[coolSlopFreeProject]: https://verygoodnotslopware2.tld "another alternative software" +[alrightSlopFreeProject]: https://veryoknotslopware3.tld "another extra alternative software" From 8ffebe018f6e02d5082faa85abd89cd13cdca7f8 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 15:50:34 +0200 Subject: [PATCH 046/413] Add Act and Woodpecker (#659) Pretty disappointing, as Woodpecker is one of Codeberg's CI systems, and easily the one I'm most familiar with. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/659 Reviewed-by: Admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 4f70cdb..29fd0b6 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Image Manipulation](#image-manipulation) * [Photography](#photography) * [Video](#video) + * [Continuous Integration](#continuous-integration) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) * [Documents](#documents) @@ -605,6 +606,13 @@ This is a section for repos that are similar to this one either because they are | [PipePipe](https://pipepipe.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/InfinityLoop1308/PipePipeClient/blob/dev/CLAUDE.md)) | [LibreTube] | | [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | +## Continuous Integration + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | +| [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | + ## Developer Tools > [!WARNING] From 9c24a13b2e2ea677a0df82edb992a39f858a404c Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 16:14:45 +0200 Subject: [PATCH 047/413] Move ConnectBot to new SSH section (#675) Also fixed the name while I was at it. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/675 Reviewed-by: Admin --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 29fd0b6..9f94941 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) + * [SSH](#ssh) * [System Base](#system-base) * [System Logs Managers](#system-logs-managers) * [Android](#android) @@ -620,7 +621,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | @@ -1210,6 +1210,12 @@ This is for both social media websites and apps. | [Bluesky Social App](https://github.com/bluesky-social/social-app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bluesky-social/social-app/blob/177bdcd2b7807c9980dab32e7a5664fc006df40b/CLAUDE.md), [2](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [3](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a)) | [wafrn-rn] | | [FeurStagram](https://github.com/jean-voila/FeurStagram/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jean-voila/FeurStagram/issues/23#issuecomment-4331590472), [2](https://discuss.privacyguides.net/t/feurstagram/37476/16)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## SSH + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [ConnectBot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## System Base This section is strictly for software implementing a core set of UNIX-like utilities and/or directly interfacing with several kernel subsystems. Think potential replacements for coreutils and util-linux. From 3a9394f0f16e3aaad80a3afa70f3ab19540dc6cb Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 16:31:22 +0200 Subject: [PATCH 048/413] Move Scalar to new API Documentation section (#677) Also fixed the badges per discussion in #638 / #666 while I was at it. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/677 Reviewed-by: Admin --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f94941..89f3988 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Accessibility Tools](#accessibility-tools) * [Accounting and Budgeting](#accounting-and-budgeting) * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) + * [API Documentation](#api-documentation) * [App Launchers](#app-launchers) * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) @@ -340,6 +341,12 @@ This is a section for repos that are similar to this one either because they are > - [Grisbi] > - [HomeBank] +## API Documentation + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## App Launchers ### Mobile Launchers @@ -625,7 +632,6 @@ This is a section for repos that are similar to this one either because they are | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | | [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | | [Wild](https://github.com/wild-linker/wild) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [2](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [3](https://github.com/wild-linker/wild/pull/912)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 829c69f55a044ba4794c807a62036093d5a482e3 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Fri, 8 May 2026 21:27:47 +0200 Subject: [PATCH 049/413] Add commonmark-java (#668) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/668 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 89f3988..f9bf05a 100644 --- a/README.md +++ b/README.md @@ -649,6 +649,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [cmark](https://github.com/commonmark/cmark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/cmark/commit/9dc68b89800ccba49551f2055f2b41e20e9039b1), [2](https://github.com/commonmark/cmark/commit/cb3fe8c4dcfafb5c291096a1afc84723015e52dc), [3](https://github.com/commonmark/cmark/commit/8c9dcdd2d71cc191f2f9a9791b06e58c9aec5ec3))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/commonmark/cmark/issues/599#issuecomment-3914290545)) | [Markdown.pl](https://daringfireball.net/projects/markdown/) (md to html) | +| [commonmark-java](https://github.com/commonmark/commonmark-java) | [`e62bca1`](https://github.com/commonmark/commonmark-java/commit/e62bca11062dc52b4f7a28d1da3d16c49ba81628) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/commonmark-java/commit/f3be489803f3446e610f2948fd77d4e821a5cefd), [2](https://github.com/commonmark/commonmark-java/commit/5815c3c0b17f52b53e65465fd8ff65da8e6304fa), [3](https://github.com/commonmark/commonmark-java/commit/057f13dd8e9472a45c714ad0c06a1a425ec21f61)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Pandoc](https://pandoc.org/) | [`0ce85b0`](https://github.com/jgm/pandoc/commit/0ce85b0cfa8e5d3155dddc77b1408b4d7d7890fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgm/pandoc/pull/11132), [2](https://github.com/jgm/pandoc/pull/11396), [3](https://github.com/jgm/pandoc/commit/4b26f50118d7c0fdb3c1095dc26ba671e1b4b538)) | [lowdown](https://kristaps.bsd.lv/lowdown/)?
[Typst](https://typst.app/)? | ### Document Viewers From ab83f3bc667f87d60d3f36b8938c480684d31f33 Mon Sep 17 00:00:00 2001 From: Allen123456hello Date: Fri, 8 May 2026 22:00:55 +0200 Subject: [PATCH 050/413] add an alternative to openssl: libressl (#655) Seems to be a hard-fork from openssl. Not affected by slop. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/655 Reviewed-by: Admin --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f9bf05a..3834d6e 100644 --- a/README.md +++ b/README.md @@ -1047,15 +1047,21 @@ This is a section for repos that are similar to this one either because they are | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | [GnuTLS] | +| [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | See below | | [Mongoose](https://mongoose.ws) | [`7a21199`](https://github.com/cesanta/mongoose/commit/7a21199d4a64dc9d941417f3ddef12b89905af1f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cesanta/mongoose/commit/97c53ec5a6e36a7c9ab188314d96ac0772f6c793), [2](https://github.com/cesanta/mongoose/commit/c937144b651eff9c2d4396f1e1d5b43d43956b2e)) | [libmicrohttpd] | -| [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | [GnuTLS] | +| [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | See below | | [raylib](https://github.com/raysan5/raylib) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/raysan5/raylib/discussions/5712#discussioncomment-16411612)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [*See systemd section*](#system-services-and-daemons) | [basu](https://sr.ht/~emersion/basu/) | | [SDL](https://github.com/libsdl-org/SDL) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/libsdl-org/SDL/blob/c46dfdba543195873c205f8a30957d1a50b99565/AGENTS.md?plain=1#L10)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [WolfSSL](https://wolfssl.com) | [`5.7.6`](https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.6-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wolfSSL/wolfssl/releases/tag/v5.9.1-stable))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wolfSSL/wolfssl/pull/10349), [2](https://github.com/wolfSSL/wolfssl/pull/10352), [3](https://github.com/wolfSSL/wolfssl/pull/10351)) | [GnuTLS] | +| [WolfSSL](https://wolfssl.com) | [`5.7.6`](https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.6-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wolfSSL/wolfssl/releases/tag/v5.9.1-stable))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wolfSSL/wolfssl/pull/10349), [2](https://github.com/wolfSSL/wolfssl/pull/10352), [3](https://github.com/wolfSSL/wolfssl/pull/10351)) | See below | | [zlib-ng](https://github.com/zlib-ng/zlib-ng) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zlib-ng/zlib-ng/commit/927c5a46a72cf058043a4b792ff20d8b50a9f1ab),[2](https://github.com/zlib-ng/zlib-ng/commit/061f0e4fa8b266f643a7070befe8d7a0b412ef31),[3](https://github.com/zlib-ng/zlib-ng/commit/a7e15da75f8ec00b392a467675617a9112948d00))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zlib-ng/zlib-ng/pull/2197#issuecomment-4020684882)) | [zlib](https://zlib.net) | +> [!Note] +> #### Crypto/SSL/TLS Software Alternatives +> - [axTLS](https://axtls.sourceforge.net/) +> - [GnuTLS](https://www.gnutls.org/) +> - [LibreSSL](https://www.libressl.org/) + ### C++ | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -1613,7 +1619,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Grisbi]: https://grisbi.org/ [GNOME Boxes]: https://gnomeboxes.org [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal -[GnuTLS]: https://www.gnutls.org/ [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial [HomeBank]: https://www.gethomebank.org/ [Idris]: https://www.idris-lang.org/ From 27bbe6ff9a9e098433ee4cba3d6580fbfd99f562 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 22:13:53 +0200 Subject: [PATCH 051/413] Add fd (#669) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/669 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3834d6e..fd23377 100644 --- a/README.md +++ b/README.md @@ -748,6 +748,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [eza](https://eza.rocks/) | [`v0.21.0`](http://github.com/eza-community/eza/releases/tag/v0.21.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/eza-community/eza/blob/eed27ed05e74542af5852aed40e3dbff87d69c43/README.md)) | [ls](https://en.wikipedia.org/wiki/Ls) | +| [fd](https://github.com/sharkdp/fd) | [`v10.2.0`](https://github.com/sharkdp/fd/releases/tag/v10.2.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/fd/blob/7f1b1471d5e3f88087eaad77885dc70968750bb3/CONTRIBUTING.md), [2](https://github.com/sharkdp/fd/commit/0ada245e37c0de42e61da50da0ad3bcc49efb74f), [3](https://github.com/sharkdp/fd/commit/19dcbff5627010b11cb409a5ac2e0480bf0a61b7))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sharkdp/fd/pull/1805), [2](https://github.com/sharkdp/fd/pull/1934), [3](https://github.com/sharkdp/fd/pull/1928)) | [find](https://en.wikipedia.org/wiki/Find_(Unix)) | | [LSDeluxe](https://github.com/lsd-rs/lsd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/lsd-rs/lsd/blob/ce869cf60e4d131bf0f781b6705265f34e68b6b5/README.md), [2](https://github.com/lsd-rs/lsd/commit/ae1a2cd964168dee240de1ba13dd85e08b9a26a4)) | [ls](https://en.wikipedia.org/wiki/Ls) | | [zoxide](https://github.com/ajeetdsouza/zoxide) | [`v0.9.2`](https://github.com/ajeetdsouza/zoxide/releases/tag/v0.9.2) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/ajeetdsouza/zoxide/blob/67ca1bc9592854dd4957b8b02f16292638475659/README.md), [2](https://github.com/ajeetdsouza/zoxide/commit/073500cbdf8ba211e5115fc6e51411cf2468fc5b), [3](https://github.com/ajeetdsouza/zoxide/commit/61f19a60d91b7181bfdc88470e72bcd1befc7c6a)) | [cd](https://en.wikipedia.org/wiki/Cd_(command)) | From 375e1a663cebf141127d332581e2e54a77be19c9 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 22:21:51 +0200 Subject: [PATCH 052/413] Add Next.js and React and clean up JavaScript/TypeScript section (#670) * Added Next.js and React. * Sorted badges per discussion in #638 / #666. * Mentioned TypeScript taint. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/670 Reviewed-by: Admin --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd23377..83af27b 100644 --- a/README.md +++ b/README.md @@ -1107,17 +1107,21 @@ Note that Go is itself tainted; see [the Programming Languages section](#program ### JavaScript And TypeScript +Note that TypeScript is itself tainted; see [the Programming Languages section](#programming-languages). + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [ArkType](https://arktype.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://arktype.io/llms.txt), [2](https://github.com/arktypeio/arktype/blob/main/.cursor/commands/armstrong.md), [3](https://github.com/arktypeio/arktype/pull/1553#issuecomment-3672923281))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/arktypeio/arktype/pull/1594)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Deno](https://github.com/denoland/deno) | [`6002d26`](https://github.com/denoland/deno/commit/6002d2624e567d92c5d659be77dfa14fc4db28fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/.github/CONTRIBUTING.md), [2](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/CLAUDE.md), [3](https://xcancel.com/i/status/2013280952370573666))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/denoland/deno/pull/33335#pullrequestreview-4143170352)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Typebox](https://github.com/sinclairzx81) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sinclairzx81/typebox/pull/1015), [2](https://github.com/sinclairzx81/typebox/issues/1294), [3](https://github.com/sinclairzx81/typebox/issues/1364)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vite](http://vite.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/copilot-instructions.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md#sponsors), [2](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md?plain=1#L19))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/workflows/issue-template-check.yml#L50)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Zod](https://zod.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/colinhacks/zod/blob/main/AGENTS.md), [2](https://github.com/colinhacks/zod/blob/main/CLAUDE.md), [3](https://github.com/colinhacks/zod/blob/main/.cursorrules))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/colinhacks/zod/blob/c7805073fef5b6b8857307c3d4b3597a70613bc2/packages/zod/README.md?plain=1#L40)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 7de61cabeebd44e87e9f2c93609d39a9e3df7a7b Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 9 May 2026 11:11:39 +0200 Subject: [PATCH 053/413] Move Compiler Tools out of Developer Tools and move Mold and Wild to a linkers subsection (#683) Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/683 Reviewed-by: Admin --- README.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 83af27b..209f21e 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Cheat Sheets and Documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) + * [Compiler Tools](#compiler-tools) + * [Linkers](#linkers) * [Computer Graphics](#computer-graphics) * [3D Tools](#3d-tools) * [Image Manipulation](#image-manipulation) @@ -63,7 +65,6 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Video](#video) * [Continuous Integration](#continuous-integration) * [Developer Tools](#developer-tools) - * [Compiler Tools And Related](#compiler-tools-and-related) * [Documents](#documents) * [Document Converters](#document-converters) * [Document Viewers](#document-viewers) @@ -572,6 +573,20 @@ This is a section for repos that are similar to this one either because they are > #### Alternative Plugin Managers > * [zimfw](https://github.com/zimfw/zimfw) +## Compiler Tools + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [`Godbolt`](https://godbolt.org) | [`d107352`](https://github.com/compiler-explorer/compiler-explorer/commit/d1073529e6bb26361e1105f5e56ed33510a83d76)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/compiler-explorer/compiler-explorer/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [LLVM](https://llvm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://llvm.org/docs/AIToolPolicy.html)) | [GCC](https://gcc.gnu.org/), [Cranelift](https://cranelift.dev/), [pcc](https://github.com/PortableCC/pcc) | + +### Linkers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Mold](https://github.com/rui314/mold) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | +| [Wild](https://github.com/wild-linker/wild) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [2](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [3](https://github.com/wild-linker/wild/pull/912)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Computer Graphics ### 3D Tools @@ -630,17 +645,8 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | | [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | -| [Wild](https://github.com/wild-linker/wild) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [2](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [3](https://github.com/wild-linker/wild/pull/912)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - -### Compiler Tools And Related - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [`Godbolt`](https://godbolt.org) | [`d107352`](https://github.com/compiler-explorer/compiler-explorer/commit/d1073529e6bb26361e1105f5e56ed33510a83d76)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/compiler-explorer/compiler-explorer/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [LLVM](https://llvm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://llvm.org/docs/AIToolPolicy.html)) | [GCC](https://gcc.gnu.org/), [Cranelift](https://cranelift.dev/), [pcc](https://github.com/PortableCC/pcc) | ## Documents From a25f98a3fd9a618ec438bf7892ce0727539cdfc5 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 9 May 2026 11:54:58 +0200 Subject: [PATCH 054/413] Add Stylus (#673) In the commit tree, the slop commit appears to have been force-pushed to remove the taint attribution, so that makes it even worse. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/673 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 209f21e..0eb6870 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Bootloaders](#bootloaders) * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Browsers](#browsers) + * [Browser Addons](#browser-addons) * [Desktop Browsers](#desktop-browsers) * [Headless Browsers](#headless-browsers) * [Mobile Browsers](#mobile-browsers) @@ -490,6 +491,12 @@ This is a section for repos that are similar to this one either because they are ## Browsers +### Browser Addons + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternatives | +|---|:---:|---|---| +| [Stylus](https://add0n.com/stylus.html) | [`v2.3.19`](https://github.com/openstyles/stylus/releases/tag/v2.3.19) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openstyles/stylus/pull/2058)) | [Stylebot](https://github.com/ankit/stylebot) | + ### Desktop Browsers | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 0b83fb537eedce08324bd069d3df43fa197aaf51 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 9 May 2026 11:57:21 +0200 Subject: [PATCH 055/413] Add Discourse (#674) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/674 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 0eb6870..bfbe3cf 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [File Transferring](#file-transferring) * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) + * [Forum Software](#forum-software) * [Gaming](#gaming) * [Game engines](#game-engines) * [Alternative game engines](#alternative-game-engines) @@ -771,6 +772,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Superfile](https://superfile.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/yorukot/superfile/blob/main/.gitignore),[2](https://github.com/yorukot/superfile/commit/4f875e5c2e0e2a837a2c4a6548dbc09f76905c29),[3](https://github.com/yorukot/superfile/commit/130f1ef57b8314dd4bc5c7a22eac6db996da4361))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/yorukot/superfile/pull/1405),[2](https://github.com/yorukot/superfile/pull/1391),[3](https://github.com/yorukot/superfile/pull/1387))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#ai-sponsored) ([1](https://github.com/yorukot/superfile#----superfile-is-supported-by-the-community--))| [lf](https://github.com/gokcehan/lf),
[Midnight Commander](https://midnight-commander.org/),
[vifm](https://vifm.info/) | +## Forum Software + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Gaming ### Game engines From 9f8a29a8a29c8148607926c386e7a86565f080a7 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 9 May 2026 12:00:18 +0200 Subject: [PATCH 056/413] Rename goblint to gobject-linter (#684) It was renamed a few days ago. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/684 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bfbe3cf..891f5db 100644 --- a/README.md +++ b/README.md @@ -1065,7 +1065,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [gobject-linter](https://github.com/bilelmoussaoui/gobject-linter) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | See below | From 331a72e008dfbbfd0e90d0216a97f4732949e875 Mon Sep 17 00:00:00 2001 From: jbechtel Date: Sun, 10 May 2026 08:53:35 +0200 Subject: [PATCH 057/413] =?UTF-8?q?Add=20=E2=80=9ED=E2=80=9C=20language=20?= =?UTF-8?q?(#679)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is an improved PR which supersedes #676 which can then be closed and incorporates information from #147. In order to match the style guide I put all the reasoning in the commit message. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/679 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 891f5db..d7324f9 100644 --- a/README.md +++ b/README.md @@ -1022,6 +1022,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [.NET](https://dotnet.microsoft.com/) | [`v9.0.0`](https://github.com/dotnet/runtime/releases/tag/v9.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dotnet/runtime/blob/main/.github/copilot-instructions.md), [2](https://github.com/dotnet/runtime/blob/main/.github/agents/agentic-workflows.agent.md), [3](https://github.com/dotnet/runtime/commit/128321e88e2c93d69766e15ad4f06bab70b753b7))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dotnet/runtime/pull/116200)) | See below | +| [D](https://dlang.org/) | [`2.112.0`](https://dlang.org/download.html) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dlang/dmd/commit/0bb399977511b76d770868fe14e16cad8dc49104)) | See below | | [Dart](https://dart.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md#ai-contribution-guidelines), [2](https://github.com/dart-lang/sdk/tree/6cd3938741d48681330363b3553da8eccf335407/.agents/skills), [3](https://github.com/dart-lang/core/tree/0def20c4bef2b242db15b38202a54735101f5791/.gemini)) | See below | | [Elixir](https://elixir-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elixir-lang/elixir/blob/main/CONTRIBUTING.md#ai-contributions)) | See below | | [Gerbil Scheme](https://github.com/mighty-gerbils/gerbil) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mighty-gerbils/gerbil/pull/1397)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | From 6408dc5f62013e0d135528afa2bdaa36d7103e1c Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 10 May 2026 09:11:38 +0200 Subject: [PATCH 058/413] Starting a new FAQ (#685) - closes #680 Co-authored-by: @Pixelo789 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/685 --- FAQ.md | 43 +++++++++++++++++++++++++++++++++++++++++++ README.md | 4 +++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 FAQ.md diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..5c9cfc2 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,43 @@ +# Frequently Asked Questions + +There's no great place to put these in our current files, but these sorts of questions come up enough, that we wanted to put them down somewhere to easily link responses. + +## Can I self advertise here? + +> Yes, provided it's FOSS, has a code of conduct (even if it's a solo project), and a No AI Policy, you can add your project as an alternative to any tainted software in which it is a good fit, and you can also open a [Call for Collaborators Issue](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2fcollaborate-with-me.yaml). + +## Do closed source or proprietary products belong on this list? + +> No, this repo is only for open source projects. + +## Can we split the "Permissive AI Policy" tag further? + +> No, beyond "vibecoded" being added in some extreme cases. We don't want to have this conversation continually, as it is subjective what "severity" something falls under. The decision to add these tags took us a long time, and unless you have another *specific* tag that cannot be covered under any other tag, we're currently not open to discussion about this. This repo is already quite a lot to manage. + +## Why are you targeting/attacking/harassing my favorite project? + +> We do not "target", "harass", or "attack" any projects. We, in fact, have a [very strict policy on not doing that](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#be-kind-or-be-gone). This repo is one based on ethics and is intended as a call to action. If a project meets the definition of one of our tags, it will see itself added to this repo. It can take steps to stop doing whatever it is in that definition and we'll remove it. (See also the [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal).) + +## If a repo had slop before, isn't it permanently tainted? Aren't all forks of slop therefore also slop? + +> No. See also: [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal). +> +> Eventually, the slop will likely either be removed, replaced, or deprecated. +> +> We're also against AI for more than just code quality reasons. There's plenty of ethical reasons to be against continuing to use AI: +> +> - [environmental](https://codeberg.org/small-hack/open-slopware#environmental-impact) +> - [ties to the war industrial complex](https://codeberg.org/small-hack/open-slopware#ties-to-the-war-industrial-complex) +> - [effect on hardware prices hurting newcomers to the industry](https://codeberg.org/small-hack/open-slopware#effect-on-hardware-prices) (especially those already disenfranchised) +> +> The commitment to stop using AI stops those above ethical issues. It's like going vegetarian. You're still a vegetarian if you previously consumed meat, but now you don't. You've still reduced suffering and helped the environment. A commitment to doing better is better than never stopping a harmful action. + +## Is a project tainted if it has dependencies that are tainted? + +> This one is complicated, but in short: No, unless the dependencies are literally AI libraries. +> If the dependency is, for example, the ChatGPT SDK or something similar, then yes, the project is tainted. +> If the project is just built with something like Python, which is also tainted, we do not automatically consider it tainted, as the language is a general purpose language and there are *very* few languages not already tainted or slated to be tainted right now. We take a harm reduction philosophy and we believe that, especially in the case of established projects, demanding that they switch the core language of their project is not a simple undertaking. + +## Can you advise us on the ethical usage of AI? + +> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs section](https://codeberg.org/small-hack/open-slopware#why-not-llms). \ No newline at end of file diff --git a/README.md b/README.md index d7324f9..4f558c3 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N Ready to fork a project to introduce a No AI policy? Check out our [**How to Slop Free Fork Guide**](./HOW_TO_SLOP_FREE_FORK.md). +Any other questions? Please check out our [FAQ](./FAQ.md) and if your question isn't answered there, please feel free to open a Discussion type Issue. + * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) * [Vibecode](#vibecode) @@ -248,7 +250,7 @@ Evidence can be: ![AI sponsored](./badges/ai-sponsored-blue.svg) -The project is sponsored directly by an AI company. +The project is sponsored directly by an AI company. An AI company is any company that advertises itself as pro-AI or develops an AI product itself. The obvious ones are Anthropic and OpenAI, however, all the big tech companies (e.g. Apple, Google, Microsoft, and Amazon) also count because they all have AI services and direct products as major offerings. Evidence can be: From 4a9f6b82e683b0711281ef525eeebe9a0f34b5c4 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 10 May 2026 12:08:17 +0200 Subject: [PATCH 059/413] Fix FAQ mention in README (#687) https://codeberg.org/small-hack/open-slopware/pulls/685#issuecomment-14598501 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/687 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4f558c3..e2504b2 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N Ready to fork a project to introduce a No AI policy? Check out our [**How to Slop Free Fork Guide**](./HOW_TO_SLOP_FREE_FORK.md). -Any other questions? Please check out our [FAQ](./FAQ.md) and if your question isn't answered there, please feel free to open a Discussion type Issue. +Any other questions? Please check out our [FAQ](./FAQ.md), and if your question isn't answered there, please feel free to start a [Discussion](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2fdiscussion.yaml). * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) From 863f9bf7c296a0a20d3153e06a1bf6689156e7e7 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 10 May 2026 23:13:57 +0200 Subject: [PATCH 060/413] Re-add "AI Sponsored" tags for Next.js and React (#688) Since Vercel and Facebook/"Meta" pride themselves on "AI" slop, Next.js and React respectively count as "AI Sponsored". Also see https://codeberg.org/small-hack/open-slopware/pulls/670#issuecomment-14537760 and #685. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/688 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e2504b2..0063681 100644 --- a/README.md +++ b/README.md @@ -1139,10 +1139,10 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [Deno](https://github.com/denoland/deno) | [`6002d26`](https://github.com/denoland/deno/commit/6002d2624e567d92c5d659be77dfa14fc4db28fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/.github/CONTRIBUTING.md), [2](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/CLAUDE.md), [3](https://xcancel.com/i/status/2013280952370573666))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/denoland/deno/pull/33335#pullrequestreview-4143170352)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://opensource.fb.com/projects/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Typebox](https://github.com/sinclairzx81) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sinclairzx81/typebox/pull/1015), [2](https://github.com/sinclairzx81/typebox/issues/1294), [3](https://github.com/sinclairzx81/typebox/issues/1364)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vite](http://vite.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/copilot-instructions.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md#sponsors), [2](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md?plain=1#L19))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/workflows/issue-template-check.yml#L50)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 063aa675d58baae518f849d69f2209018427eedc Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 11 May 2026 00:48:03 +0200 Subject: [PATCH 061/413] Add Fedora and OpenWrt (#672) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/672 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0063681..9ed6e5f 100644 --- a/README.md +++ b/README.md @@ -949,7 +949,9 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Fedora](https://fedoraproject.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | +| [OpenWrt](https://openwrt.org) | [`7214acd`](https://github.com/openwrt/openwrt/commit/7214acd7599a25863d6185a036d878b593b4b16c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openwrt/openwrt/commit/af3cbd4013a2c8c82450e4a4b21a73d28ab4cda2), [2](https://github.com/openwrt/openwrt/pull/21284), [3](https://github.com/openwrt/openwrt/commit/410277ca12d811daa8040edf75dfd87a2d9dd5f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openwrt/openwrt/pull/22565), [2](https://github.com/openwrt/openwrt/pull/22421), [3](https://github.com/openwrt/openwrt/pull/22543)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ubuntu](https://ubuntu.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ubuntu.com/ai), [2](https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130)) | See below | > [!NOTE] From 34a685d48aa3a8aefb999bc8a79065985241c339 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 11 May 2026 09:16:45 +0200 Subject: [PATCH 062/413] Add Scratch Everywhere (#694) Closes #690 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/694 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ed6e5f..6a32d88 100644 --- a/README.md +++ b/README.md @@ -1092,6 +1092,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | +| [Scratch Everywhere](https://github.com/ScratchEverywhere) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ScratchEverywhere/ScratchEverywhere/issues/670)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spdlog](https://github.com/gabime/spdlog) | [`v1.16.0`](https://github.com/gabime/spdlog/releases/tag/v1.16.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gabime/spdlog/commit/b656d1ceecac83e969faaf8b35f8a5edb964b0e0), [2](https://github.com/gabime/spdlog/commit/6b240a892d40f91f30b81cae73964219ab04c55d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gabime/spdlog/pull/3581#event-24197698244)) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp) | [`v3.3.3`](https://github.com/SRombauts/SQLiteCpp/releases/tag/3.3.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SRombauts/SQLiteCpp/commit/9986f570bef00ca1029a2c19e4ce8fcbf206f775), [2](https://github.com/SRombauts/SQLiteCpp/commit/a9d117e0a38dc12fd49d6bcd675c67a7383fa2fa)) | [SQLite's first-party interface](https://sqlite.org/cintro.html) | From 1ff4e24e125bb6cb9f7714f520d8f40dc9d50601 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 11 May 2026 10:44:57 +0200 Subject: [PATCH 063/413] make it clear that you are not to mention this repo when reaching out to other projects (#693) This is not up for debate. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/693 --- CODE_OF_CONDUCT.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 3198860..753198d 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -53,6 +53,10 @@ We're going to do a 2 strike rule here with an optional warning. You are out on # Be kind or be gone +- Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on repos, forums, social media, reddit, messaging apps, etc, especially not in a rude way, to maintainers of other repos to harass them and threaten them, especially not with this list. Doing so will result in a ban. + +- Do **NOT** mention this list *at all* when reaching out to a project to discuss AI in any way. It only results in putting the maintainers of that project on the defensive, and then the maintainers of *this* repo need to deal with the fallout of that. If you need help with asking for a No AI Policy, consider checking out our [No AI Request Template doc](https://codeberg.org/small-hack/open-slopware/src/branch/main/NO_AI_REQUEST_TEMPLATE.md#tips-for-success). You are also free to copy and paste anything from the [Why not LLMs](https://codeberg.org/small-hack/open-slopware/src/branch/main#why-not-llms) section of our README. + - We don't want drive by sarcastic comments. - No references to bodily fluids (vomit, urine, feces), this includes emojis. It's gross and unproductive. @@ -65,8 +69,6 @@ We're going to do a 2 strike rule here with an optional warning. You are out on - This repo is not a substitute for social media. The maintainers do not have the mental health bandwidth to manage such a community. -- Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on social media, reddit, messaging apps, etc, especially not in a rude way, to maintainers of other repos to harass them and threaten them with this list. Doing so will result in a ban. - - Please do not reach out to the maintainers or collaborators of this repo anywhere but this repo specifically (unless they have given explicit permission to do so). We do not operate our personal email or fediverse accounts as extensions of this repo and will not take feedback there. We need a proper work life balance. Please respect that. - No complaining about purity rules, "walking on egg shells", etc. If you can't behave professionally here, then please just kindly exit. From c5ed18360cb405756a02fc9dc34206e36707f246 Mon Sep 17 00:00:00 2001 From: Hiccup Date: Mon, 11 May 2026 20:01:28 +0200 Subject: [PATCH 064/413] Add VisualBoyAdvance-M (#681) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/681 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6a32d88..2eac8c0 100644 --- a/README.md +++ b/README.md @@ -817,6 +817,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | | [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) ## Language and Localization From 998a87e779970590b072a792c212b617403a4e2d Mon Sep 17 00:00:00 2001 From: ch0ccyra1n Date: Tue, 12 May 2026 08:15:50 +0200 Subject: [PATCH 065/413] Add last known untainted version for Hugo (#699) I managed to sift through the commit history of Hugo, and this commit appears to be the parent of the first commit with known usage of Claude in their repository, meaning it is the last untainted commit. The version I provided is the last version of Hugo which predates that commit. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/699 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2eac8c0..8033c04 100644 --- a/README.md +++ b/README.md @@ -426,7 +426,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Hugo](https://gohugo.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gohugoio/hugo/blob/842d8f105256c5656e7895ee61fa5b2dfe90a9e3/AGENTS.md), [2](https://github.com/gohugoio/hugo/blob/842d8f105256c5656e7895ee61fa5b2dfe90a9e3/CLAUDE.md), [3](https://github.com/gohugoio/hugo/commit/842d8f105256c5656e7895ee61fa5b2dfe90a9e3)) | +| [Hugo](https://gohugo.io/) | [v0.151.2](https://github.com/gohugoio/hugo/releases/tag/v0.151.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gohugoio/hugo/blob/842d8f105256c5656e7895ee61fa5b2dfe90a9e3/AGENTS.md), [2](https://github.com/gohugoio/hugo/blob/842d8f105256c5656e7895ee61fa5b2dfe90a9e3/CLAUDE.md), [3](https://github.com/gohugoio/hugo/commit/842d8f105256c5656e7895ee61fa5b2dfe90a9e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gohugoio/hugo/pull/14850)) | | [Pelican](https://getpelican.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/getpelican/pelican/pull/3405#issuecomment-2592359405)) | | [Zola](https://www.getzola.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/getzola/zola/blob/ec865e2cb7c159169f4dc56ebcd35a460b8eb297/.claude)) | From ded75d8f2ce46fb6170b5ef365a9992280f5c888 Mon Sep 17 00:00:00 2001 From: david Date: Tue, 12 May 2026 18:04:52 +0200 Subject: [PATCH 066/413] Expand Addons & Prompts section (#702) Co-authored-by: David Knaack Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/702 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8033c04..0ddb428 100644 --- a/README.md +++ b/README.md @@ -574,10 +574,10 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696)) | Built-in shell history | | [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ohmyposh.dev/docs/segments/cli/claude))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e)) | [shmonad](https://github.com/matthunz/shmonad) | +| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/starship/starship/pull/7451#pullrequestreview-4214288411)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers From 98c0aca5dae24c1c5ce18f89b88b1f858080443c Mon Sep 17 00:00:00 2001 From: ch0ccyra1n Date: Tue, 12 May 2026 18:05:23 +0200 Subject: [PATCH 067/413] add postmarketOS as alternative linux distro (#701) It's been a while since I've used it but I figured I'd check. Luckily we've got yet another alternative as a result, as well as a lot of solid reasons for why they banned such contributions. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/701 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0ddb428..43117ff 100644 --- a/README.md +++ b/README.md @@ -961,6 +961,7 @@ This is a section for repos that are similar to this one either because they are > * [elementary OS](https://elementary.io/) has [banned LLMs](https://docs.elementary.io/contributor-guide/development/generative-ai-policy) > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) > * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) +> * [postmarketOS](https://postmarketos.org/) has [banned LLMs](https://docs.postmarketos.org/policies-and-processes/development/ai-policy.html) ### Kernels From e608866f931465035fbac5408512d8c28e1b441d Mon Sep 17 00:00:00 2001 From: jkjk Date: Tue, 12 May 2026 18:09:40 +0200 Subject: [PATCH 068/413] Add gitoxide (#705) Add gitoxide Co-authored-by: jkjk <267793835+znmz@users.noreply.github.com> Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/705 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 43117ff..5d65a0f 100644 --- a/README.md +++ b/README.md @@ -1373,6 +1373,7 @@ This section is strictly for software implementing a core set of UNIX-like utili |---|:---:|---| | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | | [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | +| [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#please-disclose-the-use-of-ai), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | From e65f86e4a987b1cc1c4bbb014c37a7df3adc1137 Mon Sep 17 00:00:00 2001 From: yuli Date: Tue, 12 May 2026 18:35:03 +0200 Subject: [PATCH 069/413] add xc as an alternative to commandline shells (#706) dont think the project has an ai policy but its made by drew devault who made [vim-classic](https://drewdevault.com/blog/Forking-vim/) the slopfree vim fork so xc is like definitely slopfree also :3 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/706 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d65a0f..137ce35 100644 --- a/README.md +++ b/README.md @@ -566,6 +566,7 @@ This is a section for repos that are similar to this one either because they are > * [elvish](https://elv.sh) > * [fish](https://fishshell.com/) > * [rc](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) +> * [xc](https://git.sr.ht/~sircmpwn/xc) > * [execline](https://www.skarnet.org/software/execline/) ### Addons and Prompts From f16b40207371da8ff8851423ca5b1ec1d4adf4e3 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Tue, 12 May 2026 18:55:50 +0200 Subject: [PATCH 070/413] Add ESP-IDF and BuffaloSDK as tainted into microcontroller tools and libraries section (#686) Alternative Microcontroller Tools and Libraries section was based on #648, with a little bit of modification to generalize it for other microcontroller SDK's in the future if more found Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/686 Reviewed-by: Admin --- README.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 137ce35..236adc3 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Messaging Servers](#messaging-servers) * [Messaging Clients](#messaging-clients) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) + * [Alternative Microcontroller Tools and Libraries](#alternative-microcontroller-tools-and-libraries) * [Networking](#networking) * [Networking security tools](#networking-security-tools) * [Networking security tool alternatives](#networking-security-tool-alternatives) @@ -904,11 +905,32 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [betaflight](https://github.com/betaflight/betaflight) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/search?q=repo%3Abetaflight%2Fbetaflight%20Claude&type=commits))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/betaflight/betaflight/blob/master/.coderabbit.yaml)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ch32-hal](https://github.com/ch32-rs/ch32-hal) | [`07687b9`](https://github.com/ch32-rs/ch32-hal/commit/07687b9f8d7b3823ef91ca23baa21663025c0346) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ch32-rs/ch32-hal/pull/161), [2](https://github.com/ch32-rs/ch32-hal/pull/151), [3](https://github.com/ch32-rs/ch32-hal/pull/139))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://avatars.githubusercontent.com/u/104085502?s=200&v=4)) | Official [WCH C SDK's](https://github.com/openwch), [ch32fun](https://github.com/cnlohr/ch32fun) | +| [BouffaloSDK](https://github.com/bouffalolab/bouffalo_sdk) | [`2.0.0`](https://github.com/bouffalolab/bouffalo_sdk/tree/V2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bouffalolab/bouffalo_sdk/blob/master/CLAUDE.md), [2](https://github.com/bouffalolab/bouffalo_sdk/tree/master/.claude/skills), [3](https://github.com/bouffalolab/bouffalo_sdk/blob/master/components/wireless/wl80211/CLAUDE.md)) | See below | +| [ch32-hal](https://github.com/ch32-rs/ch32-hal) | [`07687b9`](https://github.com/ch32-rs/ch32-hal/commit/07687b9f8d7b3823ef91ca23baa21663025c0346) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ch32-rs/ch32-hal/pull/161), [2](https://github.com/ch32-rs/ch32-hal/pull/151), [3](https://github.com/ch32-rs/ch32-hal/pull/139))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://avatars.githubusercontent.com/u/104085502?s=200&v=4)) | See below | | [esphome](https://github.com/esphome/esphome) | [`a31a5e7`](https://github.com/esphome/esphome/commit/a31a5e74bdfa3ece19c502a91f81b0d93414bd67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/esphome/esphome/blob/dev/.ai/instructions.md), [2](https://github.com/esphome/esphome/blob/dev/.claude/skills/pr-workflow/SKILL.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/esphome/esphome/pull/16018#pullrequestreview-4176888667), [2](https://github.com/esphome/esphome/pull/15997#pullrequestreview-4175883662)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [FastLED](https://fastled.io/) | [`3.10.1`](https://github.com/FastLED/FastLED/releases/tag/3.10.1)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FastLED/FastLED/blob/master/ADVANCED_DEVELOPMENT.md#enabling-ai-coding), [2](https://github.com/FastLED/FastLED/commit/a7fcbf316fe7b0d6759e8d9955a22ff9df4328b2), [3](https://github.com/FastLED/FastLED/commit/bcfc3c0ff8b464a50a7f5f0a8b7437131fe08995)) | [Adafruit NeoPixel](https://github.com/adafruit/Adafruit_NeoPixel) | +| [ESP-IDF](https://github.com/espressif/esp-idf) | [`5.5.2`](https://github.com/espressif/esp-idf/releases/tag/v5.5.2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-py.html#esp-idf-mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espressif/esp-idf/commit/a4c014f96ed024ba5139e2e91258ee785741d611), [2](https://github.com/espressif/esp-idf/commit/20b9e06e9262af45863bd7cc7afeba3513083266), [3](https://github.com/espressif/esp-idf/commit/380dde02d0e48a9e85abb0392ce27dcaf9322c36))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espressif/esp-idf/pull/18195), [2](https://github.com/espressif/esp-idf/pull/18273), [3](https://github.com/espressif/esp-idf/pull/18283)) | See below | +| [FastLED](https://fastled.io/) | [`3.10.1`](https://github.com/FastLED/FastLED/releases/tag/3.10.1)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FastLED/FastLED/blob/master/ADVANCED_DEVELOPMENT.md#enabling-ai-coding), [2](https://github.com/FastLED/FastLED/commit/a7fcbf316fe7b0d6759e8d9955a22ff9df4328b2), [3](https://github.com/FastLED/FastLED/commit/bcfc3c0ff8b464a50a7f5f0a8b7437131fe08995)) | See below | | [WLED](https://github.com/wled/WLED) | [`62d3e15`](https://github.com/wled/WLED/commit/62d3e155bde1077bf5784eb481cdc6e0059f993a) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wled/WLED/blob/main/AGENTS.md), [2](https://github.com/wled/WLED/blob/main/.github/agent-build.instructions.md), [3](https://github.com/wled/WLED/blob/main/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wled/WLED/pull/5547#issuecomment-4321911776), [2](https://github.com/wled/WLED/pull/5503#issuecomment-4238198330)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +> [!Note] +> #### Alternative Microcontroller Tools and Libraries: +> Suggestions for alternative microcontroller SDK's are necessarily more complex than many other categories considered here, as that's one of the core technical choices to be made when starting a new hardware development project and the fact that a microcontroller SDK contains many peices (like HAL's for hardware blocks, Wi-Fi/Bluetooth libraries) that are not easy to replicate from scratch, so don't feel pressured to switch. +> +> Switching to a different less known platform (e.g. Realtek or Beken) means losing out on many examples, community support and depending on the SDK also different licensing. +> +> Depending on your needs and technical concerns, you may find any number of different alternative microcontrollers useful. For example, when considering alternatives to ESP32 based chips, Beken may be an interesting candidate from the perspective of being a similar WiFi based microcontroller replacing the legacy ESP based microcontrollers in Wi-Fi enabled devices. +> +> For Bouffalo Lab microcontrollers: +> * [bl_iot_sdk](https://github.com/bouffalolab/bl_iot_sdk) +> +> For WCH microcontrollers: +> * [ch32fun](https://github.com/cnlohr/ch32fun) +> * Official [WCH C SDK's](https://github.com/openwch) +> +> Everything else not microcontroller-specific: +> +> * [Adafruit NeoPixel](https://github.com/adafruit/Adafruit_NeoPixel) + ## Networking ### Reverse proxies From 5895e6fca5355ec9e1da5263413f38a6bd221e76 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 12 May 2026 20:31:09 +0200 Subject: [PATCH 071/413] Give info on how to use gender nuetral language (#710) shamelessly stolen from https://codeberg.org/small-hack/core-resources/src/branch/main/CODE_OF_CONDUCT.md Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/710 --- CODE_OF_CONDUCT.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 753198d..c70cfe9 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -75,6 +75,14 @@ We're going to do a 2 strike rule here with an optional warning. You are out on This repo is specifically meant for identifying LLM usage in other projects, and coordinating on alternatives. You can also come here to ask others to please help you in chatting with another repo maintainer to sway them away from AI usage. But you need to do all of it *with kindness*. We have no interest in a rage feedback atmosphere here and won't tolerate it. Please consider your words before you hit send. +## Gender Nuetral Language + +When referring the people who work on this repo, please use gender nuetral language unless you are referring to a specific person who you know the pronouns of. You should prefer to use "they/them/themself/themselves" if you do not know the pronouns of the person you're talking to/about. You can learn more about gender nuetral language in the following resources: + +- [What are personal pronouns and why do they matter?](https://pronouns.org/what-and-why) +- [Gender-Neutral Pronouns 101: Everything You've Always Wanted to Know](https://www.them.us/story/gender-neutral-pronouns-101-they-them-xe-xem) +- [Dictionary of gender neutral language](https://en.pronouns.page/dictionary) + ## Accessibility ### Alt Text From 5c7f4f722f5391fd12a0f5950b2670d7761315b9 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 12 May 2026 20:40:57 +0200 Subject: [PATCH 072/413] Do not want to encourage more unproductive conversation around the term GNU/Linux (#711) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/711 Reviewed-by: Max --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 236adc3..ace5095 100644 --- a/README.md +++ b/README.md @@ -106,8 +106,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Operating Systems](#operating-systems) * [BSD-based](#bsd-based) * [Alternative BSD-based operating systems](#alternative-bsd-based-operating-systems) - * [GNU/Linux-based](#gnu-linux-based) - * [Alternative GNU/Linux-based operating systems](#alternative-gnu-linux-based-operating-systems) + * [Linux-based](#linux-based) + * [Alternative Linux-based operating systems](#alternative-linux-based-operating-systems) * [Kernels](#kernels) * [Other](#other-operating-systems) * [Other alternative operating systems](#other-alternative-operating-systems) @@ -969,7 +969,7 @@ This is a section for repos that are similar to this one either because they are > * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) > * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) -### GNU/Linux-based +### Linux-based | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| @@ -979,7 +979,7 @@ This is a section for repos that are similar to this one either because they are | [Ubuntu](https://ubuntu.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ubuntu.com/ai), [2](https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130)) | See below | > [!NOTE] -> #### Alternative GNU/Linux-based operating systems +> #### Alternative Linux-based operating systems > * [Chimera Linux](https://chimera-linux.org/) has [banned LLMs](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing) > * [elementary OS](https://elementary.io/) has [banned LLMs](https://docs.elementary.io/contributor-guide/development/generative-ai-policy) > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) From 78f3477c6e37b3b27b8914e67068e6ac8f39c3a5 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 12 May 2026 20:50:21 +0200 Subject: [PATCH 073/413] fix misspelling of neutral in CoC (#712) this is what I get for not getting a proper review :') With help from @jkjk Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/712 --- CODE_OF_CONDUCT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c70cfe9..c92770b 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -75,9 +75,9 @@ We're going to do a 2 strike rule here with an optional warning. You are out on This repo is specifically meant for identifying LLM usage in other projects, and coordinating on alternatives. You can also come here to ask others to please help you in chatting with another repo maintainer to sway them away from AI usage. But you need to do all of it *with kindness*. We have no interest in a rage feedback atmosphere here and won't tolerate it. Please consider your words before you hit send. -## Gender Nuetral Language +## Gender Neutral Language -When referring the people who work on this repo, please use gender nuetral language unless you are referring to a specific person who you know the pronouns of. You should prefer to use "they/them/themself/themselves" if you do not know the pronouns of the person you're talking to/about. You can learn more about gender nuetral language in the following resources: +When referring the people who work on this repo, please use gender neutral language unless you are referring to a specific person who you know the pronouns of. You should prefer to use "they/them/themself/themselves" if you do not know the pronouns of the person you're talking to/about. You can learn more about gender neutral language in the following resources: - [What are personal pronouns and why do they matter?](https://pronouns.org/what-and-why) - [Gender-Neutral Pronouns 101: Everything You've Always Wanted to Know](https://www.them.us/story/gender-neutral-pronouns-101-they-them-xe-xem) From 7fa1ff6056fe0be097fcb7081cfb64dcd75b2233 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Tue, 12 May 2026 20:51:27 +0200 Subject: [PATCH 074/413] fix spelling error in the CoC (#707) albeism -> ableism Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/707 Reviewed-by: Admin --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c92770b..552f858 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -7,7 +7,7 @@ - No transphobia. - No homophobia/queerphobia. - No sexism. -- No albeism. +- No ableism. - No islamophobia, antisemitism, or hatred to anyone based on their religion or lack thereof. - No classism. - No fascism. From 26a91920c92442b94cb5ca646357ec500af6793d Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 12 May 2026 20:54:07 +0200 Subject: [PATCH 075/413] add that you're not supposed to mention this list again, more explicitly than last time (#700) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/700 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ace5095..2327f6b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Free/Open Source Software tainted by LLM developers/developed by genAI boosters, along with alternatives. -The intention of this list is to raise awareness of AI/LLM usage in popular open-source software. Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is not a resource to be used for the harassment of other open-source developers. If you wish to advocate for the cessation of use and/or removal of AI-generated code from another project, we ask that it be done respectfully and constructively. +The intention of this list is to raise awareness of AI/LLM usage in popular open-source software. Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is not a resource to be used for the harassment of other open-source developers. If you wish to advocate for the cessation of use and/or removal of AI-generated code from another project, we ask that it be done respectfully and constructively (and do *not* mention this list). For more information on why we think this list matters, please see [Why not LLMs?](#why-not-llms). From b319113c856837ac08c417c7106a98496726a623 Mon Sep 17 00:00:00 2001 From: cloudymax Date: Tue, 12 May 2026 21:31:18 +0200 Subject: [PATCH 076/413] Add last known clean version for SeaweedFS (#714) Signed-off-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/714 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2327f6b..66f7361 100644 --- a/README.md +++ b/README.md @@ -741,7 +741,7 @@ This is a section for repos that are similar to this one either because they are | [Nextcloud](https://nextcloud.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextcloud/desktop/blob/master/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextcloud.com/assistant/)) | | [Rook/Ceph](https://rook.io/) | [`v1.17.0`](https://github.com/rook/rook/releases/tag/v1.17.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews)([1](https://github.com/rook/rook/pull/15563#pullrequestreview-2724068439))| | [RustFS](https://rustfs.com/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rustfs/rustfs/blob/main/AGENTS.md), [2](https://github.com/rustfs/rustfs/commit/6ce24f3b632f86c456a95d6e8b6ba9d05c8e4ae5), [3](https://github.com/rustfs/rustfs/commit/2bf4b1439495db1aeed5bbe474083a04a25f69e5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rustfs/rustfs/pull/2584), [2](https://github.com/rustfs/rustfs/pull/2583), [3](https://github.com/rustfs/rustfs/pull/2581))| -| [SeaweedFS](https://seaweedfs.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/seaweedfs/seaweedfs/pull/7996)) | +| [SeaweedFS](https://seaweedfs.com/) | [`3.87`](https://github.com/seaweedfs/seaweedfs/releases/tag/3.87) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/seaweedfs/seaweedfs/pull/7996)) | | [Silo](https://silo.pigsty.io/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pgsty/minio/commit/ee55e5391a5d5e4bd46d555a11b2215eb6ed836e), [2](https://github.com/pgsty/minio/commit/ce1c537eb1dd6c4efa1cf75cf5df0e2c489c947a), [3](https://github.com/pgsty/minio/commit/8630937e7d1c3426ae28508e06f7091d7bde3a49))| | [Syncthing](https://syncthing.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/syncthing/syncthing/blob/main/.deepsource.toml), [2](https://github.com/syncthing/syncthing/pull/10652)) | > [!NOTE] From 5fd011fbe57b42963c52652041de82f2eff229ef Mon Sep 17 00:00:00 2001 From: ruriofdoom Date: Tue, 12 May 2026 21:57:27 +0200 Subject: [PATCH 077/413] Add reverse-engineering tools (radare2, gdb, etc) (#671) I'm a little surprised this tool went under the radar. I might need some help with this. So, from what I've gathered: * [AGENTS.md was added on September 23rd, 2025](https://github.com/radareorg/radare2/commit/3a456fd06bbe4b8a19c661ac37919186b14f1cfc). * The project has experimented with generative AI as early as [November 29th, 2024](https://github.com/radareorg/radare2/pull/23704#issuecomment-2508575666) and [March 21st, 2025](https://github.com/radareorg/radare2/pull/24045#issuecomment-2744564684) (ChatGPT), and [June 13th, 2025](https://github.com/radareorg/radare2/pull/24284) (Claude). I've even found a mention of [Codex](https://github.com/radareorg/radare2/pull/25913). * However, I can find mentions of "copilot" from as early as [June 13th, 2023](https://github.com/radareorg/radare2/issues?q=copilot%20sort%3Acreated-asc). The mentions consist of "copilot:all", "copilot:summary", etc, which appear to be options for [Copilot-assisted PR descriptions](https://githubnext.com/projects/copilot-for-pull-requests/). I considered [Ghidra](https://github.com/NationalSecurityAgency/ghidra) as an alternative, but things don't look great there, either. At least one contributor stated to use Claude ([1](https://github.com/NationalSecurityAgency/ghidra/issues/8730), [2](https://github.com/NationalSecurityAgency/ghidra/issues/8750)), and there are open pull requests from people who also admit to using AI assistance ([1](https://github.com/NationalSecurityAgency/ghidra/pull/8366#issuecomment-3103772328), [2](https://github.com/NationalSecurityAgency/ghidra/pull/8971), [3](https://github.com/NationalSecurityAgency/ghidra/pull/9081#issue-4159907727), etc). But I'm not confident enough to add Ghidra as "slopped" because I can't find any concrete proof like an AGENTS.md or a policy directly accepting or forbidding AI. I might need to look deeper. Co-authored-by: rurionice Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/671 Reviewed-by: Admin --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index 66f7361..f54c459 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Python](#python) * [Rust](#rust) * [Alternative GUI crates](#alternative-gui-crates) + * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Social Media](#social-media) @@ -1234,6 +1235,29 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro > > On facet: If possible avoid all-in-one libraries for deserialization, and avoid macros that slow things down. +## Reverse Engineering and Debugging + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [binutils / gdb](https://www.gnu.org/software/binutils/) | [`928e6f5`](https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=928e6f5a728f6cb917ee6bdceed45e8f9da7203e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c1da013915e93155ddeedb2aea50ce3e29689e17)) | See below | +| [ImHex](https://github.com/WerWolv/ImHex) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WerWolv/ImHex/issues/1070#issuecomment-1546944994)) | See below | +| [radare2](https://github.com/radareorg/radare2) | [`7a4aa2c`](https://github.com/radareorg/radare2/commit/7a4aa2c24c063e55104bfe9cd30c3e7719479a9d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/radareorg/radare2/blob/dfe41793cade9de466d8119c4a6d04975cf300a0/AGENTS.md), [2](https://github.com/radareorg/radare2/pull/21890)) | See below | +| [Rizin](https://github.com/rizinorg/rizin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rizinorg/rizin/blob/dev/CONTRIBUTING.md#usage-of-ai-tools)) | See below | + +> [!Note] +> #### Alternatives +> [![Request for Help](./badges/request-for-help.svg)](#request-for-help) +> - Debugger: +> - [scanmem & Game Conqueror](https://github.com/scanmem/scanmem): last updated in 2024 +> - Disassembler: +> - [da65](https://cc65.github.io/doc/da65.html) (part of [cc65](https://github.com/cc65/cc65)) (MOS 6502-only) +> - [DIS6502](https://sourceforge.net/projects/dis6502/) (MOS 6502-only) +> - Hex editor: +> - Vim Classic's [xxd](https://git.sr.ht/~sircmpwn/vim-classic/tree/main/item/src/xxd) +> - [hexedit](https://github.com/pixel/hexedit) +> - [ghex](https://github.com/GNOME/ghex) +> - [hexcurse](https://github.com/prso/hexcurse-ng) + ## Search Engines | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 8d0fa3477fae0d88ba092921728e82591e7aaa41 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Tue, 12 May 2026 22:29:42 +0200 Subject: [PATCH 078/413] add Warp as an alternative for LocalSend (#715) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/715 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f54c459..9803be9 100644 --- a/README.md +++ b/README.md @@ -759,7 +759,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing) | +| [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | | [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/) | ## Filesystem Navigation From 1b046db2f0a2682c0fdeb2ab59761773b232553e Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 13 May 2026 08:20:28 +0200 Subject: [PATCH 079/413] Upate LocalSend (#719) add Sponsored by AI tag and reorder the tags as specified in STYLE.md Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/719 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9803be9..55eb79e 100644 --- a/README.md +++ b/README.md @@ -759,7 +759,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | +| [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | | [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/) | ## Filesystem Navigation From f46005eb046a0a376706cdf312a6cfff312ab0f1 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 13 May 2026 08:54:33 +0200 Subject: [PATCH 080/413] fix formatting (#720) fixes my formatting errors Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/720 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55eb79e..b6b6ade 100644 --- a/README.md +++ b/README.md @@ -759,7 +759,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | +| [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | | [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/) | ## Filesystem Navigation From 40e927dc637785e8899a949889c7a94a7b38cee0 Mon Sep 17 00:00:00 2001 From: axaloteDev Date: Wed, 13 May 2026 08:55:16 +0200 Subject: [PATCH 081/413] Fix typo in collaborate-with-me.yaml (#718) Signed-off-by: axaloteDev Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/718 Reviewed-by: Admin --- .forgejo/issue_template/collaborate-with-me.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/issue_template/collaborate-with-me.yaml b/.forgejo/issue_template/collaborate-with-me.yaml index 9663707..cf10126 100644 --- a/.forgejo/issue_template/collaborate-with-me.yaml +++ b/.forgejo/issue_template/collaborate-with-me.yaml @@ -1,7 +1,7 @@ name: Call for Collaborators for a New AI-free Project about: Put out a call for collaborators on a new or recently forked project that has an explicit No AI policy. (must have a code of conduct) -title: '[Call for Collaborators]: project name here' -ref: 'main' +title: "[Call for Collaborators]: project name here" +ref: "main" labels: - call-for-collaborators body: @@ -28,7 +28,7 @@ body: - type: input id: language attributes: - label: Programming Lanaguage + label: Programming Language description: | What programming language will this be primarily written in? From 1c77533134729688e6994b7320eec291ca15580e Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 13 May 2026 09:24:53 +0200 Subject: [PATCH 082/413] stick vacation notice to top of README as Issues and PRs will be disabled and therefore not viewable (#721) Relates to #695 This will be removed as soon as we get back from vacation :) Putting it in right now to avoid any confusion, but the repo will remain open and accessible for both PRs and Issues until this evening (CEST). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/721 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b6b6ade..a300ee6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +> [!Note] +> ## Vacation Notice +> The core maintainers of this repo will be on holiday from 14th of May until the morning (CEST) of the 18th of May. During that time Issues and Pull Requests will be closed as we cannot properly moderate during that time. Please also take time to enjoy the spring season <3 + # Open Slopware ![enbyware](https://pride-badges.pony.workers.dev/static/v1?label=enbyware&labelColor=%23555&stripeWidth=8&stripeColors=FCF434%2CFFFFFF%2C9C59D1%2C2C2C2C) From 411587e1b54eee4761c4c3b61c66b8c99623140e Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 13 May 2026 12:30:35 +0200 Subject: [PATCH 083/413] Fill in the missing no AI templates (#708) They were mostly based off the readme's "Why not LLM's?" section since the reasons in the first template also were based off that section Co-Authored by: @Pixelo789 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/708 Reviewed-by: Max Reviewed-by: Admin --- NO_AI_REQUEST_TEMPLATE.md | 100 +++++++++++++++++++++++++++++++++++++- README.md | 29 +++++------ 2 files changed, 113 insertions(+), 16 deletions(-) diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index a361ed6..27411ea 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -79,8 +79,104 @@ Thank you and kind regards :pray: ## Appeal to Code Quality Template -Feel free to submit a PR to fill this one in. +```markdown +Hello, +I'd like to talk about your AI policy. Below are some reasons why using AI can result in poorer code quality: + +## Poor Code Quality + +Vibe coding / agentic workflows result in poorer code quality, and relaxed oversight practices. These effects may be compounded by the common practice of using additional LLM-based tooling to provide code-reviews. + +* [How I Dropped Our Production Database and Now Pay 10% More for AWS](http://archive.today/2026.03.06-144058/https://alexeyondata.substack.com/p/how-i-dropped-our-production-database) +* [Claude Tested Everything Except the One Thing That Mattered (AI agent refuses to follow explicit instructions to test `createPost()` in increasingly erratic ways)](http://archive.today/2026.03.09-201135/https://christophermeiklejohn.com/ai/claude/2026/03/08/claude-tested-everything-except-the-one-thing-that-mattered.html) +* [Amazon calls engineers for a “deep dive” internal meeting to discuss “GenAI”-related outages](https://ghostarchive.org/archive/3TfgF) +* GitClear has released reports in [2024](https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality) and [2025](https://www.gitclear.com/ai_assistant_code_quality_2025_research) indicating a worsening of key code quality metrics correlating with increased LLM adoption. + +### Deskilling + +There is increasing evidence to show that LLMs negatively impact developers' coding abilities: + +* [Brains show less activity when completing tasks with LLMs](https://arxiv.org/abs/2506.08872) compared to completing tasks with search or completing tasks without digital help. +* [Developers who use early-2025 LLMs](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) reported higher subjective performance, but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. +* In an [Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. +* [A recent study uses the term "cognitive surrender"](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6097646) to describe the way humans tend to offload key critical thinking skills onto LLMs, even when the output is wrong. +* There are [anecdotal reports of LLM users forgetting how to code](https://www.theverge.com/ai-artificial-intelligence/767973/vibe-coding-ai-future-end-evolution). +* A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from MIT, Oxford, UCLA, and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for only 10 minutes causes "inpaired unassisted performance and reduced persistence". The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up"; they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". + +### Infosec risks + +LLM usage results in massive security holes. + +* [Meta Security Researcher's AI Agent Accidentally Deleted Her Emails](http://archive.today/2026.02.26-153034/https://www.pcmag.com/news/meta-security-researchers-openclaw-ai-agent-accidentally-deleted-her-emails) +* [Moltbook's "vibe-coded" breach is the future of security failures](https://thehill.com/opinion/cybersecurity/5744310-ai-powered-security-risks/) +* [In a study evaluating over 500k code samples, LLM-generated code was found to contain more high-risk security vulnerabilities than human-generated code](https://arxiv.org/abs/2508.21634) +* [LLMs make up package names, making them vulnerable to incorporating malicious code in "slopsquatting" attacks](https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/) ([Arxiv study](https://arxiv.org/abs/2406.10279)) + +## What You Can Do + +I'd like to kindly suggest implementing a strict "No AI" policy. This can also help with what seems to be larger and larger influxes of low quality drive-by PRs by AI agents. + +You can find other projects that have taken steps to say no to AI here: +https://noai.starlightnet.work/list.html + +For a specific policy, I can recommend the following policies for inspiration: + +- [wafrn's Contributring Doc](https://codeberg.org/wafrn/wafrn/src/branch/main/CONTRIBUTING.md) + +- [Loupe's Use of Generative AI Policy](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) + +Thank you and kind regards :pray: +``` ## Appeal to Fear of Legal Ramfification Template +```markdown +Hello, -Feel free to submit a PR to fill this one in. +I'd like to talk about your AI policy. Below are some reasons why using AI can result in legal trouble in the future: + +## Legal Ramifications + +LLMs are often trained on, and thus prone to regurgitate (either completely, or in-part), chunks of code that are licensed under terms which have specific legal requirements that a contributor using LLMs may not understand or even be aware of when making a contribution. Regardless of this ignorance, it falls to the repo's owner to comply with the terms of any and all licensed code integrated into their project. + +### License Problems + +Legal, copyright, and ethics problems arise, especially with copyleft licenses such as the GNU (A/L)GPL. With the "help" of AI the copyleft code may be "license-washed" very easily. + +Here are some ongoing problems with AI "license-washing" in the FOSS world: + +* `chardet` - used an LLM to rewrite the codebase from the LGPL license to Expat/MIT (and later 0-BSD) license, violating the (L)GPL. + * relicensed release: + * original author's concerns: + * "consumer's" concerns: + +Additionally, there have been legal cases regarding the usage of AI: + +* [GitHub Copilot litigation](https://githubcopilotlitigation.com/) +* [IEEE article explaining concerns about AI generated code ownership](https://spectrum.ieee.org/ai-code-generation-ownership) +* [Tracker of broader lawsuits against AI companies](https://chatgptiseatingtheworld.com/2025/11/02/tracker-of-tort-lawsuits-v-ai-companies/) + +### Stolen Training Data + +AI companies use data from across the web to train their models, most often without the website owners' and users' consent. Big tech companies like Google and Meta are scraping data from the users of major FOSS projects, such as Mastodon, WordPress, and other ActivityPub-powered and self-hosted software. + +* In 2023, [the Washington Post published a list of sources in Google's C4 data set](https://archive.ph/eehKq). A multitude of fediverse instances and personal sites were included. The fediverse is known for its userbase being major proponents of privacy and opt-in consent, making this especially jarring for those who have chosen to use decentralized social media for control over their data. +* In 2025, [a similar leak of Meta's sources was published](https://archive.ph/NZlf3). Meta's list demonstrates how their integration of ActivityPub into their Threads software has enhanced their ability to scrape content without authorization. Threads is widely blocked in some parts of the fediverse, but their scraping of server CDNs has allowed them to get around that. Notably, both the CDN domains of the managed hosting services masto.host and fedi.monster are included in the list; large servers like mastodon.art, which is hosted by the former and has many artists who've left sites like DeviantArt and others due to their AI scraping of user content, had [media unknowingly scraped](https://mastodon.art/@Curator/115022115346692178). +* In March 2026, [a research paper](https://arxiv.org/html/2603.20957v2) showed that simply fine-tuning LLMs resulted in outputs containing up to 90% of entire (copyrighted) books, contradicting LLM companies' previous statements in court that their models do not store copies of training data. After fine-tuning exclusively on a single author, the researchers were able to cause the LLM to output works from over 30 completely unrelated authors across different genres. None of the models were explicitly trained on these books by the researchers, which indicates that LLMs always carry with them a considerable amount of copyrighted materials from training. + +Usage of AI in your project is usage of tooling that blatantly disregards licensing and violates the Code of Conduct in your project (if present), making said tools antithetical to FOSS' purpose. + +## What You Can Do + +I'd like to kindly suggest implementing a strict "No AI" policy. This can also help with staying your code legally clean as code by AI agents often ignore licensing requirements. + +You can find other projects that have taken steps to say no to AI here: +https://noai.starlightnet.work/list.html + +For a specific policy, I can recommend the following policies for inspiration: + +- [wafrn's Contributring Doc](https://codeberg.org/wafrn/wafrn/src/branch/main/CONTRIBUTING.md) + +- [Loupe's Use of Generative AI Policy](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) + +Thank you and kind regards :pray: +``` \ No newline at end of file diff --git a/README.md b/README.md index a300ee6..0dab579 100644 --- a/README.md +++ b/README.md @@ -1523,31 +1523,32 @@ Could use some help writing this with concrete receipts on environmental, social ## Legal Ramifications -LLMs are often trained on, and thus prone to, regurgitate either completely, or in-part, chunks of code that are licensed under terms which have specific legal requirements that a sloperator may not understand or even be aware of when making a contribution. Regardless of this ignorance, it falls to the repo's owner to comply with the terms of any and all licensed code integrated into their project. +LLMs are often trained on, and thus prone to regurgitate (either completely, or in-part), chunks of code that are licensed under terms which have specific legal requirements that a contributor using LLMs may not understand or even be aware of when making a contribution. Regardless of this ignorance, it falls to the repo's owner to comply with the terms of any and all licensed code integrated into their project. ### Legal Cases And Law Problems -* [copilot litigations](https://githubcopilotlitigation.com/), [IEEE article explaining how we go here](https://spectrum.ieee.org/ai-code-generation-ownership) -* [broader lawsuits against AI companies tracker ](https://chatgptiseatingtheworld.com/2025/11/02/tracker-of-tort-lawsuits-v-ai-companies/) +* [GitHub Copilot litigation](https://githubcopilotlitigation.com/) +* [IEEE article explaining concerns about AI generated code ownership](https://spectrum.ieee.org/ai-code-generation-ownership) +* [Tracker of broader lawsuits against AI companies](https://chatgptiseatingtheworld.com/2025/11/02/tracker-of-tort-lawsuits-v-ai-companies/) ### License Problems -Legal, copyright and ethic problems arise especially with copyleft licenses such as (A/L)GPL. With the "help" of AI the copyleft code may be "license-washed" very easily. +Legal, copyright, and ethics problems arise, especially with copyleft licenses such as the GNU (A/L)GPL. With the "help" of AI the copyleft code may be "license-washed" very easily. There are ongoing problems with AI "license-washing" in the FOSS world: -* `chardet` - switched from LGPL to MIT license without asking all contributors (which itself is a violation of GPL) +* `chardet` - used an LLM to rewrite the codebase from the LGPL license to Expat/MIT (and later 0-BSD) license, violating the (L)GPL. * relicensed release: * original author's concerns: * "consumer's" concerns: ## Stolen Training Data -AI companies use data from across the web for training their models, most often without the website owners' and users' consent. Big tech companies like Google and Meta are scraping data from the users of major FOSS projects, such as Mastodon, WordPress, and other ActivityPub-powered and self-hosted software. +AI companies use data from across the web to train their models, most often without the website owners' and users' consent. Big tech companies like Google and Meta are scraping data from the users of major FOSS projects, such as Mastodon, WordPress, and other ActivityPub-powered and self-hosted software. * In 2023, [the Washington Post published a list of sources in Google's C4 data set](https://archive.ph/eehKq). A multitude of fediverse instances and personal sites were included. The fediverse is known for its userbase being major proponents of privacy and opt-in consent, making this especially jarring for those who have chosen to use decentralized social media for control over their data. -* In 2025, [a similar leak of Meta's sources was published](https://archive.ph/NZlf3). Meta's list demonstrates how their integration of ActivityPub into their Threads software has enhanced their ability to mine content without authorization. Threads is widely blocked in some parts of the fediverse, but their scraping of server CDNs has allowed them to get around that. Notably, both the CDN domains of the managed hosting services masto.host and fedi.monster are included in the list; large servers like mastodon.art, which is hosted by the former and has many artists who've left sites like DeviantArt and others due to their AI scraping of user content, had [media unknowingly scraped](https://mastodon.art/@Curator/115022115346692178). -* In March 2026, [a research paper](https://arxiv.org/html/2603.20957v2) showed that simply finetuning LLMs unlocked exact verbatim recall of up to 90% of entire copyrighted books contradicting LLM companies previous statements in court that their models do not store copies of traning data. After finetuning exclusively on a single author, the researchers were able to unlock verbatim recall of over 30 completely unrelated authors across different genres. None of the models were explicitly trained on these books by the researchers, this indicates that LLMs always carry with them a considerable amount of copyrighted materials from pre-training. +* In 2025, [a similar leak of Meta's sources was published](https://archive.ph/NZlf3). Meta's list demonstrates how their integration of ActivityPub into their Threads software has enhanced their ability to scrape content without authorization. Threads is widely blocked in some parts of the fediverse, but their scraping of server CDNs has allowed them to get around that. Notably, both the CDN domains of the managed hosting services masto.host and fedi.monster are included in the list; large servers like mastodon.art, which is hosted by the former and has many artists who've left sites like DeviantArt and others due to their AI scraping of user content, had [media unknowingly scraped](https://mastodon.art/@Curator/115022115346692178). +* In March 2026, [a research paper](https://arxiv.org/html/2603.20957v2) showed that simply fine-tuning LLMs resulted in outputs containing up to 90% of entire (copyrighted) books, contradicting LLM companies' previous statements in court that their models do not store copies of training data. After fine-tuning exclusively on a single author, the researchers were able to cause the LLM to output works from over 30 completely unrelated authors across different genres. None of the models were explicitly trained on these books by the researchers, which indicates that LLMs always carry with them a considerable amount of copyrighted materials from training. FOSS projects listed in this repo are using tooling that blatantly disregard licensing and violate of Codes of Conduct, making said tools antithetical to FOSS' purpose. @@ -1575,7 +1576,7 @@ On one hand, many things that you think are "AI" are actually humans in another Vibe coding / agentic workflows result in poorer code quality, and relaxed oversight practices. These effects may be compounded by the common practice of using additional LLM-based tooling to provide code-reviews. * [How I Dropped Our Production Database and Now Pay 10% More for AWS](http://archive.today/2026.03.06-144058/https://alexeyondata.substack.com/p/how-i-dropped-our-production-database) -* [Claude Tested Everything Except the One Thing That Mattered (Ai agent refuses to follow explicit instructions to test `createPost()` in increasingly erratic ways)](http://archive.today/2026.03.09-201135/https://christophermeiklejohn.com/ai/claude/2026/03/08/claude-tested-everything-except-the-one-thing-that-mattered.html) +* [Claude Tested Everything Except the One Thing That Mattered (AI agent refuses to follow explicit instructions to test `createPost()` in increasingly erratic ways)](http://archive.today/2026.03.09-201135/https://christophermeiklejohn.com/ai/claude/2026/03/08/claude-tested-everything-except-the-one-thing-that-mattered.html) * [Amazon calls engineers for a “deep dive” internal meeting to discuss “GenAI”-related outages](https://ghostarchive.org/archive/3TfgF) * GitClear has released reports in [2024](https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality) and [2025](https://www.gitclear.com/ai_assistant_code_quality_2025_research) indicating a worsening of key code quality metrics correlating with increased LLM adoption. @@ -1584,18 +1585,18 @@ Vibe coding / agentic workflows result in poorer code quality, and relaxed overs There is increasing evidence to show that LLMs negatively impact developers' coding abilities: * [Brains show less activity when completing tasks with LLMs](https://arxiv.org/abs/2506.08872) compared to completing tasks with search or completing tasks without digital help. -* [Developers who use early-2025 LLMs reported higher subjective performance](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/), but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. -* [In an Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. +* [Developers who use early-2025 LLMs](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) reported higher subjective performance, but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. +* In an [Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. * [A recent study uses the term "cognitive surrender"](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6097646) to describe the way humans tend to offload key critical thinking skills onto LLMs, even when the output is wrong. * There are [anecdotal reports of LLM users forgetting how to code](https://www.theverge.com/ai-artificial-intelligence/767973/vibe-coding-ai-future-end-evolution). -* A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from the MIT, Oxford, UCLA and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for approximately only 10 minutes causes 'inpaired unassisted performance and reduced persistence'. The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up", they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". +* A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from MIT, Oxford, UCLA, and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for only 10 minutes causes "inpaired unassisted performance and reduced persistence". The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up"; they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". ### Infosec risks -This also often results in massive security holes. +LLM usage results in massive security holes. * [Meta Security Researcher's AI Agent Accidentally Deleted Her Emails](http://archive.today/2026.02.26-153034/https://www.pcmag.com/news/meta-security-researchers-openclaw-ai-agent-accidentally-deleted-her-emails) -* [Moltbook’s ‘vibe-coded’ breach is the future of security failures](https://thehill.com/opinion/cybersecurity/5744310-ai-powered-security-risks/) +* [Moltbook's "vibe-coded" breach is the future of security failures](https://thehill.com/opinion/cybersecurity/5744310-ai-powered-security-risks/) * [In a study evaluating over 500k code samples, LLM-generated code was found to contain more high-risk security vulnerabilities than human-generated code](https://arxiv.org/abs/2508.21634) * [LLMs make up package names, making them vulnerable to incorporating malicious code in "slopsquatting" attacks](https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/) ([Arxiv study](https://arxiv.org/abs/2406.10279)) From 7dcf4d08e163a3cab495c6310f81150cfa0a04ed Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 13 May 2026 14:04:39 +0200 Subject: [PATCH 084/413] Move MTKClient to new Device Exploiting section (#689) Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/689 Reviewed-by: Admin --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0dab579..d2c0b1c 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Video](#video) * [Continuous Integration](#continuous-integration) * [Developer Tools](#developer-tools) + * [Device Exploiting](#device-exploiting) * [Documents](#documents) * [Document Converters](#document-converters) * [Document Viewers](#document-viewers) @@ -662,9 +663,14 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | +## Device Exploiting + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Documents ### Document Converters From cf7368aa8bb259878ac953a714c9c0277d5dac05 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 13 May 2026 20:34:33 +0200 Subject: [PATCH 085/413] Add TinyWiiBackupManager (#692) The icon always seemed suspicious to me, so I always ignored it based on that. I only decided to look deeper when I found out that [wii.hacks.guide was recommending it](https://wii.hacks.guide/backups). The repository itself seems fishy (lots of minor commits, emojis in the README), but the only evidence I found was [adding a deepfaked icon](https://github.com/mq1/TinyWiiBackupManager/commit/3eef34254c18e9ad93e4291999d2abbc6d90b6a0) (the mention of the deepfaked icon was removed in [this commit](https://github.com/mq1/TinyWiiBackupManager/commit/aaf6036a5a409e6f6a1439dae9611e8e419be09b)), hence the "None?" for the last untainted version. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/692 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d2c0b1c..7f2a4ed 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Gaming](#gaming) * [Game engines](#game-engines) * [Alternative game engines](#alternative-game-engines) - * [Game managers and Launchers](#game-managers-and-launchers) + * [Game Managers and Launchers](#game-managers-and-launchers) * [Mod managers](#mod-managers) * [Emulators](#emulators) * [Language and Localization](#language-and-localization) @@ -810,12 +810,13 @@ This is a section for repos that are similar to this one either because they are > #### Alternative Game Engines > - [LÖVE](https://love2d.org/) is a 2D game engine based on Lua with some 3D capability that may serve as a viable alternative to Godot/Unity depending on your project's requirements. -### Game managers and Launchers +### Game Managers and Launchers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | [`2.20.1`](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.20.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/5373)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help)| | [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260312043526/https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | +| [TinyWiiBackupManager](https://github.com/mq1/TinyWiiBackupManager) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/mq1/TinyWiiBackupManager/commit/3eef34254c18e9ad93e4291999d2abbc6d90b6a0)) | See [this post](https://pixelo789.codeberg.page/blog/2026-05-11-slop-free-wii-library-managing/) | | [umu](https://github.com/Open-Wine-Components/umu-launcher) | [`1.3.0`](https://github.com/Open-Wine-Components/umu-launcher/releases/tag/1.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Wine-Components/umu-launcher/commit/424ffbf63c64107b87d948a7bbbea64d419bce4d), [2](https://github.com/Open-Wine-Components/umu-launcher/commit/12eb390fee3821fa3260ea856006e39ed85b26ae)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ### Mod managers From 4122f594a88b95f39708237d42873df9bd89f33d Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 13 May 2026 20:37:35 +0200 Subject: [PATCH 086/413] Add Nerimity (web client) (#724) This is part one of adding Nerimity as both the server and the client are tainted, but because of the policy only letting one PR per section i had to split it into 2 PR's for both the server and the client. This is for the web client part of it **For the adding of the server side of the PR, see #725** Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/724 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7f2a4ed..52f5e94 100644 --- a/README.md +++ b/README.md @@ -895,6 +895,7 @@ This is a section for repos that are similar to this one either because they are | [Fluxer](https://fluxer.app/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260213205023/https://blog.fluxer.app/how-i-built-fluxer-a-discord-like-chat-app/), [2](https://github.com/fluxerapp/fluxer/blob/refactor/CONTRIBUTING.md#4-understand-the-code-you-submit), [3](https://github.com/fluxerapp/fluxer/issues/435)) | | [gomuks](https://github.com/gomuks/gomuks) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gomuks/gomuks/commit/5d6c1ba57cc4617ef1218805b1cfd0d1f7613ed0)) | [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| +| [Nerimity](https://github.com/Nerimity/nerimity-web) | [`9077876`](https://github.com/Nerimity/nerimity-web/commit/90778766e5947540f5fcbe5075247c8990507f40) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-web/pull/638), [2](https://github.com/Nerimity/nerimity-web/pull/621), [3](https://github.com/Nerimity/nerimity-web/pull/605))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| From 6ebefa275bd9efba65d78f442f5355df0354b067 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 13 May 2026 20:39:00 +0200 Subject: [PATCH 087/413] Add Nerimity (server component) (#725) This is part two of adding Nerimity as both the server and the client are tainted, but because of the policy only letting one PR per section i had to split it into 2 PR's for both the server and the client. This is for the server side part of it **For the adding of the client side of the PR, see #724** Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/725 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52f5e94..edb9432 100644 --- a/README.md +++ b/README.md @@ -875,6 +875,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | +| [Nerimity](https://github.com/Nerimity/nerimity-server) | [`661d069`](https://github.com/Nerimity/nerimity-server/commit/661d0693474180cee8d167c1201015c278c7a360) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-server/pull/40), [2](https://github.com/Nerimity/nerimity-server/pull/38), [3](https://github.com/Nerimity/nerimity-server/pull/32))| | [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | > [!Note] From d6fac91717d981fcf4f20b79c7eb2df2cb59e6af Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 14 May 2026 09:06:07 +0200 Subject: [PATCH 088/413] it's euopean spring (#727) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/727 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index edb9432..62be375 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ > [!Note] > ## Vacation Notice -> The core maintainers of this repo will be on holiday from 14th of May until the morning (CEST) of the 18th of May. During that time Issues and Pull Requests will be closed as we cannot properly moderate during that time. Please also take time to enjoy the spring season <3 +> The core maintainers of this repo will be on holiday from 14th of May until the morning (CEST) of the 18th of May. During that time Issues and Pull Requests will be closed as we cannot properly moderate during that time. Please also take time to enjoy the European spring season <3 # Open Slopware From 5e36a94be4572c6e2696087448d1cfb40af4e11d Mon Sep 17 00:00:00 2001 From: Admin Date: Thu, 14 May 2026 09:10:53 +0200 Subject: [PATCH 089/413] add redumper (#723) closes #253 Co-authored-by: JesseBot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/723 --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 62be375..36a0e9f 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Photography](#photography) * [Video](#video) * [Continuous Integration](#continuous-integration) + * [Data Archival](#data-archival) * [Developer Tools](#developer-tools) * [Device Exploiting](#device-exploiting) * [Documents](#documents) @@ -654,6 +655,12 @@ This is a section for repos that are similar to this one either because they are | [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | | [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | +## Data Archival + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [redumper](https://github.com/superg/redumper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/superg/redumper/issues/365#issuecomment-4159043849)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Developer Tools > [!WARNING] @@ -700,7 +707,7 @@ This is a section for repos that are similar to this one either because they are | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | See editors below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | @@ -1341,9 +1348,9 @@ This section is strictly for software implementing a core set of UNIX-like utili | [LogFox](https://github.com/F0x1d/LogFox) | [`dd1405c`](https://github.com/F0x1d/LogFox/commit/dd1405c67737601b27530533feeebf73711fe47e), version [2.0.7](https://github.com/F0x1d/LogFox/releases/tag/v2.0.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/F0x1d/LogFox/blob/master/AGENTS.md), [2](https://github.com/F0x1d/LogFox/tree/master/.claude), [3](https://github.com/F0x1d/LogFox/commit/c7953ec38f480c4d0a8ec5311e03ff2d562422b3)) | > [!note] -> +> > #### Alternatives for Android -> +> > - [Rootless Logcat](https://github.com/tananaev/rootless-logcat) > - [aShell You](https://github.com/DP-Hridayan/aShellYou) or [aShell](https://gitlab.com/sunilpaulmathew/ashell) running the `logcat`command. > - Direct use of the `logcat` command in the Android shell. From 1cc259934237a6f74d045e5484e1f81915455af6 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 18 May 2026 11:13:33 +0200 Subject: [PATCH 090/413] Remove vacation notice (#728) Closes #695 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/728 --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 36a0e9f..da5bab7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,3 @@ -> [!Note] -> ## Vacation Notice -> The core maintainers of this repo will be on holiday from 14th of May until the morning (CEST) of the 18th of May. During that time Issues and Pull Requests will be closed as we cannot properly moderate during that time. Please also take time to enjoy the European spring season <3 - # Open Slopware ![enbyware](https://pride-badges.pony.workers.dev/static/v1?label=enbyware&labelColor=%23555&stripeWidth=8&stripeColors=FCF434%2CFFFFFF%2C9C59D1%2C2C2C2C) From 23695a4337da53d15978d9ba264052f0a3d67ace Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 18 May 2026 12:34:05 +0200 Subject: [PATCH 091/413] Add Citations as an alternative for Zotero (#729) While I haven't personally tried it, it seems like a suitable alternative. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/729 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da5bab7..6bc5159 100644 --- a/README.md +++ b/README.md @@ -454,7 +454,7 @@ This is a section for repos that are similar to this one either because they are | [Booklore](https://github.com/the-booklore/booklore/tree/develop) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Zotero](https://www.zotero.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Zotero](https://www.zotero.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) | [Citations](https://apps.gnome.org/Citations/) | ## Bootloaders From 355d772e9bf0b6f3d36a7459a87dc8275552e12a Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 18 May 2026 13:35:31 +0200 Subject: [PATCH 092/413] Update Luanti evidence with more egregious PR (#733) Also see https://codeberg.org/small-hack/open-slopware/pulls/221#issuecomment-15189738. TL;DR: larger LLM-generated PR got merged while LLM policy discussion was ongoing. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/733 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6bc5159..8b8942b 100644 --- a/README.md +++ b/README.md @@ -806,7 +806,7 @@ This is a section for repos that are similar to this one either because they are | [GDevelop](https://gdevelop.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gdevelop.io/), [2](https://github.com/4ian/GDevelop/commit/6ec16045d140a9d55721f71620e128d4969c5fe6), [3](https://github.com/4ian/GDevelop/pull/8509/commits/74409a280cd248ee4d54523b23f5c1507d6380af)) | [Pandemonium Engine] | | [GZDoom](https://github.com/zdoom/gzdoom) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2)) | [UZDoom](https://github.com/UZDoom/UZDoom), [Chocolate Doom](https://www.chocolate-doom.org/) | | [Jmonkey](https://jmonkeyengine.org/)| [`3.6.1-stable`](https://github.com/jMonkeyEngine/jmonkeyengine/releases/tag/v3.6.1-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/jMonkeyEngine/jmonkeyengine/pull/2640)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/jMonkeyEngine/jmonkeyengine/pull/2640#issuecomment-4039106977) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Luanti](https://luanti.org) | [`5.14.0`](https://github.com/luanti-org/luanti/releases/tag/5.14.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/luanti-org/luanti/pull/16808), [2](https://github.com/luanti-org/luanti/pull/16961), [3](https://github.com/luanti-org/luanti/pull/17019)) | [ClassiCube](https://www.classicube.net/)
[Cubyz](https://github.com/PixelGuys/Cubyz)
[Cubos](https://cubosengine.org) | +| [Luanti](https://luanti.org) | [`5.14.0`](https://github.com/luanti-org/luanti/releases/tag/5.14.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/luanti-org/luanti/pull/16808), [2](https://github.com/luanti-org/luanti/pull/16961), [3](https://github.com/luanti-org/luanti/pull/17095)) | [ClassiCube](https://www.classicube.net/)
[Cubyz](https://github.com/PixelGuys/Cubyz)
[Cubos](https://cubosengine.org) | | [UPBGE 0.5](https://upbge.org/) | [`0.36.1`](https://github.com/UPBGE/upbge/releases/tag/v0.36.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | > [!NOTE] From bc60689eaaaff17a909f42cabdcc563fe6732ca6 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 18 May 2026 15:36:17 +0200 Subject: [PATCH 093/413] note our stance on the term NSFW (#735) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/735 --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 552f858..889cff9 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -32,7 +32,7 @@ That will display like this: homophobic content goes here. -Failure to do so will first result in a one time warning and future offenses will be considered a strike. +Failure to do so will first result in a one time warning and future offenses will be considered a strike. We ask that you do not use the acronym "NSFW" and instead use specific tags such as "nudity" or "discussion of sex" as to be inclusive to all workers. # On handling rude comments in this repo specifically From e23c0ffcd2060ea14b0bad8d8a025d15eb406ec6 Mon Sep 17 00:00:00 2001 From: Christopher Araujo Date: Mon, 18 May 2026 20:53:00 +0200 Subject: [PATCH 094/413] Add es-toolkit and fnm (#740) This PR adds `es-toolkit` and `fnm` to the JavaScript section. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/740 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8b8942b..f925038 100644 --- a/README.md +++ b/README.md @@ -1184,6 +1184,8 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [Deno](https://github.com/denoland/deno) | [`6002d26`](https://github.com/denoland/deno/commit/6002d2624e567d92c5d659be77dfa14fc4db28fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/.github/CONTRIBUTING.md), [2](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/CLAUDE.md), [3](https://xcancel.com/i/status/2013280952370573666))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/denoland/deno/pull/33335#pullrequestreview-4143170352)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [es-toolkit](https://es-toolkit.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://es-toolkit.dev/ai-integration.html))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/toss/es-toolkit/blob/main/AGENTS.md), [2](https://github.com/toss/es-toolkit/commit/b3f1f5433144a54c80fb61e4c9fda0d71cf9c85f)) | [Lodash](https://github.com/lodash/lodash) | +| [fnm](https://fnm.vercel.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Schniz/fnm/blob/master/AGENTS.md)) | [asdf](https://asdf-vm.com/), [n](https://github.com/tj/n) | | [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 8c0f5130e2fcd1fc85231fccca174b9e742bcf1f Mon Sep 17 00:00:00 2001 From: Christopher Araujo Date: Mon, 18 May 2026 20:54:28 +0200 Subject: [PATCH 095/413] Add Ruby section with Hanakai and Rails (#741) This PR adds Hanakai and Rails to a new section for Ruby. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/741 Reviewed-by: Admin --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index f925038..6831877 100644 --- a/README.md +++ b/README.md @@ -1222,6 +1222,15 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [uv](https://docs.astral.sh/uv/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/astral-sh/.github/blob/c5187e200db51bfe11d56e13053d29bd3793fdd8/AI_POLICY.md), [2](https://github.com/astral-sh/uv/blob/00d72dac7b789d1c64ed21626175b80f4a1b8f2b/CLAUDE.md), [3](https://github.com/astral-sh/uv/commit/bd2e0c9b09551c6570b14c4da80364fe90805b78))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://astral.sh/blog/openai)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ty](https://docs.astral.sh/ty/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/astral-sh/.github/blob/c5187e200db51bfe11d56e13053d29bd3793fdd8/AI_POLICY.md), [2](https://github.com/astral-sh/ty/commit/065338a1fcc24ac5b974724dbb5d8a3ab740c5b7))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://astral.sh/blog/openai)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Ruby + +Note that Ruby is itself tainted; see [the Programming Languages section](#programming-languages). + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Hanakai](https://hanakai.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hanakai.org/ai-policy)) | [sinatra](https://sinatrarb.com) | +| [Ruby on Rails](https://rubyonrails.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rails/rails/blob/main/AGENTS.md)) | [sinatra](https://sinatrarb.com) | + ### Rust | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 68609b1379affb38da047242eb50ce5f467a0eef Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 18 May 2026 21:15:53 +0200 Subject: [PATCH 096/413] Add TS for GIR (#730) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/730 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6831877..5c26331 100644 --- a/README.md +++ b/README.md @@ -1190,6 +1190,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://opensource.fb.com/projects/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [TS for GIR](https://gjsify.github.io/docs/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gjsify/ts-for-gir/blob/80ecf9e071c82f4d107ebf7d1129cb363a025f0d/AGENTS.md), [2](https://github.com/gjsify/ts-for-gir/pull/320), [3](https://github.com/gjsify/ts-for-gir/commit/7b1e2b31df06f59046899d4b2d476187afad95aa)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Typebox](https://github.com/sinclairzx81) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sinclairzx81/typebox/pull/1015), [2](https://github.com/sinclairzx81/typebox/issues/1294), [3](https://github.com/sinclairzx81/typebox/issues/1364)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vite](http://vite.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/copilot-instructions.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md#sponsors), [2](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md?plain=1#L19))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/workflows/issue-template-check.yml#L50)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 75c2d54a31757fdc0a08449d4b57fa9bc1ece6c5 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 18 May 2026 22:09:53 +0200 Subject: [PATCH 097/413] add "what about open source ai" section (#744) Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/744 --- FAQ.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 5c9cfc2..eb8bf91 100644 --- a/FAQ.md +++ b/FAQ.md @@ -40,4 +40,8 @@ There's no great place to put these in our current files, but these sorts of que ## Can you advise us on the ethical usage of AI? -> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs section](https://codeberg.org/small-hack/open-slopware#why-not-llms). \ No newline at end of file +> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs section](https://codeberg.org/small-hack/open-slopware#why-not-llms). + +## What about "Open Source AI"? + +> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section and thus such projects will still be included on this list. \ No newline at end of file From d95deccca65fbadb2a8fe6ac1d0ea12b09eed734 Mon Sep 17 00:00:00 2001 From: Fireye Date: Mon, 18 May 2026 23:04:10 +0200 Subject: [PATCH 098/413] Update SearXNG (#742) - Add link to project - Remove references to ai functionality: all seem to be issues and proposals, not actual features. The worst thing I could find in this vein was a comment within [3] that suggested maintainers would theoretically accept such features, should their integration be "technically feasible and the goals of SearXNG are not violated" (https://github.com/searxng/searxng/issues/2163#issuecomment-2676107816) - Add link to permissive LLM policy Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/742 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c26331..34a633e 100644 --- a/README.md +++ b/README.md @@ -1290,7 +1290,7 @@ Note that Ruby is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| Searxng | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/searxng/searxng/issues?q=copilot))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/searxng/searxng/issues/2273), [2](https://github.com/searxng/searxng/issues/2008), [3](https://github.com/searxng/searxng/issues/2163)) | [LibreY](https://github.com/Ahwxorg/librey/),
[marginalia](https://github.com/MarginaliaSearch/MarginaliaSearch),
[securityops.co](https://git.securityops.co/securityops/securitysearch) | +| [Searxng](https://github.com/searxng/searxng) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/searxng/searxng/blob/master/AI_POLICY.rst))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/searxng/searxng/issues?q=copilot)) | [LibreY](https://github.com/Ahwxorg/librey/),
[marginalia](https://github.com/MarginaliaSearch/MarginaliaSearch),
[securityops.co](https://git.securityops.co/securityops/securitysearch) | ## Service Monitoring From ebbea77dcbc5d2a42aac3ac9d7c4770f6fa88be0 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 19 May 2026 19:36:16 +0200 Subject: [PATCH 099/413] update KeePassChi to their new name, ChiPass (#751) Also include their contribution policy which explicitly bans AI. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/751 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34a633e..9beae21 100644 --- a/README.md +++ b/README.md @@ -1059,7 +1059,7 @@ This is a section for repos that are similar to this one either because they are > ### Password Manager Alternatives > * [rbw](https://github.com/doy/rbw) (client) > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. -> * [KeePassChi](https://codeberg.org/keepasschi/keepasschi): A fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051). +> * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051) and a [No AI Contribution Policy](https://codeberg.org/ChiPass/ChiPass/src/branch/main/CODE_OF_CONDUCT.md). > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. > * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. From beaf5489d3ccdb13d067d0621391266c63a6bdb4 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 19 May 2026 23:44:11 +0200 Subject: [PATCH 100/413] Add Vibecoded badge for Bun with Zig to Rust vibe-rewrite (#732) At this point, I believe Bun has crossed the line into "Vibecoded" territory with their vibe-rewrite. Of course this had to happen during vacation. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/732 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9beae21..b9fde7c 100644 --- a/README.md +++ b/README.md @@ -1180,7 +1180,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [ArkType](https://arktype.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://arktype.io/llms.txt), [2](https://github.com/arktypeio/arktype/blob/main/.cursor/commands/armstrong.md), [3](https://github.com/arktypeio/arktype/pull/1553#issuecomment-3672923281))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/arktypeio/arktype/pull/1594)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/oven-sh/bun/pull/30412), [2](https://www.theregister.com/devops/2026/05/14/anthropics-bun-rust-rewrite-merged-at-speed-of-ai/5240381))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Deno](https://github.com/denoland/deno) | [`6002d26`](https://github.com/denoland/deno/commit/6002d2624e567d92c5d659be77dfa14fc4db28fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/.github/CONTRIBUTING.md), [2](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/CLAUDE.md), [3](https://xcancel.com/i/status/2013280952370573666))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/denoland/deno/pull/33335#pullrequestreview-4143170352)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From d3ccc8566fce6ff7fdfe35adaa226480befda241 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 19 May 2026 23:55:27 +0200 Subject: [PATCH 101/413] explain why removal is hard. (#754) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/754 --- FAQ.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index eb8bf91..c7bfb6b 100644 --- a/FAQ.md +++ b/FAQ.md @@ -44,4 +44,8 @@ There's no great place to put these in our current files, but these sorts of que ## What about "Open Source AI"? -> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section and thus such projects will still be included on this list. \ No newline at end of file +> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section and thus such projects will still be included on this list. + +## Why is removal harder than landing on the list in the first place? + +> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concreate, and enforcable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. \ No newline at end of file From c703e400ba5cacd0e7749f2082f3f3a7b8f0d6ac Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 20 May 2026 21:29:14 +0200 Subject: [PATCH 102/413] make it clear that we don't want social media posts (#752) Co-authored-by: JesseBot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/752 --- CONTRIBUTING.md | 4 +++- FAQ.md | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebbeff6..625aca6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,6 +45,8 @@ The criteria for being included in this repository are any of following tags. Yo Alternatives should not contain any slop as defined by our tagging system above. +Please don't submit social media posts as evidence unless it is a post *by a maintainer of the tainted project* talking about using AI to develop the tainted project. Even then, we'd prefer links to a project's LLM commits in a git forge, AI/contributing policies, or blog posts. + ### Style guide When submitting new software to this list, please check out the [style guide](./STYLE.md) to ensure you are conforming to our community agreed upon standards. @@ -82,4 +84,4 @@ In either case, one thing you can do is react positively to a given upstream iss # Social media -We would appreciate it if you did not mention this repo on social media or in chats in order to shame a project or community. Do not make posts like, "`` should be added to the open-slopware list", especially if you are tagging a maintainer or using a project's hashtag. +We would appreciate it if you did not mention this repo on social media or in chats in order to shame a project or community. Do not make posts like, "`` should be added to the open-slopware list", especially if you are tagging a maintainer or using a project's hashtag. Please also don't quote social media posts in the "Why not LLMs" section. \ No newline at end of file diff --git a/FAQ.md b/FAQ.md index c7bfb6b..75aa5d5 100644 --- a/FAQ.md +++ b/FAQ.md @@ -20,16 +20,16 @@ There's no great place to put these in our current files, but these sorts of que ## If a repo had slop before, isn't it permanently tainted? Aren't all forks of slop therefore also slop? -> No. See also: [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal). +> No. See also: [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal). > > Eventually, the slop will likely either be removed, replaced, or deprecated. > > We're also against AI for more than just code quality reasons. There's plenty of ethical reasons to be against continuing to use AI: -> +> > - [environmental](https://codeberg.org/small-hack/open-slopware#environmental-impact) > - [ties to the war industrial complex](https://codeberg.org/small-hack/open-slopware#ties-to-the-war-industrial-complex) > - [effect on hardware prices hurting newcomers to the industry](https://codeberg.org/small-hack/open-slopware#effect-on-hardware-prices) (especially those already disenfranchised) -> +> > The commitment to stop using AI stops those above ethical issues. It's like going vegetarian. You're still a vegetarian if you previously consumed meat, but now you don't. You've still reduced suffering and helped the environment. A commitment to doing better is better than never stopping a harmful action. ## Is a project tainted if it has dependencies that are tainted? @@ -48,4 +48,12 @@ There's no great place to put these in our current files, but these sorts of que ## Why is removal harder than landing on the list in the first place? -> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concreate, and enforcable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. \ No newline at end of file +> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concreate, and enforcable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. + +## Why can't I include an social media post? + +> We do not want to have a social media type atmosphere here and quoting social media posts, no matter what side people are on, gets messy. The mtaintiners here do not have the mental health to engage in social media drama that inevitably arises from AI bros, nor do we want to inflict that on anyone who is unaware of this list and hasn't consented to that attention. This does not mean you should reach out to your favorite anti-AI influencer for permission to include them in this list. We don't want you to do that. + +### But what if it's a social media post against AI? + +> We would then need to research those social media users and see if we endorse them or not and we don't want to do that either. From 73f3910d7530a945a43742c4e4472ffe60d75742 Mon Sep 17 00:00:00 2001 From: yuli Date: Wed, 20 May 2026 22:06:49 +0200 Subject: [PATCH 103/413] add Yazi (#760) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/760 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9fde7c..985c636 100644 --- a/README.md +++ b/README.md @@ -789,6 +789,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Superfile](https://superfile.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/yorukot/superfile/blob/main/.gitignore),[2](https://github.com/yorukot/superfile/commit/4f875e5c2e0e2a837a2c4a6548dbc09f76905c29),[3](https://github.com/yorukot/superfile/commit/130f1ef57b8314dd4bc5c7a22eac6db996da4361))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/yorukot/superfile/pull/1405),[2](https://github.com/yorukot/superfile/pull/1391),[3](https://github.com/yorukot/superfile/pull/1387))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#ai-sponsored) ([1](https://github.com/yorukot/superfile#----superfile-is-supported-by-the-community--))| [lf](https://github.com/gokcehan/lf),
[Midnight Commander](https://midnight-commander.org/),
[vifm](https://vifm.info/) | +| [Yazi](https://yazi-rs.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sxyazi/yazi/pull/3038), [2](https://github.com/sxyazi/yazi/commit/eb537733a2c5b09649b56284b74dbdd4e70006ec))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sxyazi/yazi/pull/3949),[2](https://github.com/sxyazi/yazi/pull/3934),[3](https://github.com/sxyazi/yazi/pull/3930))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#ai-sponsored) ([1](https://github.com/sxyazi/yazi/blob/main/README.md), [2](https://github.com/sxyazi/yazi/commit/7f1e9b83fdd5a63aed048ecf17ef51e9b2584901))| [lf](https://github.com/gokcehan/lf),
[Midnight Commander](https://midnight-commander.org/),
[vifm](https://vifm.info/) | ## Forum Software From b1240532239fb5a9d6e8ceab392c63f470f79bc5 Mon Sep 17 00:00:00 2001 From: KazWolfe Date: Thu, 21 May 2026 23:24:07 +0200 Subject: [PATCH 104/413] Add Rust and links to AI-assisted PRs. (#761) Add Rust and links to AI-assisted PRs. (#761) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/761 Reviewed-by: Admin --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 985c636..4b83454 100644 --- a/README.md +++ b/README.md @@ -1088,6 +1088,7 @@ This is a section for repos that are similar to this one either because they are | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | | [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | +| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rust-lang/rust/commit/6fd846676801486d304030698cc8dac261b98680))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | | [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | @@ -1235,6 +1236,8 @@ Note that Ruby is itself tainted; see [the Programming Languages section](#progr ### Rust +Note that Rust is itself tainted; see [the Programming Languages section](#programming-languages). + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From e7b19089a5500c9a551f1838d40ffbe0a32a1b06 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 21 May 2026 23:37:05 +0200 Subject: [PATCH 105/413] Move curl to Networking section, add AI sponsorship, and add permissive LLM policy (#763) Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/763 Reviewed-by: Admin --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b83454..719b73a 100644 --- a/README.md +++ b/README.md @@ -664,7 +664,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | @@ -951,6 +950,10 @@ This is a section for repos that are similar to this one either because they are ## Networking +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://curl.se/dev/contribute.html#on-ai-use-in-curl), [2](https://mastodon.social/@bagder/116204333476519757))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://mastodon.social/@bagder/116609161259593989)) | [Wget](https://www.gnu.org/software/wget/) | + ### Reverse proxies | Name | Last Untainted Version or Commit ID | Tags and Evidence | From a1d48f26f6d445912238070ebc3d0d04e0ff93f8 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 21 May 2026 23:44:16 +0200 Subject: [PATCH 106/413] Add GitHub Store (#759) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/759 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 719b73a..693fbd2 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Accounting and Budgeting](#accounting-and-budgeting) * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) * [API Documentation](#api-documentation) + * [App Catalogs and Downloaders](#app-catalogs-and-downloaders) * [App Launchers](#app-launchers) * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) @@ -356,6 +357,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## App Catalogs and Downloaders + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [GitHub Store](https://github-store.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/OpenHub-Store/GitHub-Store/blob/2c7026337d6e8df6d87962a4bbe2366fcc336296/AGENTS.md), [2](https://github.com/OpenHub-Store/GitHub-Store/commit/49cd2c1378915af0435ccf15ab6158d3b330f278), [3](https://github.com/OpenHub-Store/GitHub-Store/commit/4c3af650d977d8aaac62a59d8db273b05bc81a7d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/OpenHub-Store/GitHub-Store/pull/107), [2](https://github.com/OpenHub-Store/GitHub-Store/pull/115), [3](https://github.com/OpenHub-Store/GitHub-Store/pull/632)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## App Launchers ### Mobile Launchers From 5f40a492d23c7259b39f05b162adf5698898407d Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 21 May 2026 23:48:02 +0200 Subject: [PATCH 107/413] Add Open-Shell (#762) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/762 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 693fbd2..dffb070 100644 --- a/README.md +++ b/README.md @@ -1554,6 +1554,7 @@ All-in-one solutions for stitching together a desktop. |---|:---:|---|---| | [DankMaterialShell](https://github.com/AvengeMedia/DankMaterialShell) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AvengeMedia/DankMaterialShell/blob/master/.agents/settings.local.json), [2](https://github.com/AvengeMedia/DankMaterialShell/commit/7cdeba162531baecb2fd8dc302b4cc33b4a229a8)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Noctalia Shell](https://github.com/noctalia-dev/noctalia-shell) | [`v2.7.0`](https://github.com/noctalia-dev/noctalia-shell/releases/tag/v2.7.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/search?q=repo%3Anoctalia-dev%2Fnoctalia-shell%20Claude&type=commits)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Open-Shell](https://open-shell.github.io/Open-Shell-Menu/) | [`4.4.197`](https://github.com/Open-Shell/Open-Shell-Menu/releases/tag/v4.4.197) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Shell/Open-Shell-Menu/pull/2451)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | # Why not LLMs? From c26b374af81b608cf80291b5169164ca097c379a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 22 May 2026 10:54:49 +0200 Subject: [PATCH 108/413] add cryptsetup (#722) closes #292 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/722 Co-authored by: @PeculiarDemon Co-authored by: @axaloteDev --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index dffb070..02b4f90 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) + * [Disk Encryption](#disk-encryption) * [File Transferring](#file-transferring) * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) @@ -774,6 +775,12 @@ This is a section for repos that are similar to this one either because they are > For MinIO: > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. +### Disk Encryption + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## File Transferring | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From e9f4bb982b66579447885c7437e3c36ec5cfe92a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 22 May 2026 11:45:24 +0200 Subject: [PATCH 109/413] remove verge article by an author quoting racist people (#772) see #736 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/772 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 02b4f90..0d046b6 100644 --- a/README.md +++ b/README.md @@ -1634,7 +1634,6 @@ There is increasing evidence to show that LLMs negatively impact developers' cod * [Developers who use early-2025 LLMs](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) reported higher subjective performance, but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. * In an [Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. * [A recent study uses the term "cognitive surrender"](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6097646) to describe the way humans tend to offload key critical thinking skills onto LLMs, even when the output is wrong. -* There are [anecdotal reports of LLM users forgetting how to code](https://www.theverge.com/ai-artificial-intelligence/767973/vibe-coding-ai-future-end-evolution). * A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from MIT, Oxford, UCLA, and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for only 10 minutes causes "inpaired unassisted performance and reduced persistence". The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up"; they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". ### Infosec risks From 6ac069ec15d53a7c749577a60484bdf81a0422b2 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 22 May 2026 12:16:22 +0200 Subject: [PATCH 110/413] Sort badges in CMS section and add WordPress 7.0 for "AI Functionality" (#768) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/768 Reviewed-by: Admin --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0d046b6..e6e4367 100644 --- a/README.md +++ b/README.md @@ -430,9 +430,9 @@ This is a section for repos that are similar to this one either because they are | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | | [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/blob/main/AGENTS.md), [2](https://github.com/TryGhost/Ghost/pull/27666), [3](https://github.com/TryGhost/Ghost/pull/27642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TryGhost/Ghost/pull/27667), [2](https://github.com/TryGhost/Ghost/pull/27211)) | [WriteFreely] | -| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | -| [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))| [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | +| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md)) | [WriteFreely] | +| [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092)) | [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/), [2](https://wordpress.org/download/releases/7.0/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449)) | [WriteFreely] | ### Static Site Generators From 4f8d437e8599d842c56609897543d94f048b4886 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 22 May 2026 12:16:56 +0200 Subject: [PATCH 111/413] Move Golly to new Cellular Automata subsection and add last untainted commit (#769) Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/769 Reviewed-by: Admin --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e6e4367..19ac5bf 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [File Managers](#file-managers) * [Forum Software](#forum-software) * [Gaming](#gaming) + * [Cellular Automata](#cellular-automata) * [Game engines](#game-engines) * [Alternative game engines](#alternative-game-engines) * [Game Managers and Launchers](#game-managers-and-launchers) @@ -672,7 +673,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | ## Device Exploiting @@ -812,6 +812,12 @@ This is a section for repos that are similar to this one either because they are ## Gaming +### Cellular Automata + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Golly](https://golly.sourceforge.io/) | [`883b1ff`](https://sourceforge.net/p/golly/code/ci/883b1ff4f61d66426caf49768e7b1704ec7dadfc/) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Game engines | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 2f0c24f18715b2344bf13d59c57986e32753dd44 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 22 May 2026 15:06:08 +0200 Subject: [PATCH 112/413] remove article that references a racist (#775) relates to #736 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/775 --- NO_AI_REQUEST_TEMPLATE.md | 1 - 1 file changed, 1 deletion(-) diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index 27411ea..90e56d2 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -101,7 +101,6 @@ There is increasing evidence to show that LLMs negatively impact developers' cod * [Developers who use early-2025 LLMs](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) reported higher subjective performance, but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. * In an [Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. * [A recent study uses the term "cognitive surrender"](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6097646) to describe the way humans tend to offload key critical thinking skills onto LLMs, even when the output is wrong. -* There are [anecdotal reports of LLM users forgetting how to code](https://www.theverge.com/ai-artificial-intelligence/767973/vibe-coding-ai-future-end-evolution). * A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from MIT, Oxford, UCLA, and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for only 10 minutes causes "inpaired unassisted performance and reduced persistence". The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up"; they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". ### Infosec risks From 25d1dd4bdfbe173ef20b1f596ac1f6dd73dc8b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Fri, 22 May 2026 16:15:22 +0200 Subject: [PATCH 113/413] add fastfetch and hyfetch (#765) add fastfetch and hyfetch (#765) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/765 Reviewed-by: Admin --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 19ac5bf..948e627 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Clients](#clients) * [SSH](#ssh) * [System Base](#system-base) + * [System Information Utilities](#system-information-utilities) * [System Logs Managers](#system-logs-managers) * [Android](#android) * [Alternatives for Android](#alternatives-for-android) @@ -1373,6 +1374,24 @@ This section is strictly for software implementing a core set of UNIX-like utili | [plan9port](https://9fans.github.io/plan9port/) | [`0155f29`](https://github.com/9fans/plan9port/commit/0155f29bdc3cf0cab017fd7b33bf9e93cb9af64c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/9fans/plan9port/pull/748)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [uutils](https://uutils.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/uutils/coreutils/pull/11717), [2](https://github.com/uutils/coreutils/commit/6e18efb218dbd4d7ad7441d255d02fb0c1df4bf0) [3](https://github.com/uutils/coreutils/pull/11918#issuecomment-4284527284))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/uutils/coreutils/pull/7266), [2](https://github.com/uutils/coreutils/pull/10505), [3](https://github.com/uutils/coreutils/pulls?q=copilot)) | [Busybox](https://busybox.net/),
GNU coreutils | +## System Information Utilities + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [fastfetch](https://github.com/fastfetch-cli/fastfetch) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fastfetch-cli/fastfetch/commit/f5dfec6dcb0ea3048826b5e5f558f0ab4c9f4506), [2](https://github.com/fastfetch-cli/fastfetch/commit/451bc394eeffe2e1b709cf4fd102de8400db528d), [3](https://github.com/fastfetch-cli/fastfetch/commit/fe1c5c8f6f8139a56e20fd50effd144d09682744))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fastfetch-cli/fastfetch/pull/2331), [2](https://github.com/fastfetch-cli/fastfetch/pull/2287), [3](https://github.com/fastfetch-cli/fastfetch/pull/2220)) | See below | +| [hyfetch](https://github.com/hykilpikonna/hyfetch) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hykilpikonna/hyfetch/pull/482), [2](https://github.com/hykilpikonna/hyfetch/commit/9500e8c0aa0f64ed231ba700c4eaac75e505312d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hykilpikonna/hyfetch/pull/484), [2](https://github.com/hykilpikonna/hyfetch/pull/481), [3](https://github.com/hykilpikonna/hyfetch/pull/480)) | See below | + +> [!Note] +> #### Alternatives +> As of writing and to the best of our knowledge, none of these projects have LLM usage, but they also have no explicit policies against AI. +> +> - [Archey 4](https://github.com/HorlogeSkynet/archey4) displays info in a similar way to neofetch (and fastfetch) +> - [macchina](https://github.com/Macchina-CLI/macchina) +> - [nerdfetch](https://github.com/ThatOneCalculator/NerdFetch) +> - [neofetch](https://github.com/dylanaraps/neofetch) and [screenFetch](https://github.com/KittyKatt/screenFetch) are still technically options, although they both have officially ceased development. +> +> The [Wikipedia page for neofetch](https://en.wikipedia.org/wiki/Neofetch#Other_implementations) also lists many implementations of neofetch in different programming languages, it may be worth a look as well. + ## System Logs Managers ### Android From 0895a3e8179fc0a66ced2fc603873092a52b4726 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 22 May 2026 22:36:15 +0200 Subject: [PATCH 114/413] Move watchexec to new File Monitoring section (#770) Closes #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/770 Reviewed-by: Admin --- README.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 948e627..2e8af47 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Video](#video) * [Continuous Integration](#continuous-integration) * [Data Archival](#data-archival) - * [Developer Tools](#developer-tools) * [Device Exploiting](#device-exploiting) * [Documents](#documents) * [Document Converters](#document-converters) @@ -81,6 +80,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [E-mail Desktop Clients](#e-mail-desktop-clients) * [E-mail Mobile Clients](#e-mail-mobile-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) + * [File Monitoring](#file-monitoring) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) * [Disk Encryption](#disk-encryption) @@ -667,15 +667,6 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [redumper](https://github.com/superg/redumper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/superg/redumper/issues/365#issuecomment-4159043849)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -## Developer Tools - -> [!WARNING] -> We are working on deprecating this section. Please do not add anything else here and instead add to existing sections or create additional sections that are more specific. - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | - ## Device Exploiting | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -753,6 +744,12 @@ This is a section for repos that are similar to this one either because they are |---------|:--------------:|----------|-------| | [Giggity](https://github.com/Wilm0r/giggity) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Wilm0r/giggity/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## File Monitoring + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | + ## File Storage | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 709d3cf13cdfd42451bf64088544253878393add Mon Sep 17 00:00:00 2001 From: FlemyJY Date: Sat, 23 May 2026 00:36:47 +0200 Subject: [PATCH 115/413] Update nushell (#748) * Added their `AGENTS.md` as evidence * marked `0.95.0` as last untainted * the `mcp` was added in `0.108.0` * the first commit of the vibe-coder is `21a54d47a00f09e3710e08ee7624e7b4332dcb27` (<`0.108.0`) * the first commit co-authored-by a LLM is `21a54d47a00f09e3710e08ee7624e7b4332dcb27` (<`0.108.0`) * the first code definitively written by a LLM is `3aab69110e5864518f51c97a6453d15551115a64` (<`0.96.0`) (tests generated by copilot) * with [this](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839) (<`0.96.0`) i am not entirely sure if and to which degree it got added (`Let's run with it and see what happens` might be about the AI-suggestion or about the PR as a whole) * if anything before that exists it is undisclosed * since one is uncertain and both are <`0.96.0` i decided to just mark `0.95.0` as last untainted instead of a commit Co-authored-by: FlemyJY Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/748 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e8af47..44276a9 100644 --- a/README.md +++ b/README.md @@ -561,7 +561,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [nushell](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | +| [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | | [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | | [xonsh](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | From 479f37c6c23fb26f262655cf5a371d75b06d3d4f Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 23 May 2026 08:12:19 +0200 Subject: [PATCH 116/413] Add Webpack (#780) Webpack piloted Copilot for PRs when it was introduced, so the last untainted tag is the last tag before they started piloting Copilot. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/780 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 44276a9..cc5edb2 100644 --- a/README.md +++ b/README.md @@ -1217,6 +1217,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [Typebox](https://github.com/sinclairzx81) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sinclairzx81/typebox/pull/1015), [2](https://github.com/sinclairzx81/typebox/issues/1294), [3](https://github.com/sinclairzx81/typebox/issues/1364)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vite](http://vite.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/copilot-instructions.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md#sponsors), [2](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md?plain=1#L19))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/workflows/issue-template-check.yml#L50)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Webpack](https://webpack.js.org/) | [`v5.76.3`](https://github.com/webpack/webpack/releases/tag/v5.76.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webpack/webpack/pull/20640), [2](https://github.com/webpack/webpack/pull/20648), [3](https://github.com/webpack/webpack/pull/20978))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/webpack/webpack/pull/16881), [2](https://github.com/webpack/webpack/pull/20828), [3](https://github.com/webpack/webpack/pull/20834)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Zod](https://zod.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/colinhacks/zod/blob/main/AGENTS.md), [2](https://github.com/colinhacks/zod/blob/main/CLAUDE.md), [3](https://github.com/colinhacks/zod/blob/main/.cursorrules))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/colinhacks/zod/blob/c7805073fef5b6b8857307c3d4b3597a70613bc2/packages/zod/README.md?plain=1#L40)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Lua From e694e45535e85d639add3c59e32a73d5bdda1dd8 Mon Sep 17 00:00:00 2001 From: ch0ccyra1n Date: Sat, 23 May 2026 12:19:31 +0200 Subject: [PATCH 117/413] add last untainted OpenBSD release (#777) Based on available evidence, it appears that version 7.8, pre-dating the recent contributions from Anthropic, is the last untainted version of OpenBSD. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/777 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc5edb2..c6c8f0a 100644 --- a/README.md +++ b/README.md @@ -1000,7 +1000,7 @@ This is a section for repos that are similar to this one either because they are | [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | | [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | | [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md), [2](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | -| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | +| [OpenBSD](https://openbsd.org) | [7.8](https://www.openbsd.org/78.html) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | > [!NOTE] > #### Alternative BSD-based operating systems From 2ad94a4e9946218937b6b13e38ad06db6612f05a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 23 May 2026 12:20:38 +0200 Subject: [PATCH 118/413] really drive home the ethical issues in the no ai request template (#776) content warning: the file change here contains mention of genocide, murder (especially child murder). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/776 --- NO_AI_REQUEST_TEMPLATE.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index 90e56d2..e58eb9a 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -61,6 +61,21 @@ This has resulted in pricing historically marginalized individuals, who are more A lot of AI companies also work directly with nation states for use in their War Departments, which in turn leads to further AI usage during war and invasions. This is coupled with [NYT: Palantir, Anthropic and small start-ups are generating rewards from their investments in defense tech](https://www.nytimes.com/2026/03/18/technology/silicon-valley-war-defense-tech.html). +As another example [NPR: OpenAI announced Pentagon deal after Trump banned Anthropic](https://www.npr.org/2026/02/27/nx-s1-5729118/trump-anthropic-pentagon-openai-ai-weapons-ban) which was due to the USA Department of War [launching an AI acceleration strategy](https://web.archive.org/web/20260113071131/https://www.war.gov/News/Releases/Release/Article/4376420/war-department-launches-ai-acceleration-strategy-to-secure-american-military-ai/). + +Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intensionally or not. Examples: + +

+ Content Warning: War details, death + + - [Gaza: UN experts deplore use of purported AI to commit ‘domicide’ in Gaza, call for reparative approach to rebuilding](https://www.ohchr.org/en/press-releases/2024/04/gaza-un-experts-deplore-use-purported-ai-commit-domicide-gaza-call) + - [Lavender & Where’s Daddy: How Israel Used AI to Form Kill Lists & Bomb Palestinians in Their Homes](https://www.democracynow.org/2024/4/5/israel_ai) + - [Microsoft says it provided AI to Israeli military for war](https://apnews.com/article/microsoft-israel-military-gaza-hamas-artificial-intelligence-20b2adb438b39ee9cb6eb2f52c1ae44a) + - [Google has dropped its promise not to use AI for weapons](https://theconversation.com/google-has-dropped-its-promise-not-to-use-ai-for-weapons-its-part-of-a-troubling-trend-249169) + - ["We want to use it for everything": How Project Maven became central to America’s AI-powered warfare](https://web.archive.org/web/20260312035736/https://www.independent.co.uk/news/world/americas/project-maven-ai-us-airstrike-iraq-anthropic-b2929138.html) + +
+ ## What You Can Do I'd like to kindly suggest implementing a strict "No AI" policy. This can also help with what seems to be larger and larger influxes of low quality drive-by PRs by AI agents. From faca9aacd94e5e433a2479b72736f4cf4b8d4ac2 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 23 May 2026 12:21:25 +0200 Subject: [PATCH 119/413] give a bit more info on gotosocial and wafrn (#766) just to help people find their community and/or share their art :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/766 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c6c8f0a..f7e6acb 100644 --- a/README.md +++ b/README.md @@ -1343,9 +1343,9 @@ This is for both social media websites and apps. | [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [PieFed](https://join.piefed.social/) | > [!Note] -> #### Generic social media server alternatives -> * [GoToSocial] -> * [Wafrn](https://codeberg.org/wafrn/wafrn/) supports both ActivityPub and ATproto +> #### Social media server alternatives +> * [GoToSocial] (Note the [gallery profile layout](https://docs.gotosocial.org/en/v0.21.2/user_guide/settings/#gallery) for those that want a more pixelfed/instagram experience such as artists/creators) +> * [Wafrn](https://codeberg.org/wafrn/wafrn/) (Closest to tumblr) supports both ActivityPub and ATproto > * [snac2](https://codeberg.org/grunfink/snac2) > * [Iceshrimp.NET](https://iceshrimp.net/) > * [Epicyon](https://codeberg.org/bashrc/epicyon) From 0b6cf1df0d28faaaa3b4ded4f6079a85579e268b Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 23 May 2026 12:23:00 +0200 Subject: [PATCH 120/413] Add FreeRDP (#781) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/781 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index f7e6acb..58a9713 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Python](#python) * [Rust](#rust) * [Alternative GUI crates](#alternative-gui-crates) + * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) @@ -1289,6 +1290,12 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > > On facet: If possible avoid all-in-one libraries for deserialization, and avoid macros that slow things down. +## Remote Desktop + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [FreeRDP](https://www.freerdp.com/) | [`3.20.0`](https://github.com/FreeRDP/FreeRDP/releases/tag/3.20.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FreeRDP/FreeRDP/commit/bd67348eb3380a66b544835346191bd2138a5ba4), [2](https://github.com/FreeRDP/FreeRDP/commit/95e17c57fd1a5e729516ee6bfb351ec02c431f90), [3](https://github.com/FreeRDP/FreeRDP/commit/45ace279494e8dfdfe0f94ac885d807a4288cda7)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Reverse Engineering and Debugging | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 9332b0017a5581526e8c62dc3eb04164385fd710 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 23 May 2026 12:23:35 +0200 Subject: [PATCH 121/413] Add PyO3 (#779) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/779 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 58a9713..bd10dd5 100644 --- a/README.md +++ b/README.md @@ -1269,6 +1269,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | | [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162)), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | +| [PyO3](https://pyo3.rs) | [`v0.23.5`](https://github.com/PyO3/pyo3/releases/tag/v0.23.5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyO3/pyo3/pull/5615), [2](https://github.com/PyO3/pyo3/pull/5933), [3](https://github.com/PyO3/pyo3/pull/5870))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyO3/pyo3/pull/4768), [2](https://github.com/PyO3/pyo3/pull/5724), [3](https://github.com/PyO3/pyo3/pull/5729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | | [Slint](https://github.com/slint-ui/slint) | [`1.14.1`](https://github.com/slint-ui/slint/tree/v1.14.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slint-ui/slint/blob/master/AGENTS.md), [2](https://github.com/slint-ui/slint/commit/f479ae6d8ee24de17634e22e8079374222a4a8fd)) | See below | From 07974036f20591c5126eea6adffd55def903c513 Mon Sep 17 00:00:00 2001 From: znmz Date: Sat, 23 May 2026 22:55:00 +0200 Subject: [PATCH 122/413] Add cppcheck & cpplint (#704) Add cppcheck & cpplint Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/704 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bd10dd5..d6b9ff1 100644 --- a/README.md +++ b/README.md @@ -1135,6 +1135,8 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| +| [cppcheck](https://github.com/cppcheck-opensource/cppcheck) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cppcheck-opensource/cppcheck/commit/376d7f1896e1b9145a369055d5f15be2d87cea11))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cppcheck-opensource/cppcheck/pull/8491), [2](https://github.com/cppcheck-opensource/cppcheck/pull/7517), [3](https://github.com/cppcheck-opensource/cppcheck/pull/7457)) | [ccls](https://github.com/MaskRay/ccls)? | +| [cpplint](https://github.com/cpplint/cpplint) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cpplint/cpplint/pull/423), [2](https://github.com/cpplint/cpplint/pull/412), [3](https://github.com/cpplint/cpplint/pull/411)) | [ccls](https://github.com/MaskRay/ccls)? | | [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gobject-linter](https://github.com/bilelmoussaoui/gobject-linter) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 3fc9235f2cf37f94b6afaa7bf8586f43f566b427 Mon Sep 17 00:00:00 2001 From: axaloteDev Date: Sun, 24 May 2026 02:04:36 +0200 Subject: [PATCH 123/413] Tidy Editors (#667) - Remove the VS Code image evidence in favour of a link - Remove VSCodium as alternative as per #549 - Add Lapce, Gram and Hemlock to the Alternative Editors note, removing the alternatives column - Correct Lem's tag order as per #638 and !666, and remove the last untainted version (keeping the commit) - Alphabetize alternative editors and links at the end of the file - Separate Note Software - Change category name to "Text And Code Editors" Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/667 Reviewed-by: Admin --- README.md | 95 ++++++++++++++++++++++------------------ img/evidence/vscode.png | Bin 382280 -> 0 bytes 2 files changed, 53 insertions(+), 42 deletions(-) delete mode 100644 img/evidence/vscode.png diff --git a/README.md b/README.md index d6b9ff1..0341de5 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Documents](#documents) * [Document Converters](#document-converters) * [Document Viewers](#document-viewers) - * [Editors](#editors) - * [Note Software Alternatives](#note-software-alternatives) - * [Alternative TUI Code Editors](#alternative-tui-code-editors) * [E-Mail and Calendar](#e-mail-and-calendar) * [E-mail Desktop Clients](#e-mail-desktop-clients) * [E-mail Mobile Clients](#e-mail-mobile-clients) @@ -151,6 +148,10 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) * [Terminal Multiplexer Alternatives](#terminal-multiplexers-alternatives) + * [Text and Code Editors](#text-and-code-editors) + * [Alternative Text And Code Editors](#alternative-text-and-code-editors) + * [Note Software](#note-software) + * [Note Software Alternatives](#note-software-alternatives) * [Unified Push Distributors](#unified-push-distributors) * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) @@ -690,39 +691,6 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Sumatra PDF](https://www.sumatrapdfreader.org/) | [`v3.5.2`](https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/3.5.2rel) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sumatrapdfreader/sumatrapdf/commit/aad9f76790d2f44894d73e28620eac41aeb5eb5c))| [Xournal++](https://xournalpp.github.io/) | -## Editors - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | -| [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | -| [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | See note software below | -| [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | See editors below | -| [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) [`v2.3.0`](https://github.com/lem-project/lem/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb)) | [Hemlock](https://phemlock.common-lisp.dev/) | -| [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | -| [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | -| [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | See editors below | -| [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | -| [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | -| [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | -| [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | -| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./img/evidence/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | -| [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | [Lapce](https://lap.dev/lapce/)
[Gram](https://codeberg.org/GramEditor/gram) (fork)
Others (GNU Emacs, etc.) | - -> [!Note] -> ### Note Software Alternatives -> - [flatnotes](https://github.com/dullage/flatnotes) (Markdown-based) -> - [Zettlr](https://www.zettlr.com/) (Markdown-based) - -> [!NOTE] -> ### Alternative TUI Code Editors -> * [GNU Emacs] -> * [EVi] -> * [vim-classic] -> * Other forks of VIm prior to March 20th 2024, build [v9.1.0190](https://github.com/vim/vim/releases/tag/v9.1.0190) or commit [`8950bf7f8b85c1287d4e696965d88091fcc60594`](https://github.com/vim/vim/commit/8950bf7f8b85c1287d4e696965d88091fcc60594) - ## E-Mail and Calendar ### E-Mail Desktop Clients @@ -1469,6 +1437,45 @@ This section is strictly for software implementing a core set of UNIX-like utili > - [GNU Screen](https://www.gnu.org/software/screen/) > - [mtm](https://github.com/deadpixi/mtm) +## Text and Code Editors + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | +| [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | +| [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | +| [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | +| [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | +| [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | +| [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | +| [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | +| [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | +| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://code.visualstudio.com/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | +| [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | + +> [!NOTE] +> ### Alternative Text and Code Editors +> * [EVi] (TUI) +> * [GNU Emacs] (TUI, GUI) +> * [Gram] (GUI) +> * [Hemlock] (TUI, GUI) +> * [Lapce] (GUI) +> * [Vim Classic] (TUI) + +### Note Software +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | +| [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | +| [Memos](https://usememos.com/) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | + +> [!Note] +> #### Note Software Alternatives +> - [flatnotes](https://github.com/dullage/flatnotes) (Markdown-based) +> - [Zettlr](https://www.zettlr.com/) (Markdown-based) + ## Unified Push Distributors | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -1772,29 +1779,33 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal -[Eqonomize]: https://eqonomize.github.io/ -[GNU Emacs]: https://www.gnu.org/software/emacs/ [Epiphany]: https://apps.gnome.org/Epiphany +[Eqonomize]: https://eqonomize.github.io/ [EVi]: https://codeberg.org/NerdNextDoor/evi [ffplay]: https://ffmpeg.org/ffplay.html [foot]: https://codeberg.org/dnkl/foot [Game of Trees]: https://gameoftrees.org/ [Garage]: https://garagehq.deuxfleurs.fr/ -[Grisbi]: https://grisbi.org/ [GNOME Boxes]: https://gnomeboxes.org [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal +[GNU Emacs]: https://www.gnu.org/software/emacs/ +[GnuTLS]: https://www.gnutls.org/ [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial +[Gram]: https://codeberg.org/GramEditor/gram +[Grisbi]: https://grisbi.org/ +[Hemlock]: https://phemlock.common-lisp.dev/ [HomeBank]: https://www.gethomebank.org/ [Idris]: https://www.idris-lang.org/ [iocraft]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java +[Konsole]: https://invent.kde.org/utilities/konsole +[Lapce]: https://lap.dev/lapce/ [libmicrohttpd]: https://www.gnu.org/software/libmicrohttpd/ [LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ [LibreOffice Draw]: https://www.libreoffice.org/download/download-libreoffice/ [LibreTube]: https://libretube.dev [Lua]: https://lua.org -[Konsole]: https://invent.kde.org/utilities/konsole [MATE Terminal]: https://wiki.mate-desktop.org/mate-desktop/applications/mate-terminal/ [matrix]: https://matrix.org [Pandemonium Engine]: https://pandemoniumengine.org/ @@ -1804,10 +1815,10 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Schilytools]: https://codeberg.org/schilytools/schilytools [Scratch 1.4]: https://scratch.mit.edu/scratch_1.4 [Scratch 2]: https://scratch.mit.edu/download/scratch2 -[Showtime]: https://apps.gnome.org/Showtime/ [SMPlayer]: https://www.smplayer.info/ +[Showtime]: https://apps.gnome.org/Showtime/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden -[vim-classic]: https://drewdevault.com/2026/03/25/2026-03-25-Forking-vim.html +[Vim Classic]: https://sr.ht/~sircmpwn/vim-classic/ [virt-manager]: https://virt-manager.org [wafrn-rn]: https://codeberg.org/wafrn/wafrn-rn [waterfox]: https://www.waterfox.com diff --git a/img/evidence/vscode.png b/img/evidence/vscode.png deleted file mode 100644 index 1ec022b7e0c8bfca586c35aa9026e52ee58bd787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382280 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%0D*CZ+dF2+fIkf~c}-K4Bb)gSVbml?ApG4r zb*G;ThS>)28mwFS0BZn>Q9{1`fQJ~g1jwVc1BVvNPq0$Xln~m{v1|TvVEt+5)jW$+Kyi2^LOs#(>@#0fA#_K zVy8k+LA>?Z(y*m}?FAjeFe>guhN9LlAAu7M_5Mh2@5->=$9W*`*agOfkyB-5WmW3x zkTJoKB@^1zGCrGtUHE+5MMv`>^PI(V@;tjycm9~N@C(=AsjrCX`@om({5}b5SFEDf ziY9F0KcpTu7zpY;B>JEXa{BR*VD$%21fGZZjUS-|^wiUGjXWG3;SyDLXNSfWw(`Xw zJw2c`Am0YqaG;FNtD}Pj!kmpJmMfnD*TpJi)&mAUez$gq3`oEREEw6K_ag9OHGw%V zB8(+=;Ssd5CRy+fSfZ>+Adn&Dbb@TJ6br9PpIpLX>0yIO4>+Q}sR;#H1MO)9gv%R5 z1}Xw$K>N}XoT5!c_~Qn*si$Z6eJ{cHmVKE%V6SOOt$mn?EoZbxdoMs{RzLYKEdlV# zW5z*Kle```hMe}Z{5J`Z#6UyiqNr9-E&416=;l#?SJ3Zd+KIdS@iJkm+3Q@hfA@$|7&@9hu@4CU8BH#12ELY!&kF!W5 zObO{Nf72>W*jW4op$-Z#VNU)_c?`3dz<_{u2JeZ^ZZ><|tp*8%DLNQ9=7`{tcimPU zn5W}!Qw)2nH{%a-eE61$ECBJ?zdh=*cMhyj=_y*W2g{c@wV1s{sYrnwALK7!`+x)? zqT#(j$p9hbkTE%>e?N}`?AejF!~G5$Wq)n5R^1$ZTxZ-pcupxc=S2{wvJ-ifqTlnN zl<+GC5{T+!nErl4^#r>_DuX>^jcTHf0meKaP`bWD+EanIQtEv+Vn$*LIi~v^h-a~% z+g(#E4J5W^+ai$8^9l;2rZ1*kKWRq?@4cqHYeIf(W3GLE6f+p7Tucr*KJ9>7V(5hN zbx!ghR$&yA81z)Fm4`y6TUFux_)9YS`BPy9{+#>2O(NExlo4k?886q8}c zNDgf={e;chbRfy5m*q~mhn4P(#3o9V5oEXWwJ-t}(EhW@!f7+$DNOcx5-0+eNmSC{ zw{+QO){t{f$H8TVcv{fS0T)9&Xi$5K0KTnF$On6?ddJ(_Z8%%iPPR$|Z9rEJJmRx$;|N@0^b$4%gkv4BcR}I8sy7dh@Zl4XHr!O?T%C{l zxwlGmQ5%eY^0!B_Q@gyBBOy&JaGu2=0U(guE?Ep(<3S`yV9-vS)EVgF9j()e0_${6 z(@9^3*6GMifpt1fz``)>Ep}>#u~r|6S98lF%fcmUC3=cze-xOG`y{BNu0DTqIiq=c zfoQS6)u-AzI(^~<6SkDl>CZu&-H4Bu@9Deg)OKy-`BF-Ja-!>U_CBjIHggbcDp4~@ zt#^1Q+@FpIeEg$(uVA_lByu=S*qTPbezXYi=9HcpzG$!6yqz6`J^yLC?MORW2}GH1 zQ)fNRS#b&ikAv_Kuy3SjoB)s!kQai*HFx+GG(5%y-dk<}Aa0{Z9cCbO?@LXpOV1*P8S+xu8ct#zj*+BQz00JvL!aq8#5eig7f+Ur_O-LJd(F)9@dSZuie%o3cZ5%=7GgYLg9+g&ZzXi+_hZz!aXL7NK|HmldJp6ELVe z2x4r^*y$qGG`~hr!yj~XxI7s9b#E>y60HOljPZ{I)}^IOpyzLv$N7Y-QBiK!GYGBoA9ud zn#H`q5fSs5u*l?O8>i_;R&Z(p;2q{9BIC%7gBWLkQ_v{wz3txaSEl(S# zlmIAU8AohK#NAIBUQ0iLa-R+e%cBY5AH(G3StcfDd@WE2xUi_+tuMCuO8g%B5QaXK zJJiRh7(s)XJYqpEr+*Xh9dDF^Q-g@{Z~Wjx({Et8JYgmOQs7t!JL+B#MC1+)a=HbHHm5~!|o*S)u)b~STp6-tbN zO`?~LwIm#-qViwH3@=QP&4(i2yg6|}=+m>EU@Hg0aSjfZ(Xo΢qg#)h#FBrHUy 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%0DNZasjkff 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 z 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 z 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
{sUyw4z|{~ulOjfVsELxRfx$mdH_31s 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

X6g@=0D?c~-N+?MFFz21q6qQ5v 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 B51Ie~ From 565a329a1dd3fbc5c89d9dc302071fe4a538d39b Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 24 May 2026 08:03:07 +0200 Subject: [PATCH 124/413] fix typos and misspellings (#785) (Mostly) detected with `codespell` and `typos` programs, which I wholeheartedly recommend everybody using to check their writings :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/785 Reviewed-by: Admin --- FAQ.md | 2 +- NO_AI_REQUEST_TEMPLATE.md | 4 ++-- README.md | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/FAQ.md b/FAQ.md index 75aa5d5..63ebed0 100644 --- a/FAQ.md +++ b/FAQ.md @@ -48,7 +48,7 @@ There's no great place to put these in our current files, but these sorts of que ## Why is removal harder than landing on the list in the first place? -> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concreate, and enforcable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. +> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concreate, and enforceable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. ## Why can't I include an social media post? diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index e58eb9a..fc7c0bd 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -63,7 +63,7 @@ A lot of AI companies also work directly with nation states for use in their Wa As another example [NPR: OpenAI announced Pentagon deal after Trump banned Anthropic](https://www.npr.org/2026/02/27/nx-s1-5729118/trump-anthropic-pentagon-openai-ai-weapons-ban) which was due to the USA Department of War [launching an AI acceleration strategy](https://web.archive.org/web/20260113071131/https://www.war.gov/News/Releases/Release/Article/4376420/war-department-launches-ai-acceleration-strategy-to-secure-american-military-ai/). -Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intensionally or not. Examples: +Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intentionally or not. Examples:

Content Warning: War details, death @@ -193,4 +193,4 @@ For a specific policy, I can recommend the following policies for inspiration: - [Loupe's Use of Generative AI Policy](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) Thank you and kind regards :pray: -``` \ No newline at end of file +``` diff --git a/README.md b/README.md index 0341de5..d982fda 100644 --- a/README.md +++ b/README.md @@ -530,7 +530,7 @@ This is a section for repos that are similar to this one either because they are > #### Desktop Browser Alternatives > * [Epiphany] (by GNOME, WebKit based) does not currently have a stance, but GNOME developers as a whole [show aware anti-"AI" sentiments](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) and roll out [wide reaching rules](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) against it. > * [Servo] (New engine, formerly owned by Mozilla, now by a co-op) is not yet daily driver ready, but has [strong protections](https://book.servo.org/contributing/getting-started.html#ai-contributions) for when it is some time in the future. -> * [waterfox] They have [clear anti-ai stance](https://www.waterfox.com/blog/no-ai-here-response-to-mozilla/) +> * [Waterfox] They have [clear anti-ai stance](https://www.waterfox.com/blog/no-ai-here-response-to-mozilla/) ### Headless Browsers @@ -549,7 +549,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > #### Mobile Browser Alternatives > * [IronFox] For Android, while not officially related to LibreWolf, some of the same developers work on it. -> * [waterfox] For Android. +> * [Waterfox] For Android. ## Cheat Sheets and Documentation @@ -918,7 +918,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > #### Alternative Microcontroller Tools and Libraries: -> Suggestions for alternative microcontroller SDK's are necessarily more complex than many other categories considered here, as that's one of the core technical choices to be made when starting a new hardware development project and the fact that a microcontroller SDK contains many peices (like HAL's for hardware blocks, Wi-Fi/Bluetooth libraries) that are not easy to replicate from scratch, so don't feel pressured to switch. +> Suggestions for alternative microcontroller SDK's are necessarily more complex than many other categories considered here, as that's one of the core technical choices to be made when starting a new hardware development project and the fact that a microcontroller SDK contains many pieces (like HAL's for hardware blocks, Wi-Fi/Bluetooth libraries) that are not easy to replicate from scratch, so don't feel pressured to switch. > > Switching to a different less known platform (e.g. Realtek or Beken) means losing out on many examples, community support and depending on the SDK also different licensing. > @@ -1025,7 +1025,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > ### Package Manager Alternatives -> For most operating systems, there should be a default package mananager provided to you (e.g. `apt`). You may consider using this, or you can consider a manual installation of the software you choose. There's also the option of compiling from source. Cross-platform alternatives include: +> For most operating systems, there should be a default package manager provided to you (e.g. `apt`). You may consider using this, or you can consider a manual installation of the software you choose. There's also the option of compiling from source. Cross-platform alternatives include: > > * [pkgsrc](https://pkgsrc.org/) - A framework for managing third-party software on UNIX-like systems. Used by default on [NetBSD](https://www.netbsd.org/) and [SmartOS](https://wiki.smartos.org/), but also available on Linux, macOS, and illumos. > @@ -1707,7 +1707,7 @@ A lot of AI companies also work directly with nation states for use in their Dep As another example [NPR: OpenAI announced Pentagon deal after Trump banned Anthropic](https://www.npr.org/2026/02/27/nx-s1-5729118/trump-anthropic-pentagon-openai-ai-weapons-ban) which was due to the USA Department of War [launching an AI acceleration strategy](https://web.archive.org/web/20260113071131/https://www.war.gov/News/Releases/Release/Article/4376420/war-department-launches-ai-acceleration-strategy-to-secure-american-military-ai/). -Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intensionally or not. Examples: +Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intentionally or not. Examples:
Content Warning: War details, death @@ -1821,7 +1821,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Vim Classic]: https://sr.ht/~sircmpwn/vim-classic/ [virt-manager]: https://virt-manager.org [wafrn-rn]: https://codeberg.org/wafrn/wafrn-rn -[waterfox]: https://www.waterfox.com +[Waterfox]: https://www.waterfox.com [WriteFreely]: https://writefreely.org/ [xfce4-terminal]: https://gitlab.xfce.org/apps/xfce4-terminal [XTerm]: https://xterm.dev/ From 17757d5376e0795cd3e743ef796066b166d0a01a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 24 May 2026 08:08:33 +0200 Subject: [PATCH 125/413] update netBSD to be specific about ambigity and update note on switching OS (#771) relates to #767 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/771 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d982fda..13db5b3 100644 --- a/README.md +++ b/README.md @@ -960,7 +960,7 @@ This is a section for repos that are similar to this one either because they are ## Operating Systems > [!NOTE] -> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. +> Operating systems are not easy things to switch over night, and you may run into compatibility issues, so if you choose to switch, remember that it's OK to do so slowly. ### BSD-based @@ -975,7 +975,7 @@ This is a section for repos that are similar to this one either because they are > #### Alternative BSD-based operating systems > * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) -> * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) +> * [NetBSD](https://www.netbsd.org/) has [allows core maintainers to sign off on LLM generated code](https://www.netbsd.org/developers/commit-guidelines.html), but to date they have not yet. ### Linux-based From ae74a7074b806c8cf880d4e5c50d75eb81d6d989 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 24 May 2026 08:09:12 +0200 Subject: [PATCH 126/413] update GNUMach to have "Permits LLM Ingestion" tag (#773) Closes #502 Thanks to these commenters for doing the legwork of finding this evidence: - https://codeberg.org/small-hack/open-slopware/issues/502#issuecomment-14551023 from @tusharhero - https://codeberg.org/small-hack/open-slopware/issues/502#issuecomment-13900424 from @GentooCommits Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/773 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 13db5b3..0725f0e 100644 --- a/README.md +++ b/README.md @@ -998,7 +998,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Other Operating Systems From 99e92cd8618681e850ff8932ab8ec2655d400820 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 24 May 2026 13:13:01 +0200 Subject: [PATCH 127/413] fix monospace for last untainted openbsd version (#787) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/787 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0725f0e..4e94e6c 100644 --- a/README.md +++ b/README.md @@ -969,7 +969,7 @@ This is a section for repos that are similar to this one either because they are | [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | | [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | | [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md), [2](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | -| [OpenBSD](https://openbsd.org) | [7.8](https://www.openbsd.org/78.html) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | +| [OpenBSD](https://openbsd.org) | [`7.8`](https://www.openbsd.org/78.html) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | > [!NOTE] > #### Alternative BSD-based operating systems From 011dba9b0211bd6b69509831313d48bec26396d3 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 24 May 2026 13:20:40 +0200 Subject: [PATCH 128/413] Add niri as tainted (#788) Closes #374 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/788 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4e94e6c..f9e4ad8 100644 --- a/README.md +++ b/README.md @@ -1566,6 +1566,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res | [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | | [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | +| [niri](https://github.com/niri-wm/niri) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/niri-wm/niri/blob/main/CONTRIBUTING.md#ai-contributions)) | > [!NOTE] > ### Window Managers Alternatives From 8110002abbb910589ce7dfc94fd8d92c77a52090 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 24 May 2026 13:32:00 +0200 Subject: [PATCH 129/413] Add borg (#789) Closes #281 That a member used Claude to respond to people genuinely asking for an AI policy is particularly embarrassing when there are children's lives on the line, so we put that as the first link, and then added their "use AI responsibly" contribution policy as the second link. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/789 --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index f9e4ad8..9683d28 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) * [Podcast Aggregators](#podcast-aggregators) + * [Backups](#backups) * [Benchmarking](#benchmarking) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) @@ -417,6 +418,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [AntennaPod](https://github.com/AntennaPod/AntennaPod) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md), [2](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Backups + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [borg](https://github.com/borgbackup/borg) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/borgbackup/borg/issues/9409#issuecomment-3974230340), [2](https://github.com/borgbackup/borg/blob/master/CONTRIBUTING.md#responsible-ai-usage)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Benchmarking | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 3a18159ead8355ce8632cd495e5fc39a9f764b3d Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Sun, 24 May 2026 13:37:31 +0200 Subject: [PATCH 130/413] add wezterm (#602) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/602 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9683d28..7aecc95 100644 --- a/README.md +++ b/README.md @@ -1416,6 +1416,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | [OpenWarp](https://openwarp.zerx.dev) | None | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://openwarp.zerx.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zerx-lab/warp/commit/8f4eef1fce88c17c2cf1af452ea2e7f348fc8406), [2](https://github.com/zerx-lab/warp/commit/0c6b5d37c5a65eba97abe01587b65d3db8427aa9), [3](https://github.com/zerx-lab/warp/commit/52f4e17905fba725b62738d882c65662532a347b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zerx-lab/warp/pull/48)) | | [Warp](https://warp.dev) | None |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://warp.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/warpdotdev/warp/commit/fc1157e066576bf0d577ab18426d66a5d5dcc3da), [2](https://github.com/warpdotdev/warp/commit/1d1c06db0fd7ccfea7e99ad938f7278a12cdf575), [3](https://github.com/warpdotdev/warp/commit/6ea1a52af1d02914ab43e2f2e4e37f1dedaa99fd))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/warpdotdev/warp/pull/10004), [2](https://github.com/warpdotdev/warp/pull/9956), [3](https://github.com/warpdotdev/warp/pull/9910))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/warpdotdev/warp/issues/10359#issuecomment-4397177289), [2](https://github.com/warpdotdev/warp/issues/10358#issuecomment-4396700787), [3](https://github.com/warpdotdev/warp/issues/10355#issuecomment-4396359216))| | [Waveterm](https://www.waveterm.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.waveterm.dev/waveai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wavetermdev/waveterm/pull/3122), [2](https://github.com/wavetermdev/waveterm/commit/57e4e27a291642406060c795d69c63450ee9229d), [3](https://github.com/wavetermdev/waveterm/commit/bda8421377f4abcf9c30cfc9a40bfa7190a1f72e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wavetermdev/waveterm/pull/3289), [2](https://github.com/wavetermdev/waveterm/pull/3247), [3](https://github.com/wavetermdev/waveterm/pull/3222)) | +| [Wezterm](https://wezterm.org) | [`712400a`](https://github.com/wezterm/wezterm/commit/712400a558848455e45bd39841fc6dc714e14a94)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wezterm/wezterm/commit/d2fc83559c4616d74e847770373b2da88b63cba3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wezterm/wezterm/pull/7745)) | > [!NOTE] > #### Alternative terminal emulators From f075b5c91ef946242bbb2a1649ddb7b15cb4534b Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 24 May 2026 13:39:26 +0200 Subject: [PATCH 131/413] Add Breezy, Gerrit, GitButler, Gogs, Mercurial, and Tangled, and update evidence for GitLab (#731) Partially based off the draft in #703, accompanied by a larger search. Co-Authored-By: znmz Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/731 Reviewed-by: Admin --- README.md | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 7aecc95..1a0744f 100644 --- a/README.md +++ b/README.md @@ -156,9 +156,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Unified Push Distributors](#unified-push-distributors) * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) + * [Version Control Clients and Tooling](#version-control-clients-and-tooling) * [Version Control Servers](#version-control-servers) * [Alternative Version Control Servers](#alternative-version-control-servers) - * [Version Control Clients and Tooling](#version-control-clients-and-tooling) * [Virtualization](#virtualization) * [Volunteer Computing](#volunteer-computing) * [VPN Software](#vpn-software) @@ -1499,35 +1499,41 @@ This section is strictly for software implementing a core set of UNIX-like utili ## Version Control -### Version Control Servers - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| -| [Gitea](https://about.gitea.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md#ai-contribution-policy), [2](https://github.com/go-gitea/gitea/blob/main/AGENTS.md), [3](https://github.com/go-gitea/gitea/blob/main/CLAUDE.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://about.gitea.com/blog/gitea-achieves-soc2-type2-soc3-certification)) | -| [GitLab](https://gitlab.com/rluna-gitlab/gitlab-ce) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/rluna-gitlab/gitlab-ce/-/blob/master/.ai/)) | - -> [!Note] -> #### Alternative Version Control Servers -> - [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) -> - [Codeberg](https://codeberg.org/) (hosted) - ### Version Control Clients and Tooling -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Breezy](https://github.com/breezy-team/breezy/) | [`4559cec`](https://github.com/breezy-team/breezy/commit/4559cec280b280e9624da79624baf31d2791fa85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/breezy-team/breezy/pull/270/)) | +| [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/b1cbca0715cc3cc4d41f1b04752abbac25cc3fba/AGENTS.md)) | | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | | [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | +| [GitButler](https://gitbutler.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.gitbutler.com/features/branch-management/ai-assistance), [2](https://github.com/gitbutlerapp/gitbutler/tree/2b9da0d6d88bfc117da72f3cd06baac8d194fd18/apps/desktop/src/lib/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gitbutlerapp/gitbutler/blob/87180b105ced4d3fa908c96c641068b58073be29/AGENTS.md), [2](https://github.com/gitbutlerapp/gitbutler/commit/ab5b3fae080df9f0b34d16e3395dc4a5abac4024)) | | [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#please-disclose-the-use-of-ai), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | +| [Mercurial](https://mercurial-scm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/1914)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | > [!Note] > #### Alternative Version Control Systems > * [Game of Trees] -> * [Mercurial](https://www.mercurial-scm.org/) > * [Fossil](https://www.fossil-scm.org/) > * [BitKeeper](https://github.com/bitkeeper-scm/bitkeeper) +### Version Control Servers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Gitea](https://about.gitea.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md#ai-contribution-policy), [2](https://github.com/go-gitea/gitea/blob/main/AGENTS.md), [3](https://github.com/go-gitea/gitea/blob/main/CLAUDE.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://about.gitea.com/blog/gitea-achieves-soc2-type2-soc3-certification)) | +| [Gogs](https://gogs.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gogs/gogs/pull/8059), [2](https://github.com/gogs/gogs/pull/8061), [3](https://github.com/gogs/gogs/pull/8121))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gogs/gogs/pull/7981), [2](https://github.com/gogs/gogs/pull/8069)) | +| [GitLab](https://gitlab.com/gitlab-org/gitlab) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://about.gitlab.com/), [2](https://about.gitlab.com/blog/gitlab-act-2/), [3](https://docs.gitlab.com/user/project/ml/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/gitlab-org/gitlab/-/blob/bc0c170b8266e5ed182a3def29313bb8a8421af4/AGENTS.md), [2](https://gitlab.com/rluna-gitlab/gitlab-ce/-/blob/master/.ai/)) | +| [Tangled](https://tangled.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://tangled.org/tangled.org/core/issues/394)) | + +> [!Note] +> #### Alternative Version Control Servers +> - [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted; [bans LLMs](https://forgejo.org/2026-03-monthly-report/#ai-agreement)) +> - [Codeberg](https://codeberg.org/) (hosted Forgejo) +> - [Sourcehut](https://sourcehut.org/) (self-hosted; provides a hosted option) + ## Virtualization | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 7887e20b9b178b605a796187621a9c3e7c3f5eba Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 24 May 2026 13:43:25 +0200 Subject: [PATCH 132/413] remove unused version control alternatives column (#790) since we already have the note after it, this is fine to drop. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/790 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1a0744f..a78bbe3 100644 --- a/README.md +++ b/README.md @@ -1501,8 +1501,8 @@ This section is strictly for software implementing a core set of UNIX-like utili ### Version Control Clients and Tooling -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| | [Breezy](https://github.com/breezy-team/breezy/) | [`4559cec`](https://github.com/breezy-team/breezy/commit/4559cec280b280e9624da79624baf31d2791fa85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/breezy-team/breezy/pull/270/)) | | [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/b1cbca0715cc3cc4d41f1b04752abbac25cc3fba/AGENTS.md)) | | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | From 7f5910f3425f6d2fbc30ddf74eba85f3e84cf933 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 25 May 2026 08:40:10 +0200 Subject: [PATCH 133/413] add a couple more environmental impact links (#791) Adds some focus for the UK, Australia, and the EU, to approach this from a more global standpoint. Will follow up with more links for other regions as I find them. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/791 --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a78bbe3..f646379 100644 --- a/README.md +++ b/README.md @@ -1657,8 +1657,13 @@ FOSS projects listed in this repo are using tooling that blatantly disregard lic To start learning a bit more, you can checkout the wikipedia page on [Environmental impact of artificial intelligence](https://en.wikipedia.org/wiki/Environmental_impact_of_artificial_intelligence#Individual_level). We're very open to people contributing other explanations, links, and resources to learn more about this. Here's what we've gathered so far: -- [MIT News: Generative AI’s environmental impact](https://news.mit.edu/2025/explained-generative-ai-environmental-impact-0117) -- [MIT Technology Review: We did the math on AI’s energy footprint. Here’s the story you haven’t heard.](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/) +- [MIT News: Generative AI's Environmental Impact](https://news.mit.edu/2025/explained-generative-ai-environmental-impact-0117) +- [MIT Technology Review: We did the math on AI's energy footprint. Here's the story you haven't heard.](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/) +- [Grantham Institute: What Direct Risks Does AI Pose to the Climate and Environment](https://www.lse.ac.uk/granthaminstitute/explainers/what-direct-risks-does-ai-pose-to-the-climate-and-environment/) +- [UCLA: AI is Destroying Our Planet](https://newsroom.ucla.edu/stories/opinion-ai-is-destroying-our-planet-we-must-act) +- [The Guardian: Officials hugely underestimated impact of AI datacentres on UK carbon emissions](https://web.archive.org/web/20260425032459/https://www.theguardian.com/technology/2026/apr/24/officials-hugely-underestimated-impact-of-ai-datacentres-on-uk-carbon-emissions) +- [KU Leuven Centre for IT & IP Law: The environmental costs of AI: a shake-up of the EU's twin transition](https://www.law.kuleuven.be/citip/blog/the-environmental-costs-of-ai-a-shake-up-of-the-eus-twin-transition/) +- [Australian Parliament: Impacts of AI on the environment](https://www.aph.gov.au/Parliamentary_Business/Committees/Senate/Adopting_Artificial_Intelligence_AI/AdoptingAI/Report/Chapter_6_-_Impacts_of_AI_on_the_environment) ## Labor From 8fccbe3fae3290b74dbfb7fc07391d4038124591 Mon Sep 17 00:00:00 2001 From: cookie-monster-under-your-bed Date: Mon, 25 May 2026 08:42:42 +0200 Subject: [PATCH 134/413] Remove a reference to a reverted Rust commit (#792) Follow-up on https://codeberg.org/small-hack/open-slopware/pulls/761#issuecomment-15738485. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/792 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f646379..7906531 100644 --- a/README.md +++ b/README.md @@ -1085,7 +1085,7 @@ This is a section for repos that are similar to this one either because they are | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | | [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | -| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rust-lang/rust/commit/6fd846676801486d304030698cc8dac261b98680))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | +| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | | [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | From 294d92e8afa4ae9f75a6731d9cad8c6b09e79b8b Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 25 May 2026 09:22:40 +0200 Subject: [PATCH 135/413] we don't require the removal of AI code, add new human reviewed FAQ (#805) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/805 Reviewed-by: Max --- FAQ.md | 6 +++++- README.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 63ebed0..85d0e70 100644 --- a/FAQ.md +++ b/FAQ.md @@ -14,6 +14,10 @@ There's no great place to put these in our current files, but these sorts of que > No, beyond "vibecoded" being added in some extreme cases. We don't want to have this conversation continually, as it is subjective what "severity" something falls under. The decision to add these tags took us a long time, and unless you have another *specific* tag that cannot be covered under any other tag, we're currently not open to discussion about this. This repo is already quite a lot to manage. +## What if the AI code is human reviewed? + +> Slop that is human reviewed is still slop. We are against AI for more than just code quality reasons. Please see our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section. + ## Why are you targeting/attacking/harassing my favorite project? > We do not "target", "harass", or "attack" any projects. We, in fact, have a [very strict policy on not doing that](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#be-kind-or-be-gone). This repo is one based on ethics and is intended as a call to action. If a project meets the definition of one of our tags, it will see itself added to this repo. It can take steps to stop doing whatever it is in that definition and we'll remove it. (See also the [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal).) @@ -40,7 +44,7 @@ There's no great place to put these in our current files, but these sorts of que ## Can you advise us on the ethical usage of AI? -> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs section](https://codeberg.org/small-hack/open-slopware#why-not-llms). +> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section. ## What about "Open Source AI"? diff --git a/README.md b/README.md index 7906531..7461856 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Free/Open Source Software tainted by LLM developers/developed by genAI boosters, along with alternatives. -The intention of this list is to raise awareness of AI/LLM usage in popular open-source software. Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is not a resource to be used for the harassment of other open-source developers. If you wish to advocate for the cessation of use and/or removal of AI-generated code from another project, we ask that it be done respectfully and constructively (and do *not* mention this list). +The intention of this list is to raise awareness of AI/LLM usage in popular open-source software. Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is not a resource to be used for the harassment of other open-source developers. If you wish to advocate for a "No AI" Policy from another project, we ask that it be done respectfully and constructively (and do *not* mention this list). For more information on why we think this list matters, please see [Why not LLMs?](#why-not-llms). From 624cb459bffd4d5eace79e80895431698573b9e8 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 25 May 2026 09:25:31 +0200 Subject: [PATCH 136/413] Add more evidence for Next.js (#803) Next.js automatically creates AGENTS.md and CLAUDE.md files when initalising a project, so add it as "AI Functionality". Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/803 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7461856..08d33c6 100644 --- a/README.md +++ b/README.md @@ -1187,7 +1187,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [es-toolkit](https://es-toolkit.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://es-toolkit.dev/ai-integration.html))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/toss/es-toolkit/blob/main/AGENTS.md), [2](https://github.com/toss/es-toolkit/commit/b3f1f5433144a54c80fb61e4c9fda0d71cf9c85f)) | [Lodash](https://github.com/lodash/lodash) | | [fnm](https://fnm.vercel.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Schniz/fnm/blob/master/AGENTS.md)) | [asdf](https://asdf-vm.com/), [n](https://github.com/tj/n) | -| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp), [2](https://nextjs.org/docs/app/guides/ai-agents))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://opensource.fb.com/projects/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 7b671978f5d7f59e52d5b48f537e4951f1eee2c7 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 25 May 2026 09:26:42 +0200 Subject: [PATCH 137/413] Add last untainted tag and more evidence for Niri (#802) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/802 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 08d33c6..5e3db6a 100644 --- a/README.md +++ b/README.md @@ -1578,9 +1578,9 @@ Volunteer computing is a system in which someone can donate (excess) compute res | [i3](https://i3wm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/i3/i3?tab=contributing-ov-file#ai-contribution-policy), [2](https://github.com/i3/i3/issues/6546)) | | [IceWM](https://ice-wm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) ([1](https://github.com/ice-wm/icewm/issues/203#issuecomment-3318901550) | | [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | -| [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | +| [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | -| [niri](https://github.com/niri-wm/niri) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/niri-wm/niri/blob/main/CONTRIBUTING.md#ai-contributions)) | +| [niri](https://github.com/niri-wm/niri) | [`v25.05.1`](https://github.com/niri-wm/niri/releases/tag/v25.05.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/niri-wm/niri/blob/main/CONTRIBUTING.md#ai-contributions), [2](https://github.com/niri-wm/niri/pull/2109))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/niri-wm/niri/pull/3651)) | > [!NOTE] > ### Window Managers Alternatives From 413cacdc8d76640e907e22900061582742aeffc4 Mon Sep 17 00:00:00 2001 From: PintTheLittleMouse Date: Mon, 25 May 2026 09:48:12 +0200 Subject: [PATCH 138/413] added bluesky's ai functionality (#746) mentions bluesky's new official ai bot they are cramming into bluesky now. i think this belongs here. or does it go on the bluesky app client thing? i think they wanted to directly integrate it into the client. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/746 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e3db6a..bb48f3e 100644 --- a/README.md +++ b/README.md @@ -1320,7 +1320,7 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Bluesky](https://bsky.app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://bsky.app/profile/pfrazee.com/post/3luyb3jcbv52d)) | See below | +| [Bluesky](https://bsky.app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bsky.app/profile/attie.ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://bsky.app/profile/pfrazee.com/post/3luyb3jcbv52d)) | See below | | [`rsky`](https://github.com/blacksky-algorithms/rsky) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/blacksky-algorithms/rsky/commit/02313d970dc2e1cef0909277b94bbff222dff152), [2](https://github.com/blacksky-algorithms/rsky/commit/fd6063d4e2f0688899faef34e2d3553c36c69d43), [3](https://github.com/blacksky-algorithms/rsky/commit/b7adaa213ca49318de078b82410bf54f828ba0f2)) | See below | | [PeerTube](https://joinpeertube.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Chocobozzz/PeerTube/blob/c2345d670bfe83295896b3451ebfc14185934a1b/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://framacolibri.org/t/peertube-and-generative-ai/26622)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mastodon](https://joinmastodon.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mastodon/.github/blob/49b9c64f3e2b6a459e56a05068c05b3247659bb3/AI_POLICY.md)) | See below | From 524c5ec6f34fe35c44e1e93a6e16b979b2643410 Mon Sep 17 00:00:00 2001 From: znmz Date: Mon, 25 May 2026 10:33:06 +0200 Subject: [PATCH 139/413] add Restic, Kopia and Timeshift (#799) Note: I'd also like to add Snapper as an alternative to Timeshift (snapper is also btrfs-only, like btrbk), but there's currently a [PR](https://github.com/openSUSE/snapper/pull/1133) open with Claude-written code. I guess we need to wait and see if that gets merged? (that PR was opened a week ago and there's currently an ongoing discussion about the introduced code changes). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/799 Reviewed-by: Admin --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bb48f3e..c066be7 100644 --- a/README.md +++ b/README.md @@ -422,7 +422,10 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [borg](https://github.com/borgbackup/borg) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/borgbackup/borg/issues/9409#issuecomment-3974230340), [2](https://github.com/borgbackup/borg/blob/master/CONTRIBUTING.md#responsible-ai-usage)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Borg](https://github.com/borgbackup/borg) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/borgbackup/borg/issues/9409#issuecomment-3974230340), [2](https://github.com/borgbackup/borg/blob/master/CONTRIBUTING.md#responsible-ai-usage)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Kopia](https://github.com/kopia/kopia) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kopia/kopia/blob/master/.github/instructions/go.copilot-instructions.md), [2](https://github.com/kopia/kopia/commit/ed40a2f8b48f60a1ae78e831147064ada4d68336), [3](https://github.com/kopia/kopia/commit/a2d62c83404d770e333929ae9690a911a0743f20))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/kopia/kopia/pull/5341), [2](https://github.com/kopia/kopia/pull/5383), [3](https://github.com/kopia/kopia/pull/5292)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Restic](https://github.com/restic/restic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/restic/restic/pull/5560), [2](https://github.com/restic/restic/pull/5541), [3](https://github.com/restic/restic/pull/5610)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Timeshift](https://github.com/linuxmint/timeshift) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/linuxmint/timeshift/pull/475), [2](https://github.com/linuxmint/timeshift/pull/428), [3](https://github.com/linuxmint/timeshift/pull/398)) | [btrbk](https://github.com/digint/btrbk) (btrfs-only) | ## Benchmarking From 77cd0d0b0e13a4665fc22bdf1555337a66522ef0 Mon Sep 17 00:00:00 2001 From: znmz Date: Mon, 25 May 2026 11:00:50 +0200 Subject: [PATCH 140/413] add Qtile (#796) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/796 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c066be7..9fe2fb1 100644 --- a/README.md +++ b/README.md @@ -1584,6 +1584,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res | [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | | [niri](https://github.com/niri-wm/niri) | [`v25.05.1`](https://github.com/niri-wm/niri/releases/tag/v25.05.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/niri-wm/niri/blob/main/CONTRIBUTING.md#ai-contributions), [2](https://github.com/niri-wm/niri/pull/2109))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/niri-wm/niri/pull/3651)) | +| [Qtile](https://github.com/qtile/qtile) | [`v0.34.1`](https://github.com/qtile/qtile/releases/tag/v0.34.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/qtile/qtile/commit/0c5e1285124eaef419c93519de7465e95cbe64a3), [2](https://github.com/qtile/qtile/commit/1e3a2040d20e2df771b867899083ff00e9721665), [3](https://github.com/qtile/qtile/commit/f2c69f585a6b5d8dd7bcefd87f3dee539c29cdaa))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/qtile/qtile/pull/5743)) | > [!NOTE] > ### Window Managers Alternatives From 4667455573ca0f5e88c1ae4a914c178fc0ef242a Mon Sep 17 00:00:00 2001 From: micdan5 Date: Mon, 25 May 2026 13:28:00 +0200 Subject: [PATCH 141/413] Add Cemu (#806) Closes #755 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/806 Reviewed-by: Max --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9fe2fb1..1f8b05d 100644 --- a/README.md +++ b/README.md @@ -831,6 +831,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | | [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | | [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) ## Language and Localization From bb11fba0f88e4329414a40a0e606efe7b1d6db8d Mon Sep 17 00:00:00 2001 From: K4 Date: Mon, 25 May 2026 21:26:24 +0200 Subject: [PATCH 142/413] Add poop as an alternative to hyperfine (#809) Poop is maintained in general by zig contributors and zig has a [no AI policy](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/809 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f8b05d..c6dfed3 100644 --- a/README.md +++ b/README.md @@ -431,7 +431,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Hyperfine](https://github.com/sharkdp/hyperfine) | [`v1.19.0`](https://github.com/sharkdp/hyperfine/releases/tag/v1.19.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/sharkdp/hyperfine/blob/327d5f4d9107141929f67f062bf9ef59f98b7399/README.md#sponsors)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Hyperfine](https://github.com/sharkdp/hyperfine) | [`v1.19.0`](https://github.com/sharkdp/hyperfine/releases/tag/v1.19.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/sharkdp/hyperfine/blob/327d5f4d9107141929f67f062bf9ef59f98b7399/README.md#sponsors)) | [poop](https://github.com/andrewrk/poop) | ## Blogging Software From ed17203f439f6fd67fc34fe045c974c93876837b Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 25 May 2026 21:47:25 +0200 Subject: [PATCH 143/413] FAQ work: distinguish self-advertise and self-submit; add "can we debate slop or vibecoded" (#811) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/811 --- FAQ.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 85d0e70..8314029 100644 --- a/FAQ.md +++ b/FAQ.md @@ -2,10 +2,14 @@ There's no great place to put these in our current files, but these sorts of questions come up enough, that we wanted to put them down somewhere to easily link responses. -## Can I self advertise here? +## Can I self-advertise my project (that doesn't use AI)? > Yes, provided it's FOSS, has a code of conduct (even if it's a solo project), and a No AI Policy, you can add your project as an alternative to any tainted software in which it is a good fit, and you can also open a [Call for Collaborators Issue](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2fcollaborate-with-me.yaml). +## I use AI in my project and do not plan on stopping. Should I self-submit? + +> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @vleermuis-admin and we'll handle the situation. + ## Do closed source or proprietary products belong on this list? > No, this repo is only for open source projects. @@ -61,3 +65,7 @@ There's no great place to put these in our current files, but these sorts of que ### But what if it's a social media post against AI? > We would then need to research those social media users and see if we endorse them or not and we don't want to do that either. + +## I don't like your definition of slop or vibecoded. Can you change it? + +> No. Those [definitions](https://codeberg.org/small-hack/open-slopware#definitions) stay and are not up for debate. \ No newline at end of file From e0870fc0f3687a9bef52a5405a7af0390630be72 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 25 May 2026 21:58:29 +0200 Subject: [PATCH 144/413] update turbowarp with developer comments and last untainted version (#812) Based on developer's comment here: https://codeberg.org/small-hack/open-slopware/pulls/797#issuecomment-15853862 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/812 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c6dfed3..b1d27b6 100644 --- a/README.md +++ b/README.md @@ -1093,7 +1093,7 @@ This is a section for repos that are similar to this one either because they are | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | | [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | -| [TurboWarp](https://turbowarp.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | +| [TurboWarp](https://turbowarp.org) | [`v1.15.0`](https://github.com/TurboWarp/desktop/releases/tag/v1.15.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/small-hack/open-slopware/pulls/797#issuecomment-15853862), [2](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | | [Typescript](https://www.typescriptlang.org/) | [`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/TypeScript/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/TypeScript/commit/c9e7428bb76f0543a3555d0af87777e7db3a41e6), [3](https://github.com/microsoft/TypeScript/commit/ad04bf7488384a5dcdf7d250ccb8e5263021a8ff)) | See below | > [!Note] From 9c8d27284c065528bb49c4cc812a08b0fca9eeda Mon Sep 17 00:00:00 2001 From: znmz Date: Mon, 25 May 2026 23:06:46 +0200 Subject: [PATCH 145/413] add kanata and keymapper (#798) This is mostly ready for merge. Only needed to find an appropriate section for this software. I am a bit hesitant creating many new sections myself, because I am not fully getting how strictly should things be categorized (i.e. are new sections always welcome or closer to last resort?). Also, we have 2 repeating links in the "Alternative(s)" column here. To me it feels alright and also scales better when we add other software in the section that is similar, but the "see below" alternatives wouldn't apply to it. OK to leave it as is? Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/798 Reviewed-by: Admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index b1d27b6..fdff184 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Game Managers and Launchers](#game-managers-and-launchers) * [Mod managers](#mod-managers) * [Emulators](#emulators) + * [Input Remapping](#input-remapping) * [Language and Localization](#language-and-localization) * [Learning](#learning) * [Anki desktop alternatives](#anki-desktop-alternatives) @@ -834,6 +835,13 @@ This is a section for repos that are similar to this one either because they are | [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | | [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) +## Input Remapping + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [kanata](https://github.com/jtroo/kanata) | [`v1.9.0`](https://github.com/jtroo/kanata/releases/tag/v1.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jtroo/kanata/commit/1fd7db64a74a5e66a1780dc60e3993e53d9d003f), [2](https://github.com/jtroo/kanata/commit/60fa5c8d0cdb033efcf3c3e54cb4047e29e6093f), [3](https://github.com/jtroo/kanata/pull/1707)) | [keyd](https://github.com/rvaiya/keyd),
[kmonad](https://github.com/kmonad/kmonad) | +| [keymapper](https://github.com/houmain/keymapper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/houmain/keymapper/blob/55744c5a9f4f0c3eb1861cf2ac51632fb8ac7390/src/client/unix/MessageBoxCocoa.mm#L4), [2](https://github.com/houmain/keymapper/pull/356)) | [keyd](https://github.com/rvaiya/keyd),
[kmonad](https://github.com/kmonad/kmonad) | + ## Language and Localization | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 554bdbf55266cfac6093312ea8389cb5c2b3c0ed Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 27 May 2026 00:37:52 +0200 Subject: [PATCH 146/413] Add asdf (#800) Partially based off the draft in #703, accompanied by a larger search. Co-authored-by: znmz Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/800 Reviewed-by: Admin --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fdff184..9aa8de9 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Alternative GUI crates](#alternative-gui-crates) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) + * [Runtime Version Managers](#runtime-version-managers) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Social Media](#social-media) @@ -494,7 +495,7 @@ This is a section for repos that are similar to this one either because they are | [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | | [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | | [Mill](https://mill-build.org/) | [`v1.0.6`](https://github.com/com-lihaoyi/mill/releases/tag/1.0.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/com-lihaoyi/mill/blob/main/AGENTS.md), [2](https://github.com/com-lihaoyi/mill/blob/main/CLAUDE.md)) | See Below | -| [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | [asdf](https://asdf-vm.com/) or See Below | +| [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | See Below | | [SCons](https://scons.org/) | [`4.10.1`](https://github.com/SCons/scons/releases/tag/4.10.1/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SCons/scons/blob/8ea152eddff6afa11f94108a10283bd6378a3dfa/AGENTS.md)) | [Waf](https://waf.io/) or See Below | | [sbt](https://www.scala-sbt.org/) | [`1.12.3`](https://github.com/sbt/sbt/releases/tag/v1.12.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt/blob/develop/AGENTS.md), [2](https://github.com/sbt/sbt/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | See Below | | [Taskfile](https://taskfile.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/go-task/task/pull/2592#pullrequestreview-3596720069)) | See Below | @@ -1198,7 +1199,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [es-toolkit](https://es-toolkit.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://es-toolkit.dev/ai-integration.html))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/toss/es-toolkit/blob/main/AGENTS.md), [2](https://github.com/toss/es-toolkit/commit/b3f1f5433144a54c80fb61e4c9fda0d71cf9c85f)) | [Lodash](https://github.com/lodash/lodash) | -| [fnm](https://fnm.vercel.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Schniz/fnm/blob/master/AGENTS.md)) | [asdf](https://asdf-vm.com/), [n](https://github.com/tj/n) | +| [fnm](https://fnm.vercel.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Schniz/fnm/blob/master/AGENTS.md)) | [n](https://github.com/tj/n) | | [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp), [2](https://nextjs.org/docs/app/guides/ai-agents))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1309,6 +1310,12 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > - [ghex](https://github.com/GNOME/ghex) > - [hexcurse](https://github.com/prso/hexcurse-ng) +## Runtime Version Managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [asdf](https://asdf-vm.com/) | [`v0.18.1`](https://github.com/asdf-vm/asdf/releases/tag/v0.18.1) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/asdf-vm/asdf/pull/2246), [2](https://github.com/asdf-vm/asdf/pull/2275)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Search Engines | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 53fed6cc52ef7655001eb3247f9990921722fea1 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 27 May 2026 17:17:40 +0200 Subject: [PATCH 147/413] Add fwupd and ntpd-rs (#824) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/824 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9aa8de9..63cf39d 100644 --- a/README.md +++ b/README.md @@ -1416,9 +1416,11 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [framework-system](https://github.com/FrameworkComputer/framework-system) | [`50a18e8`](https://github.com/FrameworkComputer/framework-system/commit/50a18e825e0a81aa8761ab2677d9cd139d766854) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FrameworkComputer/framework-system/blob/main/CLAUDE.md), [2](https://github.com/FrameworkComputer/framework-system/pull/250)) | BIOS settings,
UI widgets,
/proc | +| [fwupd](https://github.com/fwupd/fwupd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fwupd/fwupd/blob/e94be3c7b9adc51c78ae1837e3ff4e52623926b9/.github/copilot-instructions.md), [2](https://github.com/fwupd/fwupd/commit/1ae4eddd5a7a2a9a5290f087855b942c1a0fbe75),[3](https://github.com/fwupd/fwupd/commit/1bdbcd68c72806dfd372280d9815827b886d3b4))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fwupd/fwupd/pull/9918), [2](https://github.com/fwupd/fwupd/pull/9960), [3](https://github.com/fwupd/fwupd/pull/9995)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [libinput](https://gitlab.freedesktop.org/libinput/libinput) | [`43547b46`](https://gitlab.freedesktop.org/libinput/libinput/-/commit/43547b461bea7a5bfe0658ee1689bea03dca6fa7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1444), [2](https://gitlab.freedesktop.org/libinput/libinput/-/commit/8dd25ece1073653c95ed26450be2739d3e0e30fd), [3](https://gitlab.freedesktop.org/libinput/libinput/-/commit/7d15503b4537d73b9e0b49738fc509060fa5a14b)) | [evdev](https://en.wikipedia.org/wiki/evdev) | | [lvm2](https://sourceware.org/lvm2/) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/lvmteam/lvm2/-/commit/6207fe707a4ae255ef62a2fa088ec2497ae6c0a8),[2](https://gitlab.com/lvmteam/lvm2/-/commit/ff76548a3da5cee224e4663d81d7041558115b8e),[3](https://gitlab.com/lvmteam/lvm2/-/commit/99b85e7e4acc7fb69460b2bdb94aa8c2ca0f8946)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mesa3D](https://mesa3d.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.mesa3d.org/submittingpatches.html#expectations-on-contributors)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| +| [ntpd-rs](https://github.com/pendulum-project/ntpd-rs) | [`v1.6.1`](https://github.com/pendulum-project/ntpd-rs/releases/tag/v1.6.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pendulum-project/ntpd-rs/blob/main/CONTRIBUTING.md#use-of-generative-artificial-intelligence)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [rsyslog](https://www.rsyslog.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.rsyslog.com/doc/about/ai_first.html)) | [syslog-ng](https://www.syslog-ng.com/products/open-source-log-management/) | | [systemd](https://github.com/systemd/systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/systemd/systemd/blob/main/AGENTS.md), [2](https://github.com/systemd/systemd/commit/744d589632c545e90ae76853abbfbc90cb530e24)) | [dinit](https://davmac.org/projects/dinit),
[s6](https://skarnet.org/software/s6/),
[OpenRC](https://github.com/OpenRC/openrc),
[shepherd](https://shepherding.services/) | | [wireplumber](https://gitlab.freedesktop.org/pipewire/wireplumber/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/pipewire/wireplumber/-/blob/master/AGENTS.md?ref_type=heads)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| From 3dbfa6245e28729639ec2f5d503fec17102b0200 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 27 May 2026 17:50:20 +0200 Subject: [PATCH 148/413] add `age`, VeraCrypt and Cryptomator (#794) `age` gets new versions released very rarely. In such case it is better to link the last untainted commit rather than the version number, right? Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/794 Reviewed-by: Admin --- README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 63cf39d..0beba65 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Photography](#photography) * [Video](#video) * [Continuous Integration](#continuous-integration) + * [Cryptography](#cryptography) + * [Disk Encryption](#disk-encryption) + * [File Encryption](#file-encryption) * [Data Archival](#data-archival) * [Device Exploiting](#device-exploiting) * [Documents](#documents) @@ -81,7 +84,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [File Monitoring](#file-monitoring) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) - * [Disk Encryption](#disk-encryption) * [File Transferring](#file-transferring) * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) @@ -675,6 +677,23 @@ This is a section for repos that are similar to this one either because they are | [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | | [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | +## Cryptography + +### Disk Encryption + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [VeraCrypt](https://github.com/veracrypt/VeraCrypt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/veracrypt/VeraCrypt/pull/1710), [2](https://github.com/veracrypt/VeraCrypt/pull/1703), [3](https://github.com/veracrypt/VeraCrypt/pull/1386))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/veracrypt/VeraCrypt/pull/1525)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +### File Encryption + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [age](https://github.com/FiloSottile/age) | [`4a3a4ef`](https://github.com/FiloSottile/age/commit/4a3a4ef00aa1e14627c017e978a45e309b39e516) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FiloSottile/age/commit/db09cd66d1578bbb409cee25a891ba38483c5894), [2](https://github.com/FiloSottile/age/commit/706dfc1e799a03443ae46023502bd88d4e9e324f), [3](https://github.com/FiloSottile/age/commit/4c86929a84aac61aaca81ec67d7ccce9d1fad727)) | [rage](https://github.com/str4d/rage) | +| [gocryptfs](https://nuetzlich.net/gocryptfs/) | [`v2.5.4`](https://github.com/rfjakob/gocryptfs/releases/tag/v2.5.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rfjakob/gocryptfs/pull/932))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rfjakob/gocryptfs/pull/950), [2](https://github.com/rfjakob/gocryptfs/pull/995)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Cryptomator](https://github.com/cryptomator/cryptomator) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/keybase/client/pull/29225), [2](https://github.com/cryptomator/cryptomator/commit/699e22d31a43512eb1d288f0177a2fd10d4fc1d9), [3](https://github.com/cryptomator/cryptomator/commit/d5d992b1c25af541b513b13c46f6b2aac13cbe38))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cryptomator/cryptomator/pull/4227), [2](https://github.com/cryptomator/cryptomator/pull/4105), [3](https://github.com/cryptomator/cryptomator/pull/4179)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Data Archival | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -754,12 +773,6 @@ This is a section for repos that are similar to this one either because they are > For MinIO: > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. -### Disk Encryption - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - ## File Transferring | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 9f1fed0fef521b41709a652dff9853ef5aefa12f Mon Sep 17 00:00:00 2001 From: lukeflo Date: Wed, 27 May 2026 18:00:45 +0200 Subject: [PATCH 149/413] Add `flow` (#818) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/818 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0beba65..4112aef 100644 --- a/README.md +++ b/README.md @@ -1484,6 +1484,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | +| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8)) ![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | From 0644e1ba7d68ce3329c1a0bdbfa6e40e334148dd Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 27 May 2026 18:04:05 +0200 Subject: [PATCH 150/413] add Syncthing-Fork (#833) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/833 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4112aef..463bee7 100644 --- a/README.md +++ b/README.md @@ -763,6 +763,7 @@ This is a section for repos that are similar to this one either because they are | [SeaweedFS](https://seaweedfs.com/) | [`3.87`](https://github.com/seaweedfs/seaweedfs/releases/tag/3.87) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/seaweedfs/seaweedfs/pull/7996)) | | [Silo](https://silo.pigsty.io/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pgsty/minio/commit/ee55e5391a5d5e4bd46d555a11b2215eb6ed836e), [2](https://github.com/pgsty/minio/commit/ce1c537eb1dd6c4efa1cf75cf5df0e2c489c947a), [3](https://github.com/pgsty/minio/commit/8630937e7d1c3426ae28508e06f7091d7bde3a49))| | [Syncthing](https://syncthing.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/syncthing/syncthing/blob/main/.deepsource.toml), [2](https://github.com/syncthing/syncthing/pull/10652)) | +| [Syncthing-Fork](https://github.com/researchxxl/syncthing-android) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/researchxxl/syncthing-android/blob/main/.github/copilot-instructions.md), [2](https://github.com/researchxxl/syncthing-android/issues/184#issuecomment-4038469954), [3](https://github.com/researchxxl/syncthing-android/pull/223)) | > [!NOTE] > ### File Storage Alternatives > * [CopyParty](https://github.com/9001/copyparty) for general file sharing From 358cdbe49fb06177660d6fcd165e672dc2dff6c6 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 27 May 2026 18:05:25 +0200 Subject: [PATCH 151/413] cleanup formatting in File Storage section (#834) modify formatting to be more aligned with rest of the list and STYLE.md Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/834 Reviewed-by: Admin --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 463bee7..c6211fe 100644 --- a/README.md +++ b/README.md @@ -755,13 +755,13 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Ente Locker](https://ente.com/locker/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ente-io/ente/commit/3fbe3a463b50aa52028c33acd10f7d1d94c7c368)) | -| [JuiceFS](https://juicefs.com/en/) | [`v1.2.3`](https://github.com/juicedata/juicefs/releases/tag/v1.2.3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/juicedata/juicefs/pull/6241))| +| [JuiceFS](https://juicefs.com/en/) | [`v1.2.3`](https://github.com/juicedata/juicefs/releases/tag/v1.2.3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/juicedata/juicefs/pull/6241)) | | [MinIO](https://www.min.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/minio/minio)) | -| [Nextcloud](https://nextcloud.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextcloud/desktop/blob/master/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextcloud.com/assistant/)) | -| [Rook/Ceph](https://rook.io/) | [`v1.17.0`](https://github.com/rook/rook/releases/tag/v1.17.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews)([1](https://github.com/rook/rook/pull/15563#pullrequestreview-2724068439))| -| [RustFS](https://rustfs.com/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rustfs/rustfs/blob/main/AGENTS.md), [2](https://github.com/rustfs/rustfs/commit/6ce24f3b632f86c456a95d6e8b6ba9d05c8e4ae5), [3](https://github.com/rustfs/rustfs/commit/2bf4b1439495db1aeed5bbe474083a04a25f69e5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rustfs/rustfs/pull/2584), [2](https://github.com/rustfs/rustfs/pull/2583), [3](https://github.com/rustfs/rustfs/pull/2581))| +| [Nextcloud](https://nextcloud.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextcloud/desktop/blob/master/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextcloud.com/assistant/)) | +| [Rook/Ceph](https://rook.io/) | [`v1.17.0`](https://github.com/rook/rook/releases/tag/v1.17.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rook/rook/pull/15563#pullrequestreview-2724068439)) | +| [RustFS](https://rustfs.com/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rustfs/rustfs/blob/main/AGENTS.md), [2](https://github.com/rustfs/rustfs/commit/6ce24f3b632f86c456a95d6e8b6ba9d05c8e4ae5), [3](https://github.com/rustfs/rustfs/commit/2bf4b1439495db1aeed5bbe474083a04a25f69e5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rustfs/rustfs/pull/2584), [2](https://github.com/rustfs/rustfs/pull/2583), [3](https://github.com/rustfs/rustfs/pull/2581)) | | [SeaweedFS](https://seaweedfs.com/) | [`3.87`](https://github.com/seaweedfs/seaweedfs/releases/tag/3.87) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/seaweedfs/seaweedfs/pull/7996)) | -| [Silo](https://silo.pigsty.io/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pgsty/minio/commit/ee55e5391a5d5e4bd46d555a11b2215eb6ed836e), [2](https://github.com/pgsty/minio/commit/ce1c537eb1dd6c4efa1cf75cf5df0e2c489c947a), [3](https://github.com/pgsty/minio/commit/8630937e7d1c3426ae28508e06f7091d7bde3a49))| +| [Silo](https://silo.pigsty.io/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pgsty/minio/commit/ee55e5391a5d5e4bd46d555a11b2215eb6ed836e), [2](https://github.com/pgsty/minio/commit/ce1c537eb1dd6c4efa1cf75cf5df0e2c489c947a), [3](https://github.com/pgsty/minio/commit/8630937e7d1c3426ae28508e06f7091d7bde3a49)) | | [Syncthing](https://syncthing.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/syncthing/syncthing/blob/main/.deepsource.toml), [2](https://github.com/syncthing/syncthing/pull/10652)) | | [Syncthing-Fork](https://github.com/researchxxl/syncthing-android) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/researchxxl/syncthing-android/blob/main/.github/copilot-instructions.md), [2](https://github.com/researchxxl/syncthing-android/issues/184#issuecomment-4038469954), [3](https://github.com/researchxxl/syncthing-android/pull/223)) | > [!NOTE] From 9d9941cc17f615b7d2dd3a341ec5cc39d3f159af Mon Sep 17 00:00:00 2001 From: FlemyJY Date: Wed, 27 May 2026 18:12:43 +0200 Subject: [PATCH 152/413] Add QMPlay2 as an Alternative for mpv & vlc (#835) QMPlay seems clean: * no mention of `claude`, `copilot`, `gemini`, `llm` in the PRs & `git log` * only unrelated mentions of `cursor`, `generate`, `ai` * no `CLAUDE.md`, weird `.gitignore`, etc * the only `Co-Authored-By`s are `zo-shin` and IMO is better than the other options (tho also a bit bloated and weird defaults): * It is not based on a slop library * You have control over the video (forward, backward, pause, volume) (ffplay...) * It has gotten updates this year (mplayer..) also thought about adding [haruna](https://apps.kde.org/haruna/), but sadly it uses mpv under the hood. Co-authored-by: FlemyJY Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/835 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c6211fe..a2098f1 100644 --- a/README.md +++ b/README.md @@ -665,10 +665,10 @@ This is a section for repos that are similar to this one either because they are | [Jellyfin](https://jellyfin.org) (server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jellyfin/jellyfin/pull/16540)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Jellyfin Desktop](https://github.com/jellyfin/jellyfin-desktop) | Use archived [Qt-based client](https://github.com/jellyfin-archive/jellyfin-desktop-qt/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects), [2](https://github.com/jellyfin/jellyfin-desktop/blob/main/CLAUDE.md), [3](https://retro.social/@ieure/116304493795805340)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Kodi](https://kodi.tv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xbmc/xbmc/commit/6a1411f263f84d69da36cf15d0da03b3439d590f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/xbmc/xbmc/pull/28144)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [mpv](https://github.com/mpv-player/mpv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md#ai-assisted-contributions)) | [MPlayer](https://mplayerhq.hu/)
[Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | +| [mpv](https://github.com/mpv-player/mpv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md#ai-assisted-contributions)) | [MPlayer](https://mplayerhq.hu/)
[Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | | [NewPipe](https://newpipe.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TeamNewPipe/NewPipe?tab=contributing-ov-file#ai-policy)) | [LibreTube] | | [PipePipe](https://pipepipe.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/InfinityLoop1308/PipePipeClient/blob/dev/CLAUDE.md)) | [LibreTube] | -| [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | +| [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | ## Continuous Integration @@ -1867,6 +1867,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [matrix]: https://matrix.org [Pandemonium Engine]: https://pandemoniumengine.org/ [QEMU]: https://www.qemu.org +[QMPlay2]: https://github.com/zaps166/QMPlay2 [Rio Terminal]: https://github.com/raphamorim/rio [Servo]: https://servo.org/ [Schilytools]: https://codeberg.org/schilytools/schilytools From 4435043e2c39c7d8fd6b05d41f476b4778ec7a73 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 27 May 2026 18:16:30 +0200 Subject: [PATCH 153/413] note that code reviews from copilot can be complained about to save the project (#838) closes #836 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/838 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a2098f1..1369652 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,9 @@ Evidence can be: - an AI code review CI workflow. - a PR where an AI code review seems to be automatically created by some sort of third party app +> [!note] +> Due to the way GitHub works, any user there can request a code review from copilot and a project's maintainers cannot ban copilot from their repo. If a user requests an AI code review on GitHub and a maintainer says "Don't do that", do not list the project using this tag. If the maintainer says nothing though, it's fine to still apply this tag as that's an implicit approval. + ### Gen AI 'Art' ![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg) From c7a5fcb1237c89a186ca7a0c735a62a1f6a52d15 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 27 May 2026 18:17:08 +0200 Subject: [PATCH 154/413] Add KeePassDX (#837) All the alternatives I found are tainted sadly - [AuthPass](https://authpass.app) -- https://github.com/authpass/authpass/pull/395#pullrequestreview-3105665498 -- https://github.com/authpass/authpass/pull/395#pullrequestreview-3109392874 - [Keepass2Android](https://github.com/PhilippC/keepass2android) -- https://github.com/PhilippC/keepass2android/pull/3154#pullrequestreview-3677202571 - [KeePassVault](https://github.com/aivanovski/keepassvault) -- https://github.com/aivanovski/keepassvault/pulls?q=is%3Apr+is%3Amerged+coderabbit Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/837 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1369652..3ce23e3 100644 --- a/README.md +++ b/README.md @@ -1080,6 +1080,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | +| [KeePassDX](https://www.keepassdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Kunzisoft/KeePassDX/blob/master/CONTRIBUTING.md#code-generation), [2](https://github.com/Kunzisoft/KeePassDX/issues/2447#issuecomment-4029885903)) | | [KeepassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | | [vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | From af732b17a729229ed5a4a754bf540658b0428eed Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 27 May 2026 18:41:41 +0200 Subject: [PATCH 155/413] add Sudo and sudo-rs (#815) Can't think of any alternatives here. `run0` is part of Systemd, which is tainted. The famous `doas`, if i understand it correctly, works only on BSDs (or even only OpenBSD). The doas that is packaged in many *linux* distros' repos is actually a fork ([OpenDoas](https://github.com/Duncaen/OpenDoas)) and it was not updated for 4 years. I haven't used it and cannot tell if that's a big red flag or that's just how secure OpenBSD stuff is that it doesn't require patches even 4 years later :) The last option is `su`, which is part of `util-linux`, but that isn't quite the same. You can see [this](https://wiki.archlinux.org/title/List_of_applications/Security#Privilege_elevation) section on ArchWiki for a list of privilege escalation options. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/815 Reviewed-by: Admin --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 3ce23e3..1fca7a2 100644 --- a/README.md +++ b/README.md @@ -1392,6 +1392,8 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [plan9port](https://9fans.github.io/plan9port/) | [`0155f29`](https://github.com/9fans/plan9port/commit/0155f29bdc3cf0cab017fd7b33bf9e93cb9af64c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/9fans/plan9port/pull/748)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [sudo](https://github.com/sudo-project/sudo) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sudo-project/sudo/pull/529), [2](https://github.com/sudo-project/sudo/commit/b040db2be79b635c), [3](https://github.com/sudo-project/sudo/commit/3226ef7b3d66097d3432d2a49915b3fc457203dd)) | [OpenDoas] | +| [sudo-rs](https://github.com/trifectatechfoundation/sudo-rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/trifectatechfoundation/sudo-rs/blob/main/CONTRIBUTING.md#use-of-generative-artificial-intelligence), [2](https://github.com/trifectatechfoundation/sudo-rs/commit/a59a09e33f9f97e00b708c2585a6d64ba8dfa23b)) | [OpenDoas] | | [uutils](https://uutils.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/uutils/coreutils/pull/11717), [2](https://github.com/uutils/coreutils/commit/6e18efb218dbd4d7ad7441d255d02fb0c1df4bf0) [3](https://github.com/uutils/coreutils/pull/11918#issuecomment-4284527284))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/uutils/coreutils/pull/7266), [2](https://github.com/uutils/coreutils/pull/10505), [3](https://github.com/uutils/coreutils/pulls?q=copilot)) | [Busybox](https://busybox.net/),
GNU coreutils | ## System Information Utilities @@ -1869,6 +1871,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Lua]: https://lua.org [MATE Terminal]: https://wiki.mate-desktop.org/mate-desktop/applications/mate-terminal/ [matrix]: https://matrix.org +[OpenDoas]: https://github.com/Duncaen/OpenDoas [Pandemonium Engine]: https://pandemoniumengine.org/ [QEMU]: https://www.qemu.org [QMPlay2]: https://github.com/zaps166/QMPlay2 From d628ff956ba9345ad852a19c8ef7838bbe168c17 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 27 May 2026 18:53:28 +0200 Subject: [PATCH 156/413] Add `brush` shell (#826) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/826 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1fca7a2..09698d9 100644 --- a/README.md +++ b/README.md @@ -580,6 +580,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [brush](https://github.com/reubeno/brush) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reubeno/brush/blob/main/AGENTS.md), [2](https://github.com/reubeno/brush/blob/main/.github/copilot-instructions.md), [3](https://github.com/reubeno/brush/commit/4ca78babcb2111d34e26cdda6622b0fa2611bb32))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reubeno/brush/pull/1167), [2](https://github.com/reubeno/brush/pull/1080), [3](https://github.com/reubeno/brush/pull/1078))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/reubeno/brush/blob/8ea83d7/README.md)) | | [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | | [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | From bcc836c38a3551187e80992dc33d5feb92a03a95 Mon Sep 17 00:00:00 2001 From: cookie-monster-under-your-bed Date: Fri, 29 May 2026 07:09:29 +0200 Subject: [PATCH 157/413] Add jiff and memchr (#819) Andrew decided to adopt [a permissive AI policy](https://github.com/BurntSushi/jiff/blob/95332861e1b2941b9b1336202229290aeaeba353/AI_POLICY.md): > Using AI (i.e., LLMs) as tools for coding is welcome. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/819 Reviewed-by: Admin --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 09698d9..9d8264b 100644 --- a/README.md +++ b/README.md @@ -1276,7 +1276,9 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2), [2](https://github.com/emilk/egui/pull/8088), [3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948), [2](https://github.com/emilk/egui/pull/7617), [3](https://github.com/emilk/egui/pull/7577)) | See below | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | -| [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162)), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | +| [jiff](https://github.com/BurntSushi/jiff) | [`0.2.26`](https://github.com/BurntSushi/jiff/tree/0.2.26) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/BurntSushi/jiff/commit/95332861e1b2941b9b1336202229290aeaeba353)) | [chrono](https://github.com/chronotope/chrono),
[time](https://github.com/time-rs/time) | +| [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | +| [memchr](https://github.com/BurntSushi/memchr) | [`2.8.0`](https://github.com/BurntSushi/memchr/tree/2.8.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/BurntSushi/memchr/commit/ee18717a7002a3299a6b5ef718084e76d958a5c3)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [PyO3](https://pyo3.rs) | [`v0.23.5`](https://github.com/PyO3/pyo3/releases/tag/v0.23.5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyO3/pyo3/pull/5615), [2](https://github.com/PyO3/pyo3/pull/5933), [3](https://github.com/PyO3/pyo3/pull/5870))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyO3/pyo3/pull/4768), [2](https://github.com/PyO3/pyo3/pull/5724), [3](https://github.com/PyO3/pyo3/pull/5729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | From 9456216f4cebbf4bcd59dd1d4a1e1b585436a6c1 Mon Sep 17 00:00:00 2001 From: cookie-monster-under-your-bed Date: Fri, 29 May 2026 07:11:13 +0200 Subject: [PATCH 158/413] Add ripgrep (#820) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/820 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9d8264b..68daa6e 100644 --- a/README.md +++ b/README.md @@ -792,6 +792,7 @@ This is a section for repos that are similar to this one either because they are | [eza](https://eza.rocks/) | [`v0.21.0`](http://github.com/eza-community/eza/releases/tag/v0.21.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/eza-community/eza/blob/eed27ed05e74542af5852aed40e3dbff87d69c43/README.md)) | [ls](https://en.wikipedia.org/wiki/Ls) | | [fd](https://github.com/sharkdp/fd) | [`v10.2.0`](https://github.com/sharkdp/fd/releases/tag/v10.2.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/fd/blob/7f1b1471d5e3f88087eaad77885dc70968750bb3/CONTRIBUTING.md), [2](https://github.com/sharkdp/fd/commit/0ada245e37c0de42e61da50da0ad3bcc49efb74f), [3](https://github.com/sharkdp/fd/commit/19dcbff5627010b11cb409a5ac2e0480bf0a61b7))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sharkdp/fd/pull/1805), [2](https://github.com/sharkdp/fd/pull/1934), [3](https://github.com/sharkdp/fd/pull/1928)) | [find](https://en.wikipedia.org/wiki/Find_(Unix)) | | [LSDeluxe](https://github.com/lsd-rs/lsd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/lsd-rs/lsd/blob/ce869cf60e4d131bf0f781b6705265f34e68b6b5/README.md), [2](https://github.com/lsd-rs/lsd/commit/ae1a2cd964168dee240de1ba13dd85e08b9a26a4)) | [ls](https://en.wikipedia.org/wiki/Ls) | +| [ripgrep](https://github.com/BurntSushi/ripgrep) | [`15.1.0`](https://github.com/BurntSushi/ripgrep/tree/15.1.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/BurntSushi/ripgrep/commit/f0cec341ab95c25c691ad3d5754d4bd9eedde21f)) | [grep](https://en.wikipedia.org/wiki/Grep) | | [zoxide](https://github.com/ajeetdsouza/zoxide) | [`v0.9.2`](https://github.com/ajeetdsouza/zoxide/releases/tag/v0.9.2) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/ajeetdsouza/zoxide/blob/67ca1bc9592854dd4957b8b02f16292638475659/README.md), [2](https://github.com/ajeetdsouza/zoxide/commit/073500cbdf8ba211e5115fc6e51411cf2468fc5b), [3](https://github.com/ajeetdsouza/zoxide/commit/61f19a60d91b7181bfdc88470e72bcd1befc7c6a)) | [cd](https://en.wikipedia.org/wiki/Cd_(command)) | ### File Managers From 219717c7d2f8e61c05c42a26ab8518e85b3a2099 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Fri, 29 May 2026 16:56:16 +0200 Subject: [PATCH 159/413] fix spelling of KeePassXC (#840) KeepassXC -> KeePassXC Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/840 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68daa6e..4dd896b 100644 --- a/README.md +++ b/README.md @@ -1083,7 +1083,7 @@ This is a section for repos that are similar to this one either because they are | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | | [KeePassDX](https://www.keepassdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Kunzisoft/KeePassDX/blob/master/CONTRIBUTING.md#code-generation), [2](https://github.com/Kunzisoft/KeePassDX/issues/2447#issuecomment-4029885903)) | -| [KeepassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [KeePassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | | [vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | > [!Note] From 03f3af98035d3e2b31710fe62e04ed13305801c5 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 29 May 2026 19:30:25 +0200 Subject: [PATCH 160/413] Change definitions heading and add back vibecoded tag (#813) Co-authored-by: JesseBot Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/813 Reviewed-by: Max --- CONTRIBUTING.md | 71 ++++++++++++++++++++++++++++++++++++++++--------- FAQ.md | 10 +++---- README.md | 50 ++++++++++++++++++++-------------- STYLE.md | 7 ++++- 4 files changed, 99 insertions(+), 39 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 625aca6..4292d28 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,10 @@ > [!warning] -> Before you interact with this repo, please read the [**Code of Conduct**](./CODE_OF_CONDUCT.md)! This is a repo for *nice people only*! +> Before you interact with this repo, please read the [**Code of Conduct**](./CODE_OF_CONDUCT.md)! This is a repo for *nice people only*! We would also appreciate it if you did not mention this repo on social media or in chats in order to shame a project or community. Do *not* make posts like, "`` should be added to the open-slopware list", especially if you are tagging a maintainer or using a project's hashtag. # Contributing Pull Requests +## For Adding or Updating Tainted Software + To contribute to this list, file a pull request adding it to the appropriate category, along with any known alternatives. The pull request must include links to evidence (see [Criteria](#criteria)). Title the pull request one of the following: @@ -11,7 +13,6 @@ Title the pull request one of the following: - Add `` as an Alternative for `` - Add `` as an Alternative for `` - Update `` -- Remove `` > [!important] > Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop <3 @@ -30,10 +31,11 @@ Other tips for keeping the repo tidy and making sure we don't duplicate efforts: > [!note] > Don't know how to create a PR? You can learn more about that in the [Codeberg Pull Requests and Git Flow docs](https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/) 🩵 -## Criteria +### Criteria The criteria for being included in this repository are any of following tags. You can click each one to jump to the definition and acceptable evidence: +- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) (only to be used in extreme cases) - [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) - [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) - [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) @@ -51,37 +53,80 @@ Please don't submit social media posts as evidence unless it is a post *by a mai When submitting new software to this list, please check out the [style guide](./STYLE.md) to ensure you are conforming to our community agreed upon standards. -## Removal +### Removal of "Tainted" Status -Any project here may be removed as long as the following become true, *even if prior LLM-authored code remains*: +Any project here may have the "Tainted" status removed as long as the following become true, *even if prior LLM-authored code remains*: 1. The project establishes a "No genAI" policy, where the core developers commit to no longer using LLMs for developing that project in particular and no longer accepting obvious LLM-authored contributions, and state the policy prominently in their repo. 2. Any genAI functionality of the project itself is removed in its entirety. "Kill switches" are insufficient. 3. Any LLM friendly files/folders are either poisoned or removed entirely. +Title the pull request like this: +> Remove `` + When submitting a project for removal, please include a link to the evidence that they have created a "No genAI" policy. You can also submit PRs to update if a project stops using something like [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews), but keeps a [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy). Updates are always welcome. Do you see a project on this list that you wish was not on it? Please consider reaching out in a kind way to suggest they implement a No AI Policy. You can check out our [No AI Request Template](./NO_AI_REQUEST_TEMPLATE.md) for inspiration 🙏 -# Issues +### Adding Alternatives to Tainted Software + +Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry). You can absolute self-submit + +#### Unqualified Alternatives + +- Any project associated with bigotry is not allowed. + +- At this time, we're not accepting alternatives that are centralized and/or lacking the appropriate documentation to be self-hosted by non-experts. For example, we will not endorse the messaging app "Signal", or social media platforms based on AT-protocol. In the event that such projects do become tainted they would not be easy to fork, operate, or support - which places users and operators at a disadvantage. If a project does inprove their documentation such that self-hosting becomes more accessable, we will of course re-evaluate. Feel free to open a PR. + +# Contributing Issues Issues are meant primarily for discussing if something should be added or questions regarding clarification. An issue that says "Add x software" will be treated as a call to community action and labeled with `ready-for-pr`, provided it meets the above criteria. This is not a problem, but does not necessarily mean the core maintainers of this repo will create that PR for you. However it does mean you or someone else in the community is clear to go ahead and submit a PR for that software. This is maintained in the community's free time, so please understand that there will sometimes be a delay when a PR is created for you. Please make sure to only submit an Issue for 1 piece of software or section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. +We use the following issue types and tags to keep conversation focused and actionable. + +## Discussion + +This is a general issue type and tag to discuss things related to the repo. + This is not a place to discuss what you think an "ethical" LLM/AI is. We will close any Issues opened asking for advice on AI/LLM usage. This is also not a place to open an issue to the effect of "think of the centrists". -## Helping with kind eyes +## More Kind Eyes -Maybe you don't need/want to open an Issue or Pull Request to this repo, but you still want to help. Here's what you can do. Take a look through the: +Maybe you don't need/want to open an Issue or Pull Request to this repo, but you still want to help. Consider chiming in, kindly, on a "More Key Eyes" issue. This issue type is for when someone has found, or created, a link to an AI discussion topic. AI discussion topic links can be: -- **Issues** labeled with [`more-kind-eyes-please`](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) or [`awaiting-upstream-feedback`](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&state=open&labels=1280479&milestone=0&assignee=0&poster=0) -- **Pull Requests** labeled with [`more-kind-eyes-please`](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) or [`awaiting-upstream-feedback`](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1280479&state=open&milestone=0&project=0&assignee=0&poster=0) +- Bug/Issue in a repo's Issue Tracker +- Discussion on forge sites that support that feature e.g. GitHub Discussions +- PR on an AI Policy where feedback is welcome +- Forum post specifically dedicated to the project and read by the maintainers of the project +- Social media account run *by the project* and not a solo maintainer. We do **not** want to call watchers of this repo to approach solo maintainers (there is too much room for that to potentially result in harassment), but if a project/company has a specific social media thread asking for opinions on AI usage in their code base or as a feature of their project/product, feel free to link that. -In either case, one thing you can do is react positively to a given upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. It's unwise to pop into a discussion for a project you do not use and have no interest in using and only adds noise to the conversation, which could overwhelm the maintainers. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. +Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. -# Social media +If you want to help in that way, search for: -We would appreciate it if you did not mention this repo on social media or in chats in order to shame a project or community. Do not make posts like, "`` should be added to the open-slopware list", especially if you are tagging a maintainer or using a project's hashtag. Please also don't quote social media posts in the "Why not LLMs" section. \ No newline at end of file +- **Issues** labeled with [`more-kind-eyes-please`](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) +- **Pull Requests** labeled with [`more-kind-eyes-please`](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) + +# Contributing to the Why Not LLMs section + +This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: + +- Do not link to people's social media posts e.g. fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. + +- When adding a link to back up your point, please use the name of the source and title of the article as the link name + +- Do not use paywalled links unless you are using an archive link that removes the paywall + +- Prefer archive links wherever possible + +- Use a content warning if anything may be triggering. Content warnings must be specific to the subject matter. Do not use the term "NSFW". Here is an example of how to write a content warning: +```markdown +
+ Content warning: Genocide + Content discussing genocide goes here. +
+``` diff --git a/FAQ.md b/FAQ.md index 8314029..9e419e2 100644 --- a/FAQ.md +++ b/FAQ.md @@ -16,7 +16,7 @@ There's no great place to put these in our current files, but these sorts of que ## Can we split the "Permissive AI Policy" tag further? -> No, beyond "vibecoded" being added in some extreme cases. We don't want to have this conversation continually, as it is subjective what "severity" something falls under. The decision to add these tags took us a long time, and unless you have another *specific* tag that cannot be covered under any other tag, we're currently not open to discussion about this. This repo is already quite a lot to manage. +> No, we don't want to have this conversation continually, as it is subjective what "severity" something falls under. The decision to add these tags took us a long time, and unless you have another *specific* tag that cannot be covered under any other tag, we're currently not open to discussion about this. This repo is already quite a lot to manage. We need to keep tags specific. ## What if the AI code is human reviewed? @@ -56,11 +56,11 @@ There's no great place to put these in our current files, but these sorts of que ## Why is removal harder than landing on the list in the first place? -> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concreate, and enforceable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. +> Because the project betrayed our trust. Now they have to try harder to rebuild that by committing to doing better in an accountable, public, concrete, and enforceable way. If the project is committed to doing better by rejecting AI in the future, putting out a No AI policy or updating their contributing docs, shouldn't be that difficult. -## Why can't I include an social media post? +## Why can't I include a social media post? -> We do not want to have a social media type atmosphere here and quoting social media posts, no matter what side people are on, gets messy. The mtaintiners here do not have the mental health to engage in social media drama that inevitably arises from AI bros, nor do we want to inflict that on anyone who is unaware of this list and hasn't consented to that attention. This does not mean you should reach out to your favorite anti-AI influencer for permission to include them in this list. We don't want you to do that. +> We do not want to have a social media type atmosphere here and quoting social media posts, no matter what side people are on, gets messy. The maintainers here do not have the mental health to engage in social media drama that inevitably arises from AI bros, nor do we want to inflict that on anyone who is unaware of this list and hasn't consented to that attention. This does not mean you should reach out to your favorite anti-AI influencer for permission to include them in this list. We don't want you to do that. ### But what if it's a social media post against AI? @@ -68,4 +68,4 @@ There's no great place to put these in our current files, but these sorts of que ## I don't like your definition of slop or vibecoded. Can you change it? -> No. Those [definitions](https://codeberg.org/small-hack/open-slopware#definitions) stay and are not up for debate. \ No newline at end of file +> No. Those [definitions](https://codeberg.org/small-hack/open-slopware#definitions) stay and are not up for debate. diff --git a/README.md b/README.md index 4dd896b..0b2c0c2 100644 --- a/README.md +++ b/README.md @@ -186,7 +186,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Effect on Hardware Prices](#effect-on-hardware-prices) * [License](#license) -## Definitions +# Definitions | Term | Definition | |-----------|---------------------------------------------------------------------------------------------------------------------------------------| @@ -197,7 +197,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question Below are special definitions that are used for tagging purposes. -### Permissive AI Policy +## Permissive AI Policy ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) @@ -211,23 +211,30 @@ Evidence can be: - link to readme, website, or documentation stating the project is vibecoded > [!Important] -> If a core maintainer has noted that the code is entirely vibecoded, please put that as the *first* evidence link. +> If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. That tag is specifically meant for extreme cases only. -#### Vibecode +### Vibecoded -Asking an AI to write software for you (often without human review). Per [Wikipedia](https://en.wikipedia.org/wiki/Vibe_coding): +![Vibecoded](./badges/vibecoded.svg) + +Asking an AI to write software for you (*often* without human review). Per [Wikipedia](https://en.wikipedia.org/wiki/Vibe_coding): > In computer programming, vibe coding is a software development practice assisted by artificial intelligence (AI) such as by chatbots (programs that simulate conversation) or AI agents such as Codex or Claude Code. The software developer describes a project or task in a prompt to a large language model (LLM), which generates source code automatically. Vibe coding may involve accepting AI-generated code without reviewing the output thoroughly, instead relying on results and follow-up prompts to guide changes. -The term was coined by [Andrej Karpathy](https://en.wikipedia.org/wiki/Andrej_Karpathy) (co-founder of [OpenAI](https://openai.com/)) in February 2025. +The term was coined by [Andrej Karpathy](https://en.wikipedia.org/wiki/Andrej_Karpathy) (co-founder of [OpenAI](https://openai.com/)) in February 2025. A **Vibecoder** is a person who uses AI prompts to generate anything, typically code or images. It would therefore be appropriate to call Andrej Karpathy a vibecoder. -A **Vibecoder** is a person who uses AI prompts to generate anything, typically code or images. It would therefore be appropriate to call Andrej Karpathy a vibecoder. - -> [!Note] +> [!tip] > Humans reviewing vibecoded code does not disqualify said code from being considered vibecoded. +Evidence can be: -### AI Functionality +- blog post stating the project was vibecoded +- contributing/developer docs *requiring* the usage of AI + +> [!Important] +> Please note we only use the ![Vibecoded](./badges/vibecoded.svg) tag in extreme scenarios when a project is *mostly* coded using AI. + +## AI Functionality ![AI Functionality](./badges/ai-functionality-yellow.svg) @@ -239,7 +246,7 @@ Evidence can be: - a blog post advertising the AI Functionality - a link to the default branch in a repo that shows where the AI Functionality is implemented -### AI Code Reviews +## AI Code Reviews ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) @@ -254,7 +261,7 @@ Evidence can be: > [!note] > Due to the way GitHub works, any user there can request a code review from copilot and a project's maintainers cannot ban copilot from their repo. If a user requests an AI code review on GitHub and a maintainer says "Don't do that", do not list the project using this tag. If the maintainer says nothing though, it's fine to still apply this tag as that's an implicit approval. -### Gen AI 'Art' +## Gen AI 'Art' ![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg) @@ -264,7 +271,7 @@ Evidence can be: - link to the place where the AI "art" is used -### AI Sponsored +## AI Sponsored ![AI sponsored](./badges/ai-sponsored-blue.svg) @@ -276,7 +283,7 @@ Evidence can be: - link to website that lists AI companies in sponsors list - README that says "Sponsored by " -### AI Databroker Usage +## AI Databroker Usage ![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg) @@ -287,7 +294,7 @@ Evidence can be: - Blog post talking about using AI for processing user data - Privacy policy listing an AI company as a third party service -### AI In Issue Tracker +## AI In Issue Tracker ![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg) @@ -297,7 +304,7 @@ Evidence can be: - Link to AI in an Issue, Bug report, Discussion, etc - must be related to the project's bug/issue tracking (e.g. dosu) -### Permits LLM Ingestion +## Permits LLM Ingestion ![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) @@ -313,7 +320,10 @@ Evidence can be: - An AI or Contribution policy that carves out a space for "using LLMs to understand the code" or "finding bugs" - Core maintainer using or accepting the use of AI for finding Security issues -### Request for Help +> [!tip] +> This tag is not to be confused with ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg), which is for when there is already AI generated code in the codebase or an `AGENTS.md` in the repo. + +## Request for Help ![Request for Help](./badges/request-for-help.svg) @@ -1410,12 +1420,12 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!Note] > #### Alternatives > As of writing and to the best of our knowledge, none of these projects have LLM usage, but they also have no explicit policies against AI. -> +> > - [Archey 4](https://github.com/HorlogeSkynet/archey4) displays info in a similar way to neofetch (and fastfetch) > - [macchina](https://github.com/Macchina-CLI/macchina) > - [nerdfetch](https://github.com/ThatOneCalculator/NerdFetch) > - [neofetch](https://github.com/dylanaraps/neofetch) and [screenFetch](https://github.com/KittyKatt/screenFetch) are still technically options, although they both have officially ceased development. -> +> > The [Wikipedia page for neofetch](https://en.wikipedia.org/wiki/Neofetch#Other_implementations) also lists many implementations of neofetch in different programming languages, it may be worth a look as well. ## System Logs Managers @@ -1501,7 +1511,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | | [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | -| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | diff --git a/STYLE.md b/STYLE.md index fb41220..1c2aed9 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,12 +16,13 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | | [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): - [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) +- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware##vibecoded) (keep in mind this is more severe than permissive AI policy) - [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) - [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) - [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) @@ -43,6 +44,10 @@ Here are all the badges for easy copying and pasting: [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ``` +```markdown +[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) +``` + ```markdown [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ``` From 040cc040cb5ab95a010262e3f585ac33185d6217 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 29 May 2026 19:35:46 +0200 Subject: [PATCH 161/413] fix removal links --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 9e419e2..e059f72 100644 --- a/FAQ.md +++ b/FAQ.md @@ -24,11 +24,11 @@ There's no great place to put these in our current files, but these sorts of que ## Why are you targeting/attacking/harassing my favorite project? -> We do not "target", "harass", or "attack" any projects. We, in fact, have a [very strict policy on not doing that](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#be-kind-or-be-gone). This repo is one based on ethics and is intended as a call to action. If a project meets the definition of one of our tags, it will see itself added to this repo. It can take steps to stop doing whatever it is in that definition and we'll remove it. (See also the [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal).) +> We do not "target", "harass", or "attack" any projects. We, in fact, have a [very strict policy on not doing that](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#be-kind-or-be-gone). This repo is one based on ethics and is intended as a call to action. If a project meets the definition of one of our tags, it will see itself added to this repo. It can take steps to stop doing whatever it is in that definition and we'll remove it. (See also the [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status).) ## If a repo had slop before, isn't it permanently tainted? Aren't all forks of slop therefore also slop? -> No. See also: [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal). +> No. See also: [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status). > > Eventually, the slop will likely either be removed, replaced, or deprecated. > From 631434500733f77e928a94c373bd352ed2ef395f Mon Sep 17 00:00:00 2001 From: K4 Date: Fri, 29 May 2026 19:39:31 +0200 Subject: [PATCH 162/413] add 9front as altenative OS (#810) A policy was added in this [commit](https://git.9front.org/plan9front/9front/2e21c09e8cdbca26aa3b069699239467e1fabc40/commit.html). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/810 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b2c0c2..b7010c6 100644 --- a/README.md +++ b/README.md @@ -1060,6 +1060,7 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Other alternative operating systems +> * [9front](https://9front.org/) has [banned computer generated code](https://git.9front.org/plan9front/9front/e4deac62c80e0d7910ceb49b1f41f2fbdcdc85db/lib/legal/contributing/f.html) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) > * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) From b85d72e3aedddff40e1fd1885ffcefc7dd6cf57b Mon Sep 17 00:00:00 2001 From: mathew Date: Fri, 29 May 2026 19:40:05 +0200 Subject: [PATCH 163/413] Add rsync alternative https://github.com/gokrazy/rsync (#847) Adds an rsync-compatible alternative written in Go and easily cross-compilable. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/847 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b7010c6..95e2515 100644 --- a/README.md +++ b/README.md @@ -793,7 +793,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | -| [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/) | +| [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/),
[gokrazy/rsync](https://github.com/gokrazy/rsync) | ## Filesystem Navigation From 496b39470173e4fb7c13afba4917a6ead3d4cea7 Mon Sep 17 00:00:00 2001 From: znmz Date: Fri, 29 May 2026 19:47:12 +0200 Subject: [PATCH 164/413] add Proton Mail and Tuta (#817) Creates the "E-Mail Web Clients" subsection. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/817 Reviewed-by: Admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 95e2515..75965b0 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [E-Mail and Calendar](#e-mail-and-calendar) * [E-mail Desktop Clients](#e-mail-desktop-clients) * [E-mail Mobile Clients](#e-mail-mobile-clients) + * [E-Mail Web Clients](#e-mail-web-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Monitoring](#file-monitoring) * [File Storage](#file-storage) @@ -752,6 +753,13 @@ This is a section for repos that are similar to this one either because they are | [FairEmail](https://github.com/M66B/FairEmail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/M66B/FairEmail/blob/master/FAQ.md#faq190)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [thunderbird android/k-9 mail](https://github.com/thunderbird/thunderbird-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/thunderbird/thunderbird-android/blob/main/AGENTS.md)) | [Simple Email](https://framagit.org/dystopia-project/simple-email) | +### E-Mail Web Clients + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---------|:--------------:|----------|-------| +| [Proton Mail](https://proton.me/mail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://proton.me/blog/proton-scribe-writing-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ProtonMail/WebClients/commit/4825a7cf6b1285784e5861d067a2c3c6a37715c4), [2](https://github.com/ProtonMail/WebClients/commit/064e5ee4b72ac84c5ce597fdc8a62a4f74415b99)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Tuta](https://tuta.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tutao/tutanota/pull/10817))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/tutao/tutanota/pull/10112), [2](https://github.com/tutao/tutanota/pull/10282))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Calendar Mobile Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From d16cd816dca3420ca2da100fb959385f52f886ea Mon Sep 17 00:00:00 2001 From: yuli Date: Fri, 29 May 2026 19:52:38 +0200 Subject: [PATCH 165/413] Add gogpu (#774) Neither of the alternatives have explicit ai policies but i couldnt find any evidence of ai used in them and these are the best alternatives i could find with how sparse the options are for gpu tools in go,, theres 2 others i considered: [go-sdl3](https://github.com/Zyko0/go-sdl3) and [vulkan-go](https://github.com/vulkan-go/vulkan) but i decided not to include them because go-sdl3 is dependent on purego which is tainted, and vulkan-go is unmaintained (no commits in 4 years) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/774 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 75965b0..d0f1908 100644 --- a/README.md +++ b/README.md @@ -1214,6 +1214,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | +| [gogpu](https://github.com/gogpu/gogpu) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://dev.to/kolkov/from-vibe-coding-to-agentic-engineering-what-karpathy-got-right-and-whats-missing-62e), [2](https://github.com/gogpu/gogpu/pull/166)) | [go-gl](https://github.com/go-gl/gl), [webgpu](https://github.com/cogentcore/webgpu) | | [gotests](https://github.com/cweill/gotests) | [`v1.6.0`](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | From 4cb0f298e80cbce705542ce453922c54ebea7c6b Mon Sep 17 00:00:00 2001 From: Matt Grandis Date: Fri, 29 May 2026 20:56:14 +0200 Subject: [PATCH 166/413] Add ProcessWire (#843) Add ProcessWire Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/843 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d0f1908..3456803 100644 --- a/README.md +++ b/README.md @@ -462,10 +462,12 @@ This is a section for repos that are similar to this one either because they are | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | | [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/blob/main/AGENTS.md), [2](https://github.com/TryGhost/Ghost/pull/27666), [3](https://github.com/TryGhost/Ghost/pull/27642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TryGhost/Ghost/pull/27667), [2](https://github.com/TryGhost/Ghost/pull/27211)) | [WriteFreely] | +| [ProcessWire](https://www.processwire.com) | [`89cd626`](https://github.com/processwire/processwire/commit/89cd626f7f87d041a4423d896cf225dd42a5ee66) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://processwire.com/modules/agent-tools/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://processwire.com/blog/posts/processwire-and-ai/), [2](https://github.com/processwire/processwire/blob/dev/AGENTS.md), [3](https://github.com/processwire/processwire/blob/dev/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md)) | [WriteFreely] | | [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092)) | [WriteFreely] | | [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/), [2](https://wordpress.org/download/releases/7.0/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449)) | [WriteFreely] | + ### Static Site Generators | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 0dc8e527595d2e2c0dae210d90fd9d6019dbc4cc Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Fri, 29 May 2026 21:54:00 +0200 Subject: [PATCH 167/413] fix ToC link to vibecoded (#848) this probably needs to be updated for all the apps tagged with vibecoded as well Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/848 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3456803..82b451a 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) - * [Vibecode](#vibecode) + * [Vibecoded](#vibecoded) * [AI Functionality](#ai-functionality) * [AI Code Reviews](#ai-code-reviews) * [Gen AI 'Art'](#gen-ai-art) From 6086793141c92f006c7452ae8e90f8041ea38cef Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Fri, 29 May 2026 21:58:01 +0200 Subject: [PATCH 168/413] update AntennaPod (#808) add more evidence and AI reviews tag Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/808 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 82b451a..4dcb919 100644 --- a/README.md +++ b/README.md @@ -434,7 +434,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [AntennaPod](https://github.com/AntennaPod/AntennaPod) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md), [2](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [AntennaPod](https://github.com/AntennaPod/AntennaPod) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md), [2](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417), [3](https://github.com/AntennaPod/AntennaPod/pulls?q=is%3Apr+is%3Amerged+author%3A%40copilot+))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AntennaPod/AntennaPod/pull/8443#pullrequestreview-4304220839), [2](https://github.com/AntennaPod/AntennaPod/pull/8419#pullrequestreview-4269674921)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Backups From a965fcfdcc3acd0cc16cfc4ca6d957a1f645cbe0 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 29 May 2026 22:06:35 +0200 Subject: [PATCH 169/413] note that age of evidence is not grounds for removal --- CONTRIBUTING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4292d28..3065314 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ Title the pull request one of the following: - Update `` > [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop <3 +> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3 **Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** @@ -68,6 +68,9 @@ When submitting a project for removal, please include a link to the evidence tha Do you see a project on this list that you wish was not on it? Please consider reaching out in a kind way to suggest they implement a No AI Policy. You can check out our [No AI Request Template](./NO_AI_REQUEST_TEMPLATE.md) for inspiration 🙏 +> [!note] +> Age of evidence is not grounds for removal. Example: If agent instructions were added several years ago, but have never been removed, this evidence is still valid and the only way to have the project's tainted status removed is for them to remove those instructions and to put out a No AI policy. We do not make exceptions to this rule. + ### Adding Alternatives to Tainted Software Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry). You can absolute self-submit From 6ba4217b36e8dbe047a332fa2663e102e293b1b9 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 29 May 2026 22:10:12 +0200 Subject: [PATCH 170/413] Make sure you've read the full description of the issue type --- .../{request-for-help.yaml => request-for-more-kind-eyes.yaml} | 2 ++ 1 file changed, 2 insertions(+) rename .forgejo/issue_template/{request-for-help.yaml => request-for-more-kind-eyes.yaml} (89%) diff --git a/.forgejo/issue_template/request-for-help.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml similarity index 89% rename from .forgejo/issue_template/request-for-help.yaml rename to .forgejo/issue_template/request-for-more-kind-eyes.yaml index 45f33d0..af8f672 100644 --- a/.forgejo/issue_template/request-for-help.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -37,5 +37,7 @@ body: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: + - label: I have read the full description of this issue type [here](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#more-kind-eyes) + required: true - label: I agree to follow this project's Code of Conduct required: true From 0eef8ac87d0665e24fa62eb3882da92ac114b7fb Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Sat, 30 May 2026 08:53:00 +0200 Subject: [PATCH 171/413] small grammar fix (#851) has allows -> has allowed Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/851 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4dcb919..2c5b47c 100644 --- a/README.md +++ b/README.md @@ -1034,7 +1034,7 @@ This is a section for repos that are similar to this one either because they are > #### Alternative BSD-based operating systems > * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) -> * [NetBSD](https://www.netbsd.org/) has [allows core maintainers to sign off on LLM generated code](https://www.netbsd.org/developers/commit-guidelines.html), but to date they have not yet. +> * [NetBSD](https://www.netbsd.org/) has [allowed core maintainers to sign off on LLM generated code](https://www.netbsd.org/developers/commit-guidelines.html), but to date they have not yet. ### Linux-based From 001016f5a2b235e384135542bd663c58ee0dfd22 Mon Sep 17 00:00:00 2001 From: cirilla Date: Sat, 30 May 2026 08:57:57 +0200 Subject: [PATCH 172/413] Add Bluefin (#849) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/849 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2c5b47c..f31fb01 100644 --- a/README.md +++ b/README.md @@ -1040,6 +1040,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Bluefin](https://projectbluefin.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.projectbluefin.io/ai/), [2](https://ask.projectbluefin.io/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/bluefin/blob/main/AGENTS.md)) | See below | | [Fedora](https://fedoraproject.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | | [OpenWrt](https://openwrt.org) | [`7214acd`](https://github.com/openwrt/openwrt/commit/7214acd7599a25863d6185a036d878b593b4b16c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openwrt/openwrt/commit/af3cbd4013a2c8c82450e4a4b21a73d28ab4cda2), [2](https://github.com/openwrt/openwrt/pull/21284), [3](https://github.com/openwrt/openwrt/commit/410277ca12d811daa8040edf75dfd87a2d9dd5f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openwrt/openwrt/pull/22565), [2](https://github.com/openwrt/openwrt/pull/22421), [3](https://github.com/openwrt/openwrt/pull/22543)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 2f63a5539287645c6d34b1569f0431b368225885 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 30 May 2026 09:01:11 +0200 Subject: [PATCH 173/413] explain how name column works --- STYLE.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/STYLE.md b/STYLE.md index 1c2aed9..aee4087 100644 --- a/STYLE.md +++ b/STYLE.md @@ -19,6 +19,8 @@ Make sure to format your table like below (note that it is alphabetized by softw | [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | | [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | +**Name column**: should be the name of software linked to their git repo (or other software forge if they don't use git). + **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): - [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) From 834556fcbedd5d964ed0b7b63c8eb747fcd37a04 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 30 May 2026 09:40:11 +0200 Subject: [PATCH 174/413] add issue badges (#854) this will make it easier to link when we need to, but also visually is nice for a TOC. Co-authored-by: JesseBot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/854 Reviewed-by: Max --- CONTRIBUTING.md | 13 ++++++++++--- badges/discussion.svg | 19 +++++++++++++++++++ badges/more-kind-eyes.svg | 18 ++++++++++++++++++ badges/ready-for-pr.svg | 19 +++++++++++++++++++ 4 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 badges/discussion.svg create mode 100644 badges/more-kind-eyes.svg create mode 100644 badges/ready-for-pr.svg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3065314..0301c3a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -87,10 +87,15 @@ Issues are meant primarily for discussing if something should be added or questi Please make sure to only submit an Issue for 1 piece of software or section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. -We use the following issue types and tags to keep conversation focused and actionable. +We use the following issue types and tags to keep conversation focused and actionable: + +- [![discussion](./badges/discussion.svg)](#discussion) +- [![more kind eyes please](./badges/more-kind-eyes.svg)](#more-kind-eyes) ## Discussion +![discussion](./badges/discussion.svg) + This is a general issue type and tag to discuss things related to the repo. This is not a place to discuss what you think an "ethical" LLM/AI is. We will close any Issues opened asking for advice on AI/LLM usage. @@ -99,6 +104,8 @@ This is also not a place to open an issue to the effect of "think of the centris ## More Kind Eyes +![more kind eyes please](./badges/more-kind-eyes.svg) + Maybe you don't need/want to open an Issue or Pull Request to this repo, but you still want to help. Consider chiming in, kindly, on a "More Key Eyes" issue. This issue type is for when someone has found, or created, a link to an AI discussion topic. AI discussion topic links can be: - Bug/Issue in a repo's Issue Tracker @@ -111,8 +118,8 @@ Anyone can then react (kindly) to a linked upstream issue, pull request, or disc If you want to help in that way, search for: -- **Issues** labeled with [`more-kind-eyes-please`](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) -- **Pull Requests** labeled with [`more-kind-eyes-please`](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) +- [**Issues**](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) +- [**Pull Requests**](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) # Contributing to the Why Not LLMs section diff --git a/badges/discussion.svg b/badges/discussion.svg new file mode 100644 index 0000000..bfe0d08 --- /dev/null +++ b/badges/discussion.svg @@ -0,0 +1,19 @@ + + discussion + + + + + + + + + + + + + + + discussion + + diff --git a/badges/more-kind-eyes.svg b/badges/more-kind-eyes.svg new file mode 100644 index 0000000..28892ee --- /dev/null +++ b/badges/more-kind-eyes.svg @@ -0,0 +1,18 @@ + + More Kind Eyes Please + + + + + + + + + + + + + + More Kind Eyes Please + + diff --git a/badges/ready-for-pr.svg b/badges/ready-for-pr.svg new file mode 100644 index 0000000..0f6bb60 --- /dev/null +++ b/badges/ready-for-pr.svg @@ -0,0 +1,19 @@ + + Ready for PR + + + + + + + + + + + + + + + Ready for PR + + From 05608f5b786dd6abd43cffb9a10fc933f6933227 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 30 May 2026 09:45:15 +0200 Subject: [PATCH 175/413] fix typo, fix codeblock, and add link to starting a more kind eyes issue type --- CONTRIBUTING.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0301c3a..7c04fb1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -106,7 +106,7 @@ This is also not a place to open an issue to the effect of "think of the centris ![more kind eyes please](./badges/more-kind-eyes.svg) -Maybe you don't need/want to open an Issue or Pull Request to this repo, but you still want to help. Consider chiming in, kindly, on a "More Key Eyes" issue. This issue type is for when someone has found, or created, a link to an AI discussion topic. AI discussion topic links can be: +Maybe you don't need/want to open an Issue or Pull Request to this repo, but you still want to help. Consider chiming in, kindly, on a ![more kind eyes please](./badges/more-kind-eyes.svg) Issue. This issue type is for when someone has found, or created, a link to an AI discussion topic. AI discussion topic links can be: - Bug/Issue in a repo's Issue Tracker - Discussion on forge sites that support that feature e.g. GitHub Discussions @@ -121,6 +121,8 @@ If you want to help in that way, search for: - [**Issues**](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) - [**Pull Requests**](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) +You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg) Issue](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2frequest-for-more-kind-eyes.yaml). + # Contributing to the Why Not LLMs section This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: @@ -134,7 +136,8 @@ This is a much more free form section without a specific rigid style guide at th - Prefer archive links wherever possible - Use a content warning if anything may be triggering. Content warnings must be specific to the subject matter. Do not use the term "NSFW". Here is an example of how to write a content warning: -```markdown + +```html
Content warning: Genocide Content discussing genocide goes here. From 9629c2021316c1c13b054cce0cd900203ccf9c87 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 30 May 2026 09:56:24 +0200 Subject: [PATCH 176/413] note that we ask that people do not speak on behalf of the repo community members still welcome, but asked to state that they are not maintainers if they give opinions when being the first to respond to a discussion type issue. Add a note on bigotry we may have missed --- CONTRIBUTING.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c04fb1..9211e08 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -96,12 +96,14 @@ We use the following issue types and tags to keep conversation focused and actio ![discussion](./badges/discussion.svg) -This is a general issue type and tag to discuss things related to the repo. +This is a general issue type and tag to discuss things related to the repo. Before opening this issue type, please read the [FAQ](./FAQ.md). This is not a place to discuss what you think an "ethical" LLM/AI is. We will close any Issues opened asking for advice on AI/LLM usage. This is also not a place to open an issue to the effect of "think of the centrists". +If someone has a question in the a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @vleermuis-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are ok with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). + ## More Kind Eyes ![more kind eyes please](./badges/more-kind-eyes.svg) @@ -116,6 +118,9 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. +>[!important] +> Reminder that if you post a link to software that is maintained by people who openly embrace bigotry, we will cose that issue. If you're a community member and see something we missed, feel free to kindly inform us and we will take action as soon as we're available (typically within 8 hours, but sometimes within 24 hours depending on availability). + If you want to help in that way, search for: - [**Issues**](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) From 6d8b21cc29dcf5de17e261680164206e4712fd9a Mon Sep 17 00:00:00 2001 From: znmz Date: Sat, 30 May 2026 14:50:42 +0200 Subject: [PATCH 177/413] Add gopass and Proton Pass (#825) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/825 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f31fb01..a23e0f1 100644 --- a/README.md +++ b/README.md @@ -1104,8 +1104,10 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | +| [gopass](https://github.com/gopasspw/gopass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gopasspw/gopass/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gopasspw/gopass/pull/3104), [2](https://github.com/gopasspw/gopass/pull/3113), [3](https://github.com/gopasspw/gopass/pull/3383)) | | [KeePassDX](https://www.keepassdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Kunzisoft/KeePassDX/blob/master/CONTRIBUTING.md#code-generation), [2](https://github.com/Kunzisoft/KeePassDX/issues/2447#issuecomment-4029885903)) | | [KeePassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [Proton Pass](https://proton.me/pass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://proton.me/blog/pass-access-tokens))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/protonpass/proton-pass-common/commit/d8c1c7ef6a58a0bcaa779bb975f72de4a59b17cb), [2](https://github.com/protonpass/ios-pass/commit/e0d392a4a8951f61b3a9fd530136f307a7fd1857)) | | [vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | > [!Note] From d841cc009910c7b1f8cc79723a1c96bc7a66ccd7 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Sat, 30 May 2026 16:18:26 +0200 Subject: [PATCH 178/413] Add v1.19.5 as last untainted elixir version (#855) So far it looks like slop entered only after that release (e.g. commit https://github.com/elixir-lang/elixir/commit/97abb544428e65e1df5b6e11f2633d8bd2aa793f). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/855 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a23e0f1..e013c79 100644 --- a/README.md +++ b/README.md @@ -1125,7 +1125,7 @@ This is a section for repos that are similar to this one either because they are | [.NET](https://dotnet.microsoft.com/) | [`v9.0.0`](https://github.com/dotnet/runtime/releases/tag/v9.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dotnet/runtime/blob/main/.github/copilot-instructions.md), [2](https://github.com/dotnet/runtime/blob/main/.github/agents/agentic-workflows.agent.md), [3](https://github.com/dotnet/runtime/commit/128321e88e2c93d69766e15ad4f06bab70b753b7))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dotnet/runtime/pull/116200)) | See below | | [D](https://dlang.org/) | [`2.112.0`](https://dlang.org/download.html) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dlang/dmd/commit/0bb399977511b76d770868fe14e16cad8dc49104)) | See below | | [Dart](https://dart.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md#ai-contribution-guidelines), [2](https://github.com/dart-lang/sdk/tree/6cd3938741d48681330363b3553da8eccf335407/.agents/skills), [3](https://github.com/dart-lang/core/tree/0def20c4bef2b242db15b38202a54735101f5791/.gemini)) | See below | -| [Elixir](https://elixir-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elixir-lang/elixir/blob/main/CONTRIBUTING.md#ai-contributions)) | See below | +| [Elixir](https://elixir-lang.org) | [v1.19.5](https://github.com/elixir-lang/elixir/releases/tag/v1.19.5) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elixir-lang/elixir/blob/main/CONTRIBUTING.md#ai-contributions)) | See below | | [Gerbil Scheme](https://github.com/mighty-gerbils/gerbil) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mighty-gerbils/gerbil/pull/1397)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Go](https://go.dev) | [`go1.22.4`](https://github.com/golang/go/releases/tag/go1.22.4) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://go.dev/gopls/features/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/golang/go/commit/b8be5de81ee78f51fbd600498093b542e75a710e), [2](https://github.com/golang/go/commit/f8f87129646ca3821b3926e649c856a960d6bc9e), [3](https://github.com/golang/go/commit/26d5e160750b34a537cce0f1bfd47f663a110d27))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/golang/go/discussions/67901)) | See below | | [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | From 366bf98ece396fd7785502ea19c19b2ac466126b Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Sat, 30 May 2026 16:19:58 +0200 Subject: [PATCH 179/413] Add Aurora. Add secureblue as an Alternative for Linux-based Operating Systems (#857) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/857 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e013c79..9f98495 100644 --- a/README.md +++ b/README.md @@ -1040,6 +1040,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Aurora](https://getaurora.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.getaurora.dev/guides/local-ai/)
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/aurora/blob/main/AGENTS.md)) | See below | | [Bluefin](https://projectbluefin.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.projectbluefin.io/ai/), [2](https://ask.projectbluefin.io/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/bluefin/blob/main/AGENTS.md)) | See below | | [Fedora](https://fedoraproject.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | @@ -1053,6 +1054,7 @@ This is a section for repos that are similar to this one either because they are > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) > * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > * [postmarketOS](https://postmarketos.org/) has [banned LLMs](https://docs.postmarketos.org/policies-and-processes/development/ai-policy.html) +> * [secureblue](https://secureblue.dev/) has [banned LLMs](https://secureblue.dev/contributing#ai-content/) ### Kernels From a0e1240fd26c2e9ed0af00fd809683ae0f1b4050 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 11:48:23 +0200 Subject: [PATCH 180/413] update code of conduct link --- .forgejo/issue_template/request-for-more-kind-eyes.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index af8f672..dcb7653 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -39,5 +39,5 @@ body: options: - label: I have read the full description of this issue type [here](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#more-kind-eyes) required: true - - label: I agree to follow this project's Code of Conduct + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true From ef7bfa22b14a85b183735fa1b052dd6c95f1d40e Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Sun, 31 May 2026 11:53:08 +0200 Subject: [PATCH 181/413] fix two typos in CONTRIBUTING.md (#859) - cose -> close - the a -> a Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/859 Reviewed-by: Admin --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9211e08..d8a5d2d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -102,7 +102,7 @@ This is not a place to discuss what you think an "ethical" LLM/AI is. We will cl This is also not a place to open an issue to the effect of "think of the centrists". -If someone has a question in the a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @vleermuis-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are ok with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). +If someone has a question in a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @vleermuis-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are ok with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). ## More Kind Eyes @@ -119,7 +119,7 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. >[!important] -> Reminder that if you post a link to software that is maintained by people who openly embrace bigotry, we will cose that issue. If you're a community member and see something we missed, feel free to kindly inform us and we will take action as soon as we're available (typically within 8 hours, but sometimes within 24 hours depending on availability). +> Reminder that if you post a link to software that is maintained by people who openly embrace bigotry, we will close that issue. If you're a community member and see something we missed, feel free to kindly inform us and we will take action as soon as we're available (typically within 8 hours, but sometimes within 24 hours depending on availability). If you want to help in that way, search for: From a9107dc54d5d0bd29d8b97b0836dff0f0c4772f4 Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Sun, 31 May 2026 11:53:42 +0200 Subject: [PATCH 182/413] Add the missing closing bracket (#860) A follow-up fix for my previous PR. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/860 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f98495..11f0cc4 100644 --- a/README.md +++ b/README.md @@ -1040,7 +1040,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Aurora](https://getaurora.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.getaurora.dev/guides/local-ai/)
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/aurora/blob/main/AGENTS.md)) | See below | +| [Aurora](https://getaurora.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.getaurora.dev/guides/local-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/aurora/blob/main/AGENTS.md)) | See below | | [Bluefin](https://projectbluefin.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.projectbluefin.io/ai/), [2](https://ask.projectbluefin.io/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/bluefin/blob/main/AGENTS.md)) | See below | | [Fedora](https://fedoraproject.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | From c2462ae662e1f12373b19f1826e7d46f005b94d4 Mon Sep 17 00:00:00 2001 From: Lily Gruman Date: Sun, 31 May 2026 12:15:40 +0200 Subject: [PATCH 183/413] Add lua-language-server (#657) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/657 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 11f0cc4..8d2e676 100644 --- a/README.md +++ b/README.md @@ -1262,6 +1262,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [`lua-language-server`](https://github.com/LuaLS/lua-language-server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LuaLS/lua-language-server/pull/3392))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LuaLS/lua-language-server/commit/a72090f06fd0c743d55aa4eab4e2b1c76b92c547)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight)
[Penlighter](https://codeberg.org/slop-free/Penlighter) (fork, WIP) | ### Python From 31d44c5fe75e56a42c618a6796a745f79d1ba2d1 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 12:18:00 +0200 Subject: [PATCH 184/413] minor fixes to lua-language-server --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d2e676..40ab612 100644 --- a/README.md +++ b/README.md @@ -1262,7 +1262,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [`lua-language-server`](https://github.com/LuaLS/lua-language-server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LuaLS/lua-language-server/pull/3392))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LuaLS/lua-language-server/commit/a72090f06fd0c743d55aa4eab4e2b1c76b92c547)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [lua-language-server](https://github.com/LuaLS/lua-language-server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LuaLS/lua-language-server/commit/a72090f06fd0c743d55aa4eab4e2b1c76b92c547), [2](https://github.com/LuaLS/lua-language-server/commit/bbad28b04455c135c0fb895a969b4a952e704039))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LuaLS/lua-language-server/pull/3392)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight)
[Penlighter](https://codeberg.org/slop-free/Penlighter) (fork, WIP) | ### Python From d4a3508b745e21b04d20d5a45900b5076155fb7e Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Sun, 31 May 2026 12:27:47 +0200 Subject: [PATCH 185/413] fix link to secureblue No LLM policy (#861) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/861 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 40ab612..d1441e5 100644 --- a/README.md +++ b/README.md @@ -1054,7 +1054,7 @@ This is a section for repos that are similar to this one either because they are > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) > * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > * [postmarketOS](https://postmarketos.org/) has [banned LLMs](https://docs.postmarketos.org/policies-and-processes/development/ai-policy.html) -> * [secureblue](https://secureblue.dev/) has [banned LLMs](https://secureblue.dev/contributing#ai-content/) +> * [secureblue](https://secureblue.dev/) has [banned LLMs](https://secureblue.dev/contributing#ai-content) ### Kernels From 44275cfb77c15f53753805dd2d1f2a04a8899647 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 12:38:19 +0200 Subject: [PATCH 186/413] clear up vibecoded vs permissive ai policy a bit more --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d1441e5..c03a7fa 100644 --- a/README.md +++ b/README.md @@ -202,14 +202,13 @@ Below are special definitions that are used for tagging purposes. ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) -A policy that permits the use of AI/LLMs in any capacity or is declared to be [vibecoded](#vibecode). Both vibecoding and opening the door for people to vibecode count as a permissive AI policy. +A policy that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a permissive AI policy. Evidence can be: - an explicit AI policy (e.g. `AI_POLICY.md`, `CONTRIBUTING.md`, developer docs) in the repo or something in the project's contributing guidelines or in their website's documentation that says that AI/LLMs are allowed - an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. -- core maintainers' blog or social media post about vibecoding -- link to readme, website, or documentation stating the project is vibecoded +- core maintainers' blog or social media post about using AI/LLMs > [!Important] > If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. That tag is specifically meant for extreme cases only. @@ -227,9 +226,12 @@ The term was coined by [Andrej Karpathy](https://en.wikipedia.org/wiki/Andrej_Ka > [!tip] > Humans reviewing vibecoded code does not disqualify said code from being considered vibecoded. +Sometimes people will refer to vibecoding as "agenic engineering". We will not be using that term in this repo, but that still counts for this tag's usage. + Evidence can be: - blog post stating the project was vibecoded +- link to readme stating that the project was vibecoded. - contributing/developer docs *requiring* the usage of AI > [!Important] From 7a8e6e0566d306d35ca6393d069b58a51e2268ad Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:51:21 +0200 Subject: [PATCH 187/413] style fixes in [Audio] section (#865) - Remove dead ToC secion [Digital Audio Editors] - Fix alphabetical order of sections Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/865 Reviewed-by: Admin --- README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c03a7fa..d74feb1 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) * [Digital Audio Workstations](#digital-audio-workstations) - * [Digital Audio Editors](#digital-audio-editors) - * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) * [Podcast Aggregators](#podcast-aggregators) + * [Standalone Digital Mixer](#standalone-digital-mixer) * [Backups](#backups) * [Benchmarking](#benchmarking) * [Blogging Software](#blogging-software) @@ -419,12 +418,6 @@ This is a section for repos that are similar to this one either because they are > > You may also consider browsing the DAWs available on [linuxdaw.org](https://linuxdaw.org/?p=f&l=o). -### Standalone Digital Mixer - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) -|---|:---:|---|---| -| [FineTune](https://github.com/ronitsingh10/FineTune) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ronitsingh10/FineTune/blob/20bbef22644a468f403cf9a011586ba2b0ed067f/.gitignore#L3)) | [BackgroundMusic](https://github.com/kyleneideck/BackgroundMusic) | - ### Music Players | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) @@ -438,6 +431,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [AntennaPod](https://github.com/AntennaPod/AntennaPod) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md), [2](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417), [3](https://github.com/AntennaPod/AntennaPod/pulls?q=is%3Apr+is%3Amerged+author%3A%40copilot+))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AntennaPod/AntennaPod/pull/8443#pullrequestreview-4304220839), [2](https://github.com/AntennaPod/AntennaPod/pull/8419#pullrequestreview-4269674921)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Standalone Digital Mixer + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [FineTune](https://github.com/ronitsingh10/FineTune) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ronitsingh10/FineTune/blob/20bbef22644a468f403cf9a011586ba2b0ed067f/.gitignore#L3)) | [BackgroundMusic](https://github.com/kyleneideck/BackgroundMusic) | + ## Backups | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From a7e2f9e59ef4622afdb749e702debd695afc3aa9 Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:51:56 +0200 Subject: [PATCH 188/413] style: move [Build Systems and Task Runners] section below [Browsers] (#866) Fixes alphabetical order. Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/866 Reviewed-by: Admin --- README.md | 68 +++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index d74feb1..e09a202 100644 --- a/README.md +++ b/README.md @@ -51,12 +51,12 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Static Site Generators](#static-site-generators) * [Books and Library Software](#books-and-library-software) * [Bootloaders](#bootloaders) - * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Browsers](#browsers) * [Browser Addons](#browser-addons) * [Desktop Browsers](#desktop-browsers) * [Headless Browsers](#headless-browsers) * [Mobile Browsers](#mobile-browsers) + * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Cheat Sheets and Documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) @@ -506,39 +506,6 @@ This is a section for repos that are similar to this one either because they are | [barebox](https://github.com/barebox/barebox) | [`fe328bc`](https://github.com/barebox/barebox/commit/fe328bcb8a40e407c7928b6256af4a69aacfab67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/barebox/barebox/commit/e3078309ff30c88fab260c6dd08f9208802c7c4c)) | [Coreboot](https://review.coreboot.org/coreboot.git),
[EDK2 (UEFI)](https://github.com/tianocore/edk2),
[U-Boot](https://github.com/u-boot/u-boot) | [Limine](https://github.com/Limine-Bootloader/Limine) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/small-hack/open-slopware/pulls/263#issuecomment-12690237), [2](https://codeberg.org/small-hack/open-slopware/pulls/285#issue-4234860)) | [Hyper](https://github.com/UltraOS/Hyper), [GRUB](https://www.gnu.org/software/grub/) | -## Build Systems and Task Runners - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | -| [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | -| [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | -| [Mill](https://mill-build.org/) | [`v1.0.6`](https://github.com/com-lihaoyi/mill/releases/tag/1.0.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/com-lihaoyi/mill/blob/main/AGENTS.md), [2](https://github.com/com-lihaoyi/mill/blob/main/CLAUDE.md)) | See Below | -| [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | See Below | -| [SCons](https://scons.org/) | [`4.10.1`](https://github.com/SCons/scons/releases/tag/4.10.1/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SCons/scons/blob/8ea152eddff6afa11f94108a10283bd6378a3dfa/AGENTS.md)) | [Waf](https://waf.io/) or See Below | -| [sbt](https://www.scala-sbt.org/) | [`1.12.3`](https://github.com/sbt/sbt/releases/tag/v1.12.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt/blob/develop/AGENTS.md), [2](https://github.com/sbt/sbt/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | See Below | -| [Taskfile](https://taskfile.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/go-task/task/pull/2592#pullrequestreview-3596720069)) | See Below | - -> [!NOTE] -> #### On task runners and `make(1)` implementations: -> A lot of Make implementations exist that are very fit to replace other task runners. -> In fact so many were produced, that one can just look up "GNU Make alternative" and find >10 results to pick the one they like the best. Also see: [wikipedia/Make](https://en.wikipedia.org/wiki/Make_(software)) -> Here are some Make implementation suggestions: -> | name | description | -> |------|-------------| -> | [GNU Make](https://www.gnu.org/software/make/) | the most complete one, extra extensions, guile scripting, exports, etc. | -> | [NetBSD `make`](https://man.netbsd.org/make.1) | Make used to build NetBSD ports tree | -> | [Jam](https://swarm.workshop.perforce.com/projects/perforce_software-jam/) | OSS rewrite by Perforce | -> | [Schilytools] or [OpenOffice](https://www.openoffice.org/tools/dmake/) ``dmake`` | Descendants of Sun's Distributed Make | - -> [!NOTE] -> #### Alternative Build Systems -> Various other build systems exist, -> that try to address perceived deficiencies in `make` and its derivatives. -> * [Ninja](https://ninja-build.org/) - standalone or as the backend of a meta-build tool like [CMake](https://cmake.org/) or [Meson](http://mesonbuild.com/) -> * [redo](https://redo.readthedocs.io/) -> * [tup](https://gittup.org/) - ## Browsers ### Browser Addons @@ -582,6 +549,39 @@ This is a section for repos that are similar to this one either because they are > * [IronFox] For Android, while not officially related to LibreWolf, some of the same developers work on it. > * [Waterfox] For Android. +## Build Systems and Task Runners + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | +| [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | +| [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | +| [Mill](https://mill-build.org/) | [`v1.0.6`](https://github.com/com-lihaoyi/mill/releases/tag/1.0.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/com-lihaoyi/mill/blob/main/AGENTS.md), [2](https://github.com/com-lihaoyi/mill/blob/main/CLAUDE.md)) | See Below | +| [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | See Below | +| [SCons](https://scons.org/) | [`4.10.1`](https://github.com/SCons/scons/releases/tag/4.10.1/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SCons/scons/blob/8ea152eddff6afa11f94108a10283bd6378a3dfa/AGENTS.md)) | [Waf](https://waf.io/) or See Below | +| [sbt](https://www.scala-sbt.org/) | [`1.12.3`](https://github.com/sbt/sbt/releases/tag/v1.12.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt/blob/develop/AGENTS.md), [2](https://github.com/sbt/sbt/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | See Below | +| [Taskfile](https://taskfile.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/go-task/task/pull/2592#pullrequestreview-3596720069)) | See Below | + +> [!NOTE] +> #### On task runners and `make(1)` implementations: +> A lot of Make implementations exist that are very fit to replace other task runners. +> In fact so many were produced, that one can just look up "GNU Make alternative" and find >10 results to pick the one they like the best. Also see: [wikipedia/Make](https://en.wikipedia.org/wiki/Make_(software)) +> Here are some Make implementation suggestions: +> | name | description | +> |------|-------------| +> | [GNU Make](https://www.gnu.org/software/make/) | the most complete one, extra extensions, guile scripting, exports, etc. | +> | [NetBSD `make`](https://man.netbsd.org/make.1) | Make used to build NetBSD ports tree | +> | [Jam](https://swarm.workshop.perforce.com/projects/perforce_software-jam/) | OSS rewrite by Perforce | +> | [Schilytools] or [OpenOffice](https://www.openoffice.org/tools/dmake/) ``dmake`` | Descendants of Sun's Distributed Make | + +> [!NOTE] +> #### Alternative Build Systems +> Various other build systems exist, +> that try to address perceived deficiencies in `make` and its derivatives. +> * [Ninja](https://ninja-build.org/) - standalone or as the backend of a meta-build tool like [CMake](https://cmake.org/) or [Meson](http://mesonbuild.com/) +> * [redo](https://redo.readthedocs.io/) +> * [tup](https://gittup.org/) + ## Cheat Sheets and Documentation | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From f33469c8b59ff22e8b116629cc83bb43daa6430b Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:52:35 +0200 Subject: [PATCH 189/413] style: use multi-referenced links for [Input Remapping] alternatives (#871) Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/871 Reviewed-by: Admin --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e09a202..8dd9df0 100644 --- a/README.md +++ b/README.md @@ -880,8 +880,8 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [kanata](https://github.com/jtroo/kanata) | [`v1.9.0`](https://github.com/jtroo/kanata/releases/tag/v1.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jtroo/kanata/commit/1fd7db64a74a5e66a1780dc60e3993e53d9d003f), [2](https://github.com/jtroo/kanata/commit/60fa5c8d0cdb033efcf3c3e54cb4047e29e6093f), [3](https://github.com/jtroo/kanata/pull/1707)) | [keyd](https://github.com/rvaiya/keyd),
[kmonad](https://github.com/kmonad/kmonad) | -| [keymapper](https://github.com/houmain/keymapper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/houmain/keymapper/blob/55744c5a9f4f0c3eb1861cf2ac51632fb8ac7390/src/client/unix/MessageBoxCocoa.mm#L4), [2](https://github.com/houmain/keymapper/pull/356)) | [keyd](https://github.com/rvaiya/keyd),
[kmonad](https://github.com/kmonad/kmonad) | +| [kanata](https://github.com/jtroo/kanata) | [`v1.9.0`](https://github.com/jtroo/kanata/releases/tag/v1.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jtroo/kanata/commit/1fd7db64a74a5e66a1780dc60e3993e53d9d003f), [2](https://github.com/jtroo/kanata/commit/60fa5c8d0cdb033efcf3c3e54cb4047e29e6093f), [3](https://github.com/jtroo/kanata/pull/1707)) | [keyd],
[KMonad] | +| [keymapper](https://github.com/houmain/keymapper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/houmain/keymapper/blob/55744c5a9f4f0c3eb1861cf2ac51632fb8ac7390/src/client/unix/MessageBoxCocoa.mm#L4), [2](https://github.com/houmain/keymapper/pull/356)) | [keyd],
[KMonad] | ## Language and Localization @@ -1895,6 +1895,8 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [iocraft]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java +[keyd]: https://github.com/rvaiya/keyd +[KMonad]: https://github.com/kmonad/kmonad [Konsole]: https://invent.kde.org/utilities/konsole [Lapce]: https://lap.dev/lapce/ [libmicrohttpd]: https://www.gnu.org/software/libmicrohttpd/ From abb976acec4ed57f4614973a02704c5293217949 Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:53:21 +0200 Subject: [PATCH 190/413] style: move [Servers] subsection below [Clients] in [Social Media] (#870) Fixes alphabetical order. Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/870 Reviewed-by: Admin --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8dd9df0..89fc339 100644 --- a/README.md +++ b/README.md @@ -140,8 +140,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Social Media](#social-media) - * [Servers](#servers) * [Clients](#clients) + * [Servers](#servers) * [SSH](#ssh) * [System Base](#system-base) * [System Information Utilities](#system-information-utilities) @@ -1386,6 +1386,14 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr This is for both social media websites and apps. +### Clients + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [IceCubesApp](https://github.com/Dimillian/IceCubesApp) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Dimillian/IceCubesApp/blob/main/CLAUDE.md)) |[Feditext](https://github.com/feditext/feditext) (iOS),
[wafrn-rn] | +| [Bluesky Social App](https://github.com/bluesky-social/social-app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bluesky-social/social-app/blob/177bdcd2b7807c9980dab32e7a5664fc006df40b/CLAUDE.md), [2](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [3](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a)) | [wafrn-rn] | +| [FeurStagram](https://github.com/jean-voila/FeurStagram/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jean-voila/FeurStagram/issues/23#issuecomment-4331590472), [2](https://discuss.privacyguides.net/t/feurstagram/37476/16)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Servers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -1405,13 +1413,6 @@ This is for both social media websites and apps. > * [Iceshrimp.NET](https://iceshrimp.net/) > * [Epicyon](https://codeberg.org/bashrc/epicyon) -### Clients -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [IceCubesApp](https://github.com/Dimillian/IceCubesApp) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Dimillian/IceCubesApp/blob/main/CLAUDE.md)) |[Feditext](https://github.com/feditext/feditext) (iOS),
[wafrn-rn] | -| [Bluesky Social App](https://github.com/bluesky-social/social-app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bluesky-social/social-app/blob/177bdcd2b7807c9980dab32e7a5664fc006df40b/CLAUDE.md), [2](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [3](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a)) | [wafrn-rn] | -| [FeurStagram](https://github.com/jean-voila/FeurStagram/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jean-voila/FeurStagram/issues/23#issuecomment-4331590472), [2](https://discuss.privacyguides.net/t/feurstagram/37476/16)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - ## SSH | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 762ab0cdda14914b7044315b3e8f749361569ce2 Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:54:49 +0200 Subject: [PATCH 191/413] style: move [Emulators] subsection above [Game engines] (#867) Fixes alphabetical order. Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/867 Reviewed-by: Admin --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 89fc339..7800a8f 100644 --- a/README.md +++ b/README.md @@ -90,11 +90,11 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Forum Software](#forum-software) * [Gaming](#gaming) * [Cellular Automata](#cellular-automata) + * [Emulators](#emulators) * [Game engines](#game-engines) * [Alternative game engines](#alternative-game-engines) * [Game Managers and Launchers](#game-managers-and-launchers) * [Mod managers](#mod-managers) - * [Emulators](#emulators) * [Input Remapping](#input-remapping) * [Language and Localization](#language-and-localization) * [Learning](#learning) @@ -837,6 +837,15 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Golly](https://golly.sourceforge.io/) | [`883b1ff`](https://sourceforge.net/p/golly/code/ci/883b1ff4f61d66426caf49768e7b1704ec7dadfc/) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Emulators + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | +| [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | +| [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) + ### Game engines | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -867,15 +876,6 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Modrinth](https://modrinth.com/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/modrinth/code/blob/main/CLAUDE.md), [2](https://github.com/modrinth/code/tree/main/.claude/skills)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | -### Emulators - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | -| [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | -| [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | -| [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) - ## Input Remapping | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From d4b6d6f931926080180cdd2797ed347cea80f3af Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:55:14 +0200 Subject: [PATCH 192/413] style: move [Messaging Servers] subsection below [Messaging Clients] (#868) Fixes alphabetical order. Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/868 Reviewed-by: Admin --- README.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 7800a8f..0ef31ef 100644 --- a/README.md +++ b/README.md @@ -102,8 +102,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) - * [Messaging Servers](#messaging-servers) * [Messaging Clients](#messaging-clients) + * [Messaging Servers](#messaging-servers) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Alternative Microcontroller Tools and Libraries](#alternative-microcontroller-tools-and-libraries) * [Networking](#networking) @@ -920,19 +920,6 @@ This is a section for repos that are similar to this one either because they are ## Messaging -### Messaging Servers - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| -| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | -| [Nerimity](https://github.com/Nerimity/nerimity-server) | [`661d069`](https://github.com/Nerimity/nerimity-server/commit/661d0693474180cee8d167c1201015c278c7a360) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-server/pull/40), [2](https://github.com/Nerimity/nerimity-server/pull/38), [3](https://github.com/Nerimity/nerimity-server/pull/32))| -| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | - -> [!Note] -> #### Messaging Server Alternatives by protocols -> - IRC servers overall don't seem to have AI-committed code - - ### Messaging Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -964,6 +951,18 @@ This is a section for repos that are similar to this one either because they are > - [WeeChat](https://github.com/weechat/weechat): Multi-protocol > - IRC clients overall don't seem to have AI-committed code +### Messaging Servers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | +| [Nerimity](https://github.com/Nerimity/nerimity-server) | [`661d069`](https://github.com/Nerimity/nerimity-server/commit/661d0693474180cee8d167c1201015c278c7a360) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-server/pull/40), [2](https://github.com/Nerimity/nerimity-server/pull/38), [3](https://github.com/Nerimity/nerimity-server/pull/32))| +| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | + +> [!Note] +> #### Messaging Server Alternatives by protocols +> - IRC servers overall don't seem to have AI-committed code + ## Microcontroller Tools and Libraries | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | From 8dc4f969b1ff10731e7678f9c7b6cf7227515101 Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 13:55:53 +0200 Subject: [PATCH 193/413] style: move [Peripheral Managers] section below [Password Management] (#869) Fixes alphabetical order. Part of #858 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/869 Reviewed-by: Admin --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0ef31ef..9375282 100644 --- a/README.md +++ b/README.md @@ -119,8 +119,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Other alternative operating systems](#other-alternative-operating-systems) * [Package Managers](#package-managers) * [Package Manager Alternatives](#package-manager-alternatives) - * [Peripheral Managers](#peripheral-managers) * [Password Management](#password-management) + * [Peripheral Managers](#peripheral-managers) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) * [C](#c) @@ -1094,12 +1094,6 @@ This is a section for repos that are similar to this one either because they are > > If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. -## Peripheral Managers - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Logitune](https://github.com/mmaher88/logitune) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mmaher88/logitune/blob/master/CLAUDE.md), [2](https://github.com/mmaher88/logitune/commit/ecdf41157b2f98575c8b6912423ee348990e2bd2), [3](https://github.com/mmaher88/logitune/commit/88a4e6883c72381a662977bedb3c4eed9e95fb41)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) - ## Password Management | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -1120,6 +1114,12 @@ This is a section for repos that are similar to this one either because they are > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. > * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. +## Peripheral Managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Logitune](https://github.com/mmaher88/logitune) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mmaher88/logitune/blob/master/CLAUDE.md), [2](https://github.com/mmaher88/logitune/commit/ecdf41157b2f98575c8b6912423ee348990e2bd2), [3](https://github.com/mmaher88/logitune/commit/88a4e6883c72381a662977bedb3c4eed9e95fb41)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) + ## Programming Languages | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From c207018a4de4a3a9f29e88faf2559136b18187c0 Mon Sep 17 00:00:00 2001 From: Edan Osborne Date: Sun, 31 May 2026 13:57:10 +0200 Subject: [PATCH 194/413] Add mksh as an Alternative for Bourne Shell Implementations (#872) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/872 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9375282..5b65ee8 100644 --- a/README.md +++ b/README.md @@ -605,6 +605,7 @@ This is a section for repos that are similar to this one either because they are > #### Alternative Bourne Shell Implementations > * [dash](http://gondor.apana.org.au/~herbert/dash/) > * [bash](https://www.gnu.org/software/bash/) +> * [mksh](http://www.mirbsd.org/mksh.htm) > * [oksh](https://github.com/ibara/oksh) > * [Busybox](https://busybox.net/) `ash` > * [Schilytools] `bosh` From 8615ebe7f43fef51f55c98d5d7e9c92001460c86 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 14:17:41 +0200 Subject: [PATCH 195/413] add opensearch under new search > search platforms section (#874) Closes #645 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/874 --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5b65ee8..d4fe12d 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) * [Runtime Version Managers](#runtime-version-managers) - * [Search Engines](#search-engines) + * [Search](#search) + * [Search Platforms](#search-platforms) + * [Web Search](#web-search) * [Service Monitoring](#service-monitoring) * [Social Media](#social-media) * [Clients](#clients) @@ -1367,7 +1369,15 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr |---|:---:|---|---| | [asdf](https://asdf-vm.com/) | [`v0.18.1`](https://github.com/asdf-vm/asdf/releases/tag/v0.18.1) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/asdf-vm/asdf/pull/2246), [2](https://github.com/asdf-vm/asdf/pull/2275)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -## Search Engines +## Search + +### Search Platforms + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [OpenSearch](https://github.com/opensearch-project/OpenSearch) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/opensearch-project/OpenSearch/blob/main/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +### Web Search | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| From 7cddf771c2009f21dc14610da8ae9c41edb20362 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 15:16:08 +0200 Subject: [PATCH 196/413] fix teh link to the code of conduct and contributing guidelines --- .forgejo/issue_template/discussion.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/issue_template/discussion.yaml b/.forgejo/issue_template/discussion.yaml index 79c38e6..7dcb4df 100644 --- a/.forgejo/issue_template/discussion.yaml +++ b/.forgejo/issue_template/discussion.yaml @@ -23,8 +23,8 @@ body: label: Code of Conduct description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - - label: I agree to follow this project's Code of Conduct + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - - label: I have also read the [CONTRIBUTION.MD](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md) + - label: I have also read the [Contributing Guidelines](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md) required: true visible: [form] From fc4875892362f726ed1a4549bf1d7b6dc38aebf1 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 15:17:50 +0200 Subject: [PATCH 197/413] make the code of conduct a proper link --- .forgejo/issue_template/collaborate-with-me.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/issue_template/collaborate-with-me.yaml b/.forgejo/issue_template/collaborate-with-me.yaml index cf10126..b9c7ff9 100644 --- a/.forgejo/issue_template/collaborate-with-me.yaml +++ b/.forgejo/issue_template/collaborate-with-me.yaml @@ -45,7 +45,7 @@ body: label: Code of Conduct and Rules for Collaboration description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - - label: I agree to follow this project's Code of Conduct + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - label: The project I want to collaborate on has a No AI policy banning any and all AI usage required: true From 41545c30c26a753c5702009a52184202a8121f7e Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 31 May 2026 18:24:31 +0200 Subject: [PATCH 198/413] Add more evidence for Neovim (#875) - AI Code Reviews (copilot) - AI sponsored (Coderabbit, Greptile) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/875 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d4fe12d..ce54898 100644 --- a/README.md +++ b/README.md @@ -1535,12 +1535,12 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | -| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8)) ![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| +| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8))
![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | | [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | -| [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | +| [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/neovim/neovim/pull/37325), [2](https://github.com/neovim/neovim/pull/37704), [3](https://github.com/neovim/neovim/pull/37430))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/neovim/neovim.github.io/blob/cbcaf6f207e76093cc6f41e486220a0fd9dcbdb0/layouts/home.html#L26-L41)) | | [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | From a58a49e1af96068a18dd729c32b12b4d5050ec51 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 18:26:26 +0200 Subject: [PATCH 199/413] note that we PR descriptions as commit details --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d8a5d2d..b0ae2a1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,6 +27,7 @@ Other tips for keeping the repo tidy and making sure we don't duplicate efforts: - Closes #123 ``` - If the software is already reported in an open issue and as an open PR leave a comment in the PR with the new or updated evidence(s). +- When submitting a PR, make sure you're comfortable with the description of the PR being what gets committed. We use the PR description when squashing all commits before merging. We default to sqaushing and merging, so that if the repo has only one commit per PR. > [!note] > Don't know how to create a PR? You can learn more about that in the [Codeberg Pull Requests and Git Flow docs](https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/) 🩵 From c37437176d760c7ae75f87f0b281a61116fcc941 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 31 May 2026 23:47:09 +0200 Subject: [PATCH 200/413] add some examples and fix a typo for gender nuetral language --- CODE_OF_CONDUCT.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 889cff9..fda845f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -77,12 +77,21 @@ This repo is specifically meant for identifying LLM usage in other projects, and ## Gender Neutral Language -When referring the people who work on this repo, please use gender neutral language unless you are referring to a specific person who you know the pronouns of. You should prefer to use "they/them/themself/themselves" if you do not know the pronouns of the person you're talking to/about. You can learn more about gender neutral language in the following resources: +When referring to the people who work on this repo, please use gender neutral language unless you are referring to a specific person who you know the pronouns of. You should prefer to use "they/them/themself/themselves" if you do not know the pronouns of the person you're talking to/about. You can learn more about gender neutral language in the following resources: - [What are personal pronouns and why do they matter?](https://pronouns.org/what-and-why) - [Gender-Neutral Pronouns 101: Everything You've Always Wanted to Know](https://www.them.us/story/gender-neutral-pronouns-101-they-them-xe-xem) - [Dictionary of gender neutral language](https://en.pronouns.page/dictionary) +Some example nouns you can use if you don't know the gender of someone: +- maintainer +- collaborator +- author +- user +- colleague +- friend +- aquaintance + ## Accessibility ### Alt Text From d423134fd363d2894776bef92686ac98b7f19093 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 2 Jun 2026 22:45:54 +0200 Subject: [PATCH 201/413] add a tip on where to find pronouns. --- CODE_OF_CONDUCT.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index fda845f..e1ec64b 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -92,6 +92,9 @@ Some example nouns you can use if you don't know the gender of someone: - friend - aquaintance +> [!tip] +> Many people put their pronouns in their profile. If you're unsure, you can check there, and if a person has pronouns listed, use those. If there's no pronouns listed, still default to nuetral language as mentioned above. + ## Accessibility ### Alt Text From 5da3afc6c2daa16ccb97ab407ed82a2973095830 Mon Sep 17 00:00:00 2001 From: znmz Date: Tue, 2 Jun 2026 23:16:33 +0200 Subject: [PATCH 202/413] Add zsh as an Alternative for Command-Line Shells (#882) Add zsh as an Alternative for Command-Line Shells Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/882 Reviewed-by: Admin --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ce54898..b1db58a 100644 --- a/README.md +++ b/README.md @@ -605,20 +605,21 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Alternative Bourne Shell Implementations -> * [dash](http://gondor.apana.org.au/~herbert/dash/) > * [bash](https://www.gnu.org/software/bash/) +> * [Busybox](https://busybox.net/) `ash` +> * [dash](http://gondor.apana.org.au/~herbert/dash/) > * [mksh](http://www.mirbsd.org/mksh.htm) > * [oksh](https://github.com/ibara/oksh) -> * [Busybox](https://busybox.net/) `ash` > * [Schilytools] `bosh` +> * [zsh](https://zsh.org) > [!NOTE] > #### Alternative Shell Languages > * [elvish](https://elv.sh) +> * [execline](https://skarnet.org/software/execline/) > * [fish](https://fishshell.com/) > * [rc](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) > * [xc](https://git.sr.ht/~sircmpwn/xc) -> * [execline](https://www.skarnet.org/software/execline/) ### Addons and Prompts From 863a08948f07965aa80cf139bfc9b9672e9972ff Mon Sep 17 00:00:00 2001 From: AnneKitsune Date: Wed, 3 Jun 2026 00:36:12 +0200 Subject: [PATCH 203/413] Add radicle. Add fossil. Remove fossil from alternatives. (#846) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sadness. Thanks for maintaining this repository and promoting awareness. Love y'all. 🏳️‍⚧️ Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/846 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b1db58a..a3cdc1d 100644 --- a/README.md +++ b/README.md @@ -1591,6 +1591,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Breezy](https://github.com/breezy-team/breezy/) | [`4559cec`](https://github.com/breezy-team/breezy/commit/4559cec280b280e9624da79624baf31d2791fa85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/breezy-team/breezy/pull/270/)) | +| [Fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://fossil-scm.org/forum/forumpost/3c8adaef712ce350)) | | [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/b1cbca0715cc3cc4d41f1b04752abbac25cc3fba/AGENTS.md)) | | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | | [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | @@ -1598,13 +1599,13 @@ This section is strictly for software implementing a core set of UNIX-like utili | [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#please-disclose-the-use-of-ai), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | | [Mercurial](https://mercurial-scm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/1914)) | +| [Radicle](https://radicle.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://radicle.network/nodes/seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury/tree/CLAUDE.md)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | > [!Note] > #### Alternative Version Control Systems -> * [Game of Trees] -> * [Fossil](https://www.fossil-scm.org/) > * [BitKeeper](https://github.com/bitkeeper-scm/bitkeeper) +> * [Game of Trees] ### Version Control Servers From cad147c6274086561b61d2b183db607b5ec2d305 Mon Sep 17 00:00:00 2001 From: AnneKitsune Date: Wed, 3 Jun 2026 08:12:31 +0200 Subject: [PATCH 204/413] Fix minor typo in CoC (#888) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/888 Reviewed-by: Admin --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index e1ec64b..8d4fe53 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -93,7 +93,7 @@ Some example nouns you can use if you don't know the gender of someone: - aquaintance > [!tip] -> Many people put their pronouns in their profile. If you're unsure, you can check there, and if a person has pronouns listed, use those. If there's no pronouns listed, still default to nuetral language as mentioned above. +> Many people put their pronouns in their profile. If you're unsure, you can check there, and if a person has pronouns listed, use those. If there's no pronouns listed, still default to neutral language as mentioned above. ## Accessibility From a02e30c71ce69ff9f4f15b5ebe8469a01e607703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ois=C3=ADn=20Mac=20Fheara=C3=AD?= Date: Wed, 3 Jun 2026 08:16:12 +0200 Subject: [PATCH 205/413] Provide more specific link for tup (#887) The current link for tup is actually about a distro based on git, or something, which is cool, but linking to `/tup` instead gives us a page specifically about tup. Tup tup tup. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/887 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a3cdc1d..1ecde7f 100644 --- a/README.md +++ b/README.md @@ -582,7 +582,7 @@ This is a section for repos that are similar to this one either because they are > that try to address perceived deficiencies in `make` and its derivatives. > * [Ninja](https://ninja-build.org/) - standalone or as the backend of a meta-build tool like [CMake](https://cmake.org/) or [Meson](http://mesonbuild.com/) > * [redo](https://redo.readthedocs.io/) -> * [tup](https://gittup.org/) +> * [tup](https://gittup.org/tup) ## Cheat Sheets and Documentation From e18056a4439678731e4828cfefa8504c2b1f6547 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 3 Jun 2026 08:20:17 +0200 Subject: [PATCH 206/413] note more places to alphabetize --- STYLE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/STYLE.md b/STYLE.md index aee4087..6d8e7da 100644 --- a/STYLE.md +++ b/STYLE.md @@ -94,11 +94,11 @@ The above "Alternative(s)" column is for software that has a 1:1 parity or is a > [!NOTE] > ### Category Alternatives -> If there are a lot of alternatives for a section, include the alternatives in a note like this. +> If there are a lot of alternatives for a section, include the alternatives in a note like this. These should also be alphabetized. > * [alternativeSoftware]: This can be a short description and [link to anti-AI policies](somelink.link). > * [coolSlopFreeProject]: This can be a short description and [link to anti-AI policies](somelink.link). - -[alternativeSoftware]: https://verygoodnotslopware.tld "alternative software" -[coolSlopFreeProject]: https://verygoodnotslopware2.tld "another alternative software" + [alrightSlopFreeProject]: https://veryoknotslopware3.tld "another extra alternative software" +[alternativeSoftware]: https://verygoodnotslopware.tld "alternative software" +[coolSlopFreeProject]: https://verygoodnotslopware2.tld "another alternative software" \ No newline at end of file From c2ab2bb7e3cbcb8a41d9f2767ead25feabfeeccc Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 17:08:12 +0200 Subject: [PATCH 207/413] alphabetize Social Media Server alternatives (#889) - As per updated Style Guide, Alternatives section should also be alphabetized. - Also added ToC entry for Social Media Server alternatives Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/889 Reviewed-by: Admin --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1ecde7f..14be2d8 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Social Media](#social-media) * [Clients](#clients) * [Servers](#servers) + * [Social Media Server Alternatives](#social-media-server-alternatives) * [SSH](#ssh) * [System Base](#system-base) * [System Information Utilities](#system-information-utilities) @@ -1417,12 +1418,12 @@ This is for both social media websites and apps. | [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [PieFed](https://join.piefed.social/) | > [!Note] -> #### Social media server alternatives -> * [GoToSocial] (Note the [gallery profile layout](https://docs.gotosocial.org/en/v0.21.2/user_guide/settings/#gallery) for those that want a more pixelfed/instagram experience such as artists/creators) -> * [Wafrn](https://codeberg.org/wafrn/wafrn/) (Closest to tumblr) supports both ActivityPub and ATproto -> * [snac2](https://codeberg.org/grunfink/snac2) -> * [Iceshrimp.NET](https://iceshrimp.net/) +> #### Social Media Server Alternatives > * [Epicyon](https://codeberg.org/bashrc/epicyon) +> * [GoToSocial] (Note the [gallery profile layout](https://docs.gotosocial.org/en/v0.21.2/user_guide/settings/#gallery) for those that want a more pixelfed/instagram experience such as artists/creators) +> * [Iceshrimp.NET](https://iceshrimp.net/) +> * [snac2](https://codeberg.org/grunfink/snac2) +> * [Wafrn](https://codeberg.org/wafrn/wafrn/) (Closest to tumblr) supports both ActivityPub and ATproto ## SSH From 61e59c42c6bab7651d1b442e70c0fad8529c8a60 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:47:18 +0200 Subject: [PATCH 208/413] alphabetize Alternative System Information Utilities (#898) - Rename the section title to be more informative (e.g. for easier navigation without context). - Add the Alternatives section to the ToC. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/898 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 14be2d8..e50e2c9 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [SSH](#ssh) * [System Base](#system-base) * [System Information Utilities](#system-information-utilities) + * [Alternative System Information Utilities](#alternative-system-information-utilities) * [System Logs Managers](#system-logs-managers) * [Android](#android) * [Alternatives for Android](#alternatives-for-android) @@ -1450,13 +1451,13 @@ This section is strictly for software implementing a core set of UNIX-like utili | [hyfetch](https://github.com/hykilpikonna/hyfetch) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hykilpikonna/hyfetch/pull/482), [2](https://github.com/hykilpikonna/hyfetch/commit/9500e8c0aa0f64ed231ba700c4eaac75e505312d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hykilpikonna/hyfetch/pull/484), [2](https://github.com/hykilpikonna/hyfetch/pull/481), [3](https://github.com/hykilpikonna/hyfetch/pull/480)) | See below | > [!Note] -> #### Alternatives +> #### Alternative System Information Utilities > As of writing and to the best of our knowledge, none of these projects have LLM usage, but they also have no explicit policies against AI. > > - [Archey 4](https://github.com/HorlogeSkynet/archey4) displays info in a similar way to neofetch (and fastfetch) > - [macchina](https://github.com/Macchina-CLI/macchina) -> - [nerdfetch](https://github.com/ThatOneCalculator/NerdFetch) > - [neofetch](https://github.com/dylanaraps/neofetch) and [screenFetch](https://github.com/KittyKatt/screenFetch) are still technically options, although they both have officially ceased development. +> - [nerdfetch](https://github.com/ThatOneCalculator/NerdFetch) > > The [Wikipedia page for neofetch](https://en.wikipedia.org/wiki/Neofetch#Other_implementations) also lists many implementations of neofetch in different programming languages, it may be worth a look as well. From 809ddb76d08c74db70aaaaa7def99150aaf4bda3 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:48:04 +0200 Subject: [PATCH 209/413] alphabetize Networking security tool alternatives (#897) As per updated Style Guide, Alternatives section should also be alphabetized. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/897 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e50e2c9..c567fb4 100644 --- a/README.md +++ b/README.md @@ -1019,8 +1019,8 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Networking security tool alternatives -> * [iocaine](https://iocaine.madhouse-project.org) > * [go-away](https://git.gammaspectra.live/git/go-away) +> * [iocaine](https://iocaine.madhouse-project.org) ## Operating Systems From b48a11eac3f791374a4688c7e2c8289c03fa7198 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:48:30 +0200 Subject: [PATCH 210/413] alphabetize Static site generators alternatives (#895) - As per updated Style Guide, Alternatives section should also be alphabetized. - Also added ToC entry for Static Site Generators Alternatives. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/895 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c567fb4..21f05ac 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) + * [Static Site Generators Alternatives](#static-site-generators-alternatives) * [Books and Library Software](#books-and-library-software) * [Bootloaders](#bootloaders) * [Browsers](#browsers) @@ -482,12 +483,12 @@ This is a section for repos that are similar to this one either because they are | [Zola](https://www.getzola.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/getzola/zola/blob/ec865e2cb7c159169f4dc56ebcd35a460b8eb297/.claude)) | > [!Note] -> #### Static site generators alternatives +> #### Static Site Generators Alternatives > * [Bridgetown](https://www.bridgetownrb.com) > * [BSSG](https://bssg.dragas.net/) > * [Frog](https://docs.racket-lang.org/frog/index.html) for LISP lovers -> * [Jekyll](https://jekyllrb.com/) maybe? No signs of AI in the repo but also [no clear statement](https://talk.jekyllrb.com/t/ai-usage-in-the-jekyll-project/10269) provided > * [Haunt](https://dthompson.us/projects/haunt.html) +> * [Jekyll](https://jekyllrb.com/) maybe? No signs of AI in the repo but also [no clear statement](https://talk.jekyllrb.com/t/ai-usage-in-the-jekyll-project/10269) provided > * [org-blog-wiki](https://orgmode.org/worg/org-blog-wiki.html ) (list by org devs - for GNU Emacs, no markdown) > * [org-static-blog](https://github.com/bastibe/org-static-blog) (for GNU Emacs users, no markdown) > * [Zine](https://zine-ssg.io) From eaafc0898e7a12249ae383ee4bd843147e93340a Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:49:16 +0200 Subject: [PATCH 211/413] alphabetize Messaging Client Alternatives by protocols (#893) - As per updated Style Guide, Alternatives section should also be alphabetized. - Also added ToC entries for `Messaging {Client,Server} Alternatives by protocols` Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/893 Reviewed-by: Admin --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 21f05ac..4df7c27 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) * [Messaging Clients](#messaging-clients) + * [Messaging Client Alternatives by protocols](#messaging-client-alternatives-by-protocols) * [Messaging Servers](#messaging-servers) + * [Messaging Server Alternatives by protocols](#messaging-server-alternatives-by-protocols) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Alternative Microcontroller Tools and Libraries](#alternative-microcontroller-tools-and-libraries) * [Networking](#networking) @@ -948,15 +950,15 @@ This is a section for repos that are similar to this one either because they are > [!Note] > #### Messaging Client Alternatives by protocols +> - IRC clients overall don't seem to have AI-committed code > - [matrix] > - [Cinny](https://github.com/cinnyapp/cinny) (web) > - [FluffyChat](https://github.com/krille-chan/fluffychat) (cross-platform) > - [nheko](http://nheko.im/) (desktop, Linux phones) +> - [WeeChat](https://github.com/weechat/weechat): Multi-protocol > - [xmpp](https://xmpp.org/) > - [Conversations](https://conversations.im/) (android) > - [Kaidan](https://invent.kde.org/network/kaidan) (cross-platform) -> - [WeeChat](https://github.com/weechat/weechat): Multi-protocol -> - IRC clients overall don't seem to have AI-committed code ### Messaging Servers From db752e6ce78ba1d2c72ebbda8abd518741a63464 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:49:37 +0200 Subject: [PATCH 212/413] alphabetize the Make implementations table (#892) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/892 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4df7c27..c197044 100644 --- a/README.md +++ b/README.md @@ -577,8 +577,8 @@ This is a section for repos that are similar to this one either because they are > | name | description | > |------|-------------| > | [GNU Make](https://www.gnu.org/software/make/) | the most complete one, extra extensions, guile scripting, exports, etc. | -> | [NetBSD `make`](https://man.netbsd.org/make.1) | Make used to build NetBSD ports tree | > | [Jam](https://swarm.workshop.perforce.com/projects/perforce_software-jam/) | OSS rewrite by Perforce | +> | [NetBSD `make`](https://man.netbsd.org/make.1) | Make used to build NetBSD ports tree | > | [Schilytools] or [OpenOffice](https://www.openoffice.org/tools/dmake/) ``dmake`` | Descendants of Sun's Distributed Make | > [!NOTE] From 3bd7b445bc1953d2632681e9ed8b9c2fed8cccd3 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:50:15 +0200 Subject: [PATCH 213/413] alphabetize the multi-reference list (#896) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/896 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c197044..0418498 100644 --- a/README.md +++ b/README.md @@ -1929,12 +1929,12 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [QEMU]: https://www.qemu.org [QMPlay2]: https://github.com/zaps166/QMPlay2 [Rio Terminal]: https://github.com/raphamorim/rio -[Servo]: https://servo.org/ [Schilytools]: https://codeberg.org/schilytools/schilytools [Scratch 1.4]: https://scratch.mit.edu/scratch_1.4 [Scratch 2]: https://scratch.mit.edu/download/scratch2 -[SMPlayer]: https://www.smplayer.info/ +[Servo]: https://servo.org/ [Showtime]: https://apps.gnome.org/Showtime/ +[SMPlayer]: https://www.smplayer.info/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden [Vim Classic]: https://sr.ht/~sircmpwn/vim-classic/ [virt-manager]: https://virt-manager.org From 5729435d5a4571432a94e26bee68c63673ba5004 Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:51:02 +0200 Subject: [PATCH 214/413] alphabetize Reverse Engineering and Debugging Alternatives (#891) - Rename the section title to be more informative (e.g. for easier navigation without context). - Add the Alternatives section to the ToC. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/891 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0418498..2af1128 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Alternative GUI crates](#alternative-gui-crates) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) + * [Reverse Engineering and Debugging Alternatives](#reverse-engineering-and-debugging-alternatives) * [Runtime Version Managers](#runtime-version-managers) * [Search](#search) * [Search Platforms](#search-platforms) @@ -1356,7 +1357,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | [Rizin](https://github.com/rizinorg/rizin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rizinorg/rizin/blob/dev/CONTRIBUTING.md#usage-of-ai-tools)) | See below | > [!Note] -> #### Alternatives +> #### Reverse Engineering and Debugging Alternatives > [![Request for Help](./badges/request-for-help.svg)](#request-for-help) > - Debugger: > - [scanmem & Game Conqueror](https://github.com/scanmem/scanmem): last updated in 2024 @@ -1365,9 +1366,9 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > - [DIS6502](https://sourceforge.net/projects/dis6502/) (MOS 6502-only) > - Hex editor: > - Vim Classic's [xxd](https://git.sr.ht/~sircmpwn/vim-classic/tree/main/item/src/xxd) -> - [hexedit](https://github.com/pixel/hexedit) > - [ghex](https://github.com/GNOME/ghex) > - [hexcurse](https://github.com/prso/hexcurse-ng) +> - [hexedit](https://github.com/pixel/hexedit) ## Runtime Version Managers From 831768a54fb9f8e872ea35f9439edabe5aabea9f Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 19:51:34 +0200 Subject: [PATCH 215/413] alphabetize Alternative Unified Push Distributors (#899) As per updated Style Guide, Alternatives section should also be alphabetized. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/899 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2af1128..17a9859 100644 --- a/README.md +++ b/README.md @@ -1586,9 +1586,9 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!NOTE] > ### Alternative Unified Push Distributors > See [List of unified push distributors](https://unifiedpush.org/users/distributors) -> - Sunup -> - NextPush (see entry for NextCloud on taintedness) > - Conversations (XMPP client) or one of the forks +> - NextPush (see entry for NextCloud on taintedness) +> - Sunup ## Version Control From b857a85bc7a8f88a342cb2b4fad3c4b5abe53c1b Mon Sep 17 00:00:00 2001 From: ch0ccyra1n Date: Wed, 3 Jun 2026 19:55:27 +0200 Subject: [PATCH 216/413] Add Supabase and Pocketbase as alternative, take 2 (#880) Following up from #743 , I decided to take the easier way out and just create a fresh PR. It is exactly the same as my intentions from the previous one, but without the shenanigans of rebasing, which accidentally made more changes than I or any of us wanted. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/880 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 17a9859..0c7931d 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Disk Encryption](#disk-encryption) * [File Encryption](#file-encryption) * [Data Archival](#data-archival) + * [Databases](#databases) * [Device Exploiting](#device-exploiting) * [Documents](#documents) * [Document Converters](#document-converters) @@ -728,6 +729,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [redumper](https://github.com/superg/redumper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/superg/redumper/issues/365#issuecomment-4159043849)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Databases + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [supabase](https://supabase.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/supabase/supabase/tree/master/packages/ai-commands), [2](https://supabase.com/docs/guides/ai), [3](https://supabase.com/docs/guides/ai-tools))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/supabase/supabase/blob/master/.claude/CLAUDE.md), [2](https://github.com/supabase/supabase/tree/master/.cursor)) | [PocketBase](https://pocketbase.io/) | + ## Device Exploiting | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 4ed7b27f167ec35b8b61719fb851bbd990711e3f Mon Sep 17 00:00:00 2001 From: znmz Date: Wed, 3 Jun 2026 20:01:10 +0200 Subject: [PATCH 217/413] alphabetize Alternative Version Control Servers (#900) - As per updated Style Guide, Alternatives section should also be alphabetized. - Also added ToC entry for Alternative Version Control Systems Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/900 Reviewed-by: Admin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0c7931d..a4676bc 100644 --- a/README.md +++ b/README.md @@ -170,6 +170,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) * [Version Control Clients and Tooling](#version-control-clients-and-tooling) + * [Alternative Version Control Systems](#alternative-version-control-systems) * [Version Control Servers](#version-control-servers) * [Alternative Version Control Servers](#alternative-version-control-servers) * [Virtualization](#virtualization) @@ -1631,8 +1632,8 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!Note] > #### Alternative Version Control Servers -> - [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted; [bans LLMs](https://forgejo.org/2026-03-monthly-report/#ai-agreement)) > - [Codeberg](https://codeberg.org/) (hosted Forgejo) +> - [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted; [bans LLMs](https://forgejo.org/2026-03-monthly-report/#ai-agreement)) > - [Sourcehut](https://sourcehut.org/) (self-hosted; provides a hosted option) ## Virtualization From 59d325b875a5e688597272091336ceef5c42670a Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 3 Jun 2026 22:22:15 +0200 Subject: [PATCH 218/413] remove social media link from Jellyfin Desktop (#902) from CONTRIBUTING.md: ```md Please don't submit social media posts as evidence unless it is a post by a maintainer of the tainted project talking about using AI to develop the tainted project. Even then, we'd prefer links to a project's LLM commits in a git forge, AI/contributing policies, or blog posts. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/902 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a4676bc..fbe60be 100644 --- a/README.md +++ b/README.md @@ -693,7 +693,7 @@ This is a section for repos that are similar to this one either because they are | [Fladder](https://github.com/DonutWare/Fladder) | [`ddb71ef`](https://github.com/DonutWare/Fladder/commit/ddb71ef83514399ed326688cde5d6ee108dde7dd) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DonutWare/Fladder/pull/827), [2](https://github.com/DonutWare/Fladder/pull/828), [3](https://github.com/DonutWare/Fladder/pull/831))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DonutWare/Fladder/pull/158), [2](https://github.com/DonutWare/Fladder/pull/161), [3](https://github.com/DonutWare/Fladder/pull/556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gstreamer](https://gstreamer.freedesktop.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e4d7f95b0c8ea4b1e23d6660317968f8033ae3a9)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Jellyfin](https://jellyfin.org) (server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jellyfin/jellyfin/pull/16540)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Jellyfin Desktop](https://github.com/jellyfin/jellyfin-desktop) | Use archived [Qt-based client](https://github.com/jellyfin-archive/jellyfin-desktop-qt/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects), [2](https://github.com/jellyfin/jellyfin-desktop/blob/main/CLAUDE.md), [3](https://retro.social/@ieure/116304493795805340)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Jellyfin Desktop](https://github.com/jellyfin/jellyfin-desktop) | Use archived [Qt-based client](https://github.com/jellyfin-archive/jellyfin-desktop-qt/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects), [2](https://github.com/jellyfin/jellyfin-desktop/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Kodi](https://kodi.tv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xbmc/xbmc/commit/6a1411f263f84d69da36cf15d0da03b3439d590f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/xbmc/xbmc/pull/28144)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [mpv](https://github.com/mpv-player/mpv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md#ai-assisted-contributions)) | [MPlayer](https://mplayerhq.hu/)
[Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | | [NewPipe](https://newpipe.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TeamNewPipe/NewPipe?tab=contributing-ov-file#ai-policy)) | [LibreTube] | From 4466704a0bdbe2893a85d100511fb89d209ee77e Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 4 Jun 2026 08:17:39 +0200 Subject: [PATCH 219/413] archive provider update --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0ae2a1..ea3a116 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -141,6 +141,8 @@ This is a much more free form section without a specific rigid style guide at th - Prefer archive links wherever possible + - Please don't use `archive.ph` or `archive.today`. See #54 for details. Using the wayback machine is always a good first course of action, but websites may ban it's IPs and in some rare cases, it may not be accessible to people globally. When in doubt, just chat with us in your PR to figure out the best course of action. + - Use a content warning if anything may be triggering. Content warnings must be specific to the subject matter. Do not use the term "NSFW". Here is an example of how to write a content warning: ```html From 1525ccc4300a400d3660a4fa1173aedd6276f125 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Thu, 4 Jun 2026 08:43:56 +0200 Subject: [PATCH 220/413] add FFmpeg (#885) add FFmpeg Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/885 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fbe60be..6eee873 100644 --- a/README.md +++ b/README.md @@ -690,6 +690,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://xcancel.com/FFmpeg/status/2054689695532036382#m))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Fladder](https://github.com/DonutWare/Fladder) | [`ddb71ef`](https://github.com/DonutWare/Fladder/commit/ddb71ef83514399ed326688cde5d6ee108dde7dd) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DonutWare/Fladder/pull/827), [2](https://github.com/DonutWare/Fladder/pull/828), [3](https://github.com/DonutWare/Fladder/pull/831))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DonutWare/Fladder/pull/158), [2](https://github.com/DonutWare/Fladder/pull/161), [3](https://github.com/DonutWare/Fladder/pull/556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gstreamer](https://gstreamer.freedesktop.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e4d7f95b0c8ea4b1e23d6660317968f8033ae3a9)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Jellyfin](https://jellyfin.org) (server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jellyfin/jellyfin/pull/16540)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 6d18692ba426d733310975bbdb5902e4d96d16b7 Mon Sep 17 00:00:00 2001 From: znmz Date: Thu, 4 Jun 2026 09:50:03 +0200 Subject: [PATCH 221/413] add auto-cpufreq, laptop-mode-tools, PowerTOP, TuneD, Upower (#823) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/823 Reviewed-by: Admin --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 6eee873..5b8bcde 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Android](#android) * [Alternatives for Android](#alternatives-for-android) * [System Services and Daemons](#system-services-and-daemons) + * [Power Management](#power-management) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) @@ -1505,6 +1506,16 @@ This section is strictly for software implementing a core set of UNIX-like utili | [systemd](https://github.com/systemd/systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/systemd/systemd/blob/main/AGENTS.md), [2](https://github.com/systemd/systemd/commit/744d589632c545e90ae76853abbfbc90cb530e24)) | [dinit](https://davmac.org/projects/dinit),
[s6](https://skarnet.org/software/s6/),
[OpenRC](https://github.com/OpenRC/openrc),
[shepherd](https://shepherding.services/) | | [wireplumber](https://gitlab.freedesktop.org/pipewire/wireplumber/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/pipewire/wireplumber/-/blob/master/AGENTS.md?ref_type=heads)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| +### Power Management + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AdnanHodzic/auto-cpufreq/commit/20b37c05bea59e057d6e4c7f75a434eaefabb048), [2](https://github.com/AdnanHodzic/auto-cpufreq/commit/44e1ae86679f6786e935c73b00ca8ddb93797e7a), [3](https://github.com/AdnanHodzic/auto-cpufreq/commit/c1ba0fe5df2542681e8dfcef6b0aa0217cf9edb4))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AdnanHodzic/auto-cpufreq/pull/942), [2](https://github.com/AdnanHodzic/auto-cpufreq/pull/903), [3](https://github.com/AdnanHodzic/auto-cpufreq/pull/945)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [laptop-mode-tools](https://github.com/rickysarraf/laptop-mode-tools) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rickysarraf/laptop-mode-tools/pull/216)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [PowerTOP](https://github.com/fenrus75/powertop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fenrus75/powertop/blob/master/.gemini/GEMINI.md), [2](https://github.com/fenrus75/powertop/commit/9a173c0befb8fec4627fca1f08a322b82c3e34fb), [3](https://github.com/fenrus75/powertop/commit/425b5b7981eed18c530632d22e4ca034127394df))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fenrus75/powertop/pull/198), [2](https://github.com/fenrus75/powertop/pull/190), [3](https://github.com/fenrus75/powertop/pull/209)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [TuneD](https://github.com/redhat-performance/tuned) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/redhat-performance/tuned/pull/854), [2](https://github.com/redhat-performance/tuned/pull/850), [3](https://github.com/redhat-performance/tuned/pull/852)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Upower](https://upower.freedesktop.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/322), [2](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/280), [3](https://gitlab.freedesktop.org/upower/upower/-/commit/17f9e8dc5a967fde13be688634a465c71fb79dd0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/310#note_3390445), [2](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/309)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Terminal ### Terminal Emulators From cac6f72ef856d1671af16f238f85a62f773d77fa Mon Sep 17 00:00:00 2001 From: znmz Date: Thu, 4 Jun 2026 09:59:06 +0200 Subject: [PATCH 222/413] add fzf, skim and peco (#830) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/830 Reviewed-by: Admin --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 5b8bcde..e036f1e 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) * [Forum Software](#forum-software) + * [Fuzzy Finders](#fuzzy-finders) * [Gaming](#gaming) * [Cellular Automata](#cellular-automata) * [Emulators](#emulators) @@ -849,6 +850,14 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Fuzzy Finders + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [fzf](https://github.com/junegunn/fzf) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/junegunn/fzf/commit/290b18d9fe1f63f5ed7ab5639bad034563991146), [2](https://github.com/junegunn/fzf/commit/5ef8dea36e9eb771a82b4b2028761c032b69738a))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/junegunn/fzf/pull/4696), [2](https://github.com/junegunn/fzf/pull/4723), [3](https://github.com/junegunn/fzf/pull/4691)) | [fzy] | +| [peco](https://github.com/peco/peco) | [`v0.5.11`](https://github.com/peco/peco/releases/tag/v0.5.11) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/peco/peco/blob/4008f2e7bd30c3b3006e64cd72648827cc674baa/CLAUDE.md), [2](https://github.com/peco/peco/pull/567))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/peco/peco/pull/806)) | [fzy] | +| [skim](https://github.com/skim-rs/skim) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/skim-rs/skim/blob/7e6115070b5c11e459af6b4ad0fe63cb6e5bbd90/.github/CONTRIBUTING.md#vibe-coding-guidelines), [2](https://github.com/skim-rs/skim/blob/master/AGENTS.md), [3](https://github.com/skim-rs/skim/commit/4147eccb9452ac1ea3da041208d2e491a933d14d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/skim-rs/skim/pull/1028), [2](https://github.com/skim-rs/skim/pull/789), [3](https://github.com/skim-rs/skim/pull/834)) | [fzy] | + ## Gaming ### Cellular Automata @@ -1919,6 +1928,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [EVi]: https://codeberg.org/NerdNextDoor/evi [ffplay]: https://ffmpeg.org/ffplay.html [foot]: https://codeberg.org/dnkl/foot +[fzy]: https://github.com/jhawthorn/fzy [Game of Trees]: https://gameoftrees.org/ [Garage]: https://garagehq.deuxfleurs.fr/ [GNOME Boxes]: https://gnomeboxes.org From a35fc9e2e65a65a33520269f6f702997db6494f1 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Thu, 4 Jun 2026 19:07:19 +0200 Subject: [PATCH 223/413] update ChiPass' No AI policy (#903) also isn't it a fork of 2.7.10? at least that's the description in the [repo](https://codeberg.org/ChiPass/ChiPass): ```md ChiPass: a fork of KeePassXC at release 2.7.10 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/903 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e036f1e..4d31c93 100644 --- a/README.md +++ b/README.md @@ -1139,7 +1139,7 @@ This is a section for repos that are similar to this one either because they are > ### Password Manager Alternatives > * [rbw](https://github.com/doy/rbw) (client) > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. -> * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051) and a [No AI Contribution Policy](https://codeberg.org/ChiPass/ChiPass/src/branch/main/CODE_OF_CONDUCT.md). +> * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePassXC 2.7.10 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051) and a [No AI Contribution Policy](https://codeberg.org/ChiPass/ChiPass/commit/8fb6e891e6fe7ce7c3f1234a1d83460ab0ee093b). > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. > * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. From 3b73a214a85987234cca8b8d4353a2d11dad0076 Mon Sep 17 00:00:00 2001 From: Acid Bong Date: Thu, 4 Jun 2026 19:09:34 +0200 Subject: [PATCH 224/413] readme: remove reference to Cat-V (#904) - list of "harmful" software is endorsed by Suckless (already taken care of in #540): https://suckless.org/sucks/ (at the end) - the said list also mentions a bunch of other views Cat-V considers harmful, including left-wing economics (https://harmful.cat-v.org/economics/) and social policies (https://harmful.cat-v.org/society/), many of which are considered basic human rights Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/904 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 4d31c93..64961c6 100644 --- a/README.md +++ b/README.md @@ -628,7 +628,6 @@ This is a section for repos that are similar to this one either because they are > * [elvish](https://elv.sh) > * [execline](https://skarnet.org/software/execline/) > * [fish](https://fishshell.com/) -> * [rc](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) > * [xc](https://git.sr.ht/~sircmpwn/xc) ### Addons and Prompts From 458cd871f44ebaa917935918ab539e92b824872d Mon Sep 17 00:00:00 2001 From: znmz Date: Thu, 4 Jun 2026 22:15:44 +0200 Subject: [PATCH 225/413] add CopyQ, clipcat and The Clipboard Project (#827) Creates new Clipboard Managers section. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/827 Reviewed-by: Admin --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 64961c6..613ac18 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Mobile Browsers](#mobile-browsers) * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Cheat Sheets and Documentation](#cheat-sheets-and-documentation) + * [Clipboard Managers](#clipboard-managers) + * [Clipboard Managers Alternatives](#clipboard-managers-alternatives) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Compiler Tools](#compiler-tools) @@ -602,6 +604,20 @@ This is a section for repos that are similar to this one either because they are | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | +## Clipboard Managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [clipcat](https://github.com/xrelkd/clipcat) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xrelkd/clipcat/blob/develop/AGENTS.md), [2](https://github.com/xrelkd/clipcat/commit/a12b39a42a7d18bf31abcdd1c146077575fdb8b7)) | +| [CopyQ](https://github.com/hluk/CopyQ) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hluk/CopyQ/blob/5111f5525a0738d011968be67fa447c5b74338bd/AGENTS.md), [2](https://github.com/hluk/CopyQ/commit/b267d6ef9d323ffb990b5c7cb7ff4500bf33d673), [3](https://github.com/hluk/CopyQ/commit/cca210781e8ef087ff4ff7b0c6ea8ef63a9c3c9d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hluk/CopyQ/pull/3571), [2](https://github.com/hluk/CopyQ/pull/3551), [3](https://github.com/hluk/CopyQ/pull/3547)) | +| [The Clipboard Project](https://github.com/Slackadays/Clipboard) | [`feacd97`](https://github.com/Slackadays/Clipboard/commit/feacd977dabc) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/Slackadays/Clipboard/blob/da607a6736605fe1e1b2aff629b913f4f342d5d8/README.md?plain=1#L5-L16)) | + +> [!Note] +> #### Clipboard Managers Alternatives +> - [cliphist](https://github.com/sentriz/cliphist) +> - [clipmenu](https://github.com/cdown/clipmenu) +> - [clipse](https://github.com/savedra1/clipse) + ## Command-Line Shells | Name | Last Untainted Version or Commit ID | Tags and Evidence | From d3a7abff0d194dbd8dbfb30a7a04a61922f06cb6 Mon Sep 17 00:00:00 2001 From: carpet Date: Fri, 5 Jun 2026 11:01:44 +0200 Subject: [PATCH 226/413] Fix typo in more kind eyes template (#910) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/910 Reviewed-by: Admin --- .forgejo/issue_template/request-for-more-kind-eyes.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index dcb7653..8e796ad 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -8,7 +8,7 @@ body: - type: markdown attributes: value: | - Thanks for helping to make the world a bit more AI frree 💙 + Thanks for helping to make the world a bit more AI free 💙 - type: input id: project From 58ee25b5c9fa6df64bd2ae3ae17d362b9aa9684f Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Fri, 5 Jun 2026 11:05:17 +0200 Subject: [PATCH 227/413] Restructure the Password Management category. Add AuthPass, Keepass2Android, KeePassVault (#886) Add AuthPass, Keepass2Android, KeePassVault. Add OneKeePass as an Alternative to Local Password Managers. Split the Password Management category into Local and Cloud-based. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/886 Reviewed-by: Admin --- README.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 613ac18..4847c28 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Package Managers](#package-managers) * [Package Manager Alternatives](#package-manager-alternatives) * [Password Management](#password-management) + * [Cloud-based Password Managers](#cloud-based-password-managers) + * [Local Password Managers](#local-password-managers) * [Peripheral Managers](#peripheral-managers) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) @@ -1140,21 +1142,32 @@ This is a section for repos that are similar to this one either because they are ## Password Management -| Name | Last Untainted Version or Commit ID | Tags and Evidence | +### Cloud-based Password Managers + + Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | -| [gopass](https://github.com/gopasspw/gopass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gopasspw/gopass/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gopasspw/gopass/pull/3104), [2](https://github.com/gopasspw/gopass/pull/3113), [3](https://github.com/gopasspw/gopass/pull/3383)) | -| [KeePassDX](https://www.keepassdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Kunzisoft/KeePassDX/blob/master/CONTRIBUTING.md#code-generation), [2](https://github.com/Kunzisoft/KeePassDX/issues/2447#issuecomment-4029885903)) | -| [KeePassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | | [Proton Pass](https://proton.me/pass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://proton.me/blog/pass-access-tokens))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/protonpass/proton-pass-common/commit/d8c1c7ef6a58a0bcaa779bb975f72de4a59b17cb), [2](https://github.com/protonpass/ios-pass/commit/e0d392a4a8951f61b3a9fd530136f307a7fd1857)) | -| [vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | + +### Local Password Managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [AuthPass](https://github.com/authpass/authpass/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/authpass/authpass/pull/395#pullrequestreview-3105665498), [2](https://github.com/authpass/authpass/pull/395#pullrequestreview-3109392874)) | +| [gopass](https://github.com/gopasspw/gopass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gopasspw/gopass/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gopasspw/gopass/pull/3104), [2](https://github.com/gopasspw/gopass/pull/3113), [3](https://github.com/gopasspw/gopass/pull/3383)) | +| [Keepass2Android](https://github.com/PhilippC/keepass2android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PhilippC/keepass2android/commit/d748149866d2ebf1de701ffe82cd69a637a8c4fc))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PhilippC/keepass2android/pull/3154#pullrequestreview-3677202571)) | +| [KeePassDX](https://www.keepassdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Kunzisoft/KeePassDX/blob/master/CONTRIBUTING.md#code-generation), [2](https://github.com/Kunzisoft/KeePassDX/issues/2447#issuecomment-4029885903)) | +| [KeePassVault](https://github.com/aivanovski/keepassvault/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aivanovski/keepassvault/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/aivanovski/keepassvault/pull/297), [2](https://github.com/aivanovski/keepassvault/pull/296)) | +| [KeePassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [Vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | > [!Note] -> ### Password Manager Alternatives -> * [rbw](https://github.com/doy/rbw) (client) -> * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. +> #### Local Password Manager Alternatives > * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePassXC 2.7.10 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051) and a [No AI Contribution Policy](https://codeberg.org/ChiPass/ChiPass/commit/8fb6e891e6fe7ce7c3f1234a1d83460ab0ee093b). +> * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. +> * [OneKeePass mobile](https://github.com/OneKeePass/mobile) and [OneKeePass desktop](https://github.com/OneKeePass/desktop) both seem to be untainted. +> * [rbw](https://github.com/doy/rbw) (Bitwarden/Vaultwarden client) > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. > * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. From ceb453a3928163710ef8843d308ea31b4d8ba8cb Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 5 Jun 2026 11:10:53 +0200 Subject: [PATCH 228/413] Note that we shouldn't link directly to codeberg.org repos when discussing them Closes #881 --- CONTRIBUTING.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ea3a116..ba1be3b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,12 @@ Title the pull request one of the following: - Add `` as an Alternative for `` - Update `` +Please don't link directly to codeberg.org repos, issues, pull requests or commits, as it will alert the other repo that they're being talked about in this list, which could create a negative atmosphere. If you need to link to them, please use a codeblock like this: + +``` +https://codeberg.org/org/project +``` + > [!important] > Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3 @@ -119,6 +125,12 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. +Please don't link directly to codeberg.org repos, issues, pull requests or commits, as it will alert the other repo that they're being talked about in this list, which could create a negative atmosphere. If you need to link to them, please use a codeblock like this: + +``` +https://codeberg.org/org/project +``` + >[!important] > Reminder that if you post a link to software that is maintained by people who openly embrace bigotry, we will close that issue. If you're a community member and see something we missed, feel free to kindly inform us and we will take action as soon as we're available (typically within 8 hours, but sometimes within 24 hours depending on availability). From 2c7cb2ba3ce870b1dd1d7aff3dd3f6218c1869c9 Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 7 Jun 2026 12:14:45 +0200 Subject: [PATCH 229/413] Add lazygit (#822) Part of #55. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/822 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4847c28..b15d376 100644 --- a/README.md +++ b/README.md @@ -1661,6 +1661,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | [GitButler](https://gitbutler.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.gitbutler.com/features/branch-management/ai-assistance), [2](https://github.com/gitbutlerapp/gitbutler/tree/2b9da0d6d88bfc117da72f3cd06baac8d194fd18/apps/desktop/src/lib/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gitbutlerapp/gitbutler/blob/87180b105ced4d3fa908c96c641068b58073be29/AGENTS.md), [2](https://github.com/gitbutlerapp/gitbutler/commit/ab5b3fae080df9f0b34d16e3395dc4a5abac4024)) | | [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#please-disclose-the-use-of-ai), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | +| [lazygit](https://github.com/jesseduffield/lazygit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jesseduffield/lazygit/blob/master/AGENTS.md), [2](https://github.com/jesseduffield/lazygit/commit/21d58085f4e5d60a18d161da81fb0d9298dbe4ed), [3](https://github.com/jesseduffield/lazygit/commit/4f6cdedb1e5ea8c13d0ccbf57d772a387ef5728f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jesseduffield/lazygit/pull/5277), [2](https://github.com/jesseduffield/lazygit/pull/5273), [3](https://github.com/jesseduffield/lazygit/pull/5392))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/jesseduffield/lazygit/blob/master/README.md)) | | [Mercurial](https://mercurial-scm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/1914)) | | [Radicle](https://radicle.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://radicle.network/nodes/seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury/tree/CLAUDE.md)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | From d3ab9577959b22f1417c9064bae1c4232278f15b Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Mon, 8 Jun 2026 08:02:11 +0200 Subject: [PATCH 230/413] Update FreeBSD: add last untainted versions (#915) - add versions for both branches (15 and 14) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/915 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b15d376..d35bb10 100644 --- a/README.md +++ b/README.md @@ -1072,7 +1072,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | -| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | +| [FreeBSD](https://freebsd.org) | [15.0](https://www.freebsd.org/releases/15.0R/announce/), [14.3](https://www.freebsd.org/releases/14.3R/announce/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | | [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md), [2](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | | [OpenBSD](https://openbsd.org) | [`7.8`](https://www.openbsd.org/78.html) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | From 30609f9318695e971890020c73939da895d118e6 Mon Sep 17 00:00:00 2001 From: Acid Bong Date: Mon, 8 Jun 2026 08:03:02 +0200 Subject: [PATCH 231/413] shells/oil: fix project URL (#914) It's independent from Yash continuation (and fix?) of !356 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/914 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d35bb10..372773e 100644 --- a/README.md +++ b/README.md @@ -626,7 +626,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [brush](https://github.com/reubeno/brush) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reubeno/brush/blob/main/AGENTS.md), [2](https://github.com/reubeno/brush/blob/main/.github/copilot-instructions.md), [3](https://github.com/reubeno/brush/commit/4ca78babcb2111d34e26cdda6622b0fa2611bb32))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reubeno/brush/pull/1167), [2](https://github.com/reubeno/brush/pull/1080), [3](https://github.com/reubeno/brush/pull/1078))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/reubeno/brush/blob/8ea83d7/README.md)) | | [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | -| [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | +| [Oil Shell](https://github.com/oils-for-unix/oils) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | | [xonsh](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | | [yash](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | From 0f9e6ff4f035b1c992607410ffb3635a6590c8fb Mon Sep 17 00:00:00 2001 From: micdan5 Date: Mon, 8 Jun 2026 08:37:34 +0200 Subject: [PATCH 232/413] Add Futon & LANraragi (#756) # Futon alternatives? ## [Ichaival](https://f-droid.org/en/packages/com.utazukin.ichaival/) It's a client for [LANraragi](https://github.com/Difegue/LANraragi), which it's itself tainted, so I'm not sure if it's OK to add Ichaval. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/756 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 372773e..a7bfac2 100644 --- a/README.md +++ b/README.md @@ -512,7 +512,9 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Booklore](https://github.com/the-booklore/booklore/tree/develop) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | +| [Futon](https://github.com/AppFuton/Futon) | [`5754292`](https://github.com/AppFuton/Futon/commit/57542921c342be555fd2d1835621c0317590aa6a), version [9.6.6](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | [Taison](https://f-droid.org/en/packages/com.gent8.taison/), [Komelia](https://f-droid.org/en/packages/io.github.snd_r.komelia) | | [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [LANraragi](https://github.com/Difegue/LANraragi) | [`1cfd949`](https://github.com/Difegue/LANraragi/commit/1cfd949c45f00221126a2996df5dabf8ed9964fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Difegue/LANraragi/pull/1220#issue-2973877545))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Difegue/LANraragi/pull/1218#pullrequestreview-2728016763)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Zotero](https://www.zotero.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) | [Citations](https://apps.gnome.org/Citations/) | ## Bootloaders From daf26157745fbc0105920f64921b9f7477bbb8a0 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Mon, 8 Jun 2026 08:39:18 +0200 Subject: [PATCH 233/413] Add MyExpenses, Recurring Expense Tracker and ProExpenses (#757) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/757 Reviewed-by: Admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index a7bfac2..68c18d5 100644 --- a/README.md +++ b/README.md @@ -383,14 +383,22 @@ This is a section for repos that are similar to this one either because they are | [hledger (v2.x)](https://hledger.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hledger.org/AI.html)) | | [KMyMoney](https://kmymoney.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://invent.kde.org/office/kmymoney/-/issues/49#note_1331389)) | | [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | +| [MyExpenses](https://myexpenses.mobi/) | [`47ab235`](https://github.com/mtotschnig/MyExpenses/commit/47ab235ace5161220d3fa44eb4ab13d2e71030ee) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mtotschnig/MyExpenses/commit/ab7b802b7e65516bc05076651e81ef49f6111eac))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mtotschnig/MyExpenses/pull/1948#pullrequestreview-4321501043), [2](https://github.com/mtotschnig/MyExpenses/pull/1944#pullrequestreview-4291334840), [3](https://github.com/mtotschnig/MyExpenses/pull/1934#pullrequestreview-4208237200)) | | [ODoo](https://www.odoo.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.odoo.com/documentation/19.0/applications/productivity/ai.html)) | +| [ProExpenses](https://github.com/arduia/ProExpense) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/arduia/ProExpense/pull/89)) | +| [Recurring Expense Tracker](https://f-droid.org/en/packages/de.dbauer.expensetracker/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DennisBauer/RecurringExpenseTracker/pull/748#pullrequestreview-3351802682), [2](https://github.com/DennisBauer/RecurringExpenseTracker/pull/740#pullrequestreview-3329344288)) | > [!Note] > #### Accounting and Budgeting Alternatives > These might be worth reaching out to ask for a No AI Policy, but currently don't have LLM usage: > - [Eqonomize] +> - [Finance Manager (PFA)](https://f-droid.org/en/packages/org.secuso.privacyfriendlyfinancemanager/) > - [Grisbi] +> - [HappyTaxes](https://f-droid.org/en/packages/io.github.dorumrr.happytaxes/) > - [HomeBank] +> - [MoneyWallet](https://f-droid.org/en/packages/com.oriondev.moneywallet/) +> - [MWPlus](https://github.com/nitr-himanshu/MWPlus) +> - [Simple Money Tracker](https://f-droid.org/en/packages/com.xvzan.simplemoneytracker/) ## API Documentation From a0c04a7e692914dcc8c4d6ae18dacae17986640f Mon Sep 17 00:00:00 2001 From: jbechtel Date: Mon, 8 Jun 2026 08:42:33 +0200 Subject: [PATCH 234/413] Add Qt Base (#678) Qt Base contains Qt Core and is part of Qt Framework. I didn't check the other modules. Grepped git log of git://code.qt.io/qt/qtbase.git for Copilot|Gemini|Claude Evidence refs (2) and (3) are related; the latter indicates that the commit in former will be shipped, probably in 6.11.2. (As of now, tainted code has not been released so far) Qt git commit IDs may be unstable due to rebasing? Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/678 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 68c18d5..666333e 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Local Password Managers](#local-password-managers) * [Peripheral Managers](#peripheral-managers) * [Programming Languages](#programming-languages) - * [Programming Language-Specific Tooling](#programming-language-specific-tooling) + * [Programming Language-Specific Tools and Libraries](#programming-language-specific-tools-and-libraries) * [C](#c) * [C++](#c-1) * [CSS](#css) @@ -1230,7 +1230,7 @@ This is a section for repos that are similar to this one either because they are > * [Zig] - general-purpose, compiled, system programming language: [Strict No LLM / No AI Policy](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy) -## Programming Language-Specific Tooling +## Programming Language-Specific Tools and Libraries ### C @@ -1261,6 +1261,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | +| [Qt Base](https://code.qt.io/cgit/qt/qtbase.git) | [`6.11.1`](https://code.qt.io/cgit/qt/qtbase.git/log/?h=6.11.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ad0b53f9920443d856e58f99c441f9dd0536a2e7), [2](https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ac8b2e9b40bf19aa889345f7b617392bef906040)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | | [Scratch Everywhere](https://github.com/ScratchEverywhere) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ScratchEverywhere/ScratchEverywhere/issues/670)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spdlog](https://github.com/gabime/spdlog) | [`v1.16.0`](https://github.com/gabime/spdlog/releases/tag/v1.16.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gabime/spdlog/commit/b656d1ceecac83e969faaf8b35f8a5edb964b0e0), [2](https://github.com/gabime/spdlog/commit/6b240a892d40f91f30b81cae73964219ab04c55d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gabime/spdlog/pull/3581#event-24197698244)) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp) | [`v3.3.3`](https://github.com/SRombauts/SQLiteCpp/releases/tag/3.3.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SRombauts/SQLiteCpp/commit/9986f570bef00ca1029a2c19e4ce8fcbf206f775), [2](https://github.com/SRombauts/SQLiteCpp/commit/a9d117e0a38dc12fd49d6bcd675c67a7383fa2fa)) | [SQLite's first-party interface](https://sqlite.org/cintro.html) | From e69b1f21ac94a3082184a3c3d930d8ab953cd66a Mon Sep 17 00:00:00 2001 From: znmz Date: Mon, 8 Jun 2026 08:48:02 +0200 Subject: [PATCH 235/413] add Brave Browser (desktop and mobile) (#786) note: brave is developed in the [brave-core](https://github.com/brave/brave-core) repo that covers both Mobile and Desktop, so the badges and links are same for brave in these 2 sections. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/786 Reviewed-by: Admin --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 666333e..d9bd520 100644 --- a/README.md +++ b/README.md @@ -544,6 +544,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [Brave] | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://brave.com/ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/brave/brave-core/blob/master/CONTRIBUTING.md#ai-assisted-contributions), [2](https://github.com/brave/brave-core/blob/master/.claude/CLAUDE.md), [3](https://github.com/brave/brave-core/commit/55bc3c7913751174c2f727d4d5c16360c85196b5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/brave/brave-core/pull/34783), [2](https://github.com/brave/brave-core/pull/35614), [3](https://github.com/brave/brave-core/pull/35818))| | Chromium/Blink engine | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.claude), [2](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.gemini), [3](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.agents)) | | Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | | [Ladybird](https://github.com/LadybirdBrowser/ladybird) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://ladybird.org/posts/adopting-rust/)) | @@ -568,6 +569,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [Brave] | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://brave.com/ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/brave/brave-core/blob/master/CONTRIBUTING.md#ai-assisted-contributions), [2](https://github.com/brave/brave-core/blob/master/.claude/CLAUDE.md), [3](https://github.com/brave/brave-core/commit/55bc3c7913751174c2f727d4d5c16360c85196b5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/brave/brave-core/pull/34783), [2](https://github.com/brave/brave-core/pull/35614), [3](https://github.com/brave/brave-core/pull/35818))| | Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | > [!Note] @@ -1955,6 +1957,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Alacritty]: https://alacritty.org/ [Alacritty fork with sixel]: https://github.com/ayosec/alacritty [Apache Ant]: https://ant.apache.org +[Brave]: https://brave.com [Clojure]: https://clojure.org [Cloud Shake]: https://shakebuild.com/cloud [console]: https://github.com/console-rs/console From 91446577a993ea359a6c8c51b159012bbe6dce97 Mon Sep 17 00:00:00 2001 From: znmz Date: Mon, 8 Jun 2026 08:50:20 +0200 Subject: [PATCH 236/413] Add croc and rclone (#814) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/814 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d9bd520..634a42e 100644 --- a/README.md +++ b/README.md @@ -853,7 +853,9 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [croc](https://github.com/schollz/croc) | [`7331264`](https://github.com/schollz/croc/commit/7331264a050bd29a6905ba09e3bc4ce2c0722e66) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/schollz/croc/pull/1110), [2](https://github.com/schollz/croc/pull/1015), [3](https://github.com/schollz/croc/pull/993))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/schollz/croc/pull/1053), [2](https://github.com/schollz/croc/pull/1099)) | [Magic-Wormhole](https://github.com/magic-wormhole/magic-wormhole) | | [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | +| [rclone](https://rclone.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rclone/rclone/pull/8930), [2](https://github.com/rclone/rclone/commit/18899a58f3b74fadd9da9bf8433a18a52ffe87e5), [3](https://github.com/rclone/rclone/commit/ffdd043b957aad7808f82910f737bab3de2f5b10))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rclone/rclone/pull/9273), [2](https://github.com/rclone/rclone/pull/9305), [3](https://github.com/rclone/rclone/pull/9056)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/),
[gokrazy/rsync](https://github.com/gokrazy/rsync) | ## Filesystem Navigation From 0d77826c8c6e08d49c6d1ca65d4c943482dbb5e9 Mon Sep 17 00:00:00 2001 From: znmz Date: Mon, 8 Jun 2026 08:55:00 +0200 Subject: [PATCH 237/413] Add difftastic and delta (#832) Regarding the section name: it should also encompass stuff like Merge utilites (if such to be added in the future). I've taken the inspiration from https://wiki.archlinux.org/title/List_of_applications/Utilities#Comparison,_diff,_merge. That is, the following tools would all go under this section. I've chosen "File Comparison" as a name. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/832 Reviewed-by: Admin --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 634a42e..5a9af77 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [E-mail Mobile Clients](#e-mail-mobile-clients) * [E-Mail Web Clients](#e-mail-web-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) + * [File Comparison](#file-comparison) + * [Diff Alternatives](#diff-alternatives) * [File Monitoring](#file-monitoring) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) @@ -819,6 +821,21 @@ This is a section for repos that are similar to this one either because they are |---------|:--------------:|----------|-------| | [Giggity](https://github.com/Wilm0r/giggity) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Wilm0r/giggity/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## File Comparison + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [delta](https://github.com/dandavison/delta) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dandavison/delta/pull/2058))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dandavison/delta/pull/2152), [2](https://github.com/dandavison/delta/pull/2026), [3](https://github.com/dandavison/delta/pull/2139)) | +| [difftastic](https://github.com/Wilfred/difftastic) | [`68273d15`](https://github.com/Wilfred/difftastic/commit/68273d15) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Wilfred/difftastic/commit/b438e8b57d5628f0d04f92a19182198a54016528)) | + +> [!NOTE] +> #### Diff Alternatives +> * [diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) +> * [diffr](https://github.com/mookid/diffr) +> * [icdiff](https://github.com/jeffkaufman/icdiff) +> * [riff](https://github.com/walles/riff) +> * [ydiff](https://github.com/ymattw/ydiff) + ## File Monitoring | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From f11d52d8d44fbcc80bb0825723bdc98eb564539a Mon Sep 17 00:00:00 2001 From: espadolini Date: Mon, 8 Jun 2026 08:57:54 +0200 Subject: [PATCH 238/413] Add modernc.org/sqlite (#852) Co-authored-by: Edoardo Spadolini Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/852 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5a9af77..f73f622 100644 --- a/README.md +++ b/README.md @@ -1312,6 +1312,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | | [gogpu](https://github.com/gogpu/gogpu) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://dev.to/kolkov/from-vibe-coding-to-agentic-engineering-what-karpathy-got-right-and-whats-missing-62e), [2](https://github.com/gogpu/gogpu/pull/166)) | [go-gl](https://github.com/go-gl/gl), [webgpu](https://github.com/cogentcore/webgpu) | | [gotests](https://github.com/cweill/gotests) | [`v1.6.0`](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | +| [modernc.org/sqlite](https://pkg.go.dev/modernc.org/sqlite) | [`v1.50.1`](https://gitlab.com/cznic/sqlite/-/commits/v1.50.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cznic/sqlite/-/blob/e3f64ec2f026880b2fbc868f195863648cd07fb3/CLAUDE.md), [2](https://gitlab.com/cznic/sqlite/-/commit/b17c0c7faf2247b8251efaa638ac101e5dea7ec1)) | [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) | | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | From 1d5dcb97b652f55e458792386ee6b484400f8981 Mon Sep 17 00:00:00 2001 From: sectionconcur Date: Mon, 8 Jun 2026 09:01:37 +0200 Subject: [PATCH 239/413] Add ProtoHax (#890) the developer has also claimed the code is 30% generated with AI on telegram Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/890 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f73f622..1c557ee 100644 --- a/README.md +++ b/README.md @@ -952,6 +952,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Modrinth](https://modrinth.com/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/modrinth/code/blob/main/CLAUDE.md), [2](https://github.com/modrinth/code/tree/main/.claude/skills)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [ProtoHax](https://protohax.net/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hax0r31337/ProtoHax/blob/stable/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ## Input Remapping From 4f344399394d6aec997ff448ef7d8371bdded9fb Mon Sep 17 00:00:00 2001 From: micdan5 Date: Tue, 9 Jun 2026 09:26:43 +0200 Subject: [PATCH 240/413] Add Dolphin and DolphiniOS (#758) Closes https://codeberg.org/small-hack/open-slopware/issues/268. Unfortunately the Dolphin team recently merged an [AI-assisted "contribution"](https://github.com/dolphin-emu/dolphin/pull/14511). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/758 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1c557ee..58c79ee 100644 --- a/README.md +++ b/README.md @@ -921,6 +921,8 @@ This is a section for repos that are similar to this one either because they are | [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | | [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | | [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | +| [Dolphin](https://dolphin-emu.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dolphin-emu/dolphin/blob/7b69949cec7afcd1691a9a046d26d5c4a99ce4fc/Contributing.md#genai), [2](https://github.com/dolphin-emu/dolphin/pull/14511), [3](https://github.com/dolphin-emu/dolphin/pull/14632))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dolphin-emu/dolphin/pull/13750)) | [Lazuli](https://github.com/vxpm/lazuli) (only GameCube) | +| [DolphiniOS](https://github.com/OatmealDome/dolphin-ios/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/OatmealDome/dolphin-ios/commit/626315d50a53b1ca5e1f6ec52a1d3ce7012411f4)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) ### Game engines From ed44e9c55ef77747359963d6aba7411464239e9a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 9 Jun 2026 11:45:56 +0200 Subject: [PATCH 241/413] clear up licensing question around the "permits LLM ingestion" tag (#918) Partially addresses #696 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/918 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 58c79ee..bc95db7 100644 --- a/README.md +++ b/README.md @@ -328,7 +328,7 @@ Evidence can be: ![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) -Permits the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. +Permits the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. This is independent of a project's licensing. This tag is to be used for the maintainers' statements about, or reactions to, the usage of LLMs/AIs to ingest the repo. The reason we still find this worthy of a tag is because it: @@ -338,7 +338,7 @@ The reason we still find this worthy of a tag is because it: Evidence can be: - An AI or Contribution policy that carves out a space for "using LLMs to understand the code" or "finding bugs" -- Core maintainer using or accepting the use of AI for finding Security issues +- Core maintainer using or accepting the use of AI for finding bugs or security issues > [!tip] > This tag is not to be confused with ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg), which is for when there is already AI generated code in the codebase or an `AGENTS.md` in the repo. From 3237f48ed88b25b911dfb8efeb7f26cf1e4a476a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 9 Jun 2026 11:55:31 +0200 Subject: [PATCH 242/413] switch to condones llm ingestion vs permits llm ingestion (#922) Closes #696 We're not going to change this tag again, nor are we going to allow further discussion about this tag. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/922 --- CONTRIBUTING.md | 2 +- README.md | 22 +++++++++---------- STYLE.md | 6 ++--- ...gestion.svg => condones-llm-ingestion.svg} | 8 +++---- 4 files changed, 19 insertions(+), 19 deletions(-) rename badges/{permits-llm-ingestion.svg => condones-llm-ingestion.svg} (78%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ba1be3b..00c8f26 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,7 +50,7 @@ The criteria for being included in this repository are any of following tags. Yo - [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) - [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) -- [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) +- [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#condones-llm-ingestion) Alternatives should not contain any slop as defined by our tagging system above. diff --git a/README.md b/README.md index bc95db7..4632df3 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [AI Sponsored](#ai-sponsored) * [AI Databroker Usage](#ai-databroker-usage) * [AI In Issue Tracker](#ai-in-issue-tracker) - * [Permits LLM Ingestion](#permits-llm-ingestion) + * [Condones LLM Ingestion](#condones-llm-ingestion) * [Request for Help](#request-for-help) * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) @@ -324,11 +324,11 @@ Evidence can be: - Link to AI in an Issue, Bug report, Discussion, etc - must be related to the project's bug/issue tracking (e.g. dosu) -## Permits LLM Ingestion +## Condones LLM Ingestion -![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) +![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg) -Permits the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. This is independent of a project's licensing. This tag is to be used for the maintainers' statements about, or reactions to, the usage of LLMs/AIs to ingest the repo. +Condones the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. This is independent of a project's licensing. This tag is to be used for the maintainers' statements about, or reactions to, the usage of LLMs/AIs to ingest the repo. The reason we still find this worthy of a tag is because it: @@ -723,7 +723,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://xcancel.com/FFmpeg/status/2054689695532036382#m))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://xcancel.com/FFmpeg/status/2054689695532036382#m))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Fladder](https://github.com/DonutWare/Fladder) | [`ddb71ef`](https://github.com/DonutWare/Fladder/commit/ddb71ef83514399ed326688cde5d6ee108dde7dd) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DonutWare/Fladder/pull/827), [2](https://github.com/DonutWare/Fladder/pull/828), [3](https://github.com/DonutWare/Fladder/pull/831))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DonutWare/Fladder/pull/158), [2](https://github.com/DonutWare/Fladder/pull/161), [3](https://github.com/DonutWare/Fladder/pull/556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gstreamer](https://gstreamer.freedesktop.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e4d7f95b0c8ea4b1e23d6660317968f8033ae3a9)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Jellyfin](https://jellyfin.org) (server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jellyfin/jellyfin/pull/16540)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -747,7 +747,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [VeraCrypt](https://github.com/veracrypt/VeraCrypt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/veracrypt/VeraCrypt/pull/1710), [2](https://github.com/veracrypt/VeraCrypt/pull/1703), [3](https://github.com/veracrypt/VeraCrypt/pull/1386))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/veracrypt/VeraCrypt/pull/1525)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### File Encryption @@ -782,7 +782,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [cmark](https://github.com/commonmark/cmark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/cmark/commit/9dc68b89800ccba49551f2055f2b41e20e9039b1), [2](https://github.com/commonmark/cmark/commit/cb3fe8c4dcfafb5c291096a1afc84723015e52dc), [3](https://github.com/commonmark/cmark/commit/8c9dcdd2d71cc191f2f9a9791b06e58c9aec5ec3))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/commonmark/cmark/issues/599#issuecomment-3914290545)) | [Markdown.pl](https://daringfireball.net/projects/markdown/) (md to html) | +| [cmark](https://github.com/commonmark/cmark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/cmark/commit/9dc68b89800ccba49551f2055f2b41e20e9039b1), [2](https://github.com/commonmark/cmark/commit/cb3fe8c4dcfafb5c291096a1afc84723015e52dc), [3](https://github.com/commonmark/cmark/commit/8c9dcdd2d71cc191f2f9a9791b06e58c9aec5ec3))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/commonmark/cmark/issues/599#issuecomment-3914290545)) | [Markdown.pl](https://daringfireball.net/projects/markdown/) (md to html) | | [commonmark-java](https://github.com/commonmark/commonmark-java) | [`e62bca1`](https://github.com/commonmark/commonmark-java/commit/e62bca11062dc52b4f7a28d1da3d16c49ba81628) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/commonmark-java/commit/f3be489803f3446e610f2948fd77d4e821a5cefd), [2](https://github.com/commonmark/commonmark-java/commit/5815c3c0b17f52b53e65465fd8ff65da8e6304fa), [3](https://github.com/commonmark/commonmark-java/commit/057f13dd8e9472a45c714ad0c06a1a425ec21f61)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Pandoc](https://pandoc.org/) | [`0ce85b0`](https://github.com/jgm/pandoc/commit/0ce85b0cfa8e5d3155dddc77b1408b4d7d7890fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgm/pandoc/pull/11132), [2](https://github.com/jgm/pandoc/pull/11396), [3](https://github.com/jgm/pandoc/commit/4b26f50118d7c0fdb3c1095dc26ba671e1b4b538)) | [lowdown](https://kristaps.bsd.lv/lowdown/)?
[Typst](https://typst.app/)? | @@ -1140,7 +1140,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Other Operating Systems @@ -1235,7 +1235,7 @@ This is a section for repos that are similar to this one either because they are | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | | [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | -| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | +| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | | [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | @@ -1271,7 +1271,7 @@ This is a section for repos that are similar to this one either because they are | [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | See below | | [raylib](https://github.com/raysan5/raylib) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/raysan5/raylib/discussions/5712#discussioncomment-16411612)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [*See systemd section*](#system-services-and-daemons) | [basu](https://sr.ht/~emersion/basu/) | -| [SDL](https://github.com/libsdl-org/SDL) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ([1](https://github.com/libsdl-org/SDL/blob/c46dfdba543195873c205f8a30957d1a50b99565/AGENTS.md?plain=1#L10)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [SDL](https://github.com/libsdl-org/SDL) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/libsdl-org/SDL/blob/c46dfdba543195873c205f8a30957d1a50b99565/AGENTS.md?plain=1#L10)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [WolfSSL](https://wolfssl.com) | [`5.7.6`](https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.6-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wolfSSL/wolfssl/releases/tag/v5.9.1-stable))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wolfSSL/wolfssl/pull/10349), [2](https://github.com/wolfSSL/wolfssl/pull/10352), [3](https://github.com/wolfSSL/wolfssl/pull/10351)) | See below | | [zlib-ng](https://github.com/zlib-ng/zlib-ng) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zlib-ng/zlib-ng/commit/927c5a46a72cf058043a4b792ff20d8b50a9f1ab),[2](https://github.com/zlib-ng/zlib-ng/commit/061f0e4fa8b266f643a7070befe8d7a0b412ef31),[3](https://github.com/zlib-ng/zlib-ng/commit/a7e15da75f8ec00b392a467675617a9112948d00))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zlib-ng/zlib-ng/pull/2197#issuecomment-4020684882)) | [zlib](https://zlib.net) | @@ -1635,7 +1635,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | -| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8))
![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| +| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8))
![Condones LLM Ingestion](./badges/condones-llmingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | diff --git a/STYLE.md b/STYLE.md index 6d8e7da..05cac99 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,7 +16,7 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | | [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | **Name column**: should be the name of software linked to their git repo (or other software forge if they don't use git). @@ -31,7 +31,7 @@ Make sure to format your table like below (note that it is alphabetized by softw - [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) - [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) -- [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) +- [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#condones-llm-ingestion) > [!note] > The above order is the official order you should add your tags in. @@ -75,7 +75,7 @@ Here are all the badges for easy copying and pasting: ``` ```markdown -[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) +[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ``` ```markdown diff --git a/badges/permits-llm-ingestion.svg b/badges/condones-llm-ingestion.svg similarity index 78% rename from badges/permits-llm-ingestion.svg rename to badges/condones-llm-ingestion.svg index 810c8a6..ba71cda 100644 --- a/badges/permits-llm-ingestion.svg +++ b/badges/condones-llm-ingestion.svg @@ -1,5 +1,5 @@ - - Permits LLM Ingestion + + Condones LLM Ingestion @@ -13,7 +13,7 @@ - - Permits LLM Ingestion + + Condones LLM Ingestion From f0854217f182afebf4b4dbb229e6a5ff071f50d6 Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Tue, 9 Jun 2026 12:21:34 +0200 Subject: [PATCH 243/413] Add Hilbish. Add es-shell, gash and Ion as Alternatives to Command-Line Shells (#912) Add Hilbish. Add gash as an Alternative to Alternative Bourne Shell Implementations. Add es-shell and Ion as Alternatives to Alternative Shell Languages Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/912 Reviewed-by: Admin --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4632df3..60feca3 100644 --- a/README.md +++ b/README.md @@ -639,6 +639,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [brush](https://github.com/reubeno/brush) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reubeno/brush/blob/main/AGENTS.md), [2](https://github.com/reubeno/brush/blob/main/.github/copilot-instructions.md), [3](https://github.com/reubeno/brush/commit/4ca78babcb2111d34e26cdda6622b0fa2611bb32))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reubeno/brush/pull/1167), [2](https://github.com/reubeno/brush/pull/1080), [3](https://github.com/reubeno/brush/pull/1078))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/reubeno/brush/blob/8ea83d7/README.md)) | +| [Hilbish](https://github.com/sammy-ette/Hilbish/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sammy-ette/Hilbish/pull/362#pullrequestreview-4117077021), [2](https://github.com/sammy-ette/Hilbish/pull/358#pullrequestreview-4117094312)) | | [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | | [Oil Shell](https://github.com/oils-for-unix/oils) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | @@ -650,6 +651,7 @@ This is a section for repos that are similar to this one either because they are > * [bash](https://www.gnu.org/software/bash/) > * [Busybox](https://busybox.net/) `ash` > * [dash](http://gondor.apana.org.au/~herbert/dash/) +> * [gash](https://codeberg.org/guix/gash) > * [mksh](http://www.mirbsd.org/mksh.htm) > * [oksh](https://github.com/ibara/oksh) > * [Schilytools] `bosh` @@ -658,8 +660,10 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Alternative Shell Languages > * [elvish](https://elv.sh) +> * [es-shell](https://github.com/wryun/es-shell) > * [execline](https://skarnet.org/software/execline/) > * [fish](https://fishshell.com/) +> * [ion](https://gitlab.redox-os.org/redox-os/ion) > * [xc](https://git.sr.ht/~sircmpwn/xc) ### Addons and Prompts From 460eab2becbb98af76901d4ed1135c33ea118835 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 9 Jun 2026 14:14:11 +0200 Subject: [PATCH 244/413] Add basic don't reference me file to get the ball rolling (#909) Addresses #318, #540, #546, #850, and #904. We also reference this list in the Contributing docs, and the Issue configs, so people are aware to check there first. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/909 --- .forgejo/issue_template/request-for-more-kind-eyes.yaml | 2 ++ CONTRIBUTING.md | 7 ++++++- README.md | 3 --- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index 8e796ad..cc36ca9 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -41,3 +41,5 @@ body: required: true - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true + - label: I have made sure the project I want people to have eyes on is not on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list + required: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 00c8f26..98ccf87 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ https://codeberg.org/org/project ``` > [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3 +> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. Be sure you don't recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list though. **Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** @@ -123,6 +123,9 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you - Forum post specifically dedicated to the project and read by the maintainers of the project - Social media account run *by the project* and not a solo maintainer. We do **not** want to call watchers of this repo to approach solo maintainers (there is too much room for that to potentially result in harassment), but if a project/company has a specific social media thread asking for opinions on AI usage in their code base or as a feature of their project/product, feel free to link that. +>[!warning] +> Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. + Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. Please don't link directly to codeberg.org repos, issues, pull requests or commits, as it will alert the other repo that they're being talked about in this list, which could create a negative atmosphere. If you need to link to them, please use a codeblock like this: @@ -145,6 +148,8 @@ You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: +- Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. + - Do not link to people's social media posts e.g. fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. - When adding a link to back up your point, please use the name of the source and title of the article as the link name diff --git a/README.md b/README.md index 60feca3..75094ef 100644 --- a/README.md +++ b/README.md @@ -1452,7 +1452,6 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > - [da65](https://cc65.github.io/doc/da65.html) (part of [cc65](https://github.com/cc65/cc65)) (MOS 6502-only) > - [DIS6502](https://sourceforge.net/projects/dis6502/) (MOS 6502-only) > - Hex editor: -> - Vim Classic's [xxd](https://git.sr.ht/~sircmpwn/vim-classic/tree/main/item/src/xxd) > - [ghex](https://github.com/GNOME/ghex) > - [hexcurse](https://github.com/prso/hexcurse-ng) > - [hexedit](https://github.com/pixel/hexedit) @@ -1660,7 +1659,6 @@ This section is strictly for software implementing a core set of UNIX-like utili > * [Gram] (GUI) > * [Hemlock] (TUI, GUI) > * [Lapce] (GUI) -> * [Vim Classic] (TUI) ### Note Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -2037,7 +2035,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Showtime]: https://apps.gnome.org/Showtime/ [SMPlayer]: https://www.smplayer.info/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden -[Vim Classic]: https://sr.ht/~sircmpwn/vim-classic/ [virt-manager]: https://virt-manager.org [wafrn-rn]: https://codeberg.org/wafrn/wafrn-rn [Waterfox]: https://www.waterfox.com From 0406ae312949f237f50a1058bf35390dd23e5789 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 9 Jun 2026 14:54:24 +0200 Subject: [PATCH 245/413] add appropriate content warnings (#924) This should make sure everyone is in a good headspace before engaging in what could be disturbing content. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/924 From 323ea29cad408bb2453df662a8d4a3b2c62ec51c Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Tue, 9 Jun 2026 15:08:44 +0200 Subject: [PATCH 246/413] Remove software maintained by DeVault (#925) Remove Himitsu and xc Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/925 Reviewed-by: Admin --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 75094ef..df88f70 100644 --- a/README.md +++ b/README.md @@ -664,7 +664,6 @@ This is a section for repos that are similar to this one either because they are > * [execline](https://skarnet.org/software/execline/) > * [fish](https://fishshell.com/) > * [ion](https://gitlab.redox-os.org/redox-os/ion) -> * [xc](https://git.sr.ht/~sircmpwn/xc) ### Addons and Prompts @@ -1207,7 +1206,7 @@ This is a section for repos that are similar to this one either because they are > * [OneKeePass mobile](https://github.com/OneKeePass/mobile) and [OneKeePass desktop](https://github.com/OneKeePass/desktop) both seem to be untainted. > * [rbw](https://github.com/doy/rbw) (Bitwarden/Vaultwarden client) > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. -> * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. +> * Password managers based on [pass](https://www.passwordstore.org/) could be interesting. ## Peripheral Managers From 0d4b95ca41a5bf1b9c72936e9731438c91366a3f Mon Sep 17 00:00:00 2001 From: cirilla Date: Tue, 9 Jun 2026 22:28:43 +0200 Subject: [PATCH 247/413] Add MuseScore (#919) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/919 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index df88f70..015c1e5 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Audio](#audio) * [Digital Audio Workstations](#digital-audio-workstations) * [Music Players](#music-players) + * [Notation Software](#notation-software) * [Podcast Aggregators](#podcast-aggregators) * [Standalone Digital Mixer](#standalone-digital-mixer) * [Backups](#backups) @@ -451,6 +452,12 @@ This is a section for repos that are similar to this one either because they are | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Notation Software + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [MuseScore](https://github.com/musescore/MuseScore) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/musescore/MuseScore/blob/04ee563c5ed78f037c2fb5ded4b178a39922f1c0/.coderabbit.yaml))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/musescore/MuseScore/pull/33731#issuecomment-4648786222)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Podcast Aggregators | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 4259874db148b7cbdf1f59545be2caa3a46f1b0f Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Wed, 10 Jun 2026 08:23:56 +0200 Subject: [PATCH 248/413] Actually add zuluCrypt, tc-play, and cgd(4) as Alternatives for Disk Encryption (#927) Pull request #873 ended up being merged without any changes. This new one includes them. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/927 Reviewed-by: Admin --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 015c1e5..8d859b8 100644 --- a/README.md +++ b/README.md @@ -758,7 +758,11 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [VeraCrypt](https://github.com/veracrypt/VeraCrypt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/veracrypt/VeraCrypt/pull/1710), [2](https://github.com/veracrypt/VeraCrypt/pull/1703), [3](https://github.com/veracrypt/VeraCrypt/pull/1386))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/veracrypt/VeraCrypt/pull/1525)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [VeraCrypt](https://github.com/veracrypt/VeraCrypt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/veracrypt/VeraCrypt/pull/1710), [2](https://github.com/veracrypt/VeraCrypt/pull/1703), [3](https://github.com/veracrypt/VeraCrypt/pull/1386))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/veracrypt/VeraCrypt/pull/1525)) | [tc-play](https://github.com/bwalex/tc-play),
[zuluCrypt](https://github.com/mhogomchungu/zuluCrypt) | + +> [!NOTE] +> #### OS-specific disk encryption tools +> * [cgd(4)](https://man.netbsd.org/cgd.4) (NetBSD) ### File Encryption From 393c656a1008bdfa8ae999a58614a52172b5a49b Mon Sep 17 00:00:00 2001 From: iodomi Date: Wed, 10 Jun 2026 09:49:17 +0200 Subject: [PATCH 249/413] Update ntfy-sh (#928) ntfy is backed by warp - AI coding agent Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/928 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d859b8..55a504e 100644 --- a/README.md +++ b/README.md @@ -1686,7 +1686,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [ntfy-sh](https://ntfy.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0), [2](https://web.archive.org/web/20260308142510/https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0)) | +| [ntfy-sh](https://ntfy.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0), [2](https://web.archive.org/web/20260308142510/https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/binwiederhier/ntfy?tab=readme-ov-file#sponsors)) | > [!NOTE] > ### Alternative Unified Push Distributors From 203e5487ea10bad602a307a47c2adea935e68c63 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Wed, 10 Jun 2026 09:50:03 +0200 Subject: [PATCH 250/413] Add Rootless Logcat (#883) Closes #764 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/883 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55a504e..1670b1b 100644 --- a/README.md +++ b/README.md @@ -1569,12 +1569,12 @@ This section is strictly for software implementing a core set of UNIX-like utili |---|:---:|---| | [Logcat Reader](https://github.com/darshanparajuli/LogcatReader) | [`877cc0a`](https://github.com/darshanparajuli/LogcatReader/commit/877cc0a17be6d39c5797301eb0d5ff7e6dd4e341), version [2.3.1](https://github.com/darshanparajuli/LogcatReader/releases/tag/v2.3.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darshanparajuli/LogcatReader/blob/main/AGENTS.md), [2](https://github.com/darshanparajuli/LogcatReader/commit/842bd4033c4e6332a77424866ee92383a6acafac), [3](https://github.com/darshanparajuli/LogcatReader/commit/5b891a0dcd2abda7ea7b8434e23282f4d6baaa13))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/darshanparajuli/LogcatReader/pull/118#pullrequestreview-3954825326)) | | [LogFox](https://github.com/F0x1d/LogFox) | [`dd1405c`](https://github.com/F0x1d/LogFox/commit/dd1405c67737601b27530533feeebf73711fe47e), version [2.0.7](https://github.com/F0x1d/LogFox/releases/tag/v2.0.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/F0x1d/LogFox/blob/master/AGENTS.md), [2](https://github.com/F0x1d/LogFox/tree/master/.claude), [3](https://github.com/F0x1d/LogFox/commit/c7953ec38f480c4d0a8ec5311e03ff2d562422b3)) | +| [Rootless Logcat](https://github.com/tananaev/rootless-logcat) | [`0f7e533`](https://github.com/tananaev/rootless-logcat/commit/0f7e5330b0967c7762dbc4d48739ce5aac99adca) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tananaev/rootless-logcat/commit/5dd406dfdb32a6bdf67ea5f3ecf094a97508f1a4), [2](https://github.com/tananaev/rootless-logcat/commit/78ccae143dcfddbc4a12ddec9bc188dd48c75d88), [3](https://github.com/tananaev/rootless-logcat/commit/14b0649489fb58e8182d9c6d225077b1e24f34ff)) | > [!note] > > #### Alternatives for Android > -> - [Rootless Logcat](https://github.com/tananaev/rootless-logcat) > - [aShell You](https://github.com/DP-Hridayan/aShellYou) or [aShell](https://gitlab.com/sunilpaulmathew/ashell) running the `logcat`command. > - Direct use of the `logcat` command in the Android shell. From 36cd7d8e6c6940c5f79191a9d0dc2bca68b798d3 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 10 Jun 2026 09:52:06 +0200 Subject: [PATCH 251/413] define "no AI" policy (#933) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/933 --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1670b1b..066621d 100644 --- a/README.md +++ b/README.md @@ -207,11 +207,12 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question # Definitions -| Term | Definition | -|-----------|---------------------------------------------------------------------------------------------------------------------------------------| -| LLM | Large Language Model, a language model trained on vast amounts of text (often entire websites without the website owner's permission) | -| slop | Anything generated by AI, typically code, books, articles, or images. | -| slopshop | Company, Organization, or Group of sloperators working together to use AI to generate content. | +| Term | Definition | +|----------------|---------------------------------------------------------------------------------------------------------------------------------------| +| LLM | Large Language Model, a language model trained on vast amounts of text (often entire websites without the website owner's permission) | +| "No AI" Policy | A Policy in a repo that explicitly forbids the use of AI and does not contain any special carve outs for "finding bugs" or anything that condones AI usage | +| slop | Anything generated by AI, typically code, books, articles, or images. | +| slopshop | Company, Organization, or Group of sloperators working together to use AI to generate content. | Below are special definitions that are used for tagging purposes. From 147c32770babb7aa7bcc5d2e9ebe1f38c73e7e46 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 10 Jun 2026 10:15:40 +0200 Subject: [PATCH 252/413] fix LLM ingestion tag (#930) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/930 Reviewed-by: Admin --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 066621d..762d016 100644 --- a/README.md +++ b/README.md @@ -734,7 +734,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://xcancel.com/FFmpeg/status/2054689695532036382#m))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://xcancel.com/FFmpeg/status/2054689695532036382#m))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Fladder](https://github.com/DonutWare/Fladder) | [`ddb71ef`](https://github.com/DonutWare/Fladder/commit/ddb71ef83514399ed326688cde5d6ee108dde7dd) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DonutWare/Fladder/pull/827), [2](https://github.com/DonutWare/Fladder/pull/828), [3](https://github.com/DonutWare/Fladder/pull/831))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DonutWare/Fladder/pull/158), [2](https://github.com/DonutWare/Fladder/pull/161), [3](https://github.com/DonutWare/Fladder/pull/556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gstreamer](https://gstreamer.freedesktop.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e4d7f95b0c8ea4b1e23d6660317968f8033ae3a9)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Jellyfin](https://jellyfin.org) (server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jellyfin/jellyfin/pull/16540)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -758,7 +758,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [cryptsetup](https://gitlab.com/cryptsetup/cryptsetup) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/blob/main/CONTRIBUTING.md?ref_type=heads#how-to-contribute-changes-to-cryptsetup), [2](https://gitlab.com/cryptsetup/cryptsetup/-/work_items/986))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/raw/v2.8.6/docs/v2.8.6-ReleaseNotes))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/901)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [VeraCrypt](https://github.com/veracrypt/VeraCrypt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/veracrypt/VeraCrypt/pull/1710), [2](https://github.com/veracrypt/VeraCrypt/pull/1703), [3](https://github.com/veracrypt/VeraCrypt/pull/1386))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/veracrypt/VeraCrypt/pull/1525)) | [tc-play](https://github.com/bwalex/tc-play),
[zuluCrypt](https://github.com/mhogomchungu/zuluCrypt) | > [!NOTE] @@ -797,7 +797,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [cmark](https://github.com/commonmark/cmark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/cmark/commit/9dc68b89800ccba49551f2055f2b41e20e9039b1), [2](https://github.com/commonmark/cmark/commit/cb3fe8c4dcfafb5c291096a1afc84723015e52dc), [3](https://github.com/commonmark/cmark/commit/8c9dcdd2d71cc191f2f9a9791b06e58c9aec5ec3))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/commonmark/cmark/issues/599#issuecomment-3914290545)) | [Markdown.pl](https://daringfireball.net/projects/markdown/) (md to html) | +| [cmark](https://github.com/commonmark/cmark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/cmark/commit/9dc68b89800ccba49551f2055f2b41e20e9039b1), [2](https://github.com/commonmark/cmark/commit/cb3fe8c4dcfafb5c291096a1afc84723015e52dc), [3](https://github.com/commonmark/cmark/commit/8c9dcdd2d71cc191f2f9a9791b06e58c9aec5ec3))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/commonmark/cmark/issues/599#issuecomment-3914290545)) | [Markdown.pl](https://daringfireball.net/projects/markdown/) (md to html) | | [commonmark-java](https://github.com/commonmark/commonmark-java) | [`e62bca1`](https://github.com/commonmark/commonmark-java/commit/e62bca11062dc52b4f7a28d1da3d16c49ba81628) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/commonmark/commonmark-java/commit/f3be489803f3446e610f2948fd77d4e821a5cefd), [2](https://github.com/commonmark/commonmark-java/commit/5815c3c0b17f52b53e65465fd8ff65da8e6304fa), [3](https://github.com/commonmark/commonmark-java/commit/057f13dd8e9472a45c714ad0c06a1a425ec21f61)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Pandoc](https://pandoc.org/) | [`0ce85b0`](https://github.com/jgm/pandoc/commit/0ce85b0cfa8e5d3155dddc77b1408b4d7d7890fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgm/pandoc/pull/11132), [2](https://github.com/jgm/pandoc/pull/11396), [3](https://github.com/jgm/pandoc/commit/4b26f50118d7c0fdb3c1095dc26ba671e1b4b538)) | [lowdown](https://kristaps.bsd.lv/lowdown/)?
[Typst](https://typst.app/)? | @@ -1155,7 +1155,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Other Operating Systems @@ -1250,7 +1250,7 @@ This is a section for repos that are similar to this one either because they are | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | | [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | -| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | +| [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | | [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | @@ -1286,7 +1286,7 @@ This is a section for repos that are similar to this one either because they are | [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | See below | | [raylib](https://github.com/raysan5/raylib) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/raysan5/raylib/discussions/5712#discussioncomment-16411612)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [*See systemd section*](#system-services-and-daemons) | [basu](https://sr.ht/~emersion/basu/) | -| [SDL](https://github.com/libsdl-org/SDL) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Condones LLM Ingestion](./badges/condones-llmingestion.svg)](#condones-llmingestion) ([1](https://github.com/libsdl-org/SDL/blob/c46dfdba543195873c205f8a30957d1a50b99565/AGENTS.md?plain=1#L10)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [SDL](https://github.com/libsdl-org/SDL) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/libsdl-org/SDL/blob/c46dfdba543195873c205f8a30957d1a50b99565/AGENTS.md?plain=1#L10)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [WolfSSL](https://wolfssl.com) | [`5.7.6`](https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.6-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wolfSSL/wolfssl/releases/tag/v5.9.1-stable))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wolfSSL/wolfssl/pull/10349), [2](https://github.com/wolfSSL/wolfssl/pull/10352), [3](https://github.com/wolfSSL/wolfssl/pull/10351)) | See below | | [zlib-ng](https://github.com/zlib-ng/zlib-ng) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zlib-ng/zlib-ng/commit/927c5a46a72cf058043a4b792ff20d8b50a9f1ab),[2](https://github.com/zlib-ng/zlib-ng/commit/061f0e4fa8b266f643a7070befe8d7a0b412ef31),[3](https://github.com/zlib-ng/zlib-ng/commit/a7e15da75f8ec00b392a467675617a9112948d00))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zlib-ng/zlib-ng/pull/2197#issuecomment-4020684882)) | [zlib](https://zlib.net) | @@ -1649,7 +1649,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | -| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8))
![Condones LLM Ingestion](./badges/condones-llmingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| +| [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8))
![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | From 15c27765adb0ec6579448c774ed6bcf6ae5dbbb9 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 10 Jun 2026 10:32:21 +0200 Subject: [PATCH 253/413] fix all the badges (#929) many of the badges contain a full url to the doc which makes them unclickable, not sure why this happened. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/929 Reviewed-by: Admin --- README.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 762d016..d015c90 100644 --- a/README.md +++ b/README.md @@ -436,7 +436,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | +| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | @@ -531,7 +531,7 @@ This is a section for repos that are similar to this one either because they are | [Booklore](https://github.com/the-booklore/booklore/tree/develop) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [Futon](https://github.com/AppFuton/Futon) | [`5754292`](https://github.com/AppFuton/Futon/commit/57542921c342be555fd2d1835621c0317590aa6a), version [9.6.6](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | [Taison](https://f-droid.org/en/packages/com.gent8.taison/), [Komelia](https://f-droid.org/en/packages/io.github.snd_r.komelia) | -| [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LANraragi](https://github.com/Difegue/LANraragi) | [`1cfd949`](https://github.com/Difegue/LANraragi/commit/1cfd949c45f00221126a2996df5dabf8ed9964fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Difegue/LANraragi/pull/1220#issue-2973877545))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Difegue/LANraragi/pull/1218#pullrequestreview-2728016763)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Zotero](https://www.zotero.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) | [Citations](https://apps.gnome.org/Citations/) | @@ -646,7 +646,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [brush](https://github.com/reubeno/brush) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reubeno/brush/blob/main/AGENTS.md), [2](https://github.com/reubeno/brush/blob/main/.github/copilot-instructions.md), [3](https://github.com/reubeno/brush/commit/4ca78babcb2111d34e26cdda6622b0fa2611bb32))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reubeno/brush/pull/1167), [2](https://github.com/reubeno/brush/pull/1080), [3](https://github.com/reubeno/brush/pull/1078))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://github.com/reubeno/brush/blob/8ea83d7/README.md)) | +| [brush](https://github.com/reubeno/brush) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reubeno/brush/blob/main/AGENTS.md), [2](https://github.com/reubeno/brush/blob/main/.github/copilot-instructions.md), [3](https://github.com/reubeno/brush/commit/4ca78babcb2111d34e26cdda6622b0fa2611bb32))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reubeno/brush/pull/1167), [2](https://github.com/reubeno/brush/pull/1080), [3](https://github.com/reubeno/brush/pull/1078))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/reubeno/brush/blob/8ea83d7/README.md)) | | [Hilbish](https://github.com/sammy-ette/Hilbish/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sammy-ette/Hilbish/pull/362#pullrequestreview-4117077021), [2](https://github.com/sammy-ette/Hilbish/pull/358#pullrequestreview-4117094312)) | | [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | | [Oil Shell](https://github.com/oils-for-unix/oils) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | @@ -897,7 +897,7 @@ This is a section for repos that are similar to this one either because they are | [eza](https://eza.rocks/) | [`v0.21.0`](http://github.com/eza-community/eza/releases/tag/v0.21.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/eza-community/eza/blob/eed27ed05e74542af5852aed40e3dbff87d69c43/README.md)) | [ls](https://en.wikipedia.org/wiki/Ls) | | [fd](https://github.com/sharkdp/fd) | [`v10.2.0`](https://github.com/sharkdp/fd/releases/tag/v10.2.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/fd/blob/7f1b1471d5e3f88087eaad77885dc70968750bb3/CONTRIBUTING.md), [2](https://github.com/sharkdp/fd/commit/0ada245e37c0de42e61da50da0ad3bcc49efb74f), [3](https://github.com/sharkdp/fd/commit/19dcbff5627010b11cb409a5ac2e0480bf0a61b7))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sharkdp/fd/pull/1805), [2](https://github.com/sharkdp/fd/pull/1934), [3](https://github.com/sharkdp/fd/pull/1928)) | [find](https://en.wikipedia.org/wiki/Find_(Unix)) | | [LSDeluxe](https://github.com/lsd-rs/lsd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/lsd-rs/lsd/blob/ce869cf60e4d131bf0f781b6705265f34e68b6b5/README.md), [2](https://github.com/lsd-rs/lsd/commit/ae1a2cd964168dee240de1ba13dd85e08b9a26a4)) | [ls](https://en.wikipedia.org/wiki/Ls) | -| [ripgrep](https://github.com/BurntSushi/ripgrep) | [`15.1.0`](https://github.com/BurntSushi/ripgrep/tree/15.1.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/BurntSushi/ripgrep/commit/f0cec341ab95c25c691ad3d5754d4bd9eedde21f)) | [grep](https://en.wikipedia.org/wiki/Grep) | +| [ripgrep](https://github.com/BurntSushi/ripgrep) | [`15.1.0`](https://github.com/BurntSushi/ripgrep/tree/15.1.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BurntSushi/ripgrep/commit/f0cec341ab95c25c691ad3d5754d4bd9eedde21f)) | [grep](https://en.wikipedia.org/wiki/Grep) | | [zoxide](https://github.com/ajeetdsouza/zoxide) | [`v0.9.2`](https://github.com/ajeetdsouza/zoxide/releases/tag/v0.9.2) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/ajeetdsouza/zoxide/blob/67ca1bc9592854dd4957b8b02f16292638475659/README.md), [2](https://github.com/ajeetdsouza/zoxide/commit/073500cbdf8ba211e5115fc6e51411cf2468fc5b), [3](https://github.com/ajeetdsouza/zoxide/commit/61f19a60d91b7181bfdc88470e72bcd1befc7c6a)) | [cd](https://en.wikipedia.org/wiki/Cd_(command)) | ### File Managers @@ -927,7 +927,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Golly](https://golly.sourceforge.io/) | [`883b1ff`](https://sourceforge.net/p/golly/code/ci/883b1ff4f61d66426caf49768e7b1704ec7dadfc/) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Golly](https://golly.sourceforge.io/) | [`883b1ff`](https://sourceforge.net/p/golly/code/ci/883b1ff4f61d66426caf49768e7b1704ec7dadfc/) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Emulators @@ -1019,7 +1019,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | +| [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) | [Element Web](https://github.com/element-hq/element-web/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-web/commit/68070b2e9788f0e5396f4c9d532b05e146e6ad60)) @@ -1064,7 +1064,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [betaflight](https://github.com/betaflight/betaflight) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/search?q=repo%3Abetaflight%2Fbetaflight%20Claude&type=commits))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/betaflight/betaflight/blob/master/.coderabbit.yaml)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [BouffaloSDK](https://github.com/bouffalolab/bouffalo_sdk) | [`2.0.0`](https://github.com/bouffalolab/bouffalo_sdk/tree/V2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bouffalolab/bouffalo_sdk/blob/master/CLAUDE.md), [2](https://github.com/bouffalolab/bouffalo_sdk/tree/master/.claude/skills), [3](https://github.com/bouffalolab/bouffalo_sdk/blob/master/components/wireless/wl80211/CLAUDE.md)) | See below | -| [ch32-hal](https://github.com/ch32-rs/ch32-hal) | [`07687b9`](https://github.com/ch32-rs/ch32-hal/commit/07687b9f8d7b3823ef91ca23baa21663025c0346) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ch32-rs/ch32-hal/pull/161), [2](https://github.com/ch32-rs/ch32-hal/pull/151), [3](https://github.com/ch32-rs/ch32-hal/pull/139))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://avatars.githubusercontent.com/u/104085502?s=200&v=4)) | See below | +| [ch32-hal](https://github.com/ch32-rs/ch32-hal) | [`07687b9`](https://github.com/ch32-rs/ch32-hal/commit/07687b9f8d7b3823ef91ca23baa21663025c0346) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ch32-rs/ch32-hal/pull/161), [2](https://github.com/ch32-rs/ch32-hal/pull/151), [3](https://github.com/ch32-rs/ch32-hal/pull/139))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://avatars.githubusercontent.com/u/104085502?s=200&v=4)) | See below | | [esphome](https://github.com/esphome/esphome) | [`a31a5e7`](https://github.com/esphome/esphome/commit/a31a5e74bdfa3ece19c502a91f81b0d93414bd67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/esphome/esphome/blob/dev/.ai/instructions.md), [2](https://github.com/esphome/esphome/blob/dev/.claude/skills/pr-workflow/SKILL.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/esphome/esphome/pull/16018#pullrequestreview-4176888667), [2](https://github.com/esphome/esphome/pull/15997#pullrequestreview-4175883662)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ESP-IDF](https://github.com/espressif/esp-idf) | [`5.5.2`](https://github.com/espressif/esp-idf/releases/tag/v5.5.2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-py.html#esp-idf-mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espressif/esp-idf/commit/a4c014f96ed024ba5139e2e91258ee785741d611), [2](https://github.com/espressif/esp-idf/commit/20b9e06e9262af45863bd7cc7afeba3513083266), [3](https://github.com/espressif/esp-idf/commit/380dde02d0e48a9e85abb0392ce27dcaf9322c36))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espressif/esp-idf/pull/18195), [2](https://github.com/espressif/esp-idf/pull/18273), [3](https://github.com/espressif/esp-idf/pull/18283)) | See below | | [FastLED](https://fastled.io/) | [`3.10.1`](https://github.com/FastLED/FastLED/releases/tag/3.10.1)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FastLED/FastLED/blob/master/ADVANCED_DEVELOPMENT.md#enabling-ai-coding), [2](https://github.com/FastLED/FastLED/commit/a7fcbf316fe7b0d6759e8d9955a22ff9df4328b2), [3](https://github.com/FastLED/FastLED/commit/bcfc3c0ff8b464a50a7f5f0a8b7437131fe08995)) | See below | @@ -1349,7 +1349,7 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [ArkType](https://arktype.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://arktype.io/llms.txt), [2](https://github.com/arktypeio/arktype/blob/main/.cursor/commands/armstrong.md), [3](https://github.com/arktypeio/arktype/pull/1553#issuecomment-3672923281))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/arktypeio/arktype/pull/1594)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/oven-sh/bun/pull/30412), [2](https://www.theregister.com/devops/2026/05/14/anthropics-bun-rust-rewrite-merged-at-speed-of-ai/5240381))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/oven-sh/bun/pull/30412), [2](https://www.theregister.com/devops/2026/05/14/anthropics-bun-rust-rewrite-merged-at-speed-of-ai/5240381))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Deno](https://github.com/denoland/deno) | [`6002d26`](https://github.com/denoland/deno/commit/6002d2624e567d92c5d659be77dfa14fc4db28fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/.github/CONTRIBUTING.md), [2](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/CLAUDE.md), [3](https://xcancel.com/i/status/2013280952370573666))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/denoland/deno/pull/33335#pullrequestreview-4143170352)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1361,8 +1361,8 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://opensource.fb.com/projects/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [TS for GIR](https://gjsify.github.io/docs/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gjsify/ts-for-gir/blob/80ecf9e071c82f4d107ebf7d1129cb363a025f0d/AGENTS.md), [2](https://github.com/gjsify/ts-for-gir/pull/320), [3](https://github.com/gjsify/ts-for-gir/commit/7b1e2b31df06f59046899d4b2d476187afad95aa)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Typebox](https://github.com/sinclairzx81) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sinclairzx81/typebox/pull/1015), [2](https://github.com/sinclairzx81/typebox/issues/1294), [3](https://github.com/sinclairzx81/typebox/issues/1364)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Vite](http://vite.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/copilot-instructions.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md#sponsors), [2](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md?plain=1#L19))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/workflows/issue-template-check.yml#L50)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Vite](http://vite.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/copilot-instructions.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md#sponsors), [2](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/README.md?plain=1#L19))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/vitejs/vite/blob/640202a2167b0c19b94e4d3b8ff87309ae1f44d0/.github/workflows/issue-template-check.yml#L50)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Webpack](https://webpack.js.org/) | [`v5.76.3`](https://github.com/webpack/webpack/releases/tag/v5.76.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webpack/webpack/pull/20640), [2](https://github.com/webpack/webpack/pull/20648), [3](https://github.com/webpack/webpack/pull/20978))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/webpack/webpack/pull/16881), [2](https://github.com/webpack/webpack/pull/20828), [3](https://github.com/webpack/webpack/pull/20834)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Zod](https://zod.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/colinhacks/zod/blob/main/AGENTS.md), [2](https://github.com/colinhacks/zod/blob/main/CLAUDE.md), [3](https://github.com/colinhacks/zod/blob/main/.cursorrules))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/colinhacks/zod/blob/c7805073fef5b6b8857307c3d4b3597a70613bc2/packages/zod/README.md?plain=1#L40)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1409,21 +1409,21 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2), [2](https://github.com/emilk/egui/pull/8088), [3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948), [2](https://github.com/emilk/egui/pull/7617), [3](https://github.com/emilk/egui/pull/7577)) | See below | -| [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | -| [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | -| [jiff](https://github.com/BurntSushi/jiff) | [`0.2.26`](https://github.com/BurntSushi/jiff/tree/0.2.26) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/BurntSushi/jiff/commit/95332861e1b2941b9b1336202229290aeaeba353)) | [chrono](https://github.com/chronotope/chrono),
[time](https://github.com/time-rs/time) | +| [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2), [2](https://github.com/emilk/egui/pull/8088), [3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948), [2](https://github.com/emilk/egui/pull/7617), [3](https://github.com/emilk/egui/pull/7577)) | See below | +| [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | +| [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | +| [jiff](https://github.com/BurntSushi/jiff) | [`0.2.26`](https://github.com/BurntSushi/jiff/tree/0.2.26) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BurntSushi/jiff/commit/95332861e1b2941b9b1336202229290aeaeba353)) | [chrono](https://github.com/chronotope/chrono),
[time](https://github.com/time-rs/time) | | [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | -| [memchr](https://github.com/BurntSushi/memchr) | [`2.8.0`](https://github.com/BurntSushi/memchr/tree/2.8.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/BurntSushi/memchr/commit/ee18717a7002a3299a6b5ef718084e76d958a5c3)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [memchr](https://github.com/BurntSushi/memchr) | [`2.8.0`](https://github.com/BurntSushi/memchr/tree/2.8.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BurntSushi/memchr/commit/ee18717a7002a3299a6b5ef718084e76d958a5c3)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [PyO3](https://pyo3.rs) | [`v0.23.5`](https://github.com/PyO3/pyo3/releases/tag/v0.23.5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyO3/pyo3/pull/5615), [2](https://github.com/PyO3/pyo3/pull/5933), [3](https://github.com/PyO3/pyo3/pull/5870))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyO3/pyo3/pull/4768), [2](https://github.com/PyO3/pyo3/pull/5724), [3](https://github.com/PyO3/pyo3/pull/5729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | -| [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | +| [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | +| [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | | [Slint](https://github.com/slint-ui/slint) | [`1.14.1`](https://github.com/slint-ui/slint/tree/v1.14.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slint-ui/slint/blob/master/AGENTS.md), [2](https://github.com/slint-ui/slint/commit/f479ae6d8ee24de17634e22e8079374222a4a8fd)) | See below | -| [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | -| [zbus](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [zerocopy](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | +| [zbus](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [zerocopy](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!Note] > #### Alternative GUI crates @@ -1724,7 +1724,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Gitea](https://about.gitea.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md#ai-contribution-policy), [2](https://github.com/go-gitea/gitea/blob/main/AGENTS.md), [3](https://github.com/go-gitea/gitea/blob/main/CLAUDE.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://about.gitea.com/blog/gitea-achieves-soc2-type2-soc3-certification)) | +| [Gitea](https://about.gitea.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md#ai-contribution-policy), [2](https://github.com/go-gitea/gitea/blob/main/AGENTS.md), [3](https://github.com/go-gitea/gitea/blob/main/CLAUDE.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://about.gitea.com/blog/gitea-achieves-soc2-type2-soc3-certification)) | | [Gogs](https://gogs.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gogs/gogs/pull/8059), [2](https://github.com/gogs/gogs/pull/8061), [3](https://github.com/gogs/gogs/pull/8121))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gogs/gogs/pull/7981), [2](https://github.com/gogs/gogs/pull/8069)) | | [GitLab](https://gitlab.com/gitlab-org/gitlab) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://about.gitlab.com/), [2](https://about.gitlab.com/blog/gitlab-act-2/), [3](https://docs.gitlab.com/user/project/ml/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/gitlab-org/gitlab/-/blob/bc0c170b8266e5ed182a3def29313bb8a8421af4/AGENTS.md), [2](https://gitlab.com/rluna-gitlab/gitlab-ce/-/blob/master/.ai/)) | | [Tangled](https://tangled.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://tangled.org/tangled.org/core/issues/394)) | @@ -1741,7 +1741,7 @@ This section is strictly for software implementing a core set of UNIX-like utili |---|:---:|---| | [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | |[Cloud-Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor/)| [`v47.0`](https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v47.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#aillm-assistance--generated-code))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#code-review)) | -| [Kubevirt](https://kubevirt.io/) | [`v1.5.0`](https://github.com/kubevirt/kubevirt/releases/tag/v1.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kubevirt/community/blob/main/ai-contribution-policy.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/kubevirt/kubevirt/issues/17003#issuecomment-3990607938))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/kubevirt/kubevirt/pull/17522#pullrequestreview-4128078747)) | +| [Kubevirt](https://kubevirt.io/) | [`v1.5.0`](https://github.com/kubevirt/kubevirt/releases/tag/v1.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kubevirt/community/blob/main/ai-contribution-policy.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/kubevirt/kubevirt/issues/17003#issuecomment-3990607938))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/kubevirt/kubevirt/pull/17522#pullrequestreview-4128078747)) | | [VirtualBox](https://www.virtualbox.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/VirtualBox/virtualbox/blob/main/AGENTS.md)) | > [!NOTE] @@ -1778,8 +1778,8 @@ Volunteer computing is a system in which someone can donate (excess) compute res | [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | | [i3](https://i3wm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/i3/i3?tab=contributing-ov-file#ai-contribution-policy), [2](https://github.com/i3/i3/issues/6546)) | | [IceWM](https://ice-wm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) ([1](https://github.com/ice-wm/icewm/issues/203#issuecomment-3318901550) | -| [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | -| [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | +| [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | +| [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | | [niri](https://github.com/niri-wm/niri) | [`v25.05.1`](https://github.com/niri-wm/niri/releases/tag/v25.05.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/niri-wm/niri/blob/main/CONTRIBUTING.md#ai-contributions), [2](https://github.com/niri-wm/niri/pull/2109))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/niri-wm/niri/pull/3651)) | | [Qtile](https://github.com/qtile/qtile) | [`v0.34.1`](https://github.com/qtile/qtile/releases/tag/v0.34.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/qtile/qtile/commit/0c5e1285124eaef419c93519de7465e95cbe64a3), [2](https://github.com/qtile/qtile/commit/1e3a2040d20e2df771b867899083ff00e9721665), [3](https://github.com/qtile/qtile/commit/f2c69f585a6b5d8dd7bcefd87f3dee539c29cdaa))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/qtile/qtile/pull/5743)) | From 3e2463b9d9e4f550331124f0a131ecda3224fe55 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 10 Jun 2026 10:44:02 +0200 Subject: [PATCH 254/413] add MusicBrainz Picard and add File Tagging category (#807) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/807 Reviewed-by: Admin --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index d015c90..7c3d571 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [File Monitoring](#file-monitoring) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) + * [File Tagging](#file-tagging) + * [Music Taggers](#music-taggers) + * [Alternative Music Taggers](#alternative-music-taggers) * [File Transferring](#file-transferring) * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) @@ -881,6 +884,20 @@ This is a section for repos that are similar to this one either because they are > For MinIO: > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. +## File Tagging + +### Music Taggers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [MusicBrainz Picard](https://github.com/metabrainz/picard/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/metabrainz/guidelines/blob/master/README.md#ai-use-policy), [2](https://github.com/metabrainz/picard/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/metabrainz/picard/pull/3062#pullrequestreview-3868348318)) | See below | + +> [!NOTE] +> #### Alternative Music Taggers +> - [Ear Tag](https://gitlab.gnome.org/World/eartag) +> - [EasyTAG](https://gitlab.gnome.org/GNOME/easytag) +> - [K3b](https://invent.kde.org/multimedia/k3b) + ## File Transferring | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From b8c2fca7d5ce0ab4a8c6c4b04527d120c916f31d Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 10 Jun 2026 10:55:43 +0200 Subject: [PATCH 255/413] kid3, not k3b (#938) sorry, i just realized i mixed those two up. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/938 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c3d571..1e3e5bf 100644 --- a/README.md +++ b/README.md @@ -896,7 +896,7 @@ This is a section for repos that are similar to this one either because they are > #### Alternative Music Taggers > - [Ear Tag](https://gitlab.gnome.org/World/eartag) > - [EasyTAG](https://gitlab.gnome.org/GNOME/easytag) -> - [K3b](https://invent.kde.org/multimedia/k3b) +> - [Kid3](https://kid3.kde.org/) ## File Transferring From b193c4b3cb506af05e0d2b2080b67787d1dd96e1 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 10 Jun 2026 16:20:10 +0200 Subject: [PATCH 256/413] closes #940 We're not going to research the kiwifarms stuff because we're not going to jump into that. Instead, we'll just include the link where Drew admits to verbally harassing marginalized people From 5cdccb4ed2cb007e9f1b7768b8ace2df0604930f Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 10 Jun 2026 16:38:23 +0200 Subject: [PATCH 257/413] Remind people here of our code of conduct From 68648b40f79c93fcaf78822ca34a88bd913279aa Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 10 Jun 2026 16:21:04 +0000 Subject: [PATCH 258/413] remove don't reference me list --- .forgejo/issue_template/request-for-more-kind-eyes.yaml | 2 -- CONTRIBUTING.md | 7 +------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index cc36ca9..8e796ad 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -41,5 +41,3 @@ body: required: true - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - - label: I have made sure the project I want people to have eyes on is not on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list - required: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 98ccf87..6433634 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ https://codeberg.org/org/project ``` > [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. Be sure you don't recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list though. +> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. **Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** @@ -123,9 +123,6 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you - Forum post specifically dedicated to the project and read by the maintainers of the project - Social media account run *by the project* and not a solo maintainer. We do **not** want to call watchers of this repo to approach solo maintainers (there is too much room for that to potentially result in harassment), but if a project/company has a specific social media thread asking for opinions on AI usage in their code base or as a feature of their project/product, feel free to link that. ->[!warning] -> Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. - Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. Please don't link directly to codeberg.org repos, issues, pull requests or commits, as it will alert the other repo that they're being talked about in this list, which could create a negative atmosphere. If you need to link to them, please use a codeblock like this: @@ -148,8 +145,6 @@ You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: -- Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. - - Do not link to people's social media posts e.g. fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. - When adding a link to back up your point, please use the name of the source and title of the article as the link name From 147736853c199bd252418b067f5d04466b6f80b7 Mon Sep 17 00:00:00 2001 From: FlemyJY Date: Wed, 10 Jun 2026 19:42:58 +0200 Subject: [PATCH 259/413] Add yacy and elastisearch (#877) not sure if any yacy alternatives even exist.. elastisearch would've been a alternative to its intranet mode, but its mesh mode is unique i think? Co-authored-by: FlemyJY Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/877 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1e3e5bf..0906e2b 100644 --- a/README.md +++ b/README.md @@ -1496,6 +1496,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Elasticsearch](https://www.elastic.co/products/elasticsearch) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elastic/elasticsearch/commit/7e2215bd35b7d222d3a8e289d1b5c2835c46aadc)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [OpenSearch](https://github.com/opensearch-project/OpenSearch) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/opensearch-project/OpenSearch/blob/main/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Web Search @@ -1503,6 +1504,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Searxng](https://github.com/searxng/searxng) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/searxng/searxng/blob/master/AI_POLICY.rst))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/searxng/searxng/issues?q=copilot)) | [LibreY](https://github.com/Ahwxorg/librey/),
[marginalia](https://github.com/MarginaliaSearch/MarginaliaSearch),
[securityops.co](https://git.securityops.co/securityops/securitysearch) | +| [YaCy](https://yacy.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/yacy/yacy_search_server/commit/8ca78e40f723df21b91b028d1e51daa7eec6b638)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Service Monitoring From a6c961f189b26b49897355bab64757792b0fc0bb Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 10 Jun 2026 19:46:22 +0200 Subject: [PATCH 260/413] rename repo's old org references and add most basic of PR templates (#945) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/945 --- .../issue_template/collaborate-with-me.yaml | 4 +- .forgejo/issue_template/config.yaml | 2 +- .forgejo/issue_template/discussion.yaml | 6 +-- .../request-for-more-kind-eyes.yaml | 6 +-- .forgejo/pull_request_template.yaml | 19 +++++++++ CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 28 ++++++------- FAQ.md | 22 +++++----- HOW_TO_SLOP_FREE_FORK.md | 12 +++--- README.md | 42 +++++++++---------- STYLE.md | 24 +++++------ 11 files changed, 93 insertions(+), 74 deletions(-) create mode 100644 .forgejo/pull_request_template.yaml diff --git a/.forgejo/issue_template/collaborate-with-me.yaml b/.forgejo/issue_template/collaborate-with-me.yaml index b9c7ff9..9567e14 100644 --- a/.forgejo/issue_template/collaborate-with-me.yaml +++ b/.forgejo/issue_template/collaborate-with-me.yaml @@ -43,9 +43,9 @@ body: id: terms attributes: label: Code of Conduct and Rules for Collaboration - description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - label: The project I want to collaborate on has a No AI policy banning any and all AI usage required: true diff --git a/.forgejo/issue_template/config.yaml b/.forgejo/issue_template/config.yaml index c855a06..e906078 100644 --- a/.forgejo/issue_template/config.yaml +++ b/.forgejo/issue_template/config.yaml @@ -3,7 +3,7 @@ blank_issues_enabled: false contact_links: - name: Our Contributing Doc - url: https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md + url: https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md about: Read this to learn how you can contribute to this project ✨ - name: How to Create a Pull Request url: https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/ diff --git a/.forgejo/issue_template/discussion.yaml b/.forgejo/issue_template/discussion.yaml index 7dcb4df..b49c954 100644 --- a/.forgejo/issue_template/discussion.yaml +++ b/.forgejo/issue_template/discussion.yaml @@ -21,10 +21,10 @@ body: id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - - label: I have also read the [Contributing Guidelines](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md) + - label: I have also read the [Contributing Guidelines](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md) required: true visible: [form] diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index 8e796ad..f376687 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -35,9 +35,9 @@ body: id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - - label: I have read the full description of this issue type [here](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#more-kind-eyes) + - label: I have read the full description of this issue type [here](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md#more-kind-eyes) required: true - - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml new file mode 100644 index 0000000..35ad390 --- /dev/null +++ b/.forgejo/pull_request_template.yaml @@ -0,0 +1,19 @@ +name: pull-request +about: Submit a PR +ref: 'main' +body: + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this PR, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + required: true + visible: [form] + - label: I have also read the [Contributing Guidelines](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md) + required: true + visible: [form] + - label: I have also read the [Style Guide](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/STYLE.md) + required: true + visible: [form] diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 8d4fe53..ea9c74e 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -55,7 +55,7 @@ We're going to do a 2 strike rule here with an optional warning. You are out on - Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on repos, forums, social media, reddit, messaging apps, etc, especially not in a rude way, to maintainers of other repos to harass them and threaten them, especially not with this list. Doing so will result in a ban. -- Do **NOT** mention this list *at all* when reaching out to a project to discuss AI in any way. It only results in putting the maintainers of that project on the defensive, and then the maintainers of *this* repo need to deal with the fallout of that. If you need help with asking for a No AI Policy, consider checking out our [No AI Request Template doc](https://codeberg.org/small-hack/open-slopware/src/branch/main/NO_AI_REQUEST_TEMPLATE.md#tips-for-success). You are also free to copy and paste anything from the [Why not LLMs](https://codeberg.org/small-hack/open-slopware/src/branch/main#why-not-llms) section of our README. +- Do **NOT** mention this list *at all* when reaching out to a project to discuss AI in any way. It only results in putting the maintainers of that project on the defensive, and then the maintainers of *this* repo need to deal with the fallout of that. If you need help with asking for a No AI Policy, consider checking out our [No AI Request Template doc](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/NO_AI_REQUEST_TEMPLATE.md#tips-for-success). You are also free to copy and paste anything from the [Why not LLMs](https://codeberg.org/ethical-foss/open-slopware/src/branch/main#why-not-llms) section of our README. - We don't want drive by sarcastic comments. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6433634..9d5b6c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,15 +42,15 @@ Other tips for keeping the repo tidy and making sure we don't duplicate efforts: The criteria for being included in this repository are any of following tags. You can click each one to jump to the definition and acceptable evidence: -- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) (only to be used in extreme cases) -- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) -- [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) -- [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) -- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) -- [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) -- [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) -- [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) -- [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#condones-llm-ingestion) +- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware#vibecoded) (only to be used in extreme cases) +- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) +- [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/ethical-foss/open-slopware#permissive-ai-policy) +- [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) +- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/ethical-foss/open-slopware#sponsored-by-ai) +- [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) +- [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) +- [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) +- [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) Alternatives should not contain any slop as defined by our tagging system above. @@ -71,7 +71,7 @@ Any project here may have the "Tainted" status removed as long as the following Title the pull request like this: > Remove `` -When submitting a project for removal, please include a link to the evidence that they have created a "No genAI" policy. You can also submit PRs to update if a project stops using something like [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews), but keeps a [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy). Updates are always welcome. +When submitting a project for removal, please include a link to the evidence that they have created a "No genAI" policy. You can also submit PRs to update if a project stops using something like [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews), but keeps a [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/ethical-foss/open-slopware#permissive-ai-policy). Updates are always welcome. Do you see a project on this list that you wish was not on it? Please consider reaching out in a kind way to suggest they implement a No AI Policy. You can check out our [No AI Request Template](./NO_AI_REQUEST_TEMPLATE.md) for inspiration 🙏 @@ -80,7 +80,7 @@ Do you see a project on this list that you wish was not on it? Please consider r ### Adding Alternatives to Tainted Software -Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry). You can absolute self-submit +Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry). You can absolute self-submit #### Unqualified Alternatives @@ -136,10 +136,10 @@ https://codeberg.org/org/project If you want to help in that way, search for: -- [**Issues**](https://codeberg.org/small-hack/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) -- [**Pull Requests**](https://codeberg.org/small-hack/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) +- [**Issues**](https://codeberg.org/ethical-foss/open-slopware/issues?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) +- [**Pull Requests**](https://codeberg.org/ethical-foss/open-slopware/pulls?q=&type=all&sort=relevance&labels=1318107&state=open&milestone=0&project=0&assignee=0&poster=0) -You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg) Issue](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2frequest-for-more-kind-eyes.yaml). +You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg) Issue](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2frequest-for-more-kind-eyes.yaml). # Contributing to the Why Not LLMs section diff --git a/FAQ.md b/FAQ.md index e059f72..32164e1 100644 --- a/FAQ.md +++ b/FAQ.md @@ -4,11 +4,11 @@ There's no great place to put these in our current files, but these sorts of que ## Can I self-advertise my project (that doesn't use AI)? -> Yes, provided it's FOSS, has a code of conduct (even if it's a solo project), and a No AI Policy, you can add your project as an alternative to any tainted software in which it is a good fit, and you can also open a [Call for Collaborators Issue](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2fcollaborate-with-me.yaml). +> Yes, provided it's FOSS, has a code of conduct (even if it's a solo project), and a No AI Policy, you can add your project as an alternative to any tainted software in which it is a good fit, and you can also open a [Call for Collaborators Issue](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2fcollaborate-with-me.yaml). ## I use AI in my project and do not plan on stopping. Should I self-submit? -> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @vleermuis-admin and we'll handle the situation. +> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @vleermuis-admin and we'll handle the situation. ## Do closed source or proprietary products belong on this list? @@ -20,23 +20,23 @@ There's no great place to put these in our current files, but these sorts of que ## What if the AI code is human reviewed? -> Slop that is human reviewed is still slop. We are against AI for more than just code quality reasons. Please see our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section. +> Slop that is human reviewed is still slop. We are against AI for more than just code quality reasons. Please see our [Why Not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section. ## Why are you targeting/attacking/harassing my favorite project? -> We do not "target", "harass", or "attack" any projects. We, in fact, have a [very strict policy on not doing that](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#be-kind-or-be-gone). This repo is one based on ethics and is intended as a call to action. If a project meets the definition of one of our tags, it will see itself added to this repo. It can take steps to stop doing whatever it is in that definition and we'll remove it. (See also the [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status).) +> We do not "target", "harass", or "attack" any projects. We, in fact, have a [very strict policy on not doing that](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#be-kind-or-be-gone). This repo is one based on ethics and is intended as a call to action. If a project meets the definition of one of our tags, it will see itself added to this repo. It can take steps to stop doing whatever it is in that definition and we'll remove it. (See also the [guide for removal](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status).) ## If a repo had slop before, isn't it permanently tainted? Aren't all forks of slop therefore also slop? -> No. See also: [guide for removal](https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status). +> No. See also: [guide for removal](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status). > > Eventually, the slop will likely either be removed, replaced, or deprecated. > > We're also against AI for more than just code quality reasons. There's plenty of ethical reasons to be against continuing to use AI: > -> - [environmental](https://codeberg.org/small-hack/open-slopware#environmental-impact) -> - [ties to the war industrial complex](https://codeberg.org/small-hack/open-slopware#ties-to-the-war-industrial-complex) -> - [effect on hardware prices hurting newcomers to the industry](https://codeberg.org/small-hack/open-slopware#effect-on-hardware-prices) (especially those already disenfranchised) +> - [environmental](https://codeberg.org/ethical-foss/open-slopware#environmental-impact) +> - [ties to the war industrial complex](https://codeberg.org/ethical-foss/open-slopware#ties-to-the-war-industrial-complex) +> - [effect on hardware prices hurting newcomers to the industry](https://codeberg.org/ethical-foss/open-slopware#effect-on-hardware-prices) (especially those already disenfranchised) > > The commitment to stop using AI stops those above ethical issues. It's like going vegetarian. You're still a vegetarian if you previously consumed meat, but now you don't. You've still reduced suffering and helped the environment. A commitment to doing better is better than never stopping a harmful action. @@ -48,11 +48,11 @@ There's no great place to put these in our current files, but these sorts of que ## Can you advise us on the ethical usage of AI? -> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section. +> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section. ## What about "Open Source AI"? -> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](https://codeberg.org/small-hack/open-slopware#why-not-llms) section and thus such projects will still be included on this list. +> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section and thus such projects will still be included on this list. ## Why is removal harder than landing on the list in the first place? @@ -68,4 +68,4 @@ There's no great place to put these in our current files, but these sorts of que ## I don't like your definition of slop or vibecoded. Can you change it? -> No. Those [definitions](https://codeberg.org/small-hack/open-slopware#definitions) stay and are not up for debate. +> No. Those [definitions](https://codeberg.org/ethical-foss/open-slopware#definitions) stay and are not up for debate. diff --git a/HOW_TO_SLOP_FREE_FORK.md b/HOW_TO_SLOP_FREE_FORK.md index 74c49a9..ca7f389 100644 --- a/HOW_TO_SLOP_FREE_FORK.md +++ b/HOW_TO_SLOP_FREE_FORK.md @@ -11,11 +11,11 @@ Should you see a project you'd really like to fork on this list, here's how you > [!warning] > Before you fork, make sure to check the licensing! It's important that you understand the license of whatever you fork, and never remove the old LICENSE. Safe to fork licenses include, but are not limited to: MIT, GPL, AGPL, Apache 2.0, CCv4, BSD. You can learn more about licensing in [Codeberg's documentation on licensing](https://docs.codeberg.org/getting-started/licensing/). -Let's take tldr-pages as an example, as that was something the community recently hard forked into ethical-tldr. Here's how it was done. +Let's take tldr-pages as an example, as that was something the community recently hard forked into ethical-foss. Here's how it was done. 1. Setup a new home for your fork. We recommend using [codeberg.org](https://codeberg.org)! Codeberg has [great docs on setting up your first repo](https://docs.codeberg.org/getting-started/first-repository/). We recommend not adding a `.gitignore`, `LICENSE`, or `README` to start with, because your clone will likely already have those and so you want to make sure you don't run into any git merge conflicts :) Do make sure to note that your repo is a fork of the repo you're forking at first though, just to make sure no one gets confused. -2. Since we're using tldr as an example, we'll assume the project you want to fork is already in this repo. Go to the table where the software you want to fork is (for instance the [Cheat Sheets and Documentation section](https://codeberg.org/small-hack/open-slopware#cheat-sheets-and-documentation)), which looked like this: +2. Since we're using tldr as an example, we'll assume the project you want to fork is already in this repo. Go to the table where the software you want to fork is (for instance the [Cheat Sheets and Documentation section](https://codeberg.org/ethical-foss/open-slopware#cheat-sheets-and-documentation)), which looked like this: | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | @@ -46,12 +46,12 @@ Let's take tldr-pages as an example, as that was something the community recentl 5. Grab the new location of your new repo :) If you're using codeberg, you want to grab the SSH url for cloning, which you can find just below the repo stats. We've highlighted it and also we show you the button you can click to copy it easily here: - Screenshot of the top of the page for https://codeberg.org/small-hack/ethical-tldr where we've highlighted the clone url and drawn orange arrows pointing to the word SSH, the URL, and the copy button. They exist just below the repo states, but before the repo's code search bar and repo files + Screenshot of the top of the page for https://codeberg.org/ethical-foss/ethical-foss where we've highlighted the clone url and drawn orange arrows pointing to the word SSH, the URL, and the copy button. They exist just below the repo states, but before the repo's code search bar and repo files 6. Change the upstream origin of your repo to be your new fork's SSH URL. There are two ways to do this. The first way is to use the `git` command: ```bash - git remote set-url origin ssh://git@codeberg.org/small-hack/ethical-tldr.git + git remote set-url origin ssh://git@codeberg.org/ethical-foss/ethical-foss.git ``` Another way is to edit the `.git/config` file Use your editor of choice to open the following file: @@ -78,7 +78,7 @@ Let's take tldr-pages as an example, as that was something the community recentl merge = refs/heads/main ``` - You want to change your the value of "url" to your new SSH URL. In this case, it would look like this, since the new repo is ethical-tldr: + You want to change your the value of "url" to your new SSH URL. In this case, it would look like this, since the new repo is ethical-foss: ```config [core] @@ -87,7 +87,7 @@ Let's take tldr-pages as an example, as that was something the community recentl bare = false logallrefupdates = true [remote "origin"] - url = ssh://git@codeberg.org/small-hack/ethical-tldr.git + url = ssh://git@codeberg.org/ethical-foss/ethical-foss.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin diff --git a/README.md b/README.md index 0906e2b..702a900 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N Ready to fork a project to introduce a No AI policy? Check out our [**How to Slop Free Fork Guide**](./HOW_TO_SLOP_FREE_FORK.md). -Any other questions? Please check out our [FAQ](./FAQ.md), and if your question isn't answered there, please feel free to start a [Discussion](https://codeberg.org/small-hack/open-slopware/issues/new?template=.forgejo%2fissue_template%2fdiscussion.yaml). +Any other questions? Please check out our [FAQ](./FAQ.md), and if your question isn't answered there, please feel free to start a [Discussion](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2fdiscussion.yaml). * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) @@ -358,7 +358,7 @@ This means someone is asking for help with research. They would like it if you f This is a section for repos that are similar to this one either because they are also forks of the original upstream, or because they align with our goal of identifying and avoiding AI/LLM usage OR identifying/elevating projects that do NOT use AI/LLMs. These repos are not all maintained by the same people, but we may share some contributors and are generally kind FOSS neighbors. ✨ -- [llm-afflicted-software](https://codeberg.org/ai-alternatives/llm-afflicted-software) offers a similar list to ours here, however in YAML file format for each category, making it more suitable to consumption via code (for instance writing a CLI, GUI, or TUI tool to consume it). They've also kindly reached out in the past and submitted Issues and PRs (e.g. [#12](https://codeberg.org/small-hack/open-slopware/issues/12), [#22](https://codeberg.org/small-hack/open-slopware/pulls/22)) to help us here. +- [llm-afflicted-software](https://codeberg.org/ai-alternatives/llm-afflicted-software) offers a similar list to ours here, however in YAML file format for each category, making it more suitable to consumption via code (for instance writing a CLI, GUI, or TUI tool to consume it). They've also kindly reached out in the past and submitted Issues and PRs (e.g. [#12](https://codeberg.org/ethical-foss/open-slopware/issues/12), [#22](https://codeberg.org/ethical-foss/open-slopware/pulls/22)) to help us here. - [forge.starlightnet.work/Team/No-AI/](https://forge.starlightnet.work/Team/No-AI/) which is the repo for this [no-AI list](https://noai.starlightnet.work/list.html) that lists projects that have explicitly pledged not to use AI or have an explicit policy to not use AI. - [slop-free-index](https://codeberg.org/brib/slopfree-software-index) is a list of software that has taken steps to reject AI in its development processes. @@ -543,7 +543,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [barebox](https://github.com/barebox/barebox) | [`fe328bc`](https://github.com/barebox/barebox/commit/fe328bcb8a40e407c7928b6256af4a69aacfab67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/barebox/barebox/commit/e3078309ff30c88fab260c6dd08f9208802c7c4c)) | [Coreboot](https://review.coreboot.org/coreboot.git),
[EDK2 (UEFI)](https://github.com/tianocore/edk2),
[U-Boot](https://github.com/u-boot/u-boot) -| [Limine](https://github.com/Limine-Bootloader/Limine) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/small-hack/open-slopware/pulls/263#issuecomment-12690237), [2](https://codeberg.org/small-hack/open-slopware/pulls/285#issue-4234860)) | [Hyper](https://github.com/UltraOS/Hyper), [GRUB](https://www.gnu.org/software/grub/) | +| [Limine](https://github.com/Limine-Bootloader/Limine) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/ethical-foss/open-slopware/pulls/263#issuecomment-12690237), [2](https://codeberg.org/ethical-foss/open-slopware/pulls/285#issue-4234860)) | [Hyper](https://github.com/UltraOS/Hyper), [GRUB](https://www.gnu.org/software/grub/) | ## Browsers @@ -629,7 +629,7 @@ This is a section for repos that are similar to this one either because they are | --- |:---:| --- | --- | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-foss](https://codeberg.org/small-hack/ethical-foss),
[ethical-foss-client](https://codeberg.org/small-hack/ethical-foss-client) | ## Clipboard Managers @@ -887,7 +887,7 @@ This is a section for repos that are similar to this one either because they are ## File Tagging ### Music Taggers - + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [MusicBrainz Picard](https://github.com/metabrainz/picard/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/metabrainz/guidelines/blob/master/README.md#ai-use-policy), [2](https://github.com/metabrainz/picard/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/metabrainz/picard/pull/3062#pullrequestreview-3868348318)) | See below | @@ -951,11 +951,11 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | -| [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | | [Dolphin](https://dolphin-emu.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dolphin-emu/dolphin/blob/7b69949cec7afcd1691a9a046d26d5c4a99ce4fc/Contributing.md#genai), [2](https://github.com/dolphin-emu/dolphin/pull/14511), [3](https://github.com/dolphin-emu/dolphin/pull/14632))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dolphin-emu/dolphin/pull/13750)) | [Lazuli](https://github.com/vxpm/lazuli) (only GameCube) | | [DolphiniOS](https://github.com/OatmealDome/dolphin-ios/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/OatmealDome/dolphin-ios/commit/626315d50a53b1ca5e1f6ec52a1d3ce7012411f4)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) +| [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) ### Game engines @@ -966,7 +966,7 @@ This is a section for repos that are similar to this one either because they are | [GZDoom](https://github.com/zdoom/gzdoom) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2)) | [UZDoom](https://github.com/UZDoom/UZDoom), [Chocolate Doom](https://www.chocolate-doom.org/) | | [Jmonkey](https://jmonkeyengine.org/)| [`3.6.1-stable`](https://github.com/jMonkeyEngine/jmonkeyengine/releases/tag/v3.6.1-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/jMonkeyEngine/jmonkeyengine/pull/2640)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/jMonkeyEngine/jmonkeyengine/pull/2640#issuecomment-4039106977) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Luanti](https://luanti.org) | [`5.14.0`](https://github.com/luanti-org/luanti/releases/tag/5.14.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/luanti-org/luanti/pull/16808), [2](https://github.com/luanti-org/luanti/pull/16961), [3](https://github.com/luanti-org/luanti/pull/17095)) | [ClassiCube](https://www.classicube.net/)
[Cubyz](https://github.com/PixelGuys/Cubyz)
[Cubos](https://cubosengine.org) | -| [UPBGE 0.5](https://upbge.org/) | [`0.36.1`](https://github.com/UPBGE/upbge/releases/tag/v0.36.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [UPBGE 0.5](https://upbge.org/) | [`0.36.1`](https://github.com/UPBGE/upbge/releases/tag/v0.36.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!NOTE] > #### Alternative Game Engines @@ -976,17 +976,17 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | [`2.20.1`](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.20.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/5373)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help)| -| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260312043526/https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | +| [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | [`2.20.1`](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.20.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/5373)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| +| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260312043526/https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | | [TinyWiiBackupManager](https://github.com/mq1/TinyWiiBackupManager) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/mq1/TinyWiiBackupManager/commit/3eef34254c18e9ad93e4291999d2abbc6d90b6a0)) | See [this post](https://pixelo789.codeberg.page/blog/2026-05-11-slop-free-wii-library-managing/) | -| [umu](https://github.com/Open-Wine-Components/umu-launcher) | [`1.3.0`](https://github.com/Open-Wine-Components/umu-launcher/releases/tag/1.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Wine-Components/umu-launcher/commit/424ffbf63c64107b87d948a7bbbea64d419bce4d), [2](https://github.com/Open-Wine-Components/umu-launcher/commit/12eb390fee3821fa3260ea856006e39ed85b26ae)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [umu](https://github.com/Open-Wine-Components/umu-launcher) | [`1.3.0`](https://github.com/Open-Wine-Components/umu-launcher/releases/tag/1.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Wine-Components/umu-launcher/commit/424ffbf63c64107b87d948a7bbbea64d419bce4d), [2](https://github.com/Open-Wine-Components/umu-launcher/commit/12eb390fee3821fa3260ea856006e39ed85b26ae)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Mod managers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Modrinth](https://modrinth.com/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/modrinth/code/blob/main/CLAUDE.md), [2](https://github.com/modrinth/code/tree/main/.claude/skills)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | -| [ProtoHax](https://protohax.net/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hax0r31337/ProtoHax/blob/stable/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [Modrinth](https://modrinth.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/modrinth/code/blob/main/CLAUDE.md), [2](https://github.com/modrinth/code/tree/main/.claude/skills)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [ProtoHax](https://protohax.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hax0r31337/ProtoHax/blob/stable/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Input Remapping @@ -1271,7 +1271,7 @@ This is a section for repos that are similar to this one either because they are | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | | [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | -| [TurboWarp](https://turbowarp.org) | [`v1.15.0`](https://github.com/TurboWarp/desktop/releases/tag/v1.15.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/small-hack/open-slopware/pulls/797#issuecomment-15853862), [2](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | +| [TurboWarp](https://turbowarp.org) | [`v1.15.0`](https://github.com/TurboWarp/desktop/releases/tag/v1.15.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/ethical-foss/open-slopware/pulls/797#issuecomment-15853862), [2](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | | [Typescript](https://www.typescriptlang.org/) | [`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/TypeScript/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/TypeScript/commit/c9e7428bb76f0543a3555d0af87777e7db3a41e6), [3](https://github.com/microsoft/TypeScript/commit/ad04bf7488384a5dcdf7d250ccb8e5263021a8ff)) | See below | > [!Note] @@ -1317,7 +1317,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [Qt Base](https://code.qt.io/cgit/qt/qtbase.git) | [`6.11.1`](https://code.qt.io/cgit/qt/qtbase.git/log/?h=6.11.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ad0b53f9920443d856e58f99c441f9dd0536a2e7), [2](https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ac8b2e9b40bf19aa889345f7b617392bef906040)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [Qt Base](https://code.qt.io/cgit/qt/qtbase.git) | [`6.11.1`](https://code.qt.io/cgit/qt/qtbase.git/log/?h=6.11.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ad0b53f9920443d856e58f99c441f9dd0536a2e7), [2](https://code.qt.io/cgit/qt/qtbase.git/commit/?id=ac8b2e9b40bf19aa889345f7b617392bef906040)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Scratch Everywhere](https://github.com/ScratchEverywhere) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ScratchEverywhere/ScratchEverywhere/issues/670)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spdlog](https://github.com/gabime/spdlog) | [`v1.16.0`](https://github.com/gabime/spdlog/releases/tag/v1.16.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gabime/spdlog/commit/b656d1ceecac83e969faaf8b35f8a5edb964b0e0), [2](https://github.com/gabime/spdlog/commit/6b240a892d40f91f30b81cae73964219ab04c55d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gabime/spdlog/pull/3581#event-24197698244)) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp) | [`v3.3.3`](https://github.com/SRombauts/SQLiteCpp/releases/tag/3.3.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SRombauts/SQLiteCpp/commit/9986f570bef00ca1029a2c19e4ce8fcbf206f775), [2](https://github.com/SRombauts/SQLiteCpp/commit/a9d117e0a38dc12fd49d6bcd675c67a7383fa2fa)) | [SQLite's first-party interface](https://sqlite.org/cintro.html) | @@ -2075,9 +2075,9 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Zig]: https://ziglang.org/ -[Vibecoded]: https://codeberg.org/small-hack/open-slopware#vibecoded -[AI Functionality]: https://codeberg.org/small-hack/open-slopware#ai-functionality -[Permissive AI policy]: https://codeberg.org/small-hack/open-slopware#permissive-ai-policy -[AI Code Reviews]: https://codeberg.org/small-hack/open-slopware#ai-code-reviews -[Sponsored by AI]: https://codeberg.org/small-hack/open-slopware#sponsored-by-ai -[Request For Help]: https://codeberg.org/small-hack/open-slopware#request-for-help +[Vibecoded]: https://codeberg.org/ethical-foss/open-slopware#vibecoded +[AI Functionality]: https://codeberg.org/ethical-foss/open-slopware#ai-functionality +[Permissive AI policy]: https://codeberg.org/ethical-foss/open-slopware#permissive-ai-policy +[AI Code Reviews]: https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews +[Sponsored by AI]: https://codeberg.org/ethical-foss/open-slopware#sponsored-by-ai +[Request For Help]: https://codeberg.org/ethical-foss/open-slopware#request-for-help diff --git a/STYLE.md b/STYLE.md index 05cac99..1cecde7 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,29 +16,29 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | | [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | **Name column**: should be the name of software linked to their git repo (or other software forge if they don't use git). **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): -- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) -- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware##vibecoded) (keep in mind this is more severe than permissive AI policy) -- [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) -- [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) -- [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) -- [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) -- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) -- [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) -- [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#condones-llm-ingestion) +- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) +- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware##vibecoded) (keep in mind this is more severe than permissive AI policy) +- [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/ethical-foss/open-slopware#permissive-ai-policy) +- [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) +- [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) +- [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) +- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/ethical-foss/open-slopware#sponsored-by-ai) +- [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) +- [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) > [!note] > The above order is the official order you should add your tags in. **Don't know what the alternative or last known good version is?** Use this badge in its place: -- [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) +- [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/ethical-foss/open-slopware#request-for-help) Here are all the badges for easy copying and pasting: @@ -90,7 +90,7 @@ Please do not submit GitHub screenshots of "A user you have blocked has previous Screenshots are allowed but must be a last resort for something that cannot be linked. We'd prefer archive links in all other instances. -The above "Alternative(s)" column is for software that has a 1:1 parity or is a very similar alternative specific to the piece of software at hand. If the category or section is filled with the same alternative list (for instance, how it is in the [terminal emulators](https://codeberg.org/small-hack/open-slopware#terminal-emulators) section), you can remove the "Alternatives" column. Instead, you can add a note below the table with all the alternatives, like this: +The above "Alternative(s)" column is for software that has a 1:1 parity or is a very similar alternative specific to the piece of software at hand. If the category or section is filled with the same alternative list (for instance, how it is in the [terminal emulators](https://codeberg.org/ethical-foss/open-slopware#terminal-emulators) section), you can remove the "Alternatives" column. Instead, you can add a note below the table with all the alternatives, like this: > [!NOTE] > ### Category Alternatives From d75a02e42cea325efabe0092dfede4f737ef4126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Thu, 11 Jun 2026 11:28:08 +0200 Subject: [PATCH 261/413] Add Appgrid (#946) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/946 Reviewed-by: Admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 702a900..462fab8 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [API Documentation](#api-documentation) * [App Catalogs and Downloaders](#app-catalogs-and-downloaders) * [App Launchers](#app-launchers) + * [Desktop Launchers](#desktop-launchers) * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) @@ -420,6 +421,13 @@ This is a section for repos that are similar to this one either because they are | [GitHub Store](https://github-store.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/OpenHub-Store/GitHub-Store/blob/2c7026337d6e8df6d87962a4bbe2366fcc336296/AGENTS.md), [2](https://github.com/OpenHub-Store/GitHub-Store/commit/49cd2c1378915af0435ccf15ab6158d3b330f278), [3](https://github.com/OpenHub-Store/GitHub-Store/commit/4c3af650d977d8aaac62a59d8db273b05bc81a7d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/OpenHub-Store/GitHub-Store/pull/107), [2](https://github.com/OpenHub-Store/GitHub-Store/pull/115), [3](https://github.com/OpenHub-Store/GitHub-Store/pull/632)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## App Launchers + +### Desktop Launchers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [AppGrid](https://github.com/xarbit/plasma6-applet-appgrid) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xarbit/plasma6-applet-appgrid#credits)) | KDE's built-in launchers
([kickoff](https://invent.kde.org/plasma/plasma-desktop/-/tree/master/applets/kickoff), [krunner](https://invent.kde.org/frameworks/krunner)…) + ### Mobile Launchers | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 9ede60a813801780d952da194f4d7a58257843f7 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Thu, 11 Jun 2026 14:50:20 +0200 Subject: [PATCH 262/413] small style fixes (#950) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/950 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 462fab8..253471a 100644 --- a/README.md +++ b/README.md @@ -1057,7 +1057,7 @@ This is a section for repos that are similar to this one either because they are | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| -| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | +| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] > #### Messaging Client Alternatives by protocols @@ -1804,7 +1804,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res |---|:---:|---| | [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | | [i3](https://i3wm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/i3/i3?tab=contributing-ov-file#ai-contribution-policy), [2](https://github.com/i3/i3/issues/6546)) | -| [IceWM](https://ice-wm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) ([1](https://github.com/ice-wm/icewm/issues/203#issuecomment-3318901550) | +| [IceWM](https://ice-wm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) ([1](https://github.com/ice-wm/icewm/issues/203#issuecomment-3318901550)) | | [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | | [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | From a8d75f8abab6ba86f72ae6cf1cb4ae696d55d165 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 14:55:49 +0200 Subject: [PATCH 263/413] attempt to change the PR template to make it work better --- .forgejo/pull_request_template.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index 35ad390..93d3bc4 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -2,18 +2,22 @@ name: pull-request about: Submit a PR ref: 'main' body: + - type: markdown + id: description + attributes: + visible: [content] + label: Description of Changes + description: Include a description of what you're changing and why. Remember, anything here, will also show up in the commit when we squash and merge this PR. - type: checkboxes id: terms attributes: - label: Code of Conduct + label: Docs have been read + visible: [form] description: By submitting this PR, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - visible: [form] - label: I have also read the [Contributing Guidelines](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md) required: true - visible: [form] - label: I have also read the [Style Guide](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/STYLE.md) required: true - visible: [form] From 6a3ebd52271060f3bd327bab8bcd4fe58e0de597 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 14:58:54 +0200 Subject: [PATCH 264/413] add basic value for description --- .forgejo/pull_request_template.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index 93d3bc4..bca553c 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -8,6 +8,7 @@ body: visible: [content] label: Description of Changes description: Include a description of what you're changing and why. Remember, anything here, will also show up in the commit when we squash and merge this PR. + values: This PR (Updates/Adds/Removes/Improves) (Name of Section / Project) As (Tainted/An Alternative) - type: checkboxes id: terms attributes: From 204200a22c069d4e09b0b3a5d1d8c7c8465d6b99 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 14:59:30 +0200 Subject: [PATCH 265/413] fix values to be value --- .forgejo/pull_request_template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index bca553c..01cc8c1 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -8,7 +8,7 @@ body: visible: [content] label: Description of Changes description: Include a description of what you're changing and why. Remember, anything here, will also show up in the commit when we squash and merge this PR. - values: This PR (Updates/Adds/Removes/Improves) (Name of Section / Project) As (Tainted/An Alternative) + value: This PR (Updates/Adds/Removes/Improves) (Name of Section / Project) As (Tainted/An Alternative) - type: checkboxes id: terms attributes: From 51ed5415c94f2d0b43168a2372cd60f3490d3bbb Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 15:00:34 +0200 Subject: [PATCH 266/413] change description to be input and not markdown --- .forgejo/pull_request_template.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index 01cc8c1..74866fa 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -2,13 +2,14 @@ name: pull-request about: Submit a PR ref: 'main' body: - - type: markdown + - type: input id: description attributes: visible: [content] label: Description of Changes description: Include a description of what you're changing and why. Remember, anything here, will also show up in the commit when we squash and merge this PR. - value: This PR (Updates/Adds/Removes/Improves) (Name of Section / Project) As (Tainted/An Alternative) + placeholder: This PR (Updates/Adds/Removes/Improves) (Name of Section / Project) As (Tainted/An Alternative) + - type: checkboxes id: terms attributes: From 44d34d67304b5d7c66513a6b74a766519bc9ee30 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 15:02:47 +0200 Subject: [PATCH 267/413] change visibilty of checkboxes to only be in form --- .forgejo/pull_request_template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index 74866fa..554a2e1 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -12,9 +12,9 @@ body: - type: checkboxes id: terms + visible: [form] attributes: label: Docs have been read - visible: [form] description: By submitting this PR, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) options: - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) From e632d1282472ff4aaef510d17b2009ad0dcd3cef Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 16:40:08 +0200 Subject: [PATCH 268/413] Add cobra as tainted due to AI Sponsorship Closes #55 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 253471a..0d10820 100644 --- a/README.md +++ b/README.md @@ -1350,6 +1350,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | +| [cobra](https://github.com/spf13/cobra) | ![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | ![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | From 18a32121baf324ed8ef33d67a365ab27b1b980d9 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Thu, 11 Jun 2026 16:41:23 +0200 Subject: [PATCH 269/413] fix missing brackets for cobra entry --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d10820..2d6a99e 100644 --- a/README.md +++ b/README.md @@ -1350,7 +1350,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [cobra](https://github.com/spf13/cobra) | ![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | ![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [cobra](https://github.com/spf13/cobra) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | From 0f93914b120b435362d937e1236e1c5de2119ec0 Mon Sep 17 00:00:00 2001 From: jsta Date: Sat, 13 Jun 2026 11:17:37 +0200 Subject: [PATCH 270/413] fix broken tldr alternative link (#958) ### Description of Changes This PR fixes a broken link to the ethical-tldr project Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/958 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d6a99e..f8be408 100644 --- a/README.md +++ b/README.md @@ -637,7 +637,7 @@ This is a section for repos that are similar to this one either because they are | --- |:---:| --- | --- | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-foss](https://codeberg.org/small-hack/ethical-foss),
[ethical-foss-client](https://codeberg.org/small-hack/ethical-foss-client) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | ## Clipboard Managers From fd5bcfc2d1837062ec9bd9208e7d7af96a56e686 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 14 Jun 2026 14:10:39 +0200 Subject: [PATCH 271/413] add governance file (#944) This file explains who does what, and how the repo as a whole operates. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/944 --- GOVERNANCE.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 GOVERNANCE.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..ceca649 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,44 @@ +# Who does What + +This repo wouldn't exist without the hundred or so people who contribute to it. We value everyone's contributions, but for certain tasks, we have a structure on who can do what. + +So it is clear: No one makes money from this repo. This is not anyone's full time job. Everyone is a volunteer working in their free time. + +## Owners + +This is mainly @vleermuis-admin which is an account that is run by multiple people who intitially forked this repo. They have the ability to make new rules or tags and updates to the code of conduct. They have full approval and merge rights. If they've approved any PR, Team Human Made can pop in and merge that PR at their leisure. If you're asking for a new rule, tag, or major change to the repo in some way, you need to tag this account. This is also the account you should tag should you need moderation help in any capacity, as they have the authority to ban people from the repo, as well as lock a conversation if it gets too heated or has the potential to drive a rude atmosphere. + +If future owners appear, the tag to get them involved would be @ethical-foss/owners. + +## Team Human Made + +This is a special team of collaborators that have been vetted over time via their kind attitudes and continued contributions to the repo. When they show up in the repo, they will have a "member" tag on all their posts to distinguish them. They have the ability to speak on behalf of the repo when it comes to already established rules, and are frequently tagged on matters of discussion. They can also approve PRs, and it carries weight, but does not count towards the official approval required to allow a merge (something that may change in the near future). They can also merge anything that was already approved by the Owners. + +If they ask you to update something, or make a suggestion to improve something, please engage kindly. + +The entire team can be tagged with @ethical-foss/team-human-made. Please prefer tagging Team Human Made instead of a specific member, as to not weigh down one particular collaborator as, again, they all work on this in their free time. + +### How to Become a Member of Team Human Made + +When positions on Team Human Made are available, we'll create a Issue asking for people to apply and/or nominating specific people. You should not feel pressure to accept a position if you do not want it. We are still happy to have you as a contributor. + +We vet collaborators over a period of a couple of months of continued contributions. Provided you: + +- kind and take feedback well +- have participated in either PRs or Issues semi-regularly +- have no Code of Conduct strikes (warnings can be OK depending on the warning, how you reacted, and how long it has been since your warning) + - do not have a visible history of behavior that would violate our code of conduct (even outside of this repo) + +There is no time requirement for how much you need to do in the repo once you're made a collaborator. Everyone should operate to the best of their ability. If you need time off for personal life, don't sweat it. + +## Contributors + +These are people who contribute to the repo. They have no special access. Anyone can be a contributor. They cannot approve or merge PRs, and they are not allowed to speak on behalf of the repo. If they would like to give an opinion on a discussion, they're free to do so, but if answering a question, they should state that they're not official maintainers, then tag in @ethical-foss/owners and/or @ethical-foss/team-human-made for an official response. + +# Vacations + +This repo gets put into "vacation mode" periodically through out the year. We do this because we need time away from the repo, and during that time, we can't gaurentee any moderation, so for safety, no commenting on the repo can be allowed during that time. + +During vacation mode, we will disable Issues and Pull Requests and will not actively work on the repo in any way. The repo will still be public. There will be a notice at the top of README explaining that we're in vacation mode and when we will be back. When the vacation is over, the Issues and Pull Requests will be re-enabled. + +Vacations typically last anywhere from 3 days to 2 weeks depending on the owner's schedule, and are announced in advance. We reserve the right to put the repo into vacation mode if we are unwell and unable to tend to the repo. \ No newline at end of file From 6e48f797b487055ab0edf3474c1856c417edbee5 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 14 Jun 2026 14:35:55 +0200 Subject: [PATCH 272/413] update code of conduct - note that any bigotry is a disqualification from participating here - note, again, that we delete comments, PRs, and Issues that encourage inappropriate atmosphere - note that we don't debate strikes or bans --- CODE_OF_CONDUCT.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ea9c74e..b00b0ed 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -12,6 +12,8 @@ - No classism. - No fascism. +When it comes to bigotry, if you're found to have been broken one of the "No Bigotry" rules, you may not participate here. Your software is also disqualified from being listed as an alternative or suggested for a "More Kind Eyes" Issue. + ## On handling bigotry or unsavory content for the purposes of the open-slopware list It is still worth bringing up if a core repo maintainer has a history of bigotry such as racism, transphobia, etc, if it's in the context of adding an alternative software or something to that nature, but still just be objective, e.g. "We should not add a link to x because it is maintained by a transphobic person, see evidence here" and just leave it at that. We'll take that feedback and reject a pull request or ask someone to modify it if it's relevant for community safety (like ensuring people avoid software maintained by discriminatory people for instance). @@ -38,6 +40,8 @@ Failure to do so will first result in a one time warning and future offenses wil If you see someone behaving in appropriately, do not feed their behavior. Tag @vleermuis-admin instead. They will handle it. +In some cases, we may delete comments, issues, or PRs if they're encouraging an innappropriate atmosphere e.g. a popular maintainer has come in with an accusatory tone and is actively advertising their followers to come and spam the repo. + ## Strike system We're going to do a 2 strike rule here with an optional warning. You are out on your second strike. We are not doing three strikes. @@ -51,6 +55,8 @@ We're going to do a 2 strike rule here with an optional warning. You are out on > [WARNING] > If you are caught being excessively rude here, especially if you're displaying a form of severe bigotry or bringing an inappropriate tone, we reserve the right to ban you from the repo with no strikes and if necessary, we will report you to codeberg.org. +We do not allow people to debate strikes or bans either for themselves or on behalf of others. + # Be kind or be gone - Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on repos, forums, social media, reddit, messaging apps, etc, especially not in a rude way, to maintainers of other repos to harass them and threaten them, especially not with this list. Doing so will result in a ban. From 9a782041505d45eeb32f139f2c3d8bfef8e3ec97 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Sun, 14 Jun 2026 15:08:29 +0200 Subject: [PATCH 273/413] Add pharo with GNU Smalltalk as alternative (#965) ### Description of Changes This PR adds Pharo as tainted with Cuis and GNU Smalltalk as alternative. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/965 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f8be408..6f42f77 100644 --- a/README.md +++ b/README.md @@ -1270,6 +1270,7 @@ This is a section for repos that are similar to this one either because they are | [Numbat](https://numbat.dev/) | [`18f81b1`](https://github.com/sharkdp/numbat/commit/18f81b19dc8698b29048ab0166a3a87dcadd34b7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/numbat/blob/88b2e81a35d06942101d74e9b368081f02555f4f/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [OCaml](https://ocaml.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ocaml/ocaml/blob/trunk/AI.md), [2](https://github.com/ocaml/ocaml/pull/14702#issue-4186687842)) | [SML](https://smlfamily.github.io/) | | [Odin](https://odin-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/odin-lang/Odin/commit/1a7f78b66578492103607628d2cd4a2de70b29ec), [2](https://github.com/odin-lang/Odin/commit/bd6148dd6b77920cf64fea8804b205e8257e8a66)) | See below | +| [Pharo](https://pharo.org/) | [`v11.0.0`](https://github.com/pharo-project/pharo/releases/tag/v11.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pharo-project/pharo/commit/223d1e981837e9fe7b48adbb6d36995de36c5db5), [2](https://github.com/pharo-project/pharo/commit/8705e7783dae05f6438994a6db12a7393db594c1), [3](https://github.com/pharo-project/pharo/commit/6f44c8b9a0c6d7635bed58a89ea7dedb23339587)) | [Cuis Smalltalk](https://cuis.st/)
[GNU Smalltalk](https://www.gnu.org/software/smalltalk/) | | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | From f305245c2d3bff417c7e80014c1875e630b5b0b0 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 14 Jun 2026 15:30:38 +0200 Subject: [PATCH 274/413] note that EVi is a fork of vim, gram is a fork of zed, and fix vim spelling --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6f42f77..58610ad 100644 --- a/README.md +++ b/README.md @@ -1688,15 +1688,15 @@ This section is strictly for software implementing a core set of UNIX-like utili | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | -| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | +| [Vim](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | | [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://code.visualstudio.com/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | | [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | > [!NOTE] > ### Alternative Text and Code Editors -> * [EVi] (TUI) +> * [EVi] (TUI) - fork of vim > * [GNU Emacs] (TUI, GUI) -> * [Gram] (GUI) +> * [Gram] (GUI) - fork of zed > * [Hemlock] (TUI, GUI) > * [Lapce] (GUI) From 0031cfed1268cd85d15e1e546fb791ed505d2e29 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Sun, 14 Jun 2026 15:53:19 +0200 Subject: [PATCH 275/413] add BitTorrent clients category, BiglyBT, qBittorrent, Transmission and alternatives (#964) ### Description of Changes alternatives: [Deluge](https://github.com/deluge-torrent/deluge) and [Fragments](https://gitlab.gnome.org/World/Fragments) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/964 Reviewed-by: Admin --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index 58610ad..2c9ce8b 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Standalone Digital Mixer](#standalone-digital-mixer) * [Backups](#backups) * [Benchmarking](#benchmarking) + * [BitTorrent Clients](#bittorrent-clients) + * [BitTorrent Clients Alternatives](#bittorrent-clients-alternatives) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) @@ -497,6 +499,19 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Hyperfine](https://github.com/sharkdp/hyperfine) | [`v1.19.0`](https://github.com/sharkdp/hyperfine/releases/tag/v1.19.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/sharkdp/hyperfine/blob/327d5f4d9107141929f67f062bf9ef59f98b7399/README.md#sponsors)) | [poop](https://github.com/andrewrk/poop) | +## BitTorrent Clients + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [BiglyBT](https://github.com/BiglySoftware/BiglyBT) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BiglySoftware/BiglyBT/pull/3701)) | +| [qBittorrent](https://github.com/qbittorrent/qBittorrent) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/qbittorrent/qBittorrent/commit/db72e0a04b6068410a51c412d5491bbd453c098f), [2](https://github.com/qbittorrent/qBittorrent/pull/24042/commits/3f6768869bd30b84213891bf3c31af5b920be3f4))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/qbittorrent/qBittorrent/pull/24135#pullrequestreview-4214704239), [2](https://github.com/qbittorrent/qBittorrent/pull/24135#pullrequestreview-4215374268)) | +| [Transmission](https://github.com/transmission/transmission) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/transmission/transmission/pull/8910#pullrequestreview-4487711247), [2](https://github.com/transmission/transmission/pull/8060#pullrequestreview-4290261914), [3](https://github.com/transmission/transmission/pull/8830#pullrequestreview-4375949789))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/transmission/transmission/pull/8910), [2](https://github.com/transmission/transmission/issues/8494#issue-3940283505)) | + +> [!NOTE] +> #### BitTorrent Clients Alternatives +> * [Deluge](https://github.com/deluge-torrent/deluge) +> * [Fragments](https://gitlab.gnome.org/World/Fragments) + ## Blogging Software ### Content Management Systems From 844aa486829c5b738287f340bd0e300a414f37b5 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Sun, 14 Jun 2026 17:34:18 +0200 Subject: [PATCH 276/413] Add Strawberry Music Player, Clementine and Fooyin (#829) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/829 Reviewed-by: Admin --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 2c9ce8b..87d15c6 100644 --- a/README.md +++ b/README.md @@ -463,8 +463,11 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| +| [Clementine](https://www.clementine-player.org/) | [`1fc7fe0`](https://github.com/clementine-player/Clementine/commit/1fc7fe0e1e828a58f6a961aa4f75a7fbd7eb5786) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/clementine-player/Clementine/pull/7438), [2](https://github.com/clementine-player/Clementine/issues/7222#issuecomment-4477854268))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/clementine-player/Clementine/pull/7392#pullrequestreview-2811610522)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Fooyin](https://fooyin.org/) | [`e70aeee`](https://github.com/fooyin/fooyin/commit/e70aeee49aa8fad92fac3c726043f2c6075273c2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fooyin/fooyin/issues/578#issue-3206943314))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fooyin/fooyin/pull/1007#pullrequestreview-4065469376), [2](https://github.com/fooyin/fooyin/pull/579#pullrequestreview-3580786348)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Strawberry Music Player](https://strawberrymusicplayer.org) | [`39f9128`](https://github.com/strawberrymusicplayer/strawberry/commit/39f9128ecf30cc164c36a064f16e40d7e4f57d84)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/strawberrymusicplayer/strawberry/commit/f45ce7f3dc5213776b52be6c70baedc543d37f14), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1895), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#issue-3763263421))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/strawberrymusicplayer/strawberry/pull/1835#pullrequestreview-3624566956), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1913#pullrequestreview-3624360787), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#pullrequestreview-3624343989)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Notation Software From b2b93dbad0b714f42df9cabd61ae34aae757417d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Sun, 14 Jun 2026 17:47:31 +0200 Subject: [PATCH 277/413] Add delphitools (#947) i have also taken the liberty to alphabetized the Image Manipulation subsection Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/947 Reviewed-by: Admin --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 87d15c6..e2c3820 100644 --- a/README.md +++ b/README.md @@ -744,11 +744,12 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | +| [delphitools](https://github.com/1612elphi/delphitools) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/1612elphi/delphitools/commit/0dc9b6aa6d3672bc55c55c2e3b905317c1c8438c), [2](https://github.com/1612elphi/delphitools/commit/08997b0806abe9912ed8cf71148ce4f20e9e171f), [3](https://rmv.fyi/notes/i-hope-you-don-t-use-generative-ai)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) +| [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] | [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | +| [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | | [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | -| [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] ### Photography From 6ceed29c4bf4ff016176914b27e2df4c679c05ae Mon Sep 17 00:00:00 2001 From: melimosa Date: Sun, 14 Jun 2026 17:48:54 +0200 Subject: [PATCH 278/413] Add 3 XMPP Clients, 1 XMPP Server (#959) ### Description of Changes Add 3 XMPP Clients, 1 XMPP Server Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/959 Reviewed-by: Admin --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index e2c3820..e0690bc 100644 --- a/README.md +++ b/README.md @@ -1064,17 +1064,20 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | +| [aparté](https://github.com/paulfariello/aparte) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/paulfariello/aparte/blob/1f384456294c539286183f059eb206d2705cb4a7/AGENTS.md), [2](https://github.com/paulfariello/aparte/commit/1f384456294c539286183f059eb206d2705cb4a7), [3](https://github.com/paulfariello/aparte/commit/53503e3b5a22c28b53cdaf7079e93fa28f7215bf)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) | [Element Web](https://github.com/element-hq/element-web/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-web/commit/68070b2e9788f0e5396f4c9d532b05e146e6ad60)) | [Element X Android](https://github.com/element-hq/element-x-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-android/blob/develop/AGENTS.md)) | [Element X iOS](https://github.com/element-hq/element-x-ios/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-ios/blob/develop/AGENTS.md)) | [Fluxer](https://fluxer.app/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260213205023/https://blog.fluxer.app/how-i-built-fluxer-a-discord-like-chat-app/), [2](https://github.com/fluxerapp/fluxer/blob/refactor/CONTRIBUTING.md#4-understand-the-code-you-submit), [3](https://github.com/fluxerapp/fluxer/issues/435)) | +| [Fluux Messenger](https://fluux.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/processone/fluux-messenger/blob/bfa4d9aa74e9600d41f4e690c5402702100462ea/.claude/skills/perf-stress-ui/SKILL.md)) | | [gomuks](https://github.com/gomuks/gomuks) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gomuks/gomuks/commit/5d6c1ba57cc4617ef1218805b1cfd0d1f7613ed0)) | [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| | [Nerimity](https://github.com/Nerimity/nerimity-web) | [`9077876`](https://github.com/Nerimity/nerimity-web/commit/90778766e5947540f5fcbe5075247c8990507f40) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-web/pull/638), [2](https://github.com/Nerimity/nerimity-web/pull/621), [3](https://github.com/Nerimity/nerimity-web/pull/605))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | +| [Spark](https://github.com/igniterealtime/Spark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/igniterealtime/Spark/blob/d977a219bd13553aac33cdef2861dfeb5b93acb2/AGENTS.md), [2](https://github.com/igniterealtime/Spark/commit/364d1a837f2e84119bc244f4de7040548c93fcc3), [3](https://github.com/igniterealtime/Spark/commit/a0f28184ad4b695f3)) | | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | @@ -1096,6 +1099,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | | [Nerimity](https://github.com/Nerimity/nerimity-server) | [`661d069`](https://github.com/Nerimity/nerimity-server/commit/661d0693474180cee8d167c1201015c278c7a360) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-server/pull/40), [2](https://github.com/Nerimity/nerimity-server/pull/38), [3](https://github.com/Nerimity/nerimity-server/pull/32))| +| [OpenFire](https://igniterealtime.org/projects/openfire/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/igniterealtime/Openfire/commit/9045deaf7), [2](https://github.com/igniterealtime/Openfire/commit/da9b79727), [3](https://github.com/igniterealtime/Openfire/commit/b752bc2ca))| | [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | > [!Note] From b915a1c6e129792080ec50772116107fb3723e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 14 Jun 2026 18:32:12 +0200 Subject: [PATCH 279/413] document rsync claude usages, add unison as alternative (#906) unison is explicitely against llm contribution. https://github.com/bcpierce00/unison/blob/master/CONTRIBUTING.md#llm-usage Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/906 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0690bc..48f3aa2 100644 --- a/README.md +++ b/README.md @@ -932,7 +932,7 @@ This is a section for repos that are similar to this one either because they are | [croc](https://github.com/schollz/croc) | [`7331264`](https://github.com/schollz/croc/commit/7331264a050bd29a6905ba09e3bc4ce2c0722e66) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/schollz/croc/pull/1110), [2](https://github.com/schollz/croc/pull/1015), [3](https://github.com/schollz/croc/pull/993))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/schollz/croc/pull/1053), [2](https://github.com/schollz/croc/pull/1099)) | [Magic-Wormhole](https://github.com/magic-wormhole/magic-wormhole) | | [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | | [rclone](https://rclone.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rclone/rclone/pull/8930), [2](https://github.com/rclone/rclone/commit/18899a58f3b74fadd9da9bf8433a18a52ffe87e5), [3](https://github.com/rclone/rclone/commit/ffdd043b957aad7808f82910f737bab3de2f5b10))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rclone/rclone/pull/9273), [2](https://github.com/rclone/rclone/pull/9305), [3](https://github.com/rclone/rclone/pull/9056)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/),
[gokrazy/rsync](https://github.com/gokrazy/rsync) | +| [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/RsyncProject/rsync/pull/903)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/),
[gokrazy/rsync](https://github.com/gokrazy/rsync),
[bcpierce00/unison](https://github.com/bcpierce00/unison) | ## Filesystem Navigation From c0bb2b639290976e317ff043f7c908cddce7596c Mon Sep 17 00:00:00 2001 From: yuli Date: Sun, 14 Jun 2026 22:00:32 +0200 Subject: [PATCH 280/413] add Delve (#923) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/923 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48f3aa2..0e5da1a 100644 --- a/README.md +++ b/README.md @@ -1376,6 +1376,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | --- |:---:| --- | --- | | [cobra](https://github.com/spf13/cobra) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Delve](https://github.com/go-delve/delve) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-delve/delve/blob/master/Documentation/AI/AI_POLICY.md), [2](https://github.com/go-delve/delve/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | | [gogpu](https://github.com/gogpu/gogpu) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://dev.to/kolkov/from-vibe-coding-to-agentic-engineering-what-karpathy-got-right-and-whats-missing-62e), [2](https://github.com/gogpu/gogpu/pull/166)) | [go-gl](https://github.com/go-gl/gl), [webgpu](https://github.com/cogentcore/webgpu) | From c42d7ccbd0c228cd5a79ff422da920f762d446bd Mon Sep 17 00:00:00 2001 From: ccf Date: Sun, 14 Jun 2026 22:07:08 +0200 Subject: [PATCH 281/413] Add vis and deadpixi/sam as Alternative Editors (#955) Note: sam has been archived, but could still be something interesting to fork. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/955 Reviewed-by: Admin --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0e5da1a..48a6480 100644 --- a/README.md +++ b/README.md @@ -1718,11 +1718,13 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!NOTE] > ### Alternative Text and Code Editors +> * [deadpixi/sam] (GUI): Last commit was on 2020-07-14 > * [EVi] (TUI) - fork of vim > * [GNU Emacs] (TUI, GUI) > * [Gram] (GUI) - fork of zed > * [Hemlock] (TUI, GUI) > * [Lapce] (GUI) +> * [vis] (TUI) ### Note Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -2054,6 +2056,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [COSMIC Terminal]: https://github.com/pop-os/cosmic-term [cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ +[deadpixi/sam]: https://github.com/deadpixi/sam [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal [Epiphany]: https://apps.gnome.org/Epiphany [Eqonomize]: https://eqonomize.github.io/ @@ -2100,6 +2103,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [SMPlayer]: https://www.smplayer.info/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden [virt-manager]: https://virt-manager.org +[vis]: https://github.com/martanne/vis [wafrn-rn]: https://codeberg.org/wafrn/wafrn-rn [Waterfox]: https://www.waterfox.com [WriteFreely]: https://writefreely.org/ From 842d13550e4fcdfd47ea3176801b0fb9d95e5720 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sun, 14 Jun 2026 22:25:25 +0200 Subject: [PATCH 282/413] Fix some grammar and formatting --- GOVERNANCE.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index ceca649..f053964 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -2,7 +2,7 @@ This repo wouldn't exist without the hundred or so people who contribute to it. We value everyone's contributions, but for certain tasks, we have a structure on who can do what. -So it is clear: No one makes money from this repo. This is not anyone's full time job. Everyone is a volunteer working in their free time. +So it is clear: This is not anyone's full time job. Everyone is an unpaid volunteer working in their free time, including the owners. ## Owners @@ -20,14 +20,14 @@ The entire team can be tagged with @ethical-foss/team-human-made. Please prefer ### How to Become a Member of Team Human Made -When positions on Team Human Made are available, we'll create a Issue asking for people to apply and/or nominating specific people. You should not feel pressure to accept a position if you do not want it. We are still happy to have you as a contributor. +When positions on Team Human Made are available, we'll create an Issue asking for people to apply and/or nominating specific people. You should not feel pressure to accept a position if you do not want it. We are still happy to have you as a contributor. We vet collaborators over a period of a couple of months of continued contributions. Provided you: -- kind and take feedback well +- are kind and take feedback well - have participated in either PRs or Issues semi-regularly - have no Code of Conduct strikes (warnings can be OK depending on the warning, how you reacted, and how long it has been since your warning) - - do not have a visible history of behavior that would violate our code of conduct (even outside of this repo) + - do not have a visible history of behavior that would violate our Code of Conduct (even outside of this repo) There is no time requirement for how much you need to do in the repo once you're made a collaborator. Everyone should operate to the best of their ability. If you need time off for personal life, don't sweat it. @@ -41,4 +41,6 @@ This repo gets put into "vacation mode" periodically through out the year. We do During vacation mode, we will disable Issues and Pull Requests and will not actively work on the repo in any way. The repo will still be public. There will be a notice at the top of README explaining that we're in vacation mode and when we will be back. When the vacation is over, the Issues and Pull Requests will be re-enabled. -Vacations typically last anywhere from 3 days to 2 weeks depending on the owner's schedule, and are announced in advance. We reserve the right to put the repo into vacation mode if we are unwell and unable to tend to the repo. \ No newline at end of file +Vacations typically last anywhere from 3 days to 2 weeks depending on the owner's schedule, and are announced in advance. + +The owners reserve the right to put the repo into vacation mode if they are unwell and unable to tend to the repo. \ No newline at end of file From bac3b685be75b9c3fa1bf7798ae9e1d2e1fd2659 Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 14 Jun 2026 22:34:04 +0200 Subject: [PATCH 283/413] add SimpleX, Session and Threema messengers (#816) Note: the "Messaging Clients" section becomes too big and the "Messaging Client Alternatives by protocols" subsection isn't really flexible as it only covers decentralized protocols. That doesn't allow me to add something like Signal/cwtch/briar as an alternative. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/816 Reviewed-by: Admin --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 48a6480..511c145 100644 --- a/README.md +++ b/README.md @@ -1076,10 +1076,13 @@ This is a section for repos that are similar to this one either because they are | [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| | [Nerimity](https://github.com/Nerimity/nerimity-web) | [`9077876`](https://github.com/Nerimity/nerimity-web/commit/90778766e5947540f5fcbe5075247c8990507f40) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-web/pull/638), [2](https://github.com/Nerimity/nerimity-web/pull/621), [3](https://github.com/Nerimity/nerimity-web/pull/605))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | +| [Session](https://getsession.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/session-foundation/session-appium/commit/3efbbeb1b1f5b7a47cbdb6ffc0891837ef88a5cf), [2](https://github.com/session-foundation/session-router/commit/9670e23d885714bc858ac6bd40092bcfb746bee3), [3](https://github.com/session-foundation/session-appium/commit/57b0fc8a1c0e4f4b1536ff5543782494255ef891))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/session-foundation/session-desktop/pull/1934), [2](https://github.com/session-foundation/websites/pull/81), [3](https://github.com/session-foundation/session-appium/pull/105)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | | [Spark](https://github.com/igniterealtime/Spark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/igniterealtime/Spark/blob/d977a219bd13553aac33cdef2861dfeb5b93acb2/AGENTS.md), [2](https://github.com/igniterealtime/Spark/commit/364d1a837f2e84119bc244f4de7040548c93fcc3), [3](https://github.com/igniterealtime/Spark/commit/a0f28184ad4b695f3)) | +| [SimpleX](https://simplex.chat/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/simplex-chat/simplex-chat/blob/d6c9c0ee47ede2df319eb131df5a5362a680f089/apps/simplex-support-bot/plans/20260207-support-bot.md#53-grok-integration), [2](https://github.com/simplex-chat/simplex-chat/commit/5a3dfdd2b440382868cf70e56057d18848c51e4c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/simplex-chat/simplex-chat/blob/12fbf61f326e15ee643c72b3202bbcd6a758a07f/docs/CONTRIBUTING.md#follow-project-structure-coding-style-and-approaches), [2](https://github.com/simplex-chat/simplex-chat/commit/b0e6a7bfc12f0e08a84f939981fb731c0967e0e7), [3](https://github.com/simplex-chat/simplex-chat/commit/427ce1b3ff7d226d227c0b215304779b28a4ea5f)) | | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| -| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | +| [Threema](https://threema.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/threema-ch/threema-desktop/blob/stable/AGENTS.md), [2](https://github.com/threema-ch/sentry-cocoa/blob/c8998045e43300510de1c1cf4860b6bd3c2de990/AGENTS.md?plain=1#L514)) | +| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] > #### Messaging Client Alternatives by protocols From 9a732d413c65cab6a6c8f7eedcb8659c3360292c Mon Sep 17 00:00:00 2001 From: FlemyJY Date: Sun, 14 Jun 2026 22:34:12 +0200 Subject: [PATCH 284/413] Add podman, podman-desktop, and crun (#878) Co-Authored-By: Pixelo789 Co-authored-by: FlemyJY Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/878 Reviewed-by: Admin --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 511c145..fc1f57e 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Image Manipulation](#image-manipulation) * [Photography](#photography) * [Video](#video) + * [Containers](#containers) * [Continuous Integration](#continuous-integration) * [Cryptography](#cryptography) * [Disk Encryption](#disk-encryption) @@ -775,6 +776,14 @@ This is a section for repos that are similar to this one either because they are | [PipePipe](https://pipepipe.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/InfinityLoop1308/PipePipeClient/blob/dev/CLAUDE.md)) | [LibreTube] | | [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | +## Containers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Crun](https://github.com/containers/crun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/containers/crun/commit/88f5512619a540c385b43d33fa5480b60ea5aae5)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Podman](https://podman.io) | [`v5.4.2`](https://github.com/containers/podman/releases/tag/v5.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/containers/podman/commit/8d7e200f882970e3d225d44686bdd924d3f260ac), [2](https://github.com/containers/podman/pull/27781), [3](https://github.com/containers/podman/pull/27933))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/containers/podman/pull/25876), [2](https://github.com/containers/podman/pull/28093), [3](https://github.com/containers/podman/pull/28085)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Podman-Desktop](https://github.com/podman-desktop/podman-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/podman-desktop/podman-desktop/commit/e12115245d01d8260ce3ae8a81d78859f744db30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Continuous Integration | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 31a4889a5639c75d9e9f2e7f106934511a31e276 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Mon, 15 Jun 2026 00:39:42 +0200 Subject: [PATCH 285/413] Add Ruffle as tainted in a new Interactive Media section (#663) There were previous commits from Copilot as early as [November 2025](https://github.com/ruffle-rs/ruffle/pull/22204), however those commits appear to not be included in git history and only Copilot and Claude ones started showing up not long ago in late April Co-authored-by: vleermuis-admin Co-authored-by: overbillduplex615 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/663 Reviewed-by: Admin --- .forgejo/issue_template/request-for-more-kind-eyes.yaml | 2 ++ CONTRIBUTING.md | 7 ++++++- README.md | 7 +++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index f376687..35d8217 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -41,3 +41,5 @@ body: required: true - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true + - label: I have made sure the project I want people to have eyes on is not on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list + required: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9d5b6c8..594eb07 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ https://codeberg.org/org/project ``` > [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. +> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. Be sure you don't recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list though. **Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** @@ -123,6 +123,9 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you - Forum post specifically dedicated to the project and read by the maintainers of the project - Social media account run *by the project* and not a solo maintainer. We do **not** want to call watchers of this repo to approach solo maintainers (there is too much room for that to potentially result in harassment), but if a project/company has a specific social media thread asking for opinions on AI usage in their code base or as a feature of their project/product, feel free to link that. +>[!warning] +> Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. + Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. Please don't link directly to codeberg.org repos, issues, pull requests or commits, as it will alert the other repo that they're being talked about in this list, which could create a negative atmosphere. If you need to link to them, please use a codeblock like this: @@ -145,6 +148,8 @@ You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: +- Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. + - Do not link to people's social media posts e.g. fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. - When adding a link to back up your point, please use the name of the source and title of the article as the link name diff --git a/README.md b/README.md index fc1f57e..7529578 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Computer Graphics](#computer-graphics) * [3D Tools](#3d-tools) * [Image Manipulation](#image-manipulation) + * [Interactive Media](#interactive-media) * [Photography](#photography) * [Video](#video) * [Containers](#containers) @@ -752,6 +753,12 @@ This is a section for repos that are similar to this one either because they are | [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | +### Interactive Media + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Ruffle](https://ruffle.rs) | [`883b223`](https://github.com/ruffle-rs/ruffle/commit/883b22356b56026151d203da18227e208b450f35) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruffle-rs/ruffle/pull/20875), [2](https://github.com/ruffle-rs/ruffle/pull/23175), [3](https://github.com/ruffle-rs/ruffle/pull/23817))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruffle-rs/ruffle/pull/23011)) | [Lightspark](https://github.com/lightspark/lightspark) | + ### Photography | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From be9e59b12937416b01f53a83175c782b2c0b0332 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 15 Jun 2026 06:05:15 +0000 Subject: [PATCH 286/413] remove old list --- CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 594eb07..3b68d3d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ https://codeberg.org/org/project ``` > [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. Be sure you don't recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list though. +> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. **Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** @@ -124,7 +124,7 @@ Maybe you don't need/want to open an Issue or Pull Request to this repo, but you - Social media account run *by the project* and not a solo maintainer. We do **not** want to call watchers of this repo to approach solo maintainers (there is too much room for that to potentially result in harassment), but if a project/company has a specific social media thread asking for opinions on AI usage in their code base or as a feature of their project/product, feel free to link that. >[!warning] -> Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. +> Do not recommend any software run by AI companies or by orgs/people who have a history of bigotry. Anyone can then react (kindly) to a linked upstream issue, pull request, or discussion thread. If you're already a contributor to that project, you may also leave a comment. You *must* do so kindly though! We do not approve of anyone reaching out in a rude manner to any other projects. If you have no connection to project, the best thing you can do is an emoji react or upvote on the opening discussion topic or to a comment where AI is called out as bad. Please be cautious and courteous. If we find out you were threatening or expressed any form of bigotry, you will receive a ban from this repo. @@ -148,8 +148,6 @@ You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: -- Do not recommend anything on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list. - - Do not link to people's social media posts e.g. fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. - When adding a link to back up your point, please use the name of the source and title of the article as the link name From d328ce1032a284b5ef373194178a97cd49106cce Mon Sep 17 00:00:00 2001 From: awe Date: Mon, 15 Jun 2026 08:16:59 +0200 Subject: [PATCH 287/413] Add Immich as tainted (#971) Co-authored-by: Awe Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/971 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7529578..759d16e 100644 --- a/README.md +++ b/README.md @@ -908,6 +908,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Ente Locker](https://ente.com/locker/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ente-io/ente/commit/3fbe3a463b50aa52028c33acd10f7d1d94c7c368)) | +| [Immich](https://immich.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immich-app/immich?tab=contributing-ov-file#use-of-generative-ai))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.immich.app/features/facial-recognition), [2](https://docs.immich.app/features/searching), [3](https://docs.immich.app/features/ml-hardware-acceleration)) | | [JuiceFS](https://juicefs.com/en/) | [`v1.2.3`](https://github.com/juicedata/juicefs/releases/tag/v1.2.3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/juicedata/juicefs/pull/6241)) | | [MinIO](https://www.min.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/minio/minio)) | | [Nextcloud](https://nextcloud.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextcloud/desktop/blob/master/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextcloud.com/assistant/)) | From a24d2823038d20b44b53e2e18a03048db20af7fb Mon Sep 17 00:00:00 2001 From: ch0ccyra1n Date: Mon, 15 Jun 2026 08:37:52 +0200 Subject: [PATCH 288/413] Add frogfind-ng (#960) ### Description of Changes This PR adds frogfind-ng as tainted (literally 100% vibecoded, hence why I included the commit graph) and FrogFind as an alternative. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/960 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 759d16e..61cca65 100644 --- a/README.md +++ b/README.md @@ -1557,6 +1557,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [frogfind-ng](https://github.com/RayTrunk/frogfind-ng) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/RayTrunk/frogfind-ng/graphs/contributors?selectedMetric=commits), [2](https://github.com/RayTrunk/frogfind-ng/commit/d546143f15e63001084b63c6beaeb583d9c88be6), [3](https://github.com/RayTrunk/frogfind-ng/commit/90d9d6d13ca90c006da925c82777aa7eb8b01c57)) | [FrogFind](https://github.com/ActionRetro/FrogFind) | | [Searxng](https://github.com/searxng/searxng) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/searxng/searxng/blob/master/AI_POLICY.rst))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/searxng/searxng/issues?q=copilot)) | [LibreY](https://github.com/Ahwxorg/librey/),
[marginalia](https://github.com/MarginaliaSearch/MarginaliaSearch),
[securityops.co](https://git.securityops.co/securityops/securitysearch) | | [YaCy](https://yacy.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/yacy/yacy_search_server/commit/8ca78e40f723df21b91b028d1e51daa7eec6b638)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From b72e11987d6dc9637de7299bdc939fc3427eea7c Mon Sep 17 00:00:00 2001 From: Euphy Date: Mon, 15 Jun 2026 08:39:18 +0200 Subject: [PATCH 289/413] add devilutionx (#913) Co-authored-by: otyugh Co-authored-by: otyugh Co-authored-by: Euphy Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/913 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 61cca65..fc7cdf7 100644 --- a/README.md +++ b/README.md @@ -1005,6 +1005,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [DevilutionX](https://github.com/diasurgical/DevilutionX) | [`1.5.5`](https://github.com/diasurgical/DevilutionX/releases/tag/1.5.5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/diasurgical/DevilutionX/commit/4c7d80c018b8f6197365d2a5bffa600b4446052a), [2](https://github.com/diasurgical/DevilutionX/commit/37b6212d6e6136ee95965c3ba63d73d72b7482c8)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Godot Engine](https://godotengine.org/) | [`4.3-stable`](https://github.com/godotengine/godot/releases/tag/4.3-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | | [GDevelop](https://gdevelop.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gdevelop.io/), [2](https://github.com/4ian/GDevelop/commit/6ec16045d140a9d55721f71620e128d4969c5fe6), [3](https://github.com/4ian/GDevelop/pull/8509/commits/74409a280cd248ee4d54523b23f5c1507d6380af)) | [Pandemonium Engine] | | [GZDoom](https://github.com/zdoom/gzdoom) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2)) | [UZDoom](https://github.com/UZDoom/UZDoom), [Chocolate Doom](https://www.chocolate-doom.org/) | From 515399fbecc0c781b2ff16da0e50eef40adacad5 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 15 Jun 2026 06:44:19 +0000 Subject: [PATCH 290/413] add gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6801e1f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +DONT_REFERENCE_ME.md From ee38e588090e4915baf1144a22a87f6296943571 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 15 Jun 2026 08:53:04 +0200 Subject: [PATCH 291/413] simplifying and clarifying the more-kind-eyes issue type --- .../issue_template/request-for-more-kind-eyes.yaml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index 35d8217..1da34e3 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -8,21 +8,14 @@ body: - type: markdown attributes: value: | - Thanks for helping to make the world a bit more AI free 💙 - - - type: input - id: project - attributes: - label: What project is this for? - description: | - What external project are you reaching out to? + Thanks for helping to make the world a bit more AI free 💙 This issue type is not intended for harassment. Do not use this issue type to be rude to anyone in any repo. - type: input id: link attributes: label: Link description: | - A link to your Pull Request, Issue, Discussion, forum post, mailing list, etc where you've requested clarification on an AI policy. + A link to your Pull Request, Issue, Discussion, forum post, mailing list, etc where you've requested clarification on an AI policy. You must provide a link to where you're currently discussing an AI policy. - type: textarea id: additional-info From 1965c2c434b5ab0452473b1cc93ad3c3d9c67769 Mon Sep 17 00:00:00 2001 From: Acid Bong Date: Mon, 15 Jun 2026 11:45:35 +0200 Subject: [PATCH 292/413] add Prek (and Pre-commit as an alternative) (#908) upd: Anthony [refused](https://github.com/pre-commit/pre-commit/issues/3703) to document it, considering it as basic as disallowing low-quality contributions Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/908 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fc7cdf7..f4aa1e1 100644 --- a/README.md +++ b/README.md @@ -1789,6 +1789,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | | [lazygit](https://github.com/jesseduffield/lazygit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jesseduffield/lazygit/blob/master/AGENTS.md), [2](https://github.com/jesseduffield/lazygit/commit/21d58085f4e5d60a18d161da81fb0d9298dbe4ed), [3](https://github.com/jesseduffield/lazygit/commit/4f6cdedb1e5ea8c13d0ccbf57d772a387ef5728f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jesseduffield/lazygit/pull/5277), [2](https://github.com/jesseduffield/lazygit/pull/5273), [3](https://github.com/jesseduffield/lazygit/pull/5392))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/jesseduffield/lazygit/blob/master/README.md)) | | [Mercurial](https://mercurial-scm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/1914)) | +| [prek](https://prek.j178.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/j178/prek/blob/aca63eefe1b9139fb5c0a97063ff975f5ae8d092/.github/copilot-instructions.md), [2](https://github.com/j178/prek/pull/1842), [3](https://github.com/j178/prek/pull/1679)) | [pre-commit](https://pre-commit.com) | | [Radicle](https://radicle.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://radicle.network/nodes/seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury/tree/CLAUDE.md)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | From 2a075b215682c9e8bed7942178d2a7b140a6bc68 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 15 Jun 2026 13:37:36 +0200 Subject: [PATCH 293/413] fix typos/grammar --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3b68d3d..96ce37f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -86,7 +86,7 @@ Feel free to submit any software as an alternative provided it is FOSS, has no A - Any project associated with bigotry is not allowed. -- At this time, we're not accepting alternatives that are centralized and/or lacking the appropriate documentation to be self-hosted by non-experts. For example, we will not endorse the messaging app "Signal", or social media platforms based on AT-protocol. In the event that such projects do become tainted they would not be easy to fork, operate, or support - which places users and operators at a disadvantage. If a project does inprove their documentation such that self-hosting becomes more accessable, we will of course re-evaluate. Feel free to open a PR. +- At this time, we're not accepting alternatives that are centralized and/or lacking the appropriate documentation to be self-hosted by non-experts. For example, we will not endorse the messaging app "Signal", or social media platforms based on AT-protocol. In the event that such projects do become tainted they would not be easy to fork, operate, or support - which places users and operators at a disadvantage. If a project does improve their documentation such that self-hosting becomes more accessable, we will of course re-evaluate. Feel free to open a PR at that time. # Contributing Issues From 7ab9f547bcc0d4877693c1a6c60bcd6b79c40ac3 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 15 Jun 2026 14:36:26 +0200 Subject: [PATCH 294/413] move the 'why not llms' section to its own file (#979) ### Description of Changes As per the suggestion in https://codeberg.org/ethical-foss/open-slopware/issues/936#issuecomment-17477528 this puts the "why not llms" section in it's own file. It still maintains the section, so that previous links to it will still ultimately redirect users to the right place. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/979 --- CODE_OF_CONDUCT.md | 2 +- FAQ.md | 8 +- README.md | 183 +-------------------------------------------- why_not_llms.md | 178 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 187 insertions(+), 184 deletions(-) create mode 100644 why_not_llms.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b00b0ed..ccf801e 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -61,7 +61,7 @@ We do not allow people to debate strikes or bans either for themselves or on beh - Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on repos, forums, social media, reddit, messaging apps, etc, especially not in a rude way, to maintainers of other repos to harass them and threaten them, especially not with this list. Doing so will result in a ban. -- Do **NOT** mention this list *at all* when reaching out to a project to discuss AI in any way. It only results in putting the maintainers of that project on the defensive, and then the maintainers of *this* repo need to deal with the fallout of that. If you need help with asking for a No AI Policy, consider checking out our [No AI Request Template doc](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/NO_AI_REQUEST_TEMPLATE.md#tips-for-success). You are also free to copy and paste anything from the [Why not LLMs](https://codeberg.org/ethical-foss/open-slopware/src/branch/main#why-not-llms) section of our README. +- Do **NOT** mention this list *at all* when reaching out to a project to discuss AI in any way. It only results in putting the maintainers of that project on the defensive, and then the maintainers of *this* repo need to deal with the fallout of that. If you need help with asking for a No AI Policy, consider checking out our [No AI Request Template doc](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/NO_AI_REQUEST_TEMPLATE.md#tips-for-success). You are also free to copy and paste anything from the [Why not LLMs](./why_not_llms.md) file. - We don't want drive by sarcastic comments. diff --git a/FAQ.md b/FAQ.md index 32164e1..edc7edc 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,7 +8,7 @@ There's no great place to put these in our current files, but these sorts of que ## I use AI in my project and do not plan on stopping. Should I self-submit? -> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @vleermuis-admin and we'll handle the situation. +> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](./why_not_llms.md) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @vleermuis-admin and we'll handle the situation. ## Do closed source or proprietary products belong on this list? @@ -20,7 +20,7 @@ There's no great place to put these in our current files, but these sorts of que ## What if the AI code is human reviewed? -> Slop that is human reviewed is still slop. We are against AI for more than just code quality reasons. Please see our [Why Not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section. +> Slop that is human reviewed is still slop. We are against AI for more than just code quality reasons. Please see our [Why Not LLMs?](./why_not_llms.md) section. ## Why are you targeting/attacking/harassing my favorite project? @@ -48,11 +48,11 @@ There's no great place to put these in our current files, but these sorts of que ## Can you advise us on the ethical usage of AI? -> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section. +> No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs?](./why_not_llms.md) section. ## What about "Open Source AI"? -> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](https://codeberg.org/ethical-foss/open-slopware#why-not-llms) section and thus such projects will still be included on this list. +> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](./why_not_llms.md) section and thus such projects will still be included on this list. ## Why is removal harder than landing on the list in the first place? diff --git a/README.md b/README.md index f4aa1e1..3931d99 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Free/Open Source Software tainted by LLM developers/developed by genAI boosters, The intention of this list is to raise awareness of AI/LLM usage in popular open-source software. Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is not a resource to be used for the harassment of other open-source developers. If you wish to advocate for a "No AI" Policy from another project, we ask that it be done respectfully and constructively (and do *not* mention this list). -For more information on why we think this list matters, please see [Why not LLMs?](#why-not-llms). +For more information on why we think this list matters, please see out [Why not LLMs?](./why_not_llms.md) file. Want to *add*, *update*, or *remove* a project listed below? Check out our [**Contributing Doc**](./CONTRIBUTING.md). @@ -37,7 +37,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [API Documentation](#api-documentation) * [App Catalogs and Downloaders](#app-catalogs-and-downloaders) * [App Launchers](#app-launchers) - * [Desktop Launchers](#desktop-launchers) + * [Desktop Launchers](#desktop-launchers) * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) @@ -49,7 +49,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Backups](#backups) * [Benchmarking](#benchmarking) * [BitTorrent Clients](#bittorrent-clients) - * [BitTorrent Clients Alternatives](#bittorrent-clients-alternatives) + * [BitTorrent Clients Alternatives](#bittorrent-clients-alternatives) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) @@ -196,21 +196,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Window Managers](#window-managers) * [Desktop Bars](#desktop-bars) * [Desktop Shells](#desktop-shells) -* [Why not LLMs?](#why-not-llms) - * [Legal Ramifications](#legal-ramifications) - * [Legal Cases And Law Problems](#legal-cases-and-law-problems) - * [License Problems](#license-problems) - * [Stolen Training Data](#stolen-training-data) - * [Environmental Impact](#environmental-impact) - * [Labor](#labor) - * [Poor Code Quality](#poor-code-quality) - * [Deskilling](#deskilling) - * [Infosec risks](#infosec-risks) - * [Health and Safety](#health-and-safety) - * [Ties to the War Industrial Complex](#ties-to-the-war-industrial-complex) - * [Effects on Policing](#effects-on-policing) - * [Maintainer Fatigue](#maintainer-fatigue) - * [Effect on Hardware Prices](#effect-on-hardware-prices) * [License](#license) # Definitions @@ -1900,167 +1885,7 @@ All-in-one solutions for stitching together a desktop. # Why not LLMs? -Could use some help writing this with concrete receipts on environmental, social, political, and economic/labor harms. - -## Legal Ramifications - -LLMs are often trained on, and thus prone to regurgitate (either completely, or in-part), chunks of code that are licensed under terms which have specific legal requirements that a contributor using LLMs may not understand or even be aware of when making a contribution. Regardless of this ignorance, it falls to the repo's owner to comply with the terms of any and all licensed code integrated into their project. - -### Legal Cases And Law Problems - -* [GitHub Copilot litigation](https://githubcopilotlitigation.com/) -* [IEEE article explaining concerns about AI generated code ownership](https://spectrum.ieee.org/ai-code-generation-ownership) -* [Tracker of broader lawsuits against AI companies](https://chatgptiseatingtheworld.com/2025/11/02/tracker-of-tort-lawsuits-v-ai-companies/) - -### License Problems - -Legal, copyright, and ethics problems arise, especially with copyleft licenses such as the GNU (A/L)GPL. With the "help" of AI the copyleft code may be "license-washed" very easily. - -There are ongoing problems with AI "license-washing" in the FOSS world: - -* `chardet` - used an LLM to rewrite the codebase from the LGPL license to Expat/MIT (and later 0-BSD) license, violating the (L)GPL. - * relicensed release: - * original author's concerns: - * "consumer's" concerns: - -## Stolen Training Data - -AI companies use data from across the web to train their models, most often without the website owners' and users' consent. Big tech companies like Google and Meta are scraping data from the users of major FOSS projects, such as Mastodon, WordPress, and other ActivityPub-powered and self-hosted software. - -* In 2023, [the Washington Post published a list of sources in Google's C4 data set](https://archive.ph/eehKq). A multitude of fediverse instances and personal sites were included. The fediverse is known for its userbase being major proponents of privacy and opt-in consent, making this especially jarring for those who have chosen to use decentralized social media for control over their data. -* In 2025, [a similar leak of Meta's sources was published](https://archive.ph/NZlf3). Meta's list demonstrates how their integration of ActivityPub into their Threads software has enhanced their ability to scrape content without authorization. Threads is widely blocked in some parts of the fediverse, but their scraping of server CDNs has allowed them to get around that. Notably, both the CDN domains of the managed hosting services masto.host and fedi.monster are included in the list; large servers like mastodon.art, which is hosted by the former and has many artists who've left sites like DeviantArt and others due to their AI scraping of user content, had [media unknowingly scraped](https://mastodon.art/@Curator/115022115346692178). -* In March 2026, [a research paper](https://arxiv.org/html/2603.20957v2) showed that simply fine-tuning LLMs resulted in outputs containing up to 90% of entire (copyrighted) books, contradicting LLM companies' previous statements in court that their models do not store copies of training data. After fine-tuning exclusively on a single author, the researchers were able to cause the LLM to output works from over 30 completely unrelated authors across different genres. None of the models were explicitly trained on these books by the researchers, which indicates that LLMs always carry with them a considerable amount of copyrighted materials from training. - -FOSS projects listed in this repo are using tooling that blatantly disregard licensing and violate of Codes of Conduct, making said tools antithetical to FOSS' purpose. - -## Environmental Impact - -To start learning a bit more, you can checkout the wikipedia page on [Environmental impact of artificial intelligence](https://en.wikipedia.org/wiki/Environmental_impact_of_artificial_intelligence#Individual_level). We're very open to people contributing other explanations, links, and resources to learn more about this. Here's what we've gathered so far: - -- [MIT News: Generative AI's Environmental Impact](https://news.mit.edu/2025/explained-generative-ai-environmental-impact-0117) -- [MIT Technology Review: We did the math on AI's energy footprint. Here's the story you haven't heard.](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/) -- [Grantham Institute: What Direct Risks Does AI Pose to the Climate and Environment](https://www.lse.ac.uk/granthaminstitute/explainers/what-direct-risks-does-ai-pose-to-the-climate-and-environment/) -- [UCLA: AI is Destroying Our Planet](https://newsroom.ucla.edu/stories/opinion-ai-is-destroying-our-planet-we-must-act) -- [The Guardian: Officials hugely underestimated impact of AI datacentres on UK carbon emissions](https://web.archive.org/web/20260425032459/https://www.theguardian.com/technology/2026/apr/24/officials-hugely-underestimated-impact-of-ai-datacentres-on-uk-carbon-emissions) -- [KU Leuven Centre for IT & IP Law: The environmental costs of AI: a shake-up of the EU's twin transition](https://www.law.kuleuven.be/citip/blog/the-environmental-costs-of-ai-a-shake-up-of-the-eus-twin-transition/) -- [Australian Parliament: Impacts of AI on the environment](https://www.aph.gov.au/Parliamentary_Business/Committees/Senate/Adopting_Artificial_Intelligence_AI/AdoptingAI/Report/Chapter_6_-_Impacts_of_AI_on_the_environment) - -## Labor - -AI usage and normalization contributes to labor violations in many ways that are obvious and some you may not be aware of. - -On one hand, many things that you think are "AI" are actually humans in another country pretending to be an AI chatbot for you for either extremely low wages or in some cases, no wages e.g. prison labor. This is particularly common for "friend"/"sex" bots, but it is also extremely common in the image/video identification. You can find a bit more info at the following links: - -- [Long hours and low wages: the human labour powering AI’s development](https://theconversation.com/long-hours-and-low-wages-the-human-labour-powering-ais-development-217038) -- [OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic](https://time.com/6247678/openai-chatgpt-kenya-workers/) -- ['AI Is African Intelligence': The Workers Who Train AI Are Fighting Back](https://www.404media.co/ai-is-african-intelligence-the-workers-who-train-ai-are-fighting-back/) -- [These Prisoners Are Training AI: In high-wage Finland, where clickworkers are rare, one company has discovered a novel labor force—prisoners.](https://web.archive.org/web/20260108224812/https://www.wired.com/story/prisoners-training-ai-finland/) -- [Amazon grocery stores previously reported to use AI actually used people in India](https://www.businessinsider.com/amazons-just-walk-out-actually-1-000-people-in-india-2024-4?op=1) - -## Poor Code Quality - -Vibe coding / agentic workflows result in poorer code quality, and relaxed oversight practices. These effects may be compounded by the common practice of using additional LLM-based tooling to provide code-reviews. - -* [How I Dropped Our Production Database and Now Pay 10% More for AWS](http://archive.today/2026.03.06-144058/https://alexeyondata.substack.com/p/how-i-dropped-our-production-database) -* [Claude Tested Everything Except the One Thing That Mattered (AI agent refuses to follow explicit instructions to test `createPost()` in increasingly erratic ways)](http://archive.today/2026.03.09-201135/https://christophermeiklejohn.com/ai/claude/2026/03/08/claude-tested-everything-except-the-one-thing-that-mattered.html) -* [Amazon calls engineers for a “deep dive” internal meeting to discuss “GenAI”-related outages](https://ghostarchive.org/archive/3TfgF) -* GitClear has released reports in [2024](https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality) and [2025](https://www.gitclear.com/ai_assistant_code_quality_2025_research) indicating a worsening of key code quality metrics correlating with increased LLM adoption. - -### Deskilling - -There is increasing evidence to show that LLMs negatively impact developers' coding abilities: - -* [Brains show less activity when completing tasks with LLMs](https://arxiv.org/abs/2506.08872) compared to completing tasks with search or completing tasks without digital help. -* [Developers who use early-2025 LLMs](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) reported higher subjective performance, but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. -* In an [Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. -* [A recent study uses the term "cognitive surrender"](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6097646) to describe the way humans tend to offload key critical thinking skills onto LLMs, even when the output is wrong. -* A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from MIT, Oxford, UCLA, and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for only 10 minutes causes "inpaired unassisted performance and reduced persistence". The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up"; they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". - -### Infosec risks - -LLM usage results in massive security holes. - -* [Meta Security Researcher's AI Agent Accidentally Deleted Her Emails](http://archive.today/2026.02.26-153034/https://www.pcmag.com/news/meta-security-researchers-openclaw-ai-agent-accidentally-deleted-her-emails) -* [Moltbook's "vibe-coded" breach is the future of security failures](https://thehill.com/opinion/cybersecurity/5744310-ai-powered-security-risks/) -* [In a study evaluating over 500k code samples, LLM-generated code was found to contain more high-risk security vulnerabilities than human-generated code](https://arxiv.org/abs/2508.21634) -* [LLMs make up package names, making them vulnerable to incorporating malicious code in "slopsquatting" attacks](https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/) ([Arxiv study](https://arxiv.org/abs/2406.10279)) - -## Health and Safety - -There's been a number of high profile incidents that have resulted in endangerment or death. Here's some examples: - -* [AI Toy Exposed 50,000 Logs of Its Chats With Kids to Anyone With a Gmail Account](https://archive.ph/dX5xd) - -*
- Content Warning: Suicide - - * [Wikipedia: Deaths linked to chatbots](https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots) - * [AI chatbot pushed a teen to kill himself, a lawsuit against its creator alleges](https://apnews.com/article/chatbot-ai-lawsuit-suicide-teen-artificial-intelligence-9d48adc572100822fdbc3c90d1456bd0) - -
- -[LLM use has also been linked to new-onset psychosis](https://pmc.ncbi.nlm.nih.gov/articles/PMC12863933/). - -### Ties to the War Industrial Complex - -A lot of AI companies also work directly with nation states for use in their Departments of War (sometimes called Defense) which in turn leads to further AI usage during war and invasions. This is coupled with [NYT: Palantir, Anthropic and small start-ups are generating rewards from their investments in defense tech](https://www.nytimes.com/2026/03/18/technology/silicon-valley-war-defense-tech.html). - -As another example [NPR: OpenAI announced Pentagon deal after Trump banned Anthropic](https://www.npr.org/2026/02/27/nx-s1-5729118/trump-anthropic-pentagon-openai-ai-weapons-ban) which was due to the USA Department of War [launching an AI acceleration strategy](https://web.archive.org/web/20260113071131/https://www.war.gov/News/Releases/Release/Article/4376420/war-department-launches-ai-acceleration-strategy-to-secure-american-military-ai/). - -Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intentionally or not. Examples: - -
- Content Warning: War details, death - - - [Gaza: UN experts deplore use of purported AI to commit ‘domicide’ in Gaza, call for reparative approach to rebuilding](https://www.ohchr.org/en/press-releases/2024/04/gaza-un-experts-deplore-use-purported-ai-commit-domicide-gaza-call) - - [Lavender & Where’s Daddy: How Israel Used AI to Form Kill Lists & Bomb Palestinians in Their Homes](https://www.democracynow.org/2024/4/5/israel_ai) - - [Microsoft says it provided AI to Israeli military for war](https://apnews.com/article/microsoft-israel-military-gaza-hamas-artificial-intelligence-20b2adb438b39ee9cb6eb2f52c1ae44a) - - [Google has dropped its promise not to use AI for weapons](https://theconversation.com/google-has-dropped-its-promise-not-to-use-ai-for-weapons-its-part-of-a-troubling-trend-249169) - - ["We want to use it for everything": How Project Maven became central to America’s AI-powered warfare](https://web.archive.org/web/20260312035736/https://www.independent.co.uk/news/world/americas/project-maven-ai-us-airstrike-iraq-anthropic-b2929138.html) - -
- -All of this to remind you that if you use AI, you're helping to support these companies and the additional activities they participate in, outside of generative code or images. - -### Effects on Policing - -Police have quickly embraced AI, which has already directly led to people being jailed for things they've never done. As examples: - -- [This Grandmother was jailed for 6 months after an AI error linked her to a crime in a state she had never even visited](https://www.the-independent.com/news/world/americas/crime/tennessee-grandmother-ai-arrest-error-north-dakota-b2938261.html) -- [How Wrongful Arrests Based on AI Derailed 3 Men's Lives](https://web.archive.org/web/20260111202754/https://www.wired.com/story/wrongful-arrests-ai-derailed-3-mens-lives/) - -This is, in part, due to companies such as Amazon [Aggressively pushing police to use AI](https://web.archive.org/web/20260116082026/https://www.forbes.com/sites/thomasbrewster/2025/10/01/inside-amazons-aggressive-push-to-get-cops-using-ai-surveillance/) which they do through both facial recognition and offering compute for predictive policing. With regards to facial recognition, here's an example of how it too can lead to false arrests: [Face Recognition on Flawed Data](https://www.flawedfacedata.com/#art-or-science). - -There have been warnings about AI in policing, particularly around racial bias, such as: - -- [Bennan Center of Justice: The Dangers of Unregulated AI in Policing](https://www.brennancenter.org/our-work/research-reports/dangers-unregulated-ai-policing) -- [OxJournal: Predictive Policing or Predictive Prejudice? A Study of the Legal, Historical and Ethical Implications of AI in Policing](https://www.oxjournal.org/predictive-policing-or-predictive-prejudice/) -- [The Guardian: Police AI Chief admits crime fighting tech will have bias...](https://web.archive.org/web/20260224070735/https://www.theguardian.com/technology/2026/feb/24/police-ai-chief-admits-crime-fighting-tech-will-have-bias-but-vows-to-tackle-it) -- [A third of all Black children were flagged by a child services agency](https://loganstapleton.com/wp-content/uploads/2022/04/Extended_Analysis__How_Child_Welfare_Workers_Reduced_Racial_Disparities_in_Algorithmic_Decisions.pdf) - -### Maintainer Fatigue - -Having to deal with the onslaught of many LLM written pull requests and issues, causes real maintainer burnout that stagnates projects as maintainers become overwhelmed with half baked, poorly written, insecure code. Here's some examples: - -* [Overrun with AI slop, cURL scraps bug bounties to ensure “intact mental health”](https://arstechnica.com/security/2026/01/overrun-with-ai-slop-curl-scraps-bug-bounties-to-ensure-intact-mental-health/) -* [Godot maintainers struggle with 'draining and demoralizing' AI slop submissions](https://www.theregister.com/2026/02/18/godot_maintainers_struggle_with_draining/) -* [An AI Agent Published a Hit Piece on Me (matplotlib)](http://archive.today/2026.02.19-045842/https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/) - -## Effect on Hardware Prices - -The demand for construction and outfitting of new data-centers to host AI/LLM compute capacity has overwhelmed global supply and production of multiple hardware components. Memory, Storage, and GPUs have seen massive increases in price for both consumer and enterprise models upward of 400% in some cases. - -The lack of supply has led large system-builders to purchase production capacity from OEMs well in-advance of delivery leading some manufacturers to end consumer-oriented product lines in favor of enterprise capacity. - -The down-stream effects for consumers is that near all electronic devices which contain memory and storage will see their prices rise and availability decline. Those who already own existing electronics and computer hardware components may also find themselves unable to have their devices repaired or replaced under warranty. - -- [The RAM shortage is coming for everything you care about](https://www.theverge.com/tech/880812/ramageddon-ram-shortage-memory-crisis-price-2026-phones-laptops) - -- [Western Digital is already sold out of hard drives for all of 2026 — chief says some long-term agreements for 2027 and 2028 already in place](https://www.tomshardware.com/pc-components/hdds/western-digital-is-already-sold-out-of-hard-drives-for-all-of-2026-chief-says-some-long-term-agreements-for-2027-and-2028-already-in-place) - -- [The 2026 storage crisis: Why AI data centers are hoarding every hard drive on the market](https://www.howtogeek.com/dont-count-on-hdds-to-save-you-from-rising-storage-costs/) - -This all results in shrinking the pool of people who have access to building home computers for any purpose, from gaming to coding to home labs, which in turn makes the tech industry less diverse due to people who have been historically marginalized having less financial resources to learn the skills at home. When this is factored in with the price of college being unaffordable in many places, we will see a sharper decline in disabled people, people of color, women, and the queer community entering the tech industry. +This section has moved to the [why_not_llms.md](./why_not_llms.md) file. # License diff --git a/why_not_llms.md b/why_not_llms.md new file mode 100644 index 0000000..2c2e341 --- /dev/null +++ b/why_not_llms.md @@ -0,0 +1,178 @@ +# Why not LLMs? + +Could use some help writing this with concrete receipts on environmental, social, political, and economic/labor harms. + +* [Legal Ramifications](#legal-ramifications) + * [Legal Cases And Law Problems](#legal-cases-and-law-problems) + * [License Problems](#license-problems) +* [Stolen Training Data](#stolen-training-data) +* [Environmental Impact](#environmental-impact) +* [Labor](#labor) +* [Poor Code Quality](#poor-code-quality) + * [Deskilling](#deskilling) + * [Infosec risks](#infosec-risks) +* [Health and Safety](#health-and-safety) + * [Ties to the War Industrial Complex](#ties-to-the-war-industrial-complex) + * [Effects on Policing](#effects-on-policing) + * [Maintainer Fatigue](#maintainer-fatigue) +* [Effect on Hardware Prices](#effect-on-hardware-prices) + +## Legal Ramifications + +LLMs are often trained on, and thus prone to regurgitate (either completely, or in-part), chunks of code that are licensed under terms which have specific legal requirements that a contributor using LLMs may not understand or even be aware of when making a contribution. Regardless of this ignorance, it falls to the repo's owner to comply with the terms of any and all licensed code integrated into their project. + +### Legal Cases And Law Problems + +* [GitHub Copilot litigation](https://githubcopilotlitigation.com/) +* [IEEE article explaining concerns about AI generated code ownership](https://spectrum.ieee.org/ai-code-generation-ownership) +* [Tracker of broader lawsuits against AI companies](https://chatgptiseatingtheworld.com/2025/11/02/tracker-of-tort-lawsuits-v-ai-companies/) + +### License Problems + +Legal, copyright, and ethics problems arise, especially with copyleft licenses such as the GNU (A/L)GPL. With the "help" of AI the copyleft code may be "license-washed" very easily. + +There are ongoing problems with AI "license-washing" in the FOSS world: + +* `chardet` - used an LLM to rewrite the codebase from the LGPL license to Expat/MIT (and later 0-BSD) license, violating the (L)GPL. + * relicensed release: + * original author's concerns: + * "consumer's" concerns: + +## Stolen Training Data + +AI companies use data from across the web to train their models, most often without the website owners' and users' consent. Big tech companies like Google and Meta are scraping data from the users of major FOSS projects, such as Mastodon, WordPress, and other ActivityPub-powered and self-hosted software. + +* In 2023, [the Washington Post published a list of sources in Google's C4 data set](https://archive.ph/eehKq). A multitude of fediverse instances and personal sites were included. The fediverse is known for its userbase being major proponents of privacy and opt-in consent, making this especially jarring for those who have chosen to use decentralized social media for control over their data. +* In 2025, [a similar leak of Meta's sources was published](https://archive.ph/NZlf3). Meta's list demonstrates how their integration of ActivityPub into their Threads software has enhanced their ability to scrape content without authorization. Threads is widely blocked in some parts of the fediverse, but their scraping of server CDNs has allowed them to get around that. Notably, both the CDN domains of the managed hosting services masto.host and fedi.monster are included in the list; large servers like mastodon.art, which is hosted by the former and has many artists who've left sites like DeviantArt and others due to their AI scraping of user content, had [media unknowingly scraped](https://mastodon.art/@Curator/115022115346692178). +* In March 2026, [a research paper](https://arxiv.org/html/2603.20957v2) showed that simply fine-tuning LLMs resulted in outputs containing up to 90% of entire (copyrighted) books, contradicting LLM companies' previous statements in court that their models do not store copies of training data. After fine-tuning exclusively on a single author, the researchers were able to cause the LLM to output works from over 30 completely unrelated authors across different genres. None of the models were explicitly trained on these books by the researchers, which indicates that LLMs always carry with them a considerable amount of copyrighted materials from training. + +FOSS projects listed in this repo are using tooling that blatantly disregard licensing and violate of Codes of Conduct, making said tools antithetical to FOSS' purpose. + +## Environmental Impact + +To start learning a bit more, you can checkout the wikipedia page on [Environmental impact of artificial intelligence](https://en.wikipedia.org/wiki/Environmental_impact_of_artificial_intelligence#Individual_level). We're very open to people contributing other explanations, links, and resources to learn more about this. Here's what we've gathered so far: + +- [MIT News: Generative AI's Environmental Impact](https://news.mit.edu/2025/explained-generative-ai-environmental-impact-0117) +- [MIT Technology Review: We did the math on AI's energy footprint. Here's the story you haven't heard.](https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/) +- [Grantham Institute: What Direct Risks Does AI Pose to the Climate and Environment](https://www.lse.ac.uk/granthaminstitute/explainers/what-direct-risks-does-ai-pose-to-the-climate-and-environment/) +- [UCLA: AI is Destroying Our Planet](https://newsroom.ucla.edu/stories/opinion-ai-is-destroying-our-planet-we-must-act) +- [The Guardian: Officials hugely underestimated impact of AI datacentres on UK carbon emissions](https://web.archive.org/web/20260425032459/https://www.theguardian.com/technology/2026/apr/24/officials-hugely-underestimated-impact-of-ai-datacentres-on-uk-carbon-emissions) +- [KU Leuven Centre for IT & IP Law: The environmental costs of AI: a shake-up of the EU's twin transition](https://www.law.kuleuven.be/citip/blog/the-environmental-costs-of-ai-a-shake-up-of-the-eus-twin-transition/) +- [Australian Parliament: Impacts of AI on the environment](https://www.aph.gov.au/Parliamentary_Business/Committees/Senate/Adopting_Artificial_Intelligence_AI/AdoptingAI/Report/Chapter_6_-_Impacts_of_AI_on_the_environment) + +## Labor + +AI usage and normalization contributes to labor violations in many ways that are obvious and some you may not be aware of. + +On one hand, many things that you think are "AI" are actually humans in another country pretending to be an AI chatbot for you for either extremely low wages or in some cases, no wages e.g. prison labor. This is particularly common for "friend"/"sex" bots, but it is also extremely common in the image/video identification. You can find a bit more info at the following links: + +- [Long hours and low wages: the human labour powering AI’s development](https://theconversation.com/long-hours-and-low-wages-the-human-labour-powering-ais-development-217038) +- [OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic](https://time.com/6247678/openai-chatgpt-kenya-workers/) +- ['AI Is African Intelligence': The Workers Who Train AI Are Fighting Back](https://www.404media.co/ai-is-african-intelligence-the-workers-who-train-ai-are-fighting-back/) +- [These Prisoners Are Training AI: In high-wage Finland, where clickworkers are rare, one company has discovered a novel labor force—prisoners.](https://web.archive.org/web/20260108224812/https://www.wired.com/story/prisoners-training-ai-finland/) +- [Amazon grocery stores previously reported to use AI actually used people in India](https://www.businessinsider.com/amazons-just-walk-out-actually-1-000-people-in-india-2024-4?op=1) + +## Poor Code Quality + +Vibe coding / agentic workflows result in poorer code quality, and relaxed oversight practices. These effects may be compounded by the common practice of using additional LLM-based tooling to provide code-reviews. + +* [How I Dropped Our Production Database and Now Pay 10% More for AWS](http://archive.today/2026.03.06-144058/https://alexeyondata.substack.com/p/how-i-dropped-our-production-database) +* [Claude Tested Everything Except the One Thing That Mattered (AI agent refuses to follow explicit instructions to test `createPost()` in increasingly erratic ways)](http://archive.today/2026.03.09-201135/https://christophermeiklejohn.com/ai/claude/2026/03/08/claude-tested-everything-except-the-one-thing-that-mattered.html) +* [Amazon calls engineers for a “deep dive” internal meeting to discuss “GenAI”-related outages](https://ghostarchive.org/archive/3TfgF) +* GitClear has released reports in [2024](https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality) and [2025](https://www.gitclear.com/ai_assistant_code_quality_2025_research) indicating a worsening of key code quality metrics correlating with increased LLM adoption. + +### Deskilling + +There is increasing evidence to show that LLMs negatively impact developers' coding abilities: + +* [Brains show less activity when completing tasks with LLMs](https://arxiv.org/abs/2506.08872) compared to completing tasks with search or completing tasks without digital help. +* [Developers who use early-2025 LLMs](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) reported higher subjective performance, but were measured to have lower objective performance. This gap between subjective and objective performance was considered notable. +* In an [Anthropic study](https://www.anthropic.com/research/AI-assistance-coding-skills), learners using LLMs demonstrated lower learning rates on average compared to learners not using LLMs. +* [A recent study uses the term "cognitive surrender"](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=6097646) to describe the way humans tend to offload key critical thinking skills onto LLMs, even when the output is wrong. +* A paper entitled ["AI Assistance Reduces Persistence and Hurts Independent Performance"](https://arxiv.org/abs/2604.04721) from April 2026 by academics from MIT, Oxford, UCLA, and Carnegie Mellon showed alarming evidence that performing a variety of tasks with the help of AI for only 10 minutes causes "inpaired unassisted performance and reduced persistence". The researchers noted that "although AI assistance improves performance in the short-term, people perform significantly worse without AI and are more likely to give up"; they also pointed out that "these findings are particularly concerning because persistence is foundational to skill acquisition and is one of the strongest predictors of long-term learning". + +### Infosec risks + +LLM usage results in massive security holes. + +* [Meta Security Researcher's AI Agent Accidentally Deleted Her Emails](http://archive.today/2026.02.26-153034/https://www.pcmag.com/news/meta-security-researchers-openclaw-ai-agent-accidentally-deleted-her-emails) +* [Moltbook's "vibe-coded" breach is the future of security failures](https://thehill.com/opinion/cybersecurity/5744310-ai-powered-security-risks/) +* [In a study evaluating over 500k code samples, LLM-generated code was found to contain more high-risk security vulnerabilities than human-generated code](https://arxiv.org/abs/2508.21634) +* [LLMs make up package names, making them vulnerable to incorporating malicious code in "slopsquatting" attacks](https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/) ([Arxiv study](https://arxiv.org/abs/2406.10279)) + +## Health and Safety + +There's been a number of high profile incidents that have resulted in endangerment or death. Here's some examples: + +* [AI Toy Exposed 50,000 Logs of Its Chats With Kids to Anyone With a Gmail Account](https://archive.ph/dX5xd) + +*
+ Content Warning: Suicide + + * [Wikipedia: Deaths linked to chatbots](https://en.wikipedia.org/wiki/Deaths_linked_to_chatbots) + * [AI chatbot pushed a teen to kill himself, a lawsuit against its creator alleges](https://apnews.com/article/chatbot-ai-lawsuit-suicide-teen-artificial-intelligence-9d48adc572100822fdbc3c90d1456bd0) + +
+ +[LLM use has also been linked to new-onset psychosis](https://pmc.ncbi.nlm.nih.gov/articles/PMC12863933/). + +### Ties to the War Industrial Complex + +A lot of AI companies also work directly with nation states for use in their Departments of War (sometimes called Defense) which in turn leads to further AI usage during war and invasions. This is coupled with [NYT: Palantir, Anthropic and small start-ups are generating rewards from their investments in defense tech](https://www.nytimes.com/2026/03/18/technology/silicon-valley-war-defense-tech.html). + +As another example [NPR: OpenAI announced Pentagon deal after Trump banned Anthropic](https://www.npr.org/2026/02/27/nx-s1-5729118/trump-anthropic-pentagon-openai-ai-weapons-ban) which was due to the USA Department of War [launching an AI acceleration strategy](https://web.archive.org/web/20260113071131/https://www.war.gov/News/Releases/Release/Article/4376420/war-department-launches-ai-acceleration-strategy-to-secure-american-military-ai/). + +Due to the nature of LLMs being only kind of as good as the data they are trained on, this can lead to additional civilian deaths and housing/infrastructure damage either intentionally or not. Examples: + +
+ Content Warning: War details, death + + - [Gaza: UN experts deplore use of purported AI to commit ‘domicide’ in Gaza, call for reparative approach to rebuilding](https://www.ohchr.org/en/press-releases/2024/04/gaza-un-experts-deplore-use-purported-ai-commit-domicide-gaza-call) + - [Lavender & Where’s Daddy: How Israel Used AI to Form Kill Lists & Bomb Palestinians in Their Homes](https://www.democracynow.org/2024/4/5/israel_ai) + - [Microsoft says it provided AI to Israeli military for war](https://apnews.com/article/microsoft-israel-military-gaza-hamas-artificial-intelligence-20b2adb438b39ee9cb6eb2f52c1ae44a) + - [Google has dropped its promise not to use AI for weapons](https://theconversation.com/google-has-dropped-its-promise-not-to-use-ai-for-weapons-its-part-of-a-troubling-trend-249169) + - ["We want to use it for everything": How Project Maven became central to America’s AI-powered warfare](https://web.archive.org/web/20260312035736/https://www.independent.co.uk/news/world/americas/project-maven-ai-us-airstrike-iraq-anthropic-b2929138.html) + +
+ +All of this to remind you that if you use AI, you're helping to support these companies and the additional activities they participate in, outside of generative code or images. + +### Effects on Policing + +Police have quickly embraced AI, which has already directly led to people being jailed for things they've never done. As examples: + +- [This Grandmother was jailed for 6 months after an AI error linked her to a crime in a state she had never even visited](https://www.the-independent.com/news/world/americas/crime/tennessee-grandmother-ai-arrest-error-north-dakota-b2938261.html) +- [How Wrongful Arrests Based on AI Derailed 3 Men's Lives](https://web.archive.org/web/20260111202754/https://www.wired.com/story/wrongful-arrests-ai-derailed-3-mens-lives/) + +This is, in part, due to companies such as Amazon [Aggressively pushing police to use AI](https://web.archive.org/web/20260116082026/https://www.forbes.com/sites/thomasbrewster/2025/10/01/inside-amazons-aggressive-push-to-get-cops-using-ai-surveillance/) which they do through both facial recognition and offering compute for predictive policing. With regards to facial recognition, here's an example of how it too can lead to false arrests: [Face Recognition on Flawed Data](https://www.flawedfacedata.com/#art-or-science). + +There have been warnings about AI in policing, particularly around racial bias, such as: + +- [Bennan Center of Justice: The Dangers of Unregulated AI in Policing](https://www.brennancenter.org/our-work/research-reports/dangers-unregulated-ai-policing) +- [OxJournal: Predictive Policing or Predictive Prejudice? A Study of the Legal, Historical and Ethical Implications of AI in Policing](https://www.oxjournal.org/predictive-policing-or-predictive-prejudice/) +- [The Guardian: Police AI Chief admits crime fighting tech will have bias...](https://web.archive.org/web/20260224070735/https://www.theguardian.com/technology/2026/feb/24/police-ai-chief-admits-crime-fighting-tech-will-have-bias-but-vows-to-tackle-it) +- [A third of all Black children were flagged by a child services agency](https://loganstapleton.com/wp-content/uploads/2022/04/Extended_Analysis__How_Child_Welfare_Workers_Reduced_Racial_Disparities_in_Algorithmic_Decisions.pdf) + +### Maintainer Fatigue + +Having to deal with the onslaught of many LLM written pull requests and issues, causes real maintainer burnout that stagnates projects as maintainers become overwhelmed with half baked, poorly written, insecure code. Here's some examples: + +* [Overrun with AI slop, cURL scraps bug bounties to ensure “intact mental health”](https://arstechnica.com/security/2026/01/overrun-with-ai-slop-curl-scraps-bug-bounties-to-ensure-intact-mental-health/) +* [Godot maintainers struggle with 'draining and demoralizing' AI slop submissions](https://www.theregister.com/2026/02/18/godot_maintainers_struggle_with_draining/) +* [An AI Agent Published a Hit Piece on Me (matplotlib)](http://archive.today/2026.02.19-045842/https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/) + +## Effect on Hardware Prices + +The demand for construction and outfitting of new data-centers to host AI/LLM compute capacity has overwhelmed global supply and production of multiple hardware components. Memory, Storage, and GPUs have seen massive increases in price for both consumer and enterprise models upward of 400% in some cases. + +The lack of supply has led large system-builders to purchase production capacity from OEMs well in-advance of delivery leading some manufacturers to end consumer-oriented product lines in favor of enterprise capacity. + +The down-stream effects for consumers is that near all electronic devices which contain memory and storage will see their prices rise and availability decline. Those who already own existing electronics and computer hardware components may also find themselves unable to have their devices repaired or replaced under warranty. + +- [The RAM shortage is coming for everything you care about](https://www.theverge.com/tech/880812/ramageddon-ram-shortage-memory-crisis-price-2026-phones-laptops) + +- [Western Digital is already sold out of hard drives for all of 2026 — chief says some long-term agreements for 2027 and 2028 already in place](https://www.tomshardware.com/pc-components/hdds/western-digital-is-already-sold-out-of-hard-drives-for-all-of-2026-chief-says-some-long-term-agreements-for-2027-and-2028-already-in-place) + +- [The 2026 storage crisis: Why AI data centers are hoarding every hard drive on the market](https://www.howtogeek.com/dont-count-on-hdds-to-save-you-from-rising-storage-costs/) + +This all results in shrinking the pool of people who have access to building home computers for any purpose, from gaming to coding to home labs, which in turn makes the tech industry less diverse due to people who have been historically marginalized having less financial resources to learn the skills at home. When this is factored in with the price of college being unaffordable in many places, we will see a sharper decline in disabled people, people of color, women, and the queer community entering the tech industry. From 416dc5f846f96c90732426581f50fb0aeb5a2c09 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 15 Jun 2026 14:38:07 +0200 Subject: [PATCH 295/413] remove the "could use some help" line as that's already covered in the CONTRIBUTING guide --- why_not_llms.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/why_not_llms.md b/why_not_llms.md index 2c2e341..6855ccf 100644 --- a/why_not_llms.md +++ b/why_not_llms.md @@ -1,7 +1,5 @@ # Why not LLMs? -Could use some help writing this with concrete receipts on environmental, social, political, and economic/labor harms. - * [Legal Ramifications](#legal-ramifications) * [Legal Cases And Law Problems](#legal-cases-and-law-problems) * [License Problems](#license-problems) From 205f48a1567f27226a5e4d5deb46bbfbd1077933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Mon, 15 Jun 2026 15:50:59 +0200 Subject: [PATCH 296/413] document contour terminal emulator LLM usage (#970) ### Description of Changes Add contour terminal emulator as tainted Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/970 Reviewed-by: Admin --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 3931d99..7d8b0e9 100644 --- a/README.md +++ b/README.md @@ -1669,6 +1669,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [Contour](https://github.com/contour-terminal/contour) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/contour-terminal/contour/pull/1900))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/contour-terminal/contour/pull/1900)) | | [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | | [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | @@ -1680,7 +1681,6 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!NOTE] > #### Alternative terminal emulators > * [Alacritty] or the [Alacritty fork with sixel] -> * [Contour Terminal] > * [COSMIC terminal] > * [Deepin Terminal] > * [foot] @@ -1900,7 +1900,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Clojure]: https://clojure.org [Cloud Shake]: https://shakebuild.com/cloud [console]: https://github.com/console-rs/console -[Contour Terminal]: https://github.com/contour-terminal/contour [COSMIC Terminal]: https://github.com/pop-os/cosmic-term [cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ From 91c75860d43eb0badcfe42d5c862f82d92c2dda3 Mon Sep 17 00:00:00 2001 From: dataliberation Date: Mon, 15 Jun 2026 15:56:42 +0200 Subject: [PATCH 297/413] add Haven (#962) ### Description of Changes This PR adds Haven as tainted. Per the README, "Haven is an interesting vibe coding experiment. Let's see what comes out of it." Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/962 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7d8b0e9..827b169 100644 --- a/README.md +++ b/README.md @@ -1592,6 +1592,7 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [ConnectBot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Haven](https://glasshaven.github.io/Haven/) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded)([1](https://github.com/GlassHaven/Haven/commit/1cece45f4166aa1ead4ccfd9275e370a972fd8e5)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) ## System Base From 0244d60e7f830b3613a74f19691a2e018efd2118 Mon Sep 17 00:00:00 2001 From: Euphy Date: Mon, 15 Jun 2026 16:27:26 +0200 Subject: [PATCH 298/413] add phpBB as tainted (#931) Co-authored-by: otyugh Co-authored-by: Euphy Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/931 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 827b169..f98e001 100644 --- a/README.md +++ b/README.md @@ -958,6 +958,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [phpBB](https://github.com/phpbb/phpbb) | [`3.3.16`](https://github.com/phpbb/phpbb/releases/tag/release-3.3.16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/phpbb/phpbb/commit/ddcf8f16d2dd254e5c74fb568d9ce83334f74db0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/phpbb/phpbb/pull/6802), [2](https://github.com/phpbb/phpbb/pull/6842), [3](https://github.com/phpbb/phpbb/pull/6959)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Fuzzy Finders From b962b8eef4a057df711cf33e72f9493b199b8cb2 Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Mon, 15 Jun 2026 17:35:37 +0200 Subject: [PATCH 299/413] Add xh and HTTPie as alternatives to curl (#980) ### Description of Changes This PR adds xh and HTTPie as alternatives to curl Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/980 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f98e001..1667526 100644 --- a/README.md +++ b/README.md @@ -1148,7 +1148,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://curl.se/dev/contribute.html#on-ai-use-in-curl), [2](https://mastodon.social/@bagder/116204333476519757))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://mastodon.social/@bagder/116609161259593989)) | [Wget](https://www.gnu.org/software/wget/) | +| [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://curl.se/dev/contribute.html#on-ai-use-in-curl), [2](https://mastodon.social/@bagder/116204333476519757))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://mastodon.social/@bagder/116609161259593989)) | [HTTPie](https://github.com/httpie/cli), [xh](https://github.com/ducaale/xh), [wget](https://www.gnu.org/software/wget/) | ### Reverse proxies From 720fa4e9c1321bfd3d35c7ccdaa0ee826ff93bbe Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 15 Jun 2026 19:17:57 +0200 Subject: [PATCH 300/413] rename ethical-tldr and ethical-tldr-client --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1667526..462ecc7 100644 --- a/README.md +++ b/README.md @@ -642,7 +642,7 @@ This is a section for repos that are similar to this one either because they are | --- |:---:| --- | --- | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/ethical-foss/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/ethical-foss/ethical-tldr-client) | ## Clipboard Managers From 4245a66897bd9cb2e13e5623475bf0c38fe6bf91 Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Mon, 15 Jun 2026 22:07:35 +0200 Subject: [PATCH 301/413] Add Amarok as alternative to Clementine and Strawberry (#984) ### Description of Changes This PR adds Amarok as alternative to Clementine and Strawberry Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/984 Reviewed-by: Admin --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 462ecc7..4ae5d32 100644 --- a/README.md +++ b/README.md @@ -450,11 +450,11 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [Clementine](https://www.clementine-player.org/) | [`1fc7fe0`](https://github.com/clementine-player/Clementine/commit/1fc7fe0e1e828a58f6a961aa4f75a7fbd7eb5786) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/clementine-player/Clementine/pull/7438), [2](https://github.com/clementine-player/Clementine/issues/7222#issuecomment-4477854268))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/clementine-player/Clementine/pull/7392#pullrequestreview-2811610522)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Clementine](https://www.clementine-player.org/) | [`1fc7fe0`](https://github.com/clementine-player/Clementine/commit/1fc7fe0e1e828a58f6a961aa4f75a7fbd7eb5786) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/clementine-player/Clementine/pull/7438), [2](https://github.com/clementine-player/Clementine/issues/7222#issuecomment-4477854268))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/clementine-player/Clementine/pull/7392#pullrequestreview-2811610522)) | [Amarok](https://amarok.kde.org/) | | [Fooyin](https://fooyin.org/) | [`e70aeee`](https://github.com/fooyin/fooyin/commit/e70aeee49aa8fad92fac3c726043f2c6075273c2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fooyin/fooyin/issues/578#issue-3206943314))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fooyin/fooyin/pull/1007#pullrequestreview-4065469376), [2](https://github.com/fooyin/fooyin/pull/579#pullrequestreview-3580786348)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Strawberry Music Player](https://strawberrymusicplayer.org) | [`39f9128`](https://github.com/strawberrymusicplayer/strawberry/commit/39f9128ecf30cc164c36a064f16e40d7e4f57d84)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/strawberrymusicplayer/strawberry/commit/f45ce7f3dc5213776b52be6c70baedc543d37f14), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1895), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#issue-3763263421))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/strawberrymusicplayer/strawberry/pull/1835#pullrequestreview-3624566956), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1913#pullrequestreview-3624360787), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#pullrequestreview-3624343989)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Strawberry Music Player](https://strawberrymusicplayer.org) | [`39f9128`](https://github.com/strawberrymusicplayer/strawberry/commit/39f9128ecf30cc164c36a064f16e40d7e4f57d84)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/strawberrymusicplayer/strawberry/commit/f45ce7f3dc5213776b52be6c70baedc543d37f14), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1895), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#issue-3763263421))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/strawberrymusicplayer/strawberry/pull/1835#pullrequestreview-3624566956), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1913#pullrequestreview-3624360787), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#pullrequestreview-3624343989)) | [Amarok](https://amarok.kde.org/) | ### Notation Software From 6de2621b8308066166347ec2ffa599fcf739d650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siarhiej=20Sacho=C5=ADski?= Date: Mon, 15 Jun 2026 22:11:13 +0200 Subject: [PATCH 302/413] Add Wayfire (#985) ### Description of Changes This PR Adds Wayfire As Tainted - Closes #542 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/985 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4ae5d32..8c142ae 100644 --- a/README.md +++ b/README.md @@ -1848,6 +1848,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | | [niri](https://github.com/niri-wm/niri) | [`v25.05.1`](https://github.com/niri-wm/niri/releases/tag/v25.05.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/niri-wm/niri/blob/main/CONTRIBUTING.md#ai-contributions), [2](https://github.com/niri-wm/niri/pull/2109))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/niri-wm/niri/pull/3651)) | | [Qtile](https://github.com/qtile/qtile) | [`v0.34.1`](https://github.com/qtile/qtile/releases/tag/v0.34.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/qtile/qtile/commit/0c5e1285124eaef419c93519de7465e95cbe64a3), [2](https://github.com/qtile/qtile/commit/1e3a2040d20e2df771b867899083ff00e9721665), [3](https://github.com/qtile/qtile/commit/f2c69f585a6b5d8dd7bcefd87f3dee539c29cdaa))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/qtile/qtile/pull/5743)) | +| [Wayfire](https://github.com/WayfireWM/wayfire) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WayfireWM/wayfire/commit/e486488419da461dbaae6ec22a717d197f143f10))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/WayfireWM/wayfire/pull/3012#issuecomment-4266081553)) | > [!NOTE] > ### Window Managers Alternatives From 4938d6ff04e62d88eecb6d552ca7171108bd529a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 07:32:52 +0200 Subject: [PATCH 303/413] add Audio Plugins and Virtual Instruments section with SurgeXT as tainted (#978) ### Description of Changes - Closes #450 (continuation of #646) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/978 --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 8c142ae..c289234 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) + * [Audio Plugins and Virtual Instruments](#audio-plugins-and-virtual-instruments) * [Digital Audio Workstations](#digital-audio-workstations) * [Music Players](#music-players) * [Notation Software](#notation-software) @@ -432,6 +433,12 @@ This is a section for repos that are similar to this one either because they are ## Audio +### Audio Plugins and Virtual Instruments + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [SurgeXT](https://surge-synthesizer.github.io/) | [`1.3.4`](https://github.com/surge-synthesizer/surge/releases/tag/release_xt_1.3.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/surge-synthesizer/surge/issues/8352), [2](https://github.com/surge-synthesizer/surge/issues/8285), [3](https://github.com/surge-synthesizer/surge/issues/8337)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Digital Audio Workstations | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) From 0f18f4aad170be79bc48be3085e27aaf79c8753f Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 07:34:15 +0200 Subject: [PATCH 304/413] clean up banned issue types --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ccf801e..37f7740 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -12,7 +12,7 @@ - No classism. - No fascism. -When it comes to bigotry, if you're found to have been broken one of the "No Bigotry" rules, you may not participate here. Your software is also disqualified from being listed as an alternative or suggested for a "More Kind Eyes" Issue. +When it comes to bigotry, if you're found to have been broken one of the "No Bigotry" rules, you may not participate here. Your software is also disqualified from being listed as an alternative or suggested for the "More Kind Eyes" or "Call for Collaborators" Issue types. ## On handling bigotry or unsavory content for the purposes of the open-slopware list From da0345b0871baa48125112ec99015759d66d3135 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Tue, 16 Jun 2026 07:35:07 +0200 Subject: [PATCH 305/413] add Flarum as an alternative for Forum Software (#983) ### Description of Changes no policy but it seems untainted. also removed a redundant # Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/983 Reviewed-by: Ethical FOSS admin --- README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c289234..fbb4111 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) * [Forum Software](#forum-software) + * [Forum Software Alternatives](#forum-software-alternatives) * [Fuzzy Finders](#fuzzy-finders) * [Gaming](#gaming) * [Cellular Automata](#cellular-automata) @@ -505,7 +506,7 @@ This is a section for repos that are similar to this one either because they are | [Transmission](https://github.com/transmission/transmission) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/transmission/transmission/pull/8910#pullrequestreview-4487711247), [2](https://github.com/transmission/transmission/pull/8060#pullrequestreview-4290261914), [3](https://github.com/transmission/transmission/pull/8830#pullrequestreview-4375949789))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/transmission/transmission/pull/8910), [2](https://github.com/transmission/transmission/issues/8494#issue-3940283505)) | > [!NOTE] -> #### BitTorrent Clients Alternatives +> ### BitTorrent Clients Alternatives > * [Deluge](https://github.com/deluge-torrent/deluge) > * [Fragments](https://gitlab.gnome.org/World/Fragments) @@ -962,10 +963,14 @@ This is a section for repos that are similar to this one either because they are ## Forum Software -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [phpBB](https://github.com/phpbb/phpbb) | [`3.3.16`](https://github.com/phpbb/phpbb/releases/tag/release-3.3.16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/phpbb/phpbb/commit/ddcf8f16d2dd254e5c74fb568d9ce83334f74db0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/phpbb/phpbb/pull/6802), [2](https://github.com/phpbb/phpbb/pull/6842), [3](https://github.com/phpbb/phpbb/pull/6959)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | +| [phpBB](https://github.com/phpbb/phpbb) | [`3.3.16`](https://github.com/phpbb/phpbb/releases/tag/release-3.3.16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/phpbb/phpbb/commit/ddcf8f16d2dd254e5c74fb568d9ce83334f74db0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/phpbb/phpbb/pull/6802), [2](https://github.com/phpbb/phpbb/pull/6842), [3](https://github.com/phpbb/phpbb/pull/6959)) | + +> [!NOTE] +> ### Forum Software Alternatives +> * [Flarum](https://github.com/flarum/flarum) ## Fuzzy Finders From 69e8cfff02595c46dcea3e9ce527a9a5af935eca Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 07:37:40 +0200 Subject: [PATCH 306/413] Add Frescobaldi and Denemo as alternatives to Musescore (#986) ### Description of Changes This PR adds Frescobaldi and Denemo as alternatives to Musescore Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/986 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbb4111..9033193 100644 --- a/README.md +++ b/README.md @@ -468,7 +468,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [MuseScore](https://github.com/musescore/MuseScore) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/musescore/MuseScore/blob/04ee563c5ed78f037c2fb5ded4b178a39922f1c0/.coderabbit.yaml))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/musescore/MuseScore/pull/33731#issuecomment-4648786222)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [MuseScore](https://github.com/musescore/MuseScore) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/musescore/MuseScore/blob/04ee563c5ed78f037c2fb5ded4b178a39922f1c0/.coderabbit.yaml))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/musescore/MuseScore/pull/33731#issuecomment-4648786222)) | [Denemo](https://denemo.org/), [Frescobaldi](https://frescobaldi.org/) | ### Podcast Aggregators From 9a1cc3583ab10715b21e64b3ddebd0532247a55d Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 07:42:18 +0200 Subject: [PATCH 307/413] Add Tauon Music Box (#977) Full credit to @awe who originally created this PR. Co-Authored by: @awe Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/977 --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9033193..bd9902d 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) - * [Audio Plugins and Virtual Instruments](#audio-plugins-and-virtual-instruments) + * [Audio Plugins and Virtual Instruments](#audio-plugins-and-virtual-instruments) * [Digital Audio Workstations](#digital-audio-workstations) * [Music Players](#music-players) * [Notation Software](#notation-software) @@ -438,7 +438,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [SurgeXT](https://surge-synthesizer.github.io/) | [`1.3.4`](https://github.com/surge-synthesizer/surge/releases/tag/release_xt_1.3.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/surge-synthesizer/surge/issues/8352), [2](https://github.com/surge-synthesizer/surge/issues/8285), [3](https://github.com/surge-synthesizer/surge/issues/8337)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [SurgeXT](https://surge-synthesizer.github.io/) | [`1.3.4`](https://github.com/surge-synthesizer/surge/releases/tag/release_xt_1.3.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/surge-synthesizer/surge/issues/8352), [2](https://github.com/surge-synthesizer/surge/issues/8285), [3](https://github.com/surge-synthesizer/surge/issues/8337)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Digital Audio Workstations @@ -463,6 +463,7 @@ This is a section for repos that are similar to this one either because they are | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Strawberry Music Player](https://strawberrymusicplayer.org) | [`39f9128`](https://github.com/strawberrymusicplayer/strawberry/commit/39f9128ecf30cc164c36a064f16e40d7e4f57d84)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/strawberrymusicplayer/strawberry/commit/f45ce7f3dc5213776b52be6c70baedc543d37f14), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1895), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#issue-3763263421))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/strawberrymusicplayer/strawberry/pull/1835#pullrequestreview-3624566956), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1913#pullrequestreview-3624360787), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#pullrequestreview-3624343989)) | [Amarok](https://amarok.kde.org/) | +| [Tauon Music Box](https://tauonmusicbox.rocks/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Taiko2k/Tauon/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Notation Software From fa4e4246507f1f6e57418e3f7999205a911ec9c9 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 07:48:26 +0200 Subject: [PATCH 308/413] update ratatui and add new alternative tui crates section (#976) ### Description of Changes Continuation of the work in #841 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/976 --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bd9902d..02bb088 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Python](#python) * [Rust](#rust) * [Alternative GUI crates](#alternative-gui-crates) + * [Alternative TUI crates](#alternative-tui-crates) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) * [Reverse Engineering and Debugging Alternatives](#reverse-engineering-and-debugging-alternatives) @@ -1489,7 +1490,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | [memchr](https://github.com/BurntSushi/memchr) | [`2.8.0`](https://github.com/BurntSushi/memchr/tree/2.8.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BurntSushi/memchr/commit/ee18717a7002a3299a6b5ef718084e76d958a5c3)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [PyO3](https://pyo3.rs) | [`v0.23.5`](https://github.com/PyO3/pyo3/releases/tag/v0.23.5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyO3/pyo3/pull/5615), [2](https://github.com/PyO3/pyo3/pull/5933), [3](https://github.com/PyO3/pyo3/pull/5870))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyO3/pyo3/pull/4768), [2](https://github.com/PyO3/pyo3/pull/5724), [3](https://github.com/PyO3/pyo3/pull/5729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | +| [ratatui](https://github.com/ratatui/ratatui) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/issues/2016#issuecomment-3512556433), [2](https://github.com/ratatui/ratatui/discussions/2201), [3](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998), [2](https://github.com/ratatui/ratatui/pull/1490)) |See below | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | | [Slint](https://github.com/slint-ui/slint) | [`1.14.1`](https://github.com/slint-ui/slint/tree/v1.14.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slint-ui/slint/blob/master/AGENTS.md), [2](https://github.com/slint-ui/slint/commit/f479ae6d8ee24de17634e22e8079374222a4a8fd)) | See below | | [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | @@ -1503,6 +1504,12 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > - [imgui](https://github.com/imgui-rs/imgui-rs) > - [relm](https://github.com/antoyo/relm) +> [!NOTE] +> #### Alternative TUI crates +> - [cursive](https://docs.rs/cursive/latest/cursive/) +> - [console](https://docs.rs/console/latest/console/) +> - [tui-rs](https://github.com/fdehau/tui-rs/releases/tag/v0.19.0) + > [!Note] > > Also, there is an advisory database of Rust slopware crates, which you can use in tools like From 4ca0cce32568592f5cbbff705911ac8301fad535 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 16 Jun 2026 10:10:12 +0200 Subject: [PATCH 309/413] Add "Anti-AI Policy" merit badge (#956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### Description of Changes Adds a new merit badge called "🌟 Anti-AI Policy" to distinguish alternatives that take a specific "No AI" stance. - Closes #935 - Changes the badge colors around a bit - "request for help" is now magenta - "ai databroker" is now white - Updates the README.md, STYLE.md, and CONTRIBUTING.md to reflect the change - cleans up the CONTRIBUTING.md file to explain more about adding alternatives - Applies new badge to all projects that had references to Anti-AI policies (and also gotosocial and wafrn) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/956 --- CONTRIBUTING.md | 15 +- README.md | 262 ++++++++---------- STYLE.md | 25 +- badges/ai-databroker-usage-pink.svg | 10 +- ...nality-yellow.svg => ai-functionality.svg} | 5 +- badges/anti-ai-policy.svg | 19 ++ badges/request-for-help.svg | 4 +- 7 files changed, 183 insertions(+), 157 deletions(-) rename badges/{ai-functionality-yellow.svg => ai-functionality.svg} (82%) create mode 100644 badges/anti-ai-policy.svg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96ce37f..5325745 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,7 +43,7 @@ Other tips for keeping the repo tidy and making sure we don't duplicate efforts: The criteria for being included in this repository are any of following tags. You can click each one to jump to the definition and acceptable evidence: - [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware#vibecoded) (only to be used in extreme cases) -- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) +- [![AI Functionality](./badges/ai-functionality.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) - [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/ethical-foss/open-slopware#permissive-ai-policy) - [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) - [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/ethical-foss/open-slopware#sponsored-by-ai) @@ -80,7 +80,18 @@ Do you see a project on this list that you wish was not on it? Please consider r ### Adding Alternatives to Tainted Software -Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry). You can absolute self-submit +Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry)). + +You can absolutely self-submit your own projects. + +Projects that have an explicit "No AI" policy can be awarded the [![Anti-AI Policy](./badges/anti-ai-policy.svg)](https://codeberg.org/ethical-foss/open-slopware#anti-ai-policy) badge. See the [style guide](./STYLE.md) for more info. + +#### Rules for self submission + +- no previous strikes or bans in the repo +- project is completely FOSS +- project has a "Code of Conduct" +- project has a "No AI Policy" #### Unqualified Alternatives diff --git a/README.md b/README.md index 02bb088..9fa1040 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo Any other questions? Please check out our [FAQ](./FAQ.md), and if your question isn't answered there, please feel free to start a [Discussion](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2fdiscussion.yaml). * [Definitions](#definitions) + * [Vibecoded](#vibecoded) * [Permissive AI Policy](#permissive-ai-policy) - * [Vibecoded](#vibecoded) * [AI Functionality](#ai-functionality) * [AI Code Reviews](#ai-code-reviews) * [Gen AI 'Art'](#gen-ai-art) @@ -29,17 +29,16 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [AI In Issue Tracker](#ai-in-issue-tracker) * [Condones LLM Ingestion](#condones-llm-ingestion) * [Request for Help](#request-for-help) + * [Anti-AI Policy](#anti-ai-policy) * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) * [Accessibility Tools](#accessibility-tools) * [Accounting and Budgeting](#accounting-and-budgeting) - * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) * [API Documentation](#api-documentation) * [App Catalogs and Downloaders](#app-catalogs-and-downloaders) * [App Launchers](#app-launchers) * [Desktop Launchers](#desktop-launchers) * [Mobile Launchers](#mobile-launchers) - * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) * [Audio Plugins and Virtual Instruments](#audio-plugins-and-virtual-instruments) * [Digital Audio Workstations](#digital-audio-workstations) @@ -54,7 +53,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) - * [Static Site Generators Alternatives](#static-site-generators-alternatives) * [Books and Library Software](#books-and-library-software) * [Bootloaders](#bootloaders) * [Browsers](#browsers) @@ -65,7 +63,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Cheat Sheets and Documentation](#cheat-sheets-and-documentation) * [Clipboard Managers](#clipboard-managers) - * [Clipboard Managers Alternatives](#clipboard-managers-alternatives) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Compiler Tools](#compiler-tools) @@ -88,18 +85,15 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Document Converters](#document-converters) * [Document Viewers](#document-viewers) * [E-Mail and Calendar](#e-mail-and-calendar) - * [E-mail Desktop Clients](#e-mail-desktop-clients) - * [E-mail Mobile Clients](#e-mail-mobile-clients) + * [E-Mail Desktop Clients](#e-mail-desktop-clients) + * [E-Mail Mobile Clients](#e-mail-mobile-clients) * [E-Mail Web Clients](#e-mail-web-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Comparison](#file-comparison) - * [Diff Alternatives](#diff-alternatives) * [File Monitoring](#file-monitoring) * [File Storage](#file-storage) - * [File Storage Alternatives](#file-storage-alternatives) * [File Tagging](#file-tagging) * [Music Taggers](#music-taggers) - * [Alternative Music Taggers](#alternative-music-taggers) * [File Transferring](#file-transferring) * [Filesystem Navigation](#filesystem-navigation) * [File Managers](#file-managers) @@ -110,35 +104,25 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Cellular Automata](#cellular-automata) * [Emulators](#emulators) * [Game engines](#game-engines) - * [Alternative game engines](#alternative-game-engines) * [Game Managers and Launchers](#game-managers-and-launchers) * [Mod managers](#mod-managers) * [Input Remapping](#input-remapping) * [Language and Localization](#language-and-localization) * [Learning](#learning) - * [Anki desktop alternatives](#anki-desktop-alternatives) * [Mapping](#mapping) - * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) * [Messaging Clients](#messaging-clients) - * [Messaging Client Alternatives by protocols](#messaging-client-alternatives-by-protocols) * [Messaging Servers](#messaging-servers) - * [Messaging Server Alternatives by protocols](#messaging-server-alternatives-by-protocols) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) - * [Alternative Microcontroller Tools and Libraries](#alternative-microcontroller-tools-and-libraries) * [Networking](#networking) + * [Reverse proxies](#reverse-proxies) * [Networking security tools](#networking-security-tools) - * [Networking security tool alternatives](#networking-security-tool-alternatives) * [Operating Systems](#operating-systems) * [BSD-based](#bsd-based) - * [Alternative BSD-based operating systems](#alternative-bsd-based-operating-systems) * [Linux-based](#linux-based) - * [Alternative Linux-based operating systems](#alternative-linux-based-operating-systems) * [Kernels](#kernels) - * [Other](#other-operating-systems) - * [Other alternative operating systems](#other-alternative-operating-systems) + * [Other Operating Systems](#other-operating-systems) * [Package Managers](#package-managers) - * [Package Manager Alternatives](#package-manager-alternatives) * [Password Management](#password-management) * [Cloud-based Password Managers](#cloud-based-password-managers) * [Local Password Managers](#local-password-managers) @@ -154,12 +138,12 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [JavaScript And TypeScript](#javascript-and-typescript) * [Lua](#lua) * [Python](#python) + * [Ruby](#ruby) * [Rust](#rust) * [Alternative GUI crates](#alternative-gui-crates) * [Alternative TUI crates](#alternative-tui-crates) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) - * [Reverse Engineering and Debugging Alternatives](#reverse-engineering-and-debugging-alternatives) * [Runtime Version Managers](#runtime-version-managers) * [Search](#search) * [Search Platforms](#search-platforms) @@ -168,31 +152,22 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Social Media](#social-media) * [Clients](#clients) * [Servers](#servers) - * [Social Media Server Alternatives](#social-media-server-alternatives) * [SSH](#ssh) * [System Base](#system-base) * [System Information Utilities](#system-information-utilities) - * [Alternative System Information Utilities](#alternative-system-information-utilities) * [System Logs Managers](#system-logs-managers) * [Android](#android) - * [Alternatives for Android](#alternatives-for-android) * [System Services and Daemons](#system-services-and-daemons) * [Power Management](#power-management) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) - * [Terminal Multiplexer Alternatives](#terminal-multiplexers-alternatives) * [Text and Code Editors](#text-and-code-editors) - * [Alternative Text And Code Editors](#alternative-text-and-code-editors) * [Note Software](#note-software) - * [Note Software Alternatives](#note-software-alternatives) * [Unified Push Distributors](#unified-push-distributors) - * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) * [Version Control Clients and Tooling](#version-control-clients-and-tooling) - * [Alternative Version Control Systems](#alternative-version-control-systems) * [Version Control Servers](#version-control-servers) - * [Alternative Version Control Servers](#alternative-version-control-servers) * [Virtualization](#virtualization) * [Volunteer Computing](#volunteer-computing) * [VPN Software](#vpn-software) @@ -213,22 +188,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question Below are special definitions that are used for tagging purposes. -## Permissive AI Policy - -![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) - -A policy that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a permissive AI policy. - -Evidence can be: - -- an explicit AI policy (e.g. `AI_POLICY.md`, `CONTRIBUTING.md`, developer docs) in the repo or something in the project's contributing guidelines or in their website's documentation that says that AI/LLMs are allowed -- an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. -- core maintainers' blog or social media post about using AI/LLMs - -> [!Important] -> If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. That tag is specifically meant for extreme cases only. - -### Vibecoded +## Vibecoded ![Vibecoded](./badges/vibecoded.svg) @@ -250,11 +210,26 @@ Evidence can be: - contributing/developer docs *requiring* the usage of AI > [!Important] -> Please note we only use the ![Vibecoded](./badges/vibecoded.svg) tag in extreme scenarios when a project is *mostly* coded using AI. +> Please note we only use the ![Vibecoded](./badges/vibecoded.svg) tag in extreme scenarios when a project is *mostly* coded using AI. If the project is not mostly vibecoded, you should prefer the ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) tag. + +## Permissive AI Policy + +![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) + +A policy that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a permissive AI policy. + +Evidence can be: + +- an explicit AI policy (e.g. `AI_POLICY.md`, `CONTRIBUTING.md`, developer docs) in the repo or something in the project's contributing guidelines or in their website's documentation that says that AI/LLMs are allowed +- an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. +- core maintainers' blog or social media post about using AI/LLMs + +> [!Important] +> If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. That tag is specifically meant for extreme cases only. ## AI Functionality -![AI Functionality](./badges/ai-functionality-yellow.svg) +![AI Functionality](./badges/ai-functionality.svg) This would include the ability to enable or disable an AI feature, such as an AI assistant or AI summary feature. This would also cover the case when a project depends on an AI program or library, such as an LLM SDK. @@ -347,6 +322,15 @@ Evidence can be: This means someone is asking for help with research. They would like it if you found the last known good version of a project or suggestions on alternatives for people to use. You can submit a pull request to add this info. +## Anti-AI Policy + +![Anti-AI Policy](./badges/anti-ai-policy.svg) + +This a special badge with a positive connotation. It certifies that a project, that's been recommended as an alternative, has a *Clear* "No AI" policy. This means the project forbids the use of AI and LLMs and does not have any special carve outs where they've condoned their usage. These projects should always be preferred as all other alternative projects listed are considered to have a neutral stance on AI until they put out an official policy. + +> [!Note] +> Previous tainted status does not disqualify a project for this tag. Any project that was previously tainted, but took the steps for Removal (removed AI functionality, removed LLM agent instructions, and put out a No AI policy), can have this badge. + # Sibling Repos This is a section for repos that are similar to this one either because they are also forks of the original upstream, or because they align with our goal of identifying and avoiding AI/LLM usage OR identifying/elevating projects that do NOT use AI/LLMs. These repos are not all maintained by the same people, but we may share some contributors and are generally kind FOSS neighbors. ✨ @@ -384,7 +368,7 @@ This is a section for repos that are similar to this one either because they are | [KMyMoney](https://kmymoney.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://invent.kde.org/office/kmymoney/-/issues/49#note_1331389)) | | [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | | [MyExpenses](https://myexpenses.mobi/) | [`47ab235`](https://github.com/mtotschnig/MyExpenses/commit/47ab235ace5161220d3fa44eb4ab13d2e71030ee) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mtotschnig/MyExpenses/commit/ab7b802b7e65516bc05076651e81ef49f6111eac))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mtotschnig/MyExpenses/pull/1948#pullrequestreview-4321501043), [2](https://github.com/mtotschnig/MyExpenses/pull/1944#pullrequestreview-4291334840), [3](https://github.com/mtotschnig/MyExpenses/pull/1934#pullrequestreview-4208237200)) | -| [ODoo](https://www.odoo.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.odoo.com/documentation/19.0/applications/productivity/ai.html)) | +| [ODoo](https://www.odoo.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.odoo.com/documentation/19.0/applications/productivity/ai.html)) | | [ProExpenses](https://github.com/arduia/ProExpense) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/arduia/ProExpense/pull/89)) | | [Recurring Expense Tracker](https://f-droid.org/en/packages/de.dbauer.expensetracker/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DennisBauer/RecurringExpenseTracker/pull/748#pullrequestreview-3351802682), [2](https://github.com/DennisBauer/RecurringExpenseTracker/pull/740#pullrequestreview-3329344288)) | @@ -404,7 +388,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## App Catalogs and Downloaders @@ -445,7 +429,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | +| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | @@ -462,7 +446,7 @@ This is a section for repos that are similar to this one either because they are | [Clementine](https://www.clementine-player.org/) | [`1fc7fe0`](https://github.com/clementine-player/Clementine/commit/1fc7fe0e1e828a58f6a961aa4f75a7fbd7eb5786) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/clementine-player/Clementine/pull/7438), [2](https://github.com/clementine-player/Clementine/issues/7222#issuecomment-4477854268))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/clementine-player/Clementine/pull/7392#pullrequestreview-2811610522)) | [Amarok](https://amarok.kde.org/) | | [Fooyin](https://fooyin.org/) | [`e70aeee`](https://github.com/fooyin/fooyin/commit/e70aeee49aa8fad92fac3c726043f2c6075273c2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fooyin/fooyin/issues/578#issue-3206943314))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fooyin/fooyin/pull/1007#pullrequestreview-4065469376), [2](https://github.com/fooyin/fooyin/pull/579#pullrequestreview-3580786348)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | -| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Strawberry Music Player](https://strawberrymusicplayer.org) | [`39f9128`](https://github.com/strawberrymusicplayer/strawberry/commit/39f9128ecf30cc164c36a064f16e40d7e4f57d84)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/strawberrymusicplayer/strawberry/commit/f45ce7f3dc5213776b52be6c70baedc543d37f14), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1895), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#issue-3763263421))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/strawberrymusicplayer/strawberry/pull/1835#pullrequestreview-3624566956), [2](https://github.com/strawberrymusicplayer/strawberry/pull/1913#pullrequestreview-3624360787), [3](https://github.com/strawberrymusicplayer/strawberry/pull/1922#pullrequestreview-3624343989)) | [Amarok](https://amarok.kde.org/) | | [Tauon Music Box](https://tauonmusicbox.rocks/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Taiko2k/Tauon/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -521,12 +505,12 @@ This is a section for repos that are similar to this one either because they are | [Backdrop CMS](https://backdropcms.org/) | [`1.33.2`](https://github.com/backdrop/backdrop/releases/tag/1.33.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/backdrop/backdrop-issues/issues/440#issuecomment-4357835721)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | -| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/blob/main/AGENTS.md), [2](https://github.com/TryGhost/Ghost/pull/27666), [3](https://github.com/TryGhost/Ghost/pull/27642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TryGhost/Ghost/pull/27667), [2](https://github.com/TryGhost/Ghost/pull/27211)) | [WriteFreely] | -| [ProcessWire](https://www.processwire.com) | [`89cd626`](https://github.com/processwire/processwire/commit/89cd626f7f87d041a4423d896cf225dd42a5ee66) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://processwire.com/modules/agent-tools/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://processwire.com/blog/posts/processwire-and-ai/), [2](https://github.com/processwire/processwire/blob/dev/AGENTS.md), [3](https://github.com/processwire/processwire/blob/dev/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md)) | [WriteFreely] | -| [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092)) | [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/), [2](https://wordpress.org/download/releases/7.0/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449)) | [WriteFreely] | +| [ProcessWire](https://www.processwire.com) | [`89cd626`](https://github.com/processwire/processwire/commit/89cd626f7f87d041a4423d896cf225dd42a5ee66) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://processwire.com/modules/agent-tools/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://processwire.com/blog/posts/processwire-and-ai/), [2](https://github.com/processwire/processwire/blob/dev/AGENTS.md), [3](https://github.com/processwire/processwire/blob/dev/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md)) | [WriteFreely] | +| [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092)) | [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/), [2](https://wordpress.org/download/releases/7.0/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449)) | [WriteFreely] | ### Static Site Generators @@ -555,7 +539,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Booklore](https://github.com/the-booklore/booklore/tree/develop) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | -| [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | +| [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [Futon](https://github.com/AppFuton/Futon) | [`5754292`](https://github.com/AppFuton/Futon/commit/57542921c342be555fd2d1835621c0317590aa6a), version [9.6.6](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | [Taison](https://f-droid.org/en/packages/com.gent8.taison/), [Komelia](https://f-droid.org/en/packages/io.github.snd_r.komelia) | | [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LANraragi](https://github.com/Difegue/LANraragi) | [`1cfd949`](https://github.com/Difegue/LANraragi/commit/1cfd949c45f00221126a2996df5dabf8ed9964fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Difegue/LANraragi/pull/1220#issue-2973877545))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Difegue/LANraragi/pull/1218#pullrequestreview-2728016763)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -580,12 +564,12 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Brave] | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://brave.com/ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/brave/brave-core/blob/master/CONTRIBUTING.md#ai-assisted-contributions), [2](https://github.com/brave/brave-core/blob/master/.claude/CLAUDE.md), [3](https://github.com/brave/brave-core/commit/55bc3c7913751174c2f727d4d5c16360c85196b5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/brave/brave-core/pull/34783), [2](https://github.com/brave/brave-core/pull/35614), [3](https://github.com/brave/brave-core/pull/35818))| +| [Brave] | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://brave.com/ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/brave/brave-core/blob/master/CONTRIBUTING.md#ai-assisted-contributions), [2](https://github.com/brave/brave-core/blob/master/.claude/CLAUDE.md), [3](https://github.com/brave/brave-core/commit/55bc3c7913751174c2f727d4d5c16360c85196b5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/brave/brave-core/pull/34783), [2](https://github.com/brave/brave-core/pull/35614), [3](https://github.com/brave/brave-core/pull/35818))| | Chromium/Blink engine | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.claude), [2](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.gemini), [3](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.agents)) | -| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | +| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | | [Ladybird](https://github.com/LadybirdBrowser/ladybird) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://ladybird.org/posts/adopting-rust/)) | | [WebKit](https://webkit.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WebKit/WebKit/tree/57438b0e69831fedd7851825b33b09a0917c9b74/.codex), [2](https://github.com/WebKit/WebKit/tree/57438b0e69831fedd7851825b33b09a0917c9b74/.gemini), [3](https://github.com/WebKit/WebKit/commit/94ffd831d1e5df97d5b8a7c5cbe8baa162670482)) | -| [Zen](https://github.com/zen-browser/desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zen-browser/desktop/issues/7742#issuecomment-3062859362), [2](https://github.com/zen-browser/desktop/pull/12826))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.zen-browser.app/user-manual/shortcuts#other-features:~:text=Toggle%20AI%20Chatbot%20Sidebar)) | +| [Zen](https://github.com/zen-browser/desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zen-browser/desktop/issues/7742#issuecomment-3062859362), [2](https://github.com/zen-browser/desktop/pull/12826))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.zen-browser.app/user-manual/shortcuts#other-features:~:text=Toggle%20AI%20Chatbot%20Sidebar)) | > [!Note] > #### Desktop Browser Alternatives @@ -599,14 +583,14 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [Lightpanda](https://lightpanda.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://lightpanda.io/), [2](https://lightpanda.io/docs/open-source/usage#mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lightpanda-io/browser/commit/b373fb4a424119c314da7c8a62aa3811c6a4698c), [2](https://github.com/lightpanda-io/browser/commit/1bdf464ef2c228bc53cc2eb52b07a4f56a9f750e), [3](https://github.com/lightpanda-io/browser/commit/fe9b2e672bce8d27457518cfd550c9fb9bbbc75b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Lightpanda](https://lightpanda.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://lightpanda.io/), [2](https://lightpanda.io/docs/open-source/usage#mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lightpanda-io/browser/commit/b373fb4a424119c314da7c8a62aa3811c6a4698c), [2](https://github.com/lightpanda-io/browser/commit/1bdf464ef2c228bc53cc2eb52b07a4f56a9f750e), [3](https://github.com/lightpanda-io/browser/commit/fe9b2e672bce8d27457518cfd550c9fb9bbbc75b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Mobile Browsers | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Brave] | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://brave.com/ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/brave/brave-core/blob/master/CONTRIBUTING.md#ai-assisted-contributions), [2](https://github.com/brave/brave-core/blob/master/.claude/CLAUDE.md), [3](https://github.com/brave/brave-core/commit/55bc3c7913751174c2f727d4d5c16360c85196b5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/brave/brave-core/pull/34783), [2](https://github.com/brave/brave-core/pull/35614), [3](https://github.com/brave/brave-core/pull/35818))| -| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | +| [Brave] | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://brave.com/ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/brave/brave-core/blob/master/CONTRIBUTING.md#ai-assisted-contributions), [2](https://github.com/brave/brave-core/blob/master/.claude/CLAUDE.md), [3](https://github.com/brave/brave-core/commit/55bc3c7913751174c2f727d4d5c16360c85196b5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/brave/brave-core/pull/34783), [2](https://github.com/brave/brave-core/pull/35614), [3](https://github.com/brave/brave-core/pull/35818))| +| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | > [!Note] > #### Mobile Browser Alternatives @@ -619,9 +603,9 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | | [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | -| [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | +| [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | | [Mill](https://mill-build.org/) | [`v1.0.6`](https://github.com/com-lihaoyi/mill/releases/tag/1.0.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/com-lihaoyi/mill/blob/main/AGENTS.md), [2](https://github.com/com-lihaoyi/mill/blob/main/CLAUDE.md)) | See Below | -| [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | See Below | +| [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | See Below | | [SCons](https://scons.org/) | [`4.10.1`](https://github.com/SCons/scons/releases/tag/4.10.1/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/SCons/scons/blob/8ea152eddff6afa11f94108a10283bd6378a3dfa/AGENTS.md)) | [Waf](https://waf.io/) or See Below | | [sbt](https://www.scala-sbt.org/) | [`1.12.3`](https://github.com/sbt/sbt/releases/tag/v1.12.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt/blob/develop/AGENTS.md), [2](https://github.com/sbt/sbt/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | See Below | | [Taskfile](https://taskfile.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/go-task/task/pull/2592#pullrequestreview-3596720069)) | See Below | @@ -674,7 +658,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [brush](https://github.com/reubeno/brush) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reubeno/brush/blob/main/AGENTS.md), [2](https://github.com/reubeno/brush/blob/main/.github/copilot-instructions.md), [3](https://github.com/reubeno/brush/commit/4ca78babcb2111d34e26cdda6622b0fa2611bb32))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reubeno/brush/pull/1167), [2](https://github.com/reubeno/brush/pull/1080), [3](https://github.com/reubeno/brush/pull/1078))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/reubeno/brush/blob/8ea83d7/README.md)) | | [Hilbish](https://github.com/sammy-ette/Hilbish/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/sammy-ette/Hilbish/pull/362#pullrequestreview-4117077021), [2](https://github.com/sammy-ette/Hilbish/pull/358#pullrequestreview-4117094312)) | -| [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | +| [nushell](https://www.nushell.sh/) | [`0.79.0`](https://github.com/nushell/nushell/releases/0.79.0) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27), [2](https://github.com/nushell/nushell/commit/67952a46ad3df4ec5bea6f1a26d8f40585f1c65f), [3](https://github.com/nushell/nushell/pull/9145#issuecomment-1544593839)) | | [Oil Shell](https://github.com/oils-for-unix/oils) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | | [xonsh](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | @@ -703,12 +687,12 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696)) | Built-in shell history | +| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696)) | Built-in shell history | | [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ohmyposh.dev/docs/segments/cli/claude))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://ohmyposh.dev/docs/segments/cli/claude))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/starship/starship/pull/7451#pullrequestreview-4214288411)) | [shmonad](https://github.com/matthunz/shmonad) | +| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/starship/starship/pull/7451#pullrequestreview-4214288411)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers @@ -734,7 +718,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Blender](https://www.blender.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.blender.org/lab/mcp-server/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devtalk.blender.org/t/ai-contributions-policy/44202), [2](https://github.com/blender/blender/commit/336b5d0de12a438614846961b7961bbf35399eb3), [3](https://github.com/blender/blender/commit/79e02e1405a98884cc8fd5505cc54df2c2dc5d21))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/), [2](https://mastodon.social/@Blender/116482997785333001), [3](https://bsky.app/profile/blender.org/post/3mkkuyq3ijs2q)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Blender](https://www.blender.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.blender.org/lab/mcp-server/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devtalk.blender.org/t/ai-contributions-policy/44202), [2](https://github.com/blender/blender/commit/336b5d0de12a438614846961b7961bbf35399eb3), [3](https://github.com/blender/blender/commit/79e02e1405a98884cc8fd5505cc54df2c2dc5d21))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/), [2](https://mastodon.social/@Blender/116482997785333001), [3](https://bsky.app/profile/blender.org/post/3mkkuyq3ijs2q)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [F3D](https://f3d.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/f3d-app/f3d/blob/f908304004003a7fecadcd0b0f20bb772ba3f512/AI_POLICY.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://f3d.app/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Image Manipulation @@ -745,7 +729,7 @@ This is a section for repos that are similar to this one either because they are | [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] | [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | -| [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | +| [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | ### Interactive Media @@ -776,7 +760,7 @@ This is a section for repos that are similar to this one either because they are | [mpv](https://github.com/mpv-player/mpv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md#ai-assisted-contributions)) | [MPlayer](https://mplayerhq.hu/)
[Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | | [NewPipe](https://newpipe.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TeamNewPipe/NewPipe?tab=contributing-ov-file#ai-policy)) | [LibreTube] | | [PipePipe](https://pipepipe.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/InfinityLoop1308/PipePipeClient/blob/dev/CLAUDE.md)) | [LibreTube] | -| [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | +| [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based)
[QMPlay2] (ffmpeg+libmodplug-based) | ## Containers @@ -824,7 +808,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [supabase](https://supabase.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/supabase/supabase/tree/master/packages/ai-commands), [2](https://supabase.com/docs/guides/ai), [3](https://supabase.com/docs/guides/ai-tools))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/supabase/supabase/blob/master/.claude/CLAUDE.md), [2](https://github.com/supabase/supabase/tree/master/.cursor)) | [PocketBase](https://pocketbase.io/) | +| [supabase](https://supabase.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/supabase/supabase/tree/master/packages/ai-commands), [2](https://supabase.com/docs/guides/ai), [3](https://supabase.com/docs/guides/ai-tools))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/supabase/supabase/blob/master/.claude/CLAUDE.md), [2](https://github.com/supabase/supabase/tree/master/.cursor)) | [PocketBase](https://pocketbase.io/) | ## Device Exploiting @@ -861,14 +845,14 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---------|:--------------:|----------|-------| -| [FairEmail](https://github.com/M66B/FairEmail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/M66B/FairEmail/blob/master/FAQ.md#faq190)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [FairEmail](https://github.com/M66B/FairEmail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/M66B/FairEmail/blob/master/FAQ.md#faq190)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [thunderbird android/k-9 mail](https://github.com/thunderbird/thunderbird-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/thunderbird/thunderbird-android/blob/main/AGENTS.md)) | [Simple Email](https://framagit.org/dystopia-project/simple-email) | ### E-Mail Web Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---------|:--------------:|----------|-------| -| [Proton Mail](https://proton.me/mail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://proton.me/blog/proton-scribe-writing-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ProtonMail/WebClients/commit/4825a7cf6b1285784e5861d067a2c3c6a37715c4), [2](https://github.com/ProtonMail/WebClients/commit/064e5ee4b72ac84c5ce597fdc8a62a4f74415b99)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Proton Mail](https://proton.me/mail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://proton.me/blog/proton-scribe-writing-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ProtonMail/WebClients/commit/4825a7cf6b1285784e5861d067a2c3c6a37715c4), [2](https://github.com/ProtonMail/WebClients/commit/064e5ee4b72ac84c5ce597fdc8a62a4f74415b99)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Tuta](https://tuta.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tutao/tutanota/pull/10817))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/tutao/tutanota/pull/10112), [2](https://github.com/tutao/tutanota/pull/10282))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Calendar Mobile Clients @@ -903,10 +887,10 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Ente Locker](https://ente.com/locker/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ente-io/ente/commit/3fbe3a463b50aa52028c33acd10f7d1d94c7c368)) | -| [Immich](https://immich.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immich-app/immich?tab=contributing-ov-file#use-of-generative-ai))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.immich.app/features/facial-recognition), [2](https://docs.immich.app/features/searching), [3](https://docs.immich.app/features/ml-hardware-acceleration)) | +| [Immich](https://immich.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immich-app/immich?tab=contributing-ov-file#use-of-generative-ai))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.immich.app/features/facial-recognition), [2](https://docs.immich.app/features/searching), [3](https://docs.immich.app/features/ml-hardware-acceleration)) | | [JuiceFS](https://juicefs.com/en/) | [`v1.2.3`](https://github.com/juicedata/juicefs/releases/tag/v1.2.3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/juicedata/juicefs/pull/6241)) | | [MinIO](https://www.min.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/minio/minio)) | -| [Nextcloud](https://nextcloud.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextcloud/desktop/blob/master/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextcloud.com/assistant/)) | +| [Nextcloud](https://nextcloud.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextcloud/desktop/blob/master/AGENTS.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://nextcloud.com/assistant/)) | | [Rook/Ceph](https://rook.io/) | [`v1.17.0`](https://github.com/rook/rook/releases/tag/v1.17.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rook/rook/pull/15563#pullrequestreview-2724068439)) | | [RustFS](https://rustfs.com/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rustfs/rustfs/blob/main/AGENTS.md), [2](https://github.com/rustfs/rustfs/commit/6ce24f3b632f86c456a95d6e8b6ba9d05c8e4ae5), [3](https://github.com/rustfs/rustfs/commit/2bf4b1439495db1aeed5bbe474083a04a25f69e5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rustfs/rustfs/pull/2584), [2](https://github.com/rustfs/rustfs/pull/2583), [3](https://github.com/rustfs/rustfs/pull/2581)) | | [SeaweedFS](https://seaweedfs.com/) | [`3.87`](https://github.com/seaweedfs/seaweedfs/releases/tag/3.87) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/seaweedfs/seaweedfs/pull/7996)) | @@ -967,7 +951,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | +| [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | | [phpBB](https://github.com/phpbb/phpbb) | [`3.3.16`](https://github.com/phpbb/phpbb/releases/tag/release-3.3.16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/phpbb/phpbb/commit/ddcf8f16d2dd254e5c74fb568d9ce83334f74db0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/phpbb/phpbb/pull/6802), [2](https://github.com/phpbb/phpbb/pull/6842), [3](https://github.com/phpbb/phpbb/pull/6959)) | > [!NOTE] @@ -1091,16 +1075,16 @@ This is a section for repos that are similar to this one either because they are | [Fluxer](https://fluxer.app/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260213205023/https://blog.fluxer.app/how-i-built-fluxer-a-discord-like-chat-app/), [2](https://github.com/fluxerapp/fluxer/blob/refactor/CONTRIBUTING.md#4-understand-the-code-you-submit), [3](https://github.com/fluxerapp/fluxer/issues/435)) | | [Fluux Messenger](https://fluux.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/processone/fluux-messenger/blob/bfa4d9aa74e9600d41f4e690c5402702100462ea/.claude/skills/perf-stress-ui/SKILL.md)) | | [gomuks](https://github.com/gomuks/gomuks) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gomuks/gomuks/commit/5d6c1ba57cc4617ef1218805b1cfd0d1f7613ed0)) -| [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| +| [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| | [Nerimity](https://github.com/Nerimity/nerimity-web) | [`9077876`](https://github.com/Nerimity/nerimity-web/commit/90778766e5947540f5fcbe5075247c8990507f40) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Nerimity/nerimity-web/pull/638), [2](https://github.com/Nerimity/nerimity-web/pull/621), [3](https://github.com/Nerimity/nerimity-web/pull/605))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Session](https://getsession.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/session-foundation/session-appium/commit/3efbbeb1b1f5b7a47cbdb6ffc0891837ef88a5cf), [2](https://github.com/session-foundation/session-router/commit/9670e23d885714bc858ac6bd40092bcfb746bee3), [3](https://github.com/session-foundation/session-appium/commit/57b0fc8a1c0e4f4b1536ff5543782494255ef891))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/session-foundation/session-desktop/pull/1934), [2](https://github.com/session-foundation/websites/pull/81), [3](https://github.com/session-foundation/session-appium/pull/105)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | | [Spark](https://github.com/igniterealtime/Spark) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/igniterealtime/Spark/blob/d977a219bd13553aac33cdef2861dfeb5b93acb2/AGENTS.md), [2](https://github.com/igniterealtime/Spark/commit/364d1a837f2e84119bc244f4de7040548c93fcc3), [3](https://github.com/igniterealtime/Spark/commit/a0f28184ad4b695f3)) | -| [SimpleX](https://simplex.chat/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/simplex-chat/simplex-chat/blob/d6c9c0ee47ede2df319eb131df5a5362a680f089/apps/simplex-support-bot/plans/20260207-support-bot.md#53-grok-integration), [2](https://github.com/simplex-chat/simplex-chat/commit/5a3dfdd2b440382868cf70e56057d18848c51e4c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/simplex-chat/simplex-chat/blob/12fbf61f326e15ee643c72b3202bbcd6a758a07f/docs/CONTRIBUTING.md#follow-project-structure-coding-style-and-approaches), [2](https://github.com/simplex-chat/simplex-chat/commit/b0e6a7bfc12f0e08a84f939981fb731c0967e0e7), [3](https://github.com/simplex-chat/simplex-chat/commit/427ce1b3ff7d226d227c0b215304779b28a4ea5f)) | -| [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| +| [SimpleX](https://simplex.chat/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/simplex-chat/simplex-chat/blob/d6c9c0ee47ede2df319eb131df5a5362a680f089/apps/simplex-support-bot/plans/20260207-support-bot.md#53-grok-integration), [2](https://github.com/simplex-chat/simplex-chat/commit/5a3dfdd2b440382868cf70e56057d18848c51e4c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/simplex-chat/simplex-chat/blob/12fbf61f326e15ee643c72b3202bbcd6a758a07f/docs/CONTRIBUTING.md#follow-project-structure-coding-style-and-approaches), [2](https://github.com/simplex-chat/simplex-chat/commit/b0e6a7bfc12f0e08a84f939981fb731c0967e0e7), [3](https://github.com/simplex-chat/simplex-chat/commit/427ce1b3ff7d226d227c0b215304779b28a4ea5f)) | +| [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Threema](https://threema.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/threema-ch/threema-desktop/blob/stable/AGENTS.md), [2](https://github.com/threema-ch/sentry-cocoa/blob/c8998045e43300510de1c1cf4860b6bd3c2de990/AGENTS.md?plain=1#L514)) | -| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | +| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] > #### Messaging Client Alternatives by protocols @@ -1135,7 +1119,7 @@ This is a section for repos that are similar to this one either because they are | [BouffaloSDK](https://github.com/bouffalolab/bouffalo_sdk) | [`2.0.0`](https://github.com/bouffalolab/bouffalo_sdk/tree/V2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bouffalolab/bouffalo_sdk/blob/master/CLAUDE.md), [2](https://github.com/bouffalolab/bouffalo_sdk/tree/master/.claude/skills), [3](https://github.com/bouffalolab/bouffalo_sdk/blob/master/components/wireless/wl80211/CLAUDE.md)) | See below | | [ch32-hal](https://github.com/ch32-rs/ch32-hal) | [`07687b9`](https://github.com/ch32-rs/ch32-hal/commit/07687b9f8d7b3823ef91ca23baa21663025c0346) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ch32-rs/ch32-hal/pull/161), [2](https://github.com/ch32-rs/ch32-hal/pull/151), [3](https://github.com/ch32-rs/ch32-hal/pull/139))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://avatars.githubusercontent.com/u/104085502?s=200&v=4)) | See below | | [esphome](https://github.com/esphome/esphome) | [`a31a5e7`](https://github.com/esphome/esphome/commit/a31a5e74bdfa3ece19c502a91f81b0d93414bd67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/esphome/esphome/blob/dev/.ai/instructions.md), [2](https://github.com/esphome/esphome/blob/dev/.claude/skills/pr-workflow/SKILL.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/esphome/esphome/pull/16018#pullrequestreview-4176888667), [2](https://github.com/esphome/esphome/pull/15997#pullrequestreview-4175883662)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ESP-IDF](https://github.com/espressif/esp-idf) | [`5.5.2`](https://github.com/espressif/esp-idf/releases/tag/v5.5.2) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-py.html#esp-idf-mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espressif/esp-idf/commit/a4c014f96ed024ba5139e2e91258ee785741d611), [2](https://github.com/espressif/esp-idf/commit/20b9e06e9262af45863bd7cc7afeba3513083266), [3](https://github.com/espressif/esp-idf/commit/380dde02d0e48a9e85abb0392ce27dcaf9322c36))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espressif/esp-idf/pull/18195), [2](https://github.com/espressif/esp-idf/pull/18273), [3](https://github.com/espressif/esp-idf/pull/18283)) | See below | +| [ESP-IDF](https://github.com/espressif/esp-idf) | [`5.5.2`](https://github.com/espressif/esp-idf/releases/tag/v5.5.2) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-py.html#esp-idf-mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espressif/esp-idf/commit/a4c014f96ed024ba5139e2e91258ee785741d611), [2](https://github.com/espressif/esp-idf/commit/20b9e06e9262af45863bd7cc7afeba3513083266), [3](https://github.com/espressif/esp-idf/commit/380dde02d0e48a9e85abb0392ce27dcaf9322c36))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espressif/esp-idf/pull/18195), [2](https://github.com/espressif/esp-idf/pull/18273), [3](https://github.com/espressif/esp-idf/pull/18283)) | See below | | [FastLED](https://fastled.io/) | [`3.10.1`](https://github.com/FastLED/FastLED/releases/tag/3.10.1)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FastLED/FastLED/blob/master/ADVANCED_DEVELOPMENT.md#enabling-ai-coding), [2](https://github.com/FastLED/FastLED/commit/a7fcbf316fe7b0d6759e8d9955a22ff9df4328b2), [3](https://github.com/FastLED/FastLED/commit/bcfc3c0ff8b464a50a7f5f0a8b7437131fe08995)) | See below | | [WLED](https://github.com/wled/WLED) | [`62d3e15`](https://github.com/wled/WLED/commit/62d3e155bde1077bf5784eb481cdc6e0059f993a) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wled/WLED/blob/main/AGENTS.md), [2](https://github.com/wled/WLED/blob/main/.github/agent-build.instructions.md), [3](https://github.com/wled/WLED/blob/main/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wled/WLED/pull/5547#issuecomment-4321911776), [2](https://github.com/wled/WLED/pull/5503#issuecomment-4238198330)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1196,29 +1180,29 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Alternative BSD-based operating systems -> * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) -> * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) -> * [NetBSD](https://www.netbsd.org/) has [allowed core maintainers to sign off on LLM generated code](https://www.netbsd.org/developers/commit-guidelines.html), but to date they have not yet. +> * [HyperbolaBSD](https://www.hyperbola.info/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning)) +> * [MirBSD](https://mbsd.evolvis.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021)) +> * [NetBSD](https://www.netbsd.org/) [allows core maintainers to sign off on LLM generated code](https://www.netbsd.org/developers/commit-guidelines.html), but to date they have not yet. ### Linux-based | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Aurora](https://getaurora.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.getaurora.dev/guides/local-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/aurora/blob/main/AGENTS.md)) | See below | -| [Bluefin](https://projectbluefin.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.projectbluefin.io/ai/), [2](https://ask.projectbluefin.io/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/bluefin/blob/main/AGENTS.md)) | See below | +| [Aurora](https://getaurora.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.getaurora.dev/guides/local-ai/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/aurora/blob/main/AGENTS.md)) | See below | +| [Bluefin](https://projectbluefin.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.projectbluefin.io/ai/), [2](https://ask.projectbluefin.io/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ublue-os/bluefin/blob/main/AGENTS.md)) | See below | | [Fedora](https://fedoraproject.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.fedoraproject.org/en-US/council/policy/ai-contribution-policy/)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | | [OpenWrt](https://openwrt.org) | [`7214acd`](https://github.com/openwrt/openwrt/commit/7214acd7599a25863d6185a036d878b593b4b16c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openwrt/openwrt/commit/af3cbd4013a2c8c82450e4a4b21a73d28ab4cda2), [2](https://github.com/openwrt/openwrt/pull/21284), [3](https://github.com/openwrt/openwrt/commit/410277ca12d811daa8040edf75dfd87a2d9dd5f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openwrt/openwrt/pull/22565), [2](https://github.com/openwrt/openwrt/pull/22421), [3](https://github.com/openwrt/openwrt/pull/22543)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Ubuntu](https://ubuntu.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ubuntu.com/ai), [2](https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130)) | See below | +| [Ubuntu](https://ubuntu.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://ubuntu.com/ai), [2](https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130)) | See below | > [!NOTE] > #### Alternative Linux-based operating systems -> * [Chimera Linux](https://chimera-linux.org/) has [banned LLMs](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing) -> * [elementary OS](https://elementary.io/) has [banned LLMs](https://docs.elementary.io/contributor-guide/development/generative-ai-policy) -> * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) -> * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) -> * [postmarketOS](https://postmarketos.org/) has [banned LLMs](https://docs.postmarketos.org/policies-and-processes/development/ai-policy.html) -> * [secureblue](https://secureblue.dev/) has [banned LLMs](https://secureblue.dev/contributing#ai-content) +> * [Chimera Linux](https://chimera-linux.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing)) +> * [elementary OS](https://elementary.io/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://docs.elementary.io/contributor-guide/development/generative-ai-policy)) +> * [Gentoo Linux](https://www.gentoo.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) +> * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning)) +> * [postmarketOS](https://postmarketos.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://docs.postmarketos.org/policies-and-processes/development/ai-policy.html)) +> * [secureblue](https://secureblue.dev/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://secureblue.dev/contributing#ai-content)) ### Kernels @@ -1237,10 +1221,10 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Other alternative operating systems -> * [9front](https://9front.org/) has [banned computer generated code](https://git.9front.org/plan9front/9front/e4deac62c80e0d7910ceb49b1f41f2fbdcdc85db/lib/legal/contributing/f.html) -> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +> * [9front](https://9front.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://git.9front.org/plan9front/9front/e4deac62c80e0d7910ceb49b1f41f2fbdcdc85db/lib/legal/contributing/f.html)) +> * [Haiku](https://www.haiku-os.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://www.haiku-os.org/community/organization/policies/)) > * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. -> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) +> * [RedoxOS](https://redox-os.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md)) ## Package Managers @@ -1266,7 +1250,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | -| [Proton Pass](https://proton.me/pass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://proton.me/blog/pass-access-tokens))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/protonpass/proton-pass-common/commit/d8c1c7ef6a58a0bcaa779bb975f72de4a59b17cb), [2](https://github.com/protonpass/ios-pass/commit/e0d392a4a8951f61b3a9fd530136f307a7fd1857)) | +| [Proton Pass](https://proton.me/pass) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://proton.me/blog/pass-access-tokens))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/protonpass/proton-pass-common/commit/d8c1c7ef6a58a0bcaa779bb975f72de4a59b17cb), [2](https://github.com/protonpass/ios-pass/commit/e0d392a4a8951f61b3a9fd530136f307a7fd1857)) | ### Local Password Managers @@ -1282,7 +1266,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > #### Local Password Manager Alternatives -> * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePassXC 2.7.10 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051) and a [No AI Contribution Policy](https://codeberg.org/ChiPass/ChiPass/commit/8fb6e891e6fe7ce7c3f1234a1d83460ab0ee093b). +> * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePassXC `2.7.10` [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051), [2](https://codeberg.org/ChiPass/ChiPass/commit/8fb6e891e6fe7ce7c3f1234a1d83460ab0ee093b)). > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. > * [OneKeePass mobile](https://github.com/OneKeePass/mobile) and [OneKeePass desktop](https://github.com/OneKeePass/desktop) both seem to be untainted. > * [rbw](https://github.com/doy/rbw) (Bitwarden/Vaultwarden client) @@ -1304,7 +1288,7 @@ This is a section for repos that are similar to this one either because they are | [Dart](https://dart.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md#ai-contribution-guidelines), [2](https://github.com/dart-lang/sdk/tree/6cd3938741d48681330363b3553da8eccf335407/.agents/skills), [3](https://github.com/dart-lang/core/tree/0def20c4bef2b242db15b38202a54735101f5791/.gemini)) | See below | | [Elixir](https://elixir-lang.org) | [v1.19.5](https://github.com/elixir-lang/elixir/releases/tag/v1.19.5) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elixir-lang/elixir/blob/main/CONTRIBUTING.md#ai-contributions)) | See below | | [Gerbil Scheme](https://github.com/mighty-gerbils/gerbil) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mighty-gerbils/gerbil/pull/1397)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | -| [Go](https://go.dev) | [`go1.22.4`](https://github.com/golang/go/releases/tag/go1.22.4) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://go.dev/gopls/features/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/golang/go/commit/b8be5de81ee78f51fbd600498093b542e75a710e), [2](https://github.com/golang/go/commit/f8f87129646ca3821b3926e649c856a960d6bc9e), [3](https://github.com/golang/go/commit/26d5e160750b34a537cce0f1bfd47f663a110d27))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/golang/go/discussions/67901)) | See below | +| [Go](https://go.dev) | [`go1.22.4`](https://github.com/golang/go/releases/tag/go1.22.4) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://go.dev/gopls/features/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/golang/go/commit/b8be5de81ee78f51fbd600498093b542e75a710e), [2](https://github.com/golang/go/commit/f8f87129646ca3821b3926e649c856a960d6bc9e), [3](https://github.com/golang/go/commit/26d5e160750b34a537cce0f1bfd47f663a110d27))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/golang/go/discussions/67901)) | See below | | [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | @@ -1322,7 +1306,7 @@ This is a section for repos that are similar to this one either because they are | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | | [Rust](https://rust-lang.org/) | [`v1.95.0`](https://github.com/rust-lang/rust/releases/tag/1.95.0) | [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/rust-lang/rust/commit/eceed7c1c28a05b31dc5dffacf3abab22a7cb1c2), [2](https://github.com/rust-lang/rust/commit/eb2c80dabef0358c953ed49258061ab58f485c56), [3](https://github.com/rust-lang/rust/commit/47e6437af4ada1fa90771999740da861c5c2f9cb))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://rustfoundation.org/members/)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | -| [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | +| [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | | [TurboWarp](https://turbowarp.org) | [`v1.15.0`](https://github.com/TurboWarp/desktop/releases/tag/v1.15.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/ethical-foss/open-slopware/pulls/797#issuecomment-15853862), [2](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | | [Typescript](https://www.typescriptlang.org/) | [`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/TypeScript/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/TypeScript/commit/c9e7428bb76f0543a3555d0af87777e7db3a41e6), [3](https://github.com/microsoft/TypeScript/commit/ad04bf7488384a5dcdf7d250ccb8e5263021a8ff)) | See below | @@ -1333,10 +1317,10 @@ This is a section for repos that are similar to this one either because they are > > Depending on your needs and technical concerns, you may find any number of different alternative languages useful. For example, when considering alternatives to .NET, Java may be an interesting candidate from the perspective of being a similar VM-based framework. > -> * [Clojure] - dynamic, compiled, general-purpose programming language: [AI-generated code not accepted](https://clojure.org/dev/contributor_agreement#_no_generated_code) -> * [Idris] - purely functional programming language, similar to Haskell: [Strict No LLM / No AI Policy](https://github.com/idris-lang/Idris2/blob/main/CONTRIBUTING.md#things-we-will-not-accept) -> * [Java] - memory safe, object-oriented, VM-based programming language: [AI-generated code not accepted](https://openjdk.org/legal/ai) -> * [Zig] - general-purpose, compiled, system programming language: [Strict No LLM / No AI Policy](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy) +> * [Clojure] - dynamic, compiled, general-purpose programming language: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://clojure.org/dev/contributor_agreement#_no_generated_code)) +> * [Idris] - purely functional programming language, similar to Haskell: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/idris-lang/Idris2/blob/main/CONTRIBUTING.md#things-we-will-not-accept)) +> * [Java] - memory safe, object-oriented, VM-based programming language: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://openjdk.org/legal/ai)) +> * [Zig] - general-purpose, compiled, system programming language: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy)) ## Programming Language-Specific Tools and Libraries @@ -1387,7 +1371,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [Flutter](https://flutter.dev/) | [`985576d`](https://github.com/flutter/flutter/commit/985576dbfdff5e9321941d9f66cb33baed337346) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.flutter.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.agents), [2](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.gemini), [3](https://github.com/flutter/flutter/pull/145170#discussion_r1525328287))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/flutter/flutter/pull/172910), [2](https://github.com/flutter/flutter/pull/172978), [3](https://github.com/flutter/flutter/pull/185164)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Flutter](https://flutter.dev/) | [`985576d`](https://github.com/flutter/flutter/commit/985576dbfdff5e9321941d9f66cb33baed337346) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.flutter.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.agents), [2](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.gemini), [3](https://github.com/flutter/flutter/pull/145170#discussion_r1525328287))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/flutter/flutter/pull/172910), [2](https://github.com/flutter/flutter/pull/172978), [3](https://github.com/flutter/flutter/pull/185164)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Go @@ -1421,16 +1405,16 @@ Note that TypeScript is itself tainted; see [the Programming Languages section]( | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [ArkType](https://arktype.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://arktype.io/llms.txt), [2](https://github.com/arktypeio/arktype/blob/main/.cursor/commands/armstrong.md), [3](https://github.com/arktypeio/arktype/pull/1553#issuecomment-3672923281))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/arktypeio/arktype/pull/1594)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/oven-sh/bun/pull/30412), [2](https://www.theregister.com/devops/2026/05/14/anthropics-bun-rust-rewrite-merged-at-speed-of-ai/5240381))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [bun](https://github.com/oven-sh/bun) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/oven-sh/bun/pull/30412), [2](https://www.theregister.com/devops/2026/05/14/anthropics-bun-rust-rewrite-merged-at-speed-of-ai/5240381))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://bun.com/docs/runtime/templating/init))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oven-sh/bun/blob/main/CLAUDE.md), [2](https://github.com/oven-sh/bun/blob/main/.cursorignore), [3](https://github.com/oven-sh/bun/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/oven-sh/bun/pull/29395))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://bun.com/blog/bun-joins-anthropic), [2](https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/oven-sh/bun/issues/29336#issuecomment-4249855116)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Deno](https://github.com/denoland/deno) | [`6002d26`](https://github.com/denoland/deno/commit/6002d2624e567d92c5d659be77dfa14fc4db28fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/.github/CONTRIBUTING.md), [2](https://github.com/denoland/deno/blob/ac0a7e60295f00ccd1a0f057062fca8fde5e8140/CLAUDE.md), [3](https://xcancel.com/i/status/2013280952370573666))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/denoland/deno/pull/33335#pullrequestreview-4143170352)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Electron](https://electronjs.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md), [2](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [3](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | -| [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [es-toolkit](https://es-toolkit.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://es-toolkit.dev/ai-integration.html))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/toss/es-toolkit/blob/main/AGENTS.md), [2](https://github.com/toss/es-toolkit/commit/b3f1f5433144a54c80fb61e4c9fda0d71cf9c85f)) | [Lodash](https://github.com/lodash/lodash) | +| [ESLint](https://eslint.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://eslint.org/docs/latest/use/mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://eslint.org/docs/latest/contribute/ai-policy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [es-toolkit](https://es-toolkit.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://es-toolkit.dev/ai-integration.html))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/toss/es-toolkit/blob/main/AGENTS.md), [2](https://github.com/toss/es-toolkit/commit/b3f1f5433144a54c80fb61e4c9fda0d71cf9c85f)) | [Lodash](https://github.com/lodash/lodash) | | [fnm](https://fnm.vercel.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Schniz/fnm/blob/master/AGENTS.md)) | [n](https://github.com/tj/n) | -| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp), [2](https://nextjs.org/docs/app/guides/ai-agents))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Next.js](https://nextjs.org/) | [`v13.2.5-canary.0`](https://github.com/vercel/next.js/releases/tag/v13.2.5-canary.0) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://nextjs.org/docs/app/guides/mcp), [2](https://nextjs.org/docs/app/guides/ai-agents))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vercel/next.js/blob/766b7cbff4debc579bcff3f5c823dfb4d55f74fc/AGENTS.md), [2](https://github.com/vercel/next.js/commit/b785969e83dfcc948be69eb7ec182a2808c183ff), [3](https://github.com/vercel/next.js/commit/f760e48532355197ec8902804dce76a55d1a07f8))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vercel/next.js/pull/77692), [2](https://github.com/vercel/next.js/pull/77846), [3](https://github.com/vercel/next.js/pull/77929))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://vercel.com/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [npmx](https://npmx.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai), [2](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md), [3](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314)) | [npmjs](https://www.npmjs.com/) | | [nvm](https://github.com/nvm-sh/nvm) | [`v0.40.2`](https://github.com/nvm-sh/nvm/releases/tag/v0.40.2)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nvm-sh/nvm/pull/3609), [2](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://opensource.fb.com/projects/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [React](https://react.dev/) | [`v19.1.1`](https://github.com/facebook/react/releases/tag/v19.1.1) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/compiler/packages/react-mcp-server/README.md))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/react/blob/d5736f098edee62c44f27b053e6e48f5fa443803/CLAUDE.md), [2](https://github.com/facebook/react/commit/90a124a9802a5ab6509d5838e65b9f4d4fbbc16b), [3](https://github.com/facebook/react/commit/2b4064eb9b40f65d20a03ce93b246ad762d562e6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facebook/react/pull/32777), [2](https://github.com/facebook/react/pull/32991), [3](https://github.com/facebook/react/pull/36353))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://opensource.fb.com/projects/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [TS for GIR](https://gjsify.github.io/docs/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gjsify/ts-for-gir/blob/80ecf9e071c82f4d107ebf7d1129cb363a025f0d/AGENTS.md), [2](https://github.com/gjsify/ts-for-gir/pull/320), [3](https://github.com/gjsify/ts-for-gir/commit/7b1e2b31df06f59046899d4b2d476187afad95aa)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Typebox](https://github.com/sinclairzx81) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sinclairzx81/typebox/pull/1015), [2](https://github.com/sinclairzx81/typebox/issues/1294), [3](https://github.com/sinclairzx81/typebox/issues/1364)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Valibot](https://valibot.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/open-circle/valibot/tree/main/prompts), [2](https://valibot.dev/guides/llms-txt/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/open-circle/valibot/pull/1388))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/open-circle/valibot/issues/1389)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1455,7 +1439,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | | [`cryptography`](https://github.com/pyca/cryptography) | [`44.0.0`](https://github.com/pyca/cryptography/releases/tag/44.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pyca/cryptography/blob/main/AGENTS.md), [2](https://github.com/pyca/cryptography/commit/ce7f263d2b5492222497966e4132010caf650a70), [3](https://github.com/pyca/cryptography/commit/62d0783211a329c5d1d27b52c527a245e9bc842b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pyca/cryptography/pull/12976), [2](https://github.com/pyca/cryptography/pull/13137), [3](https://github.com/pyca/cryptography/pull/12937)) | [PyCryptodome](https://github.com/Legrandin/pycryptodome) | | [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | +| [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| | [Pylint](https://github.com/pylint-dev/pylint) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pylint-dev/pylint/blob/b080a21ca0005b13e985456537bb8510919a2672/.github/copilot-instructions.md), [2](https://github.com/pylint-dev/pylint/pull/10350), [3](https://github.com/pylint-dev/pylint/pull/10892))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pylint-dev/pylint/pull/10321), [2](https://github.com/pylint-dev/pylint/pull/10322), [3](https://github.com/pylint-dev/pylint/pull/10930)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1481,7 +1465,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2), [2](https://github.com/emilk/egui/pull/8088), [3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948), [2](https://github.com/emilk/egui/pull/7617), [3](https://github.com/emilk/egui/pull/7577)) | See below | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | @@ -1490,7 +1474,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | [memchr](https://github.com/BurntSushi/memchr) | [`2.8.0`](https://github.com/BurntSushi/memchr/tree/2.8.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BurntSushi/memchr/commit/ee18717a7002a3299a6b5ef718084e76d958a5c3)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [PyO3](https://pyo3.rs) | [`v0.23.5`](https://github.com/PyO3/pyo3/releases/tag/v0.23.5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyO3/pyo3/pull/5615), [2](https://github.com/PyO3/pyo3/pull/5933), [3](https://github.com/PyO3/pyo3/pull/5870))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyO3/pyo3/pull/4768), [2](https://github.com/PyO3/pyo3/pull/5724), [3](https://github.com/PyO3/pyo3/pull/5729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ratatui](https://github.com/ratatui/ratatui) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/issues/2016#issuecomment-3512556433), [2](https://github.com/ratatui/ratatui/discussions/2201), [3](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998), [2](https://github.com/ratatui/ratatui/pull/1490)) |See below | +| [ratatui](https://github.com/ratatui/ratatui) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/issues/2016#issuecomment-3512556433), [2](https://github.com/ratatui/ratatui/discussions/2201), [3](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998), [2](https://github.com/ratatui/ratatui/pull/1490)) |See below | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | | [Slint](https://github.com/slint-ui/slint) | [`1.14.1`](https://github.com/slint-ui/slint/tree/v1.14.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slint-ui/slint/blob/master/AGENTS.md), [2](https://github.com/slint-ui/slint/commit/f479ae6d8ee24de17634e22e8079374222a4a8fd)) | See below | | [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | @@ -1506,7 +1490,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > [!NOTE] > #### Alternative TUI crates -> - [cursive](https://docs.rs/cursive/latest/cursive/) +> - [cursive](https://docs.rs/cursive/latest/cursive/) > - [console](https://docs.rs/console/latest/console/) > - [tui-rs](https://github.com/fdehau/tui-rs/releases/tag/v0.19.0) @@ -1573,7 +1557,7 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Grafana](https://grafana.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://grafana.com/docs/grafana-cloud/machine-learning/intro/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/grafana/grafana/blob/main/AGENTS.md), [2](https://github.com/grafana/grafana/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Grafana](https://grafana.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://grafana.com/docs/grafana-cloud/machine-learning/intro/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/grafana/grafana/blob/main/AGENTS.md), [2](https://github.com/grafana/grafana/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vector](https://vector.dev/) | [`44562f6`](https://github.com/vectordotdev/vector/commit/44562f6b3b8a1682009f0a34dc9fb61f3e668dbf) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vectordotdev/vector/blob/89e5c343c631e36090d2543106b88685d7a1c908/AGENTS.md), [2](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2), [3](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vectordotdev/vector/pull/22735), [2](https://github.com/vectordotdev/vector/pull/25228), [3](https://github.com/vectordotdev/vector/pull/24706)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -1593,9 +1577,9 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Bluesky](https://bsky.app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://bsky.app/profile/attie.ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://bsky.app/profile/pfrazee.com/post/3luyb3jcbv52d)) | See below | +| [Bluesky](https://bsky.app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://bsky.app/profile/attie.ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://bsky.app/profile/pfrazee.com/post/3luyb3jcbv52d)) | See below | | [`rsky`](https://github.com/blacksky-algorithms/rsky) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/blacksky-algorithms/rsky/commit/02313d970dc2e1cef0909277b94bbff222dff152), [2](https://github.com/blacksky-algorithms/rsky/commit/fd6063d4e2f0688899faef34e2d3553c36c69d43), [3](https://github.com/blacksky-algorithms/rsky/commit/b7adaa213ca49318de078b82410bf54f828ba0f2)) | See below | -| [PeerTube](https://joinpeertube.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Chocobozzz/PeerTube/blob/c2345d670bfe83295896b3451ebfc14185934a1b/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://framacolibri.org/t/peertube-and-generative-ai/26622)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [PeerTube](https://joinpeertube.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Chocobozzz/PeerTube/blob/c2345d670bfe83295896b3451ebfc14185934a1b/AGENTS.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://framacolibri.org/t/peertube-and-generative-ai/26622)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mastodon](https://joinmastodon.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mastodon/.github/blob/49b9c64f3e2b6a459e56a05068c05b3247659bb3/AI_POLICY.md)) | See below | | [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | | [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [PieFed](https://join.piefed.social/) | @@ -1603,10 +1587,10 @@ This is for both social media websites and apps. > [!Note] > #### Social Media Server Alternatives > * [Epicyon](https://codeberg.org/bashrc/epicyon) -> * [GoToSocial] (Note the [gallery profile layout](https://docs.gotosocial.org/en/v0.21.2/user_guide/settings/#gallery) for those that want a more pixelfed/instagram experience such as artists/creators) +> * [GoToSocial] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/AGENTS.md)) (Note the additional [gallery profile layout](https://docs.gotosocial.org/en/v0.21.2/user_guide/settings/#gallery) for those that want a more pixelfed/instagram experience such as artists/creators) > * [Iceshrimp.NET](https://iceshrimp.net/) > * [snac2](https://codeberg.org/grunfink/snac2) -> * [Wafrn](https://codeberg.org/wafrn/wafrn/) (Closest to tumblr) supports both ActivityPub and ATproto +> * [Wafrn](https://codeberg.org/wafrn/wafrn/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/wafrn/wafrn/src/branch/main/CONTRIBUTING.md#ai-contributions-policy)) (Closest to tumblr) supports both ActivityPub and ATproto ## SSH @@ -1693,11 +1677,11 @@ This section is strictly for software implementing a core set of UNIX-like utili |---|:---:|---| | [Contour](https://github.com/contour-terminal/contour) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/contour-terminal/contour/pull/1900))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/contour-terminal/contour/pull/1900)) | | [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | -| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | +| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | -| [OpenWarp](https://openwarp.zerx.dev) | None | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://openwarp.zerx.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zerx-lab/warp/commit/8f4eef1fce88c17c2cf1af452ea2e7f348fc8406), [2](https://github.com/zerx-lab/warp/commit/0c6b5d37c5a65eba97abe01587b65d3db8427aa9), [3](https://github.com/zerx-lab/warp/commit/52f4e17905fba725b62738d882c65662532a347b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zerx-lab/warp/pull/48)) | -| [Warp](https://warp.dev) | None |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://warp.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/warpdotdev/warp/commit/fc1157e066576bf0d577ab18426d66a5d5dcc3da), [2](https://github.com/warpdotdev/warp/commit/1d1c06db0fd7ccfea7e99ad938f7278a12cdf575), [3](https://github.com/warpdotdev/warp/commit/6ea1a52af1d02914ab43e2f2e4e37f1dedaa99fd))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/warpdotdev/warp/pull/10004), [2](https://github.com/warpdotdev/warp/pull/9956), [3](https://github.com/warpdotdev/warp/pull/9910))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/warpdotdev/warp/issues/10359#issuecomment-4397177289), [2](https://github.com/warpdotdev/warp/issues/10358#issuecomment-4396700787), [3](https://github.com/warpdotdev/warp/issues/10355#issuecomment-4396359216))| -| [Waveterm](https://www.waveterm.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.waveterm.dev/waveai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wavetermdev/waveterm/pull/3122), [2](https://github.com/wavetermdev/waveterm/commit/57e4e27a291642406060c795d69c63450ee9229d), [3](https://github.com/wavetermdev/waveterm/commit/bda8421377f4abcf9c30cfc9a40bfa7190a1f72e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wavetermdev/waveterm/pull/3289), [2](https://github.com/wavetermdev/waveterm/pull/3247), [3](https://github.com/wavetermdev/waveterm/pull/3222)) | +| [OpenWarp](https://openwarp.zerx.dev) | None | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://openwarp.zerx.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zerx-lab/warp/commit/8f4eef1fce88c17c2cf1af452ea2e7f348fc8406), [2](https://github.com/zerx-lab/warp/commit/0c6b5d37c5a65eba97abe01587b65d3db8427aa9), [3](https://github.com/zerx-lab/warp/commit/52f4e17905fba725b62738d882c65662532a347b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zerx-lab/warp/pull/48)) | +| [Warp](https://warp.dev) | None |[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://warp.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/warpdotdev/warp/commit/fc1157e066576bf0d577ab18426d66a5d5dcc3da), [2](https://github.com/warpdotdev/warp/commit/1d1c06db0fd7ccfea7e99ad938f7278a12cdf575), [3](https://github.com/warpdotdev/warp/commit/6ea1a52af1d02914ab43e2f2e4e37f1dedaa99fd))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/warpdotdev/warp/pull/10004), [2](https://github.com/warpdotdev/warp/pull/9956), [3](https://github.com/warpdotdev/warp/pull/9910))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/warpdotdev/warp/issues/10359#issuecomment-4397177289), [2](https://github.com/warpdotdev/warp/issues/10358#issuecomment-4396700787), [3](https://github.com/warpdotdev/warp/issues/10355#issuecomment-4396359216))| +| [Waveterm](https://www.waveterm.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.waveterm.dev/waveai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wavetermdev/waveterm/pull/3122), [2](https://github.com/wavetermdev/waveterm/commit/57e4e27a291642406060c795d69c63450ee9229d), [3](https://github.com/wavetermdev/waveterm/commit/bda8421377f4abcf9c30cfc9a40bfa7190a1f72e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wavetermdev/waveterm/pull/3289), [2](https://github.com/wavetermdev/waveterm/pull/3247), [3](https://github.com/wavetermdev/waveterm/pull/3222)) | | [Wezterm](https://wezterm.org) | [`712400a`](https://github.com/wezterm/wezterm/commit/712400a558848455e45bd39841fc6dc714e14a94)? | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wezterm/wezterm/commit/d2fc83559c4616d74e847770373b2da88b63cba3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wezterm/wezterm/pull/7745)) | > [!NOTE] @@ -1734,16 +1718,16 @@ This section is strictly for software implementing a core set of UNIX-like utili | [Flow](https://codeberg.org/neurocyte/flow) | [`a782bfb`](https://codeberg.org/neurocyte/flow/commit/a782bfb690aec321fc3c6a955953895a150333b1) (unsure) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/neurocyte/flow/src/commit/9c66b196500b7ee5fbfd98db88a2116f36f1b366), [2](https://codeberg.org/neurocyte/flow/src/commit/ae0f62c3bf75aa13c1916c9d1f37092869765dc8))
![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg) ([1](https://codeberg.org/neurocyte/flow/src/branch/master#development-resources))| | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | -| [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | +| [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | | [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/neovim/neovim/pull/37325), [2](https://github.com/neovim/neovim/pull/37704), [3](https://github.com/neovim/neovim/pull/37430))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/neovim/neovim.github.io/blob/cbcaf6f207e76093cc6f41e486220a0fd9dcbdb0/layouts/home.html#L26-L41)) | | [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | -| [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | -| [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | -| [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | +| [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | +| [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | +| [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | | [Vim](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://code.visualstudio.com/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | -| [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://code.visualstudio.com/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | +| [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | > [!NOTE] > ### Alternative Text and Code Editors @@ -1788,10 +1772,10 @@ This section is strictly for software implementing a core set of UNIX-like utili |---|:---:|---| | [Breezy](https://github.com/breezy-team/breezy/) | [`4559cec`](https://github.com/breezy-team/breezy/commit/4559cec280b280e9624da79624baf31d2791fa85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/breezy-team/breezy/pull/270/)) | | [Fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://fossil-scm.org/forum/forumpost/3c8adaef712ce350)) | -| [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/b1cbca0715cc3cc4d41f1b04752abbac25cc3fba/AGENTS.md)) | +| [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/b1cbca0715cc3cc4d41f1b04752abbac25cc3fba/AGENTS.md)) | | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | | [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | -| [GitButler](https://gitbutler.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.gitbutler.com/features/branch-management/ai-assistance), [2](https://github.com/gitbutlerapp/gitbutler/tree/2b9da0d6d88bfc117da72f3cd06baac8d194fd18/apps/desktop/src/lib/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gitbutlerapp/gitbutler/blob/87180b105ced4d3fa908c96c641068b58073be29/AGENTS.md), [2](https://github.com/gitbutlerapp/gitbutler/commit/ab5b3fae080df9f0b34d16e3395dc4a5abac4024)) | +| [GitButler](https://gitbutler.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.gitbutler.com/features/branch-management/ai-assistance), [2](https://github.com/gitbutlerapp/gitbutler/tree/2b9da0d6d88bfc117da72f3cd06baac8d194fd18/apps/desktop/src/lib/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gitbutlerapp/gitbutler/blob/87180b105ced4d3fa908c96c641068b58073be29/AGENTS.md), [2](https://github.com/gitbutlerapp/gitbutler/commit/ab5b3fae080df9f0b34d16e3395dc4a5abac4024)) | | [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#please-disclose-the-use-of-ai), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | | [lazygit](https://github.com/jesseduffield/lazygit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jesseduffield/lazygit/blob/master/AGENTS.md), [2](https://github.com/jesseduffield/lazygit/commit/21d58085f4e5d60a18d161da81fb0d9298dbe4ed), [3](https://github.com/jesseduffield/lazygit/commit/4f6cdedb1e5ea8c13d0ccbf57d772a387ef5728f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jesseduffield/lazygit/pull/5277), [2](https://github.com/jesseduffield/lazygit/pull/5273), [3](https://github.com/jesseduffield/lazygit/pull/5392))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/jesseduffield/lazygit/blob/master/README.md)) | @@ -1811,7 +1795,7 @@ This section is strictly for software implementing a core set of UNIX-like utili |---|:---:|---| | [Gitea](https://about.gitea.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md#ai-contribution-policy), [2](https://github.com/go-gitea/gitea/blob/main/AGENTS.md), [3](https://github.com/go-gitea/gitea/blob/main/CLAUDE.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://about.gitea.com/blog/gitea-achieves-soc2-type2-soc3-certification)) | | [Gogs](https://gogs.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gogs/gogs/pull/8059), [2](https://github.com/gogs/gogs/pull/8061), [3](https://github.com/gogs/gogs/pull/8121))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/gogs/gogs/pull/7981), [2](https://github.com/gogs/gogs/pull/8069)) | -| [GitLab](https://gitlab.com/gitlab-org/gitlab) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://about.gitlab.com/), [2](https://about.gitlab.com/blog/gitlab-act-2/), [3](https://docs.gitlab.com/user/project/ml/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/gitlab-org/gitlab/-/blob/bc0c170b8266e5ed182a3def29313bb8a8421af4/AGENTS.md), [2](https://gitlab.com/rluna-gitlab/gitlab-ce/-/blob/master/.ai/)) | +| [GitLab](https://gitlab.com/gitlab-org/gitlab) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://about.gitlab.com/), [2](https://about.gitlab.com/blog/gitlab-act-2/), [3](https://docs.gitlab.com/user/project/ml/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/gitlab-org/gitlab/-/blob/bc0c170b8266e5ed182a3def29313bb8a8421af4/AGENTS.md), [2](https://gitlab.com/rluna-gitlab/gitlab-ce/-/blob/master/.ai/)) | | [Tangled](https://tangled.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://tangled.org/tangled.org/core/issues/394)) | > [!Note] @@ -1874,7 +1858,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res > ### Window Managers Alternatives > #### Wayland > * [dwl](https://codeberg.org/dwl/dwl) -> * [river](https://codeberg.org/river/river) has [Strict No LLM / No AI Policy](https://codeberg.org/river/river#strict-no-llm-no-ai-policy) +> * [river](https://codeberg.org/river/river) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/river/river#strict-no-llm-no-ai-policy)) > * [sway](https://github.com/swaywm/sway) > * [tinywl](https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/70d99eefef44f4c0db1923c5dd89cf7059f5e97a/tinywl) is a "minimum viable product" compositor for learning and experimentation (not for everyday use), see [tinywl limitations](https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/70d99eefef44f4c0db1923c5dd89cf7059f5e97a/tinywl/README.md#limitations) > * [vivarium](https://github.com/inclement/vivarium) diff --git a/STYLE.md b/STYLE.md index 1cecde7..a0525ca 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,14 +16,14 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | -| [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject]
[amazingSlopFreeProject] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://link-to-anti-ai-evidence.tld)) | **Name column**: should be the name of software linked to their git repo (or other software forge if they don't use git). **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): -- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) +- [![AI Functionality](./badges/ai-functionality.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) - [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware##vibecoded) (keep in mind this is more severe than permissive AI policy) - [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/ethical-foss/open-slopware#permissive-ai-policy) - [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) @@ -40,10 +40,14 @@ Make sure to format your table like below (note that it is alphabetized by softw - [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/ethical-foss/open-slopware#request-for-help) +**Does an alternative you're recommending have an explicit and clear "No AI" policy?** Use this special badge to make sure they stand out! + +- [![Anti-AI Policy](./badges/anti-ai-policy.svg)](https://codeberg.org/ethical-foss/open-slopware#anti-ai-policy) + Here are all the badges for easy copying and pasting: ```markdown -[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) +[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ``` ```markdown @@ -82,6 +86,10 @@ Here are all the badges for easy copying and pasting: [![Request for Help](./badges/request-for-help.svg)](#request-for-help) ``` +```markdown +[![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) +``` + > [!important] > > If a project has multiple tags, please be sure to add a break (`
`) in between each one, so that the column extends vertically rather than horizontally. This keeps the table visually consistent and easier to read at a glance. @@ -90,15 +98,18 @@ Please do not submit GitHub screenshots of "A user you have blocked has previous Screenshots are allowed but must be a last resort for something that cannot be linked. We'd prefer archive links in all other instances. +## When to use an Alternatives Note Versus Table Column + The above "Alternative(s)" column is for software that has a 1:1 parity or is a very similar alternative specific to the piece of software at hand. If the category or section is filled with the same alternative list (for instance, how it is in the [terminal emulators](https://codeberg.org/ethical-foss/open-slopware#terminal-emulators) section), you can remove the "Alternatives" column. Instead, you can add a note below the table with all the alternatives, like this: > [!NOTE] > ### Category Alternatives > If there are a lot of alternatives for a section, include the alternatives in a note like this. These should also be alphabetized. -> * [alternativeSoftware]: This can be a short description and [link to anti-AI policies](somelink.link). -> * [coolSlopFreeProject]: This can be a short description and [link to anti-AI policies](somelink.link). +> * [alternativeSoftware]: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://link-to-anti-ai-evidence.tld)) This can be a short description. +> * [coolSlopFreeProject]: This can be a short description. +[amazingSlopFreeProject]: https://verygoodnotslopware.tld "an amazing example of a no-ai project" [alrightSlopFreeProject]: https://veryoknotslopware3.tld "another extra alternative software" [alternativeSoftware]: https://verygoodnotslopware.tld "alternative software" -[coolSlopFreeProject]: https://verygoodnotslopware2.tld "another alternative software" \ No newline at end of file +[coolSlopFreeProject]: https://verygoodnotslopware2.tld "another alternative software" diff --git a/badges/ai-databroker-usage-pink.svg b/badges/ai-databroker-usage-pink.svg index 968984f..15941b4 100644 --- a/badges/ai-databroker-usage-pink.svg +++ b/badges/ai-databroker-usage-pink.svg @@ -5,15 +5,15 @@ - + - - + + - + - AI Databroker Usage + AI Databroker Usage diff --git a/badges/ai-functionality-yellow.svg b/badges/ai-functionality.svg similarity index 82% rename from badges/ai-functionality-yellow.svg rename to badges/ai-functionality.svg index 5da33d5..745d6c0 100644 --- a/badges/ai-functionality-yellow.svg +++ b/badges/ai-functionality.svg @@ -13,7 +13,8 @@ - - AI Functionality + + AI Functionality + diff --git a/badges/anti-ai-policy.svg b/badges/anti-ai-policy.svg new file mode 100644 index 0000000..6fd1fc4 --- /dev/null +++ b/badges/anti-ai-policy.svg @@ -0,0 +1,19 @@ + + 🌟 Anti-AI Policy + + + + + + + + + + + + + + + 🌟 Anti-AI Policy + + diff --git a/badges/request-for-help.svg b/badges/request-for-help.svg index 02e517e..5a98f37 100644 --- a/badges/request-for-help.svg +++ b/badges/request-for-help.svg @@ -8,8 +8,8 @@ - - + + From 790f54011aa217993f78935b5d69870f706ec086 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 16 Jun 2026 08:10:07 +0000 Subject: [PATCH 310/413] fix programming language alternatives anti-ai badges --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9fa1040..eb3e696 100644 --- a/README.md +++ b/README.md @@ -1317,10 +1317,10 @@ This is a section for repos that are similar to this one either because they are > > Depending on your needs and technical concerns, you may find any number of different alternative languages useful. For example, when considering alternatives to .NET, Java may be an interesting candidate from the perspective of being a similar VM-based framework. > -> * [Clojure] - dynamic, compiled, general-purpose programming language: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://clojure.org/dev/contributor_agreement#_no_generated_code)) -> * [Idris] - purely functional programming language, similar to Haskell: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/idris-lang/Idris2/blob/main/CONTRIBUTING.md#things-we-will-not-accept)) -> * [Java] - memory safe, object-oriented, VM-based programming language: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://openjdk.org/legal/ai)) -> * [Zig] - general-purpose, compiled, system programming language: [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy)) +> * [Clojure] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://clojure.org/dev/contributor_agreement#_no_generated_code)) - dynamic, compiled, general-purpose programming language +> * [Idris] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/idris-lang/Idris2/blob/main/CONTRIBUTING.md#things-we-will-not-accept)) - purely functional programming language, similar to Haskell +> * [Java] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://openjdk.org/legal/ai)) - memory safe, object-oriented, VM-based programming language +> * [Zig] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy)) - general-purpose, compiled, system programming language ## Programming Language-Specific Tools and Libraries From 4d2df01cef265b38eb1501a60bc67c8ff77ccc15 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 16 Jun 2026 08:13:37 +0000 Subject: [PATCH 311/413] fix grammar typo in anti-ai policy definition --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb3e696..592b2f9 100644 --- a/README.md +++ b/README.md @@ -326,7 +326,7 @@ This means someone is asking for help with research. They would like it if you f ![Anti-AI Policy](./badges/anti-ai-policy.svg) -This a special badge with a positive connotation. It certifies that a project, that's been recommended as an alternative, has a *Clear* "No AI" policy. This means the project forbids the use of AI and LLMs and does not have any special carve outs where they've condoned their usage. These projects should always be preferred as all other alternative projects listed are considered to have a neutral stance on AI until they put out an official policy. +This is a special badge with a *positive* connotation. It certifies that a project, that's been recommended as an alternative, has a *Clear* "No AI" policy. This means the project forbids the use of AI and LLMs and does not have any special carve outs where they've condoned their usage. These projects should always be preferred as all other alternative projects listed are considered to have a neutral stance on AI until they put out an official policy. > [!Note] > Previous tainted status does not disqualify a project for this tag. Any project that was previously tainted, but took the steps for Removal (removed AI functionality, removed LLM agent instructions, and put out a No AI policy), can have this badge. From 71cc73192940f6ee1b66a348379bf9aab7643075 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:07:42 +0200 Subject: [PATCH 312/413] Add a section for "Call for Collaborators" --- CONTRIBUTING.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5325745..6bbb531 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -155,6 +155,17 @@ If you want to help in that way, search for: You can also open your own [![more kind eyes please](./badges/more-kind-eyes.svg) Issue](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2frequest-for-more-kind-eyes.yaml). +## Call for Collaborators + +This issue type is for advertising your "No AI allowed" project. It follows the same rules as self submission: + +- no previous strikes or bans in the repo +- project is completely FOSS +- project has a "Code of Conduct" +- project has a "No AI Policy" + +Provided you meet the requirements, you're free to ask for additional collborators or contributors to your repo :) + # Contributing to the Why Not LLMs section This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: From ef1693c4db9336c7aeea7b6874815b59e3e72cf6 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:08:53 +0200 Subject: [PATCH 313/413] fix content warning indentation --- CONTRIBUTING.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6bbb531..06ac61b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -182,9 +182,9 @@ This is a much more free form section without a specific rigid style guide at th - Use a content warning if anything may be triggering. Content warnings must be specific to the subject matter. Do not use the term "NSFW". Here is an example of how to write a content warning: -```html -
- Content warning: Genocide - Content discussing genocide goes here. -
-``` + ```html +
+ Content warning: Genocide + Content discussing genocide goes here. +
+ ``` From c1dec7f1520644471b97e2c7732c47a803f1c226 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:25:30 +0200 Subject: [PATCH 314/413] clean up reference to old list --- .forgejo/issue_template/request-for-more-kind-eyes.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.forgejo/issue_template/request-for-more-kind-eyes.yaml b/.forgejo/issue_template/request-for-more-kind-eyes.yaml index 1da34e3..5e2c510 100644 --- a/.forgejo/issue_template/request-for-more-kind-eyes.yaml +++ b/.forgejo/issue_template/request-for-more-kind-eyes.yaml @@ -34,5 +34,3 @@ body: required: true - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true - - label: I have made sure the project I want people to have eyes on is not on the [DONT REFERENCE ME](./DONT_REFERENCE_ME.md) list - required: true From 86fcc15182a608b6dd5bdb5c33478ed079d8131f Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:28:17 +0200 Subject: [PATCH 315/413] make reference to our new "rules for self submission" section --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index edc7edc..962c51e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -4,7 +4,7 @@ There's no great place to put these in our current files, but these sorts of que ## Can I self-advertise my project (that doesn't use AI)? -> Yes, provided it's FOSS, has a code of conduct (even if it's a solo project), and a No AI Policy, you can add your project as an alternative to any tainted software in which it is a good fit, and you can also open a [Call for Collaborators Issue](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2fcollaborate-with-me.yaml). +> Yes, provided it meets our [Rules for Self Submission](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md#rules-for-self-submission), you can add your project as an alternative to any tainted software in which it is a good fit, and you can also open a [Call for Collaborators Issue](https://codeberg.org/ethical-foss/open-slopware/issues/new?template=.forgejo%2fissue_template%2fcollaborate-with-me.yaml). ## I use AI in my project and do not plan on stopping. Should I self-submit? From 9c5906337e3d7d958ae6e54489b888475bf7089a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:29:39 +0200 Subject: [PATCH 316/413] remove slopshop definition it's actually never been used in this repo, so it's fine to get rid of --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 592b2f9..9e064b2 100644 --- a/README.md +++ b/README.md @@ -183,8 +183,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question | LLM | Large Language Model, a language model trained on vast amounts of text (often entire websites without the website owner's permission) | | "No AI" Policy | A Policy in a repo that explicitly forbids the use of AI and does not contain any special carve outs for "finding bugs" or anything that condones AI usage | | slop | Anything generated by AI, typically code, books, articles, or images. | -| slopshop | Company, Organization, or Group of sloperators working together to use AI to generate content. | - Below are special definitions that are used for tagging purposes. From 4a43e957a0bf0b78e6db399a49a7d0982a20f9de Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:36:06 +0200 Subject: [PATCH 317/413] Note how to handle slop-free software that has not tainted equivilent --- FAQ.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FAQ.md b/FAQ.md index 962c51e..73d4adb 100644 --- a/FAQ.md +++ b/FAQ.md @@ -69,3 +69,7 @@ There's no great place to put these in our current files, but these sorts of que ## I don't like your definition of slop or vibecoded. Can you change it? > No. Those [definitions](https://codeberg.org/ethical-foss/open-slopware#definitions) stay and are not up for debate. + +## How do we handle slop-free software with no tainted equivlent? + +> This is probably not the best list for the time being. This list focuses on boycotts and listing alternatives. If you want to list untainted software on it's own, we ask that you checkout our [sibling repos](https://codeberg.org/ethical-foss/open-slopware/src/branch/main#sibling-repos) section of our README that goes over a couple of other repos that highlight exclusively slop-free software :) As a note: we've had really positive interactions with all the repos listed under "sibling repos", so please don't hesitate to open PRs for their repos as well. Please follow the same code of conduct as you would here though, so above all: be kind! \ No newline at end of file From da066dae2145caa06897e9e869acafe64db9f060 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Tue, 16 Jun 2026 12:38:38 +0200 Subject: [PATCH 318/413] fix typo --- FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ.md b/FAQ.md index 73d4adb..1744d46 100644 --- a/FAQ.md +++ b/FAQ.md @@ -70,6 +70,6 @@ There's no great place to put these in our current files, but these sorts of que > No. Those [definitions](https://codeberg.org/ethical-foss/open-slopware#definitions) stay and are not up for debate. -## How do we handle slop-free software with no tainted equivlent? +## How do we handle slop-free software with no tainted equivalent? > This is probably not the best list for the time being. This list focuses on boycotts and listing alternatives. If you want to list untainted software on it's own, we ask that you checkout our [sibling repos](https://codeberg.org/ethical-foss/open-slopware/src/branch/main#sibling-repos) section of our README that goes over a couple of other repos that highlight exclusively slop-free software :) As a note: we've had really positive interactions with all the repos listed under "sibling repos", so please don't hesitate to open PRs for their repos as well. Please follow the same code of conduct as you would here though, so above all: be kind! \ No newline at end of file From cb8306bad3f2ce5fc8d7a3f08a2ee0d8a265f2e7 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 11:42:32 +0000 Subject: [PATCH 319/413] change name of core admin user to ethical-foss-admin --- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 2 +- FAQ.md | 2 +- GOVERNANCE.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 37f7740..0dc8b3e 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -38,7 +38,7 @@ Failure to do so will first result in a one time warning and future offenses wil # On handling rude comments in this repo specifically -If you see someone behaving in appropriately, do not feed their behavior. Tag @vleermuis-admin instead. They will handle it. +If you see someone behaving in appropriately, do not feed their behavior. Tag @ethical-foss-admin instead. They will handle it. In some cases, we may delete comments, issues, or PRs if they're encouraging an innappropriate atmosphere e.g. a popular maintainer has come in with an accusatory tone and is actively advertising their followers to come and spam the repo. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 06ac61b..acdf344 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -120,7 +120,7 @@ This is not a place to discuss what you think an "ethical" LLM/AI is. We will cl This is also not a place to open an issue to the effect of "think of the centrists". -If someone has a question in a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @vleermuis-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are ok with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). +If someone has a question in a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @ethical-foss-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are ok with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). ## More Kind Eyes diff --git a/FAQ.md b/FAQ.md index 1744d46..f42a78f 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,7 +8,7 @@ There's no great place to put these in our current files, but these sorts of que ## I use AI in my project and do not plan on stopping. Should I self-submit? -> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](./why_not_llms.md) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @vleermuis-admin and we'll handle the situation. +> You don't have to, but it's helpful, because you know best what the alternatives are, and when your last untainted commit was, which is helpful for those who wish to fork your project. We hope you'll consider dropping AI one day, for all the reasons we've listed in our [Why Not LLMs?](./why_not_llms.md) section, but if you don't plan on doing that ever, please just be cordial in this repo. No one is here to attack you, and if they do, please tag @ethical-foss-admin and we'll handle the situation. ## Do closed source or proprietary products belong on this list? diff --git a/GOVERNANCE.md b/GOVERNANCE.md index f053964..e85a1ac 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -6,7 +6,7 @@ So it is clear: This is not anyone's full time job. Everyone is an unpaid volunt ## Owners -This is mainly @vleermuis-admin which is an account that is run by multiple people who intitially forked this repo. They have the ability to make new rules or tags and updates to the code of conduct. They have full approval and merge rights. If they've approved any PR, Team Human Made can pop in and merge that PR at their leisure. If you're asking for a new rule, tag, or major change to the repo in some way, you need to tag this account. This is also the account you should tag should you need moderation help in any capacity, as they have the authority to ban people from the repo, as well as lock a conversation if it gets too heated or has the potential to drive a rude atmosphere. +This is mainly @ethical-foss-admin which is an account that is run by multiple people who intitially forked this repo. They have the ability to make new rules or tags and updates to the code of conduct. They have full approval and merge rights. If they've approved any PR, Team Human Made can pop in and merge that PR at their leisure. If you're asking for a new rule, tag, or major change to the repo in some way, you need to tag this account. This is also the account you should tag should you need moderation help in any capacity, as they have the authority to ban people from the repo, as well as lock a conversation if it gets too heated or has the potential to drive a rude atmosphere. If future owners appear, the tag to get them involved would be @ethical-foss/owners. From 10807c500f43aef6d7540edafdd57f42157d9362 Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 13:57:51 +0200 Subject: [PATCH 320/413] Add Termux as alternative SSH client for Android (#992) ### Description of Changes This PR adds Termux as alternative SSH client for Android Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/992 Reviewed-by: Ethical FOSS admin --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9e064b2..68350e3 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Clients](#clients) * [Servers](#servers) * [SSH](#ssh) + * [Alternative SSH Clients](#alternative-ssh-clients) * [System Base](#system-base) * [System Information Utilities](#system-information-utilities) * [System Logs Managers](#system-logs-managers) @@ -1592,10 +1593,15 @@ This is for both social media websites and apps. ## SSH -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [ConnectBot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Haven](https://glasshaven.github.io/Haven/) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded)([1](https://github.com/GlassHaven/Haven/commit/1cece45f4166aa1ead4ccfd9275e370a972fd8e5)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [ConnectBot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | +| [Haven](https://glasshaven.github.io/Haven/) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded)([1](https://github.com/GlassHaven/Haven/commit/1cece45f4166aa1ead4ccfd9275e370a972fd8e5)) | + +> [!Note] +> #### Alternative SSH clients +> * **Android** +> * [Termux](httpa://termux.dev/) ## System Base From 1a84eec3106cbdeb1550fc7d30349630ef3c6067 Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 13:59:36 +0200 Subject: [PATCH 321/413] Add GNU nano as alternative text editor (#991) ### Description of Changes This PR adds GNU nano as alternative text editor Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/991 Reviewed-by: Ethical FOSS admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 68350e3..3a82ca4 100644 --- a/README.md +++ b/README.md @@ -1738,6 +1738,7 @@ This section is strictly for software implementing a core set of UNIX-like utili > * [deadpixi/sam] (GUI): Last commit was on 2020-07-14 > * [EVi] (TUI) - fork of vim > * [GNU Emacs] (TUI, GUI) +> * [GNU nano] (TUI) > * [Gram] (GUI) - fork of zed > * [Hemlock] (TUI, GUI) > * [Lapce] (GUI) @@ -1927,6 +1928,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [GNOME Boxes]: https://gnomeboxes.org [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal [GNU Emacs]: https://www.gnu.org/software/emacs/ +[GNU nano]: https://www.nano-editor.org/ [GnuTLS]: https://www.gnutls.org/ [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial [Gram]: https://codeberg.org/GramEditor/gram From 0830c2b23ccab5f857d5ab6c83d1fbef18af3689 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 12:35:13 +0000 Subject: [PATCH 322/413] add anti-ai policy merit badges for Waterfox, EVi, and Gram --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3a82ca4..7943d61 100644 --- a/README.md +++ b/README.md @@ -574,7 +574,7 @@ This is a section for repos that are similar to this one either because they are > #### Desktop Browser Alternatives > * [Epiphany] (by GNOME, WebKit based) does not currently have a stance, but GNOME developers as a whole [show aware anti-"AI" sentiments](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) and roll out [wide reaching rules](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) against it. > * [Servo] (New engine, formerly owned by Mozilla, now by a co-op) is not yet daily driver ready, but has [strong protections](https://book.servo.org/contributing/getting-started.html#ai-contributions) for when it is some time in the future. -> * [Waterfox] They have [clear anti-ai stance](https://www.waterfox.com/blog/no-ai-here-response-to-mozilla/) +> * [Waterfox] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://www.waterfox.com/blog/no-ai-here-response-to-mozilla/)) ### Headless Browsers @@ -1736,10 +1736,10 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!NOTE] > ### Alternative Text and Code Editors > * [deadpixi/sam] (GUI): Last commit was on 2020-07-14 -> * [EVi] (TUI) - fork of vim +> * [EVi] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/evi-editor/evi/src/branch/master/CONTRIBUTING.md#using-ai)) (TUI) - fork of vim > * [GNU Emacs] (TUI, GUI) > * [GNU nano] (TUI) -> * [Gram] (GUI) - fork of zed +> * [Gram] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/GramEditor/gram/src/branch/main/CONTRIBUTING.md#contributing-to-this-project)) (GUI) - fork of zed > * [Hemlock] (TUI, GUI) > * [Lapce] (GUI) > * [vis] (TUI) From 758023ed1a6e0baa452a41b18264611266542f92 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 12:38:18 +0000 Subject: [PATCH 323/413] add a cute little table for text editor alternatives --- README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7943d61..87c80fa 100644 --- a/README.md +++ b/README.md @@ -1735,14 +1735,16 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!NOTE] > ### Alternative Text and Code Editors -> * [deadpixi/sam] (GUI): Last commit was on 2020-07-14 -> * [EVi] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/evi-editor/evi/src/branch/master/CONTRIBUTING.md#using-ai)) (TUI) - fork of vim -> * [GNU Emacs] (TUI, GUI) -> * [GNU nano] (TUI) -> * [Gram] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/GramEditor/gram/src/branch/main/CONTRIBUTING.md#contributing-to-this-project)) (GUI) - fork of zed -> * [Hemlock] (TUI, GUI) -> * [Lapce] (GUI) -> * [vis] (TUI) +> | Name | UI | Notes | +> |------|----|-------| +> | [deadpixi/sam] | GUI | Last commit was on 2020-07-14 | +> | [EVi] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/evi-editor/evi/src/branch/master/CONTRIBUTING.md#using-ai)) | TUI | fork of vim | +> | [GNU Emacs] | TUI, GUI | | +> | [GNU nano] | TUI | | +> | [Gram] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/GramEditor/gram/src/branch/main/CONTRIBUTING.md#contributing-to-this-project)) | GUI | fork of zed | +> | [Hemlock] | TUI, GUI | | +> | [Lapce] | GUI | | +> | [vis] | TUI | | ### Note Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | From d0795b42653476870984d0aa3693d8e664847814 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 12:39:58 +0000 Subject: [PATCH 324/413] move anti-ai merit badge to notes section for gram and EVi --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 87c80fa..1fb6b89 100644 --- a/README.md +++ b/README.md @@ -1738,10 +1738,10 @@ This section is strictly for software implementing a core set of UNIX-like utili > | Name | UI | Notes | > |------|----|-------| > | [deadpixi/sam] | GUI | Last commit was on 2020-07-14 | -> | [EVi] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/evi-editor/evi/src/branch/master/CONTRIBUTING.md#using-ai)) | TUI | fork of vim | +> | [EVi] | TUI | [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/evi-editor/evi/src/branch/master/CONTRIBUTING.md#using-ai)), fork of vim | > | [GNU Emacs] | TUI, GUI | | > | [GNU nano] | TUI | | -> | [Gram] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/GramEditor/gram/src/branch/main/CONTRIBUTING.md#contributing-to-this-project)) | GUI | fork of zed | +> | [Gram] | GUI | [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/GramEditor/gram/src/branch/main/CONTRIBUTING.md#contributing-to-this-project)), fork of zed | > | [Hemlock] | TUI, GUI | | > | [Lapce] | GUI | | > | [vis] | TUI | | From a3788547a7a6045ed3934136ffb78e7a13fcb7d0 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 12:43:40 +0000 Subject: [PATCH 325/413] add some basic notes on code editors --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1fb6b89..de504c8 100644 --- a/README.md +++ b/README.md @@ -1742,9 +1742,9 @@ This section is strictly for software implementing a core set of UNIX-like utili > | [GNU Emacs] | TUI, GUI | | > | [GNU nano] | TUI | | > | [Gram] | GUI | [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/GramEditor/gram/src/branch/main/CONTRIBUTING.md#contributing-to-this-project)), fork of zed | -> | [Hemlock] | TUI, GUI | | +> | [Hemlock] | TUI, GUI | Emacs-like | > | [Lapce] | GUI | | -> | [vis] | TUI | | +> | [vis] | TUI | vi-like | ### Note Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | From e98da694e339f720f092e3796586ab120ebd8011 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Tue, 16 Jun 2026 15:15:54 +0200 Subject: [PATCH 326/413] add a missing char (#994) ### Description of Changes add a ) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/994 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de504c8..114867a 100644 --- a/README.md +++ b/README.md @@ -1198,7 +1198,7 @@ This is a section for repos that are similar to this one either because they are > #### Alternative Linux-based operating systems > * [Chimera Linux](https://chimera-linux.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing)) > * [elementary OS](https://elementary.io/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://docs.elementary.io/contributor-guide/development/generative-ai-policy)) -> * [Gentoo Linux](https://www.gentoo.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) +> * [Gentoo Linux](https://www.gentoo.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.gentoo.org/wiki/Project:Council/AI_policy)) > * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning)) > * [postmarketOS](https://postmarketos.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://docs.postmarketos.org/policies-and-processes/development/ai-policy.html)) > * [secureblue](https://secureblue.dev/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://secureblue.dev/contributing#ai-content)) From d42ca2a121efe4722fe8eded392319bfcaa59566 Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 17:53:18 +0200 Subject: [PATCH 327/413] Fix typo in URL (#995) ### Description of Changes This PR fixes a typo I made in the Termux URL Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/995 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 114867a..74f87fe 100644 --- a/README.md +++ b/README.md @@ -1601,7 +1601,7 @@ This is for both social media websites and apps. > [!Note] > #### Alternative SSH clients > * **Android** -> * [Termux](httpa://termux.dev/) +> * [Termux](https://termux.dev/) ## System Base From 9a522b43bab24ae02fb2e32b93cd9a7898f7d19c Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 17:57:33 +0200 Subject: [PATCH 328/413] Add TLP as alternative for Power Management (#997) ### Description of Changes This PR adds TLP as alternative for Power Management Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/997 Reviewed-by: Ethical FOSS admin --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 74f87fe..c468eb7 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Android](#android) * [System Services and Daemons](#system-services-and-daemons) * [Power Management](#power-management) + * [Alternative Power Management Software](#alternative-power-management-software) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) @@ -1665,13 +1666,17 @@ This section is strictly for software implementing a core set of UNIX-like utili ### Power Management -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AdnanHodzic/auto-cpufreq/commit/20b37c05bea59e057d6e4c7f75a434eaefabb048), [2](https://github.com/AdnanHodzic/auto-cpufreq/commit/44e1ae86679f6786e935c73b00ca8ddb93797e7a), [3](https://github.com/AdnanHodzic/auto-cpufreq/commit/c1ba0fe5df2542681e8dfcef6b0aa0217cf9edb4))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AdnanHodzic/auto-cpufreq/pull/942), [2](https://github.com/AdnanHodzic/auto-cpufreq/pull/903), [3](https://github.com/AdnanHodzic/auto-cpufreq/pull/945)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [laptop-mode-tools](https://github.com/rickysarraf/laptop-mode-tools) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rickysarraf/laptop-mode-tools/pull/216)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [PowerTOP](https://github.com/fenrus75/powertop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fenrus75/powertop/blob/master/.gemini/GEMINI.md), [2](https://github.com/fenrus75/powertop/commit/9a173c0befb8fec4627fca1f08a322b82c3e34fb), [3](https://github.com/fenrus75/powertop/commit/425b5b7981eed18c530632d22e4ca034127394df))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fenrus75/powertop/pull/198), [2](https://github.com/fenrus75/powertop/pull/190), [3](https://github.com/fenrus75/powertop/pull/209)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [TuneD](https://github.com/redhat-performance/tuned) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/redhat-performance/tuned/pull/854), [2](https://github.com/redhat-performance/tuned/pull/850), [3](https://github.com/redhat-performance/tuned/pull/852)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Upower](https://upower.freedesktop.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/322), [2](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/280), [3](https://gitlab.freedesktop.org/upower/upower/-/commit/17f9e8dc5a967fde13be688634a465c71fb79dd0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/310#note_3390445), [2](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/309)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [auto-cpufreq](https://github.com/AdnanHodzic/auto-cpufreq) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AdnanHodzic/auto-cpufreq/commit/20b37c05bea59e057d6e4c7f75a434eaefabb048), [2](https://github.com/AdnanHodzic/auto-cpufreq/commit/44e1ae86679f6786e935c73b00ca8ddb93797e7a), [3](https://github.com/AdnanHodzic/auto-cpufreq/commit/c1ba0fe5df2542681e8dfcef6b0aa0217cf9edb4))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AdnanHodzic/auto-cpufreq/pull/942), [2](https://github.com/AdnanHodzic/auto-cpufreq/pull/903), [3](https://github.com/AdnanHodzic/auto-cpufreq/pull/945)) | +| [laptop-mode-tools](https://github.com/rickysarraf/laptop-mode-tools) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rickysarraf/laptop-mode-tools/pull/216)) | +| [PowerTOP](https://github.com/fenrus75/powertop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fenrus75/powertop/blob/master/.gemini/GEMINI.md), [2](https://github.com/fenrus75/powertop/commit/9a173c0befb8fec4627fca1f08a322b82c3e34fb), [3](https://github.com/fenrus75/powertop/commit/425b5b7981eed18c530632d22e4ca034127394df))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fenrus75/powertop/pull/198), [2](https://github.com/fenrus75/powertop/pull/190), [3](https://github.com/fenrus75/powertop/pull/209)) | +| [TuneD](https://github.com/redhat-performance/tuned) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/redhat-performance/tuned/pull/854), [2](https://github.com/redhat-performance/tuned/pull/850), [3](https://github.com/redhat-performance/tuned/pull/852)) | +| [Upower](https://upower.freedesktop.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/322), [2](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/280), [3](https://gitlab.freedesktop.org/upower/upower/-/commit/17f9e8dc5a967fde13be688634a465c71fb79dd0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/310#note_3390445), [2](https://gitlab.freedesktop.org/upower/upower/-/merge_requests/309)) | + +> [!Note] +> #### Alternative Power Management Software +> * [TLP](https://github.com/linrunner/TLP) ## Terminal From 2d7aa9b92af871e775673dc7384b242ff5bad99e Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 18:43:56 +0200 Subject: [PATCH 329/413] Add Busybox ntpd, chrony, ntpd, and OpenNTPD as alternatives to ntpd-rs (#996) ### Description of Changes This PR adds Busybox ntpd, chrony, ntpd, and OpenNTPD as alternatives to ntpd-rs Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/996 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c468eb7..7f00cff 100644 --- a/README.md +++ b/README.md @@ -1659,7 +1659,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | [libinput](https://gitlab.freedesktop.org/libinput/libinput) | [`43547b46`](https://gitlab.freedesktop.org/libinput/libinput/-/commit/43547b461bea7a5bfe0658ee1689bea03dca6fa7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1444), [2](https://gitlab.freedesktop.org/libinput/libinput/-/commit/8dd25ece1073653c95ed26450be2739d3e0e30fd), [3](https://gitlab.freedesktop.org/libinput/libinput/-/commit/7d15503b4537d73b9e0b49738fc509060fa5a14b)) | [evdev](https://en.wikipedia.org/wiki/evdev) | | [lvm2](https://sourceware.org/lvm2/) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/lvmteam/lvm2/-/commit/6207fe707a4ae255ef62a2fa088ec2497ae6c0a8),[2](https://gitlab.com/lvmteam/lvm2/-/commit/ff76548a3da5cee224e4663d81d7041558115b8e),[3](https://gitlab.com/lvmteam/lvm2/-/commit/99b85e7e4acc7fb69460b2bdb94aa8c2ca0f8946)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mesa3D](https://mesa3d.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://docs.mesa3d.org/submittingpatches.html#expectations-on-contributors)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| -| [ntpd-rs](https://github.com/pendulum-project/ntpd-rs) | [`v1.6.1`](https://github.com/pendulum-project/ntpd-rs/releases/tag/v1.6.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pendulum-project/ntpd-rs/blob/main/CONTRIBUTING.md#use-of-generative-artificial-intelligence)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [ntpd-rs](https://github.com/pendulum-project/ntpd-rs) | [`v1.6.1`](https://github.com/pendulum-project/ntpd-rs/releases/tag/v1.6.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pendulum-project/ntpd-rs/blob/main/CONTRIBUTING.md#use-of-generative-artificial-intelligence)) | [Busybox](https://busybox.net) `ntpd`,
[chrony](https://chrony-project.org/),
[ntpd](https://github.com/ntp-project/ntp),
[OpenNTPD](https://www.openntpd.org/) | | [rsyslog](https://www.rsyslog.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.rsyslog.com/doc/about/ai_first.html)) | [syslog-ng](https://www.syslog-ng.com/products/open-source-log-management/) | | [systemd](https://github.com/systemd/systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/systemd/systemd/blob/main/AGENTS.md), [2](https://github.com/systemd/systemd/commit/744d589632c545e90ae76853abbfbc90cb530e24)) | [dinit](https://davmac.org/projects/dinit),
[s6](https://skarnet.org/software/s6/),
[OpenRC](https://github.com/OpenRC/openrc),
[shepherd](https://shepherding.services/) | | [wireplumber](https://gitlab.freedesktop.org/pipewire/wireplumber/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/pipewire/wireplumber/-/blob/master/AGENTS.md?ref_type=heads)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| From dd430a9e0d411bb730a64c83d67e295a3f399b8a Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Tue, 16 Jun 2026 20:23:29 +0200 Subject: [PATCH 330/413] Add Darcs and Pijul as alternative version control systems (#998) ### Description of Changes This PR adds Darcs and Pijul as alternative version control systems Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/998 Reviewed-by: Ethical FOSS admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7f00cff..8a6f1cb 100644 --- a/README.md +++ b/README.md @@ -1799,7 +1799,9 @@ This section is strictly for software implementing a core set of UNIX-like utili > [!Note] > #### Alternative Version Control Systems > * [BitKeeper](https://github.com/bitkeeper-scm/bitkeeper) +> * [Darcs](https://darcs.net/) > * [Game of Trees] +> * [Pijul](https://pijul.org/) ### Version Control Servers From a5c279161aba2423f76f4969c48cad33c6f743d8 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 20:27:50 +0200 Subject: [PATCH 331/413] make continuous integration alternatives section for forgejo actions --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8a6f1cb..e86996c 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Video](#video) * [Containers](#containers) * [Continuous Integration](#continuous-integration) + * [Continious Integration Alternatives](#continuous-integration-alternatives) * [Cryptography](#cryptography) * [Disk Encryption](#disk-encryption) * [File Encryption](#file-encryption) @@ -772,10 +773,14 @@ This is a section for repos that are similar to this one either because they are ## Continuous Integration -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---|---| -| [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | -| [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | +| [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | +| [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | + +### Continious Integration Alternatives + +- [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) ## Cryptography From 0df989b4e2d0b87bdcd1e146adadf395ba708f8c Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 20:28:53 +0200 Subject: [PATCH 332/413] fix continuous typo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e86996c..0e226cb 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Video](#video) * [Containers](#containers) * [Continuous Integration](#continuous-integration) - * [Continious Integration Alternatives](#continuous-integration-alternatives) + * [Continuous Integration Alternatives](#continuous-integration-alternatives) * [Cryptography](#cryptography) * [Disk Encryption](#disk-encryption) * [File Encryption](#file-encryption) @@ -778,7 +778,7 @@ This is a section for repos that are similar to this one either because they are | [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | | [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | -### Continious Integration Alternatives +### Continuous Integration Alternatives - [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) From 946f2597613f8ce4791262652a40a9097c060a42 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 20:30:41 +0200 Subject: [PATCH 333/413] remove alternatives column for the file comparison section we already have an alternatives note --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e226cb..b80c3b4 100644 --- a/README.md +++ b/README.md @@ -868,7 +868,7 @@ This is a section for repos that are similar to this one either because they are ## File Comparison -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---|---| | [delta](https://github.com/dandavison/delta) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dandavison/delta/pull/2058))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dandavison/delta/pull/2152), [2](https://github.com/dandavison/delta/pull/2026), [3](https://github.com/dandavison/delta/pull/2139)) | | [difftastic](https://github.com/Wilfred/difftastic) | [`68273d15`](https://github.com/Wilfred/difftastic/commit/68273d15) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Wilfred/difftastic/commit/b438e8b57d5628f0d04f92a19182198a54016528)) | From 32ba9dd0708e259672ae5a33064e299fea0ec99b Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Tue, 16 Jun 2026 20:33:22 +0200 Subject: [PATCH 334/413] add anti-ai policy badge for love2d and move anti-ai policy badge right after chipass --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b80c3b4..fb10602 100644 --- a/README.md +++ b/README.md @@ -1004,7 +1004,7 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Alternative Game Engines -> - [LÖVE](https://love2d.org/) is a 2D game engine based on Lua with some 3D capability that may serve as a viable alternative to Godot/Unity depending on your project's requirements. +> - [LÖVE](https://love2d.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/love2d/love#contributing)) is a 2D game engine based on Lua with some 3D capability that may serve as a viable alternative to Godot/Unity depending on your project's requirements. ### Game Managers and Launchers @@ -1271,7 +1271,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > #### Local Password Manager Alternatives -> * [ChiPass](https://codeberg.org/ChiPass/ChiPass): An active fork of KeePassXC `2.7.10` [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051), [2](https://codeberg.org/ChiPass/ChiPass/commit/8fb6e891e6fe7ce7c3f1234a1d83460ab0ee093b)). +> * [ChiPass](https://codeberg.org/ChiPass/ChiPass) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051), [2](https://codeberg.org/ChiPass/ChiPass/commit/8fb6e891e6fe7ce7c3f1234a1d83460ab0ee093b)) An active fork of KeePassXC `2.7.10`. > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. > * [OneKeePass mobile](https://github.com/OneKeePass/mobile) and [OneKeePass desktop](https://github.com/OneKeePass/desktop) both seem to be untainted. > * [rbw](https://github.com/doy/rbw) (Bitwarden/Vaultwarden client) From 8fa837fb6df29f1a8fafffc0dd469d53308bafa5 Mon Sep 17 00:00:00 2001 From: Ethical FOSS admin Date: Wed, 17 Jun 2026 07:48:19 +0200 Subject: [PATCH 335/413] Add Micosoft PowerToys as tainted (#969) ### Description of Changes Closes #267 Co-authored-by: vleermuis-admin Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/969 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fb10602..e943a03 100644 --- a/README.md +++ b/README.md @@ -1611,10 +1611,11 @@ This is for both social media websites and apps. ## System Base -This section is strictly for software implementing a core set of UNIX-like utilities and/or directly interfacing with several kernel subsystems. Think potential replacements for coreutils and util-linux. +This section is strictly for software implementing a core set of UNIX-like (or Microsoft equivalent) utilities and/or directly interfacing with several kernel subsystems. Think potential replacements for coreutils and util-linux. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [PowerToys](https://github.com/microsoft/PowerToys) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/PowerToys/blob/main/AGENTS.md), [2](https://github.com/microsoft/PowerToys/tree/main/.claude)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [plan9port](https://9fans.github.io/plan9port/) | [`0155f29`](https://github.com/9fans/plan9port/commit/0155f29bdc3cf0cab017fd7b33bf9e93cb9af64c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/9fans/plan9port/pull/748)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sudo](https://github.com/sudo-project/sudo) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sudo-project/sudo/pull/529), [2](https://github.com/sudo-project/sudo/commit/b040db2be79b635c), [3](https://github.com/sudo-project/sudo/commit/3226ef7b3d66097d3432d2a49915b3fc457203dd)) | [OpenDoas] | | [sudo-rs](https://github.com/trifectatechfoundation/sudo-rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/trifectatechfoundation/sudo-rs/blob/main/CONTRIBUTING.md#use-of-generative-artificial-intelligence), [2](https://github.com/trifectatechfoundation/sudo-rs/commit/a59a09e33f9f97e00b708c2585a6d64ba8dfa23b)) | [OpenDoas] | From c5dd90e234f819b97352c40494c973193318853c Mon Sep 17 00:00:00 2001 From: 0x0079 <0x0079@noreply.codeberg.org> Date: Wed, 17 Jun 2026 13:38:49 +0200 Subject: [PATCH 336/413] Add Deflock (#459) Adds [deflock.org](https://deflock.org) While it isnt necessarily built to be run locally, there are instructions on how to do so, so I felt it would be worth including here. Overpass Turbo is listed as an alternative as a different and more versatile frontend to the same data. Uses ai 'art' and permissive ai policy as evidence. I marked > If you need help tailoring this to your situation, appealing rejections, etc., ChatGPT is a great resource. on the [request public records](https://deflock.org/foia) page as ![Permissive AI Policy](https://codeberg.org/small-hack/open-slopware/media/branch/main/badges/permissive-ai-policy-orange.svg) as there doesn't seem to be a better label, though I'm aware this probably isn't the clearest and am happy to change it; marking this PR as WIP until that's resolved. Didn't find an untainted commit as, while this is subjective, much of the original copy on the site read as slop. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/459 Reviewed-by: Ethical FOSS admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e943a03..d45e6fc 100644 --- a/README.md +++ b/README.md @@ -1052,6 +1052,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [BRouter](https://brouter.de/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jonnybbb/brouter/pull/5)) | | [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | +| [Deflock](https://deflock.org/) | None | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/FoggedLens/deflock/tree/master/webapp/public/favicons), [2](https://github.com/FoggedLens/deflock/blob/master/webapp/public/404.webp))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/FoggedLens/deflock/blob/2be27e551adc02dd5d5217bada224647a10c48c2/webapp/src/views/FOIA.vue#L44)) | | [GraphHopper](https://github.com/graphhopper/graphhopper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/graphhopper/graphhopper/pull/3333)) | | [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | | [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | @@ -1063,6 +1064,7 @@ This is a section for repos that are similar to this one either because they are > * [Navit](https://github.com/navit-gps/navit) for car navigation > * [OpenRouteService](https://openrouteservice.org/) > * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. +> * [OverpassTurbo](https://overpass-turbo.eu/) provides an interface for querying the OSM Overpass API, and can be used to [show the locations of ALPRs](https://overpass-turbo.eu/s/2o90). ## Messaging From b823990dcdc943fd1144a2f9a4ca769825f98a24 Mon Sep 17 00:00:00 2001 From: FlemyJY Date: Thu, 18 Jun 2026 08:06:17 +0200 Subject: [PATCH 337/413] Add TrechBroom as tainted and add GtkRadiant as alternative (#1005) ### Description of Changes This PR adds TrechBroom as tainted; This PR adds GtkRadiant as alternative Co-authored-by: FlemyJY Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1005 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d45e6fc..54040ee 100644 --- a/README.md +++ b/README.md @@ -721,6 +721,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Blender](https://www.blender.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.blender.org/lab/mcp-server/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devtalk.blender.org/t/ai-contributions-policy/44202), [2](https://github.com/blender/blender/commit/336b5d0de12a438614846961b7961bbf35399eb3), [3](https://github.com/blender/blender/commit/79e02e1405a98884cc8fd5505cc54df2c2dc5d21))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/), [2](https://mastodon.social/@Blender/116482997785333001), [3](https://bsky.app/profile/blender.org/post/3mkkuyq3ijs2q)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [F3D](https://f3d.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/f3d-app/f3d/blob/f908304004003a7fecadcd0b0f20bb772ba3f512/AI_POLICY.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://f3d.app/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [TrechBroom](https://trenchbroom.github.io) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TrenchBroom/TrenchBroom/commit/04bfd93c70f91bb3001637011e320c390b1ce82c)) | [GtkRadiant](https://icculus.org/gtkradiant/) | ### Image Manipulation From 32c791abfb842e011cb4d787a37fb3f8c31480a8 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Thu, 18 Jun 2026 15:27:12 +0200 Subject: [PATCH 338/413] add AI datacenter lobby reference for environmental impact section --- why_not_llms.md | 1 + 1 file changed, 1 insertion(+) diff --git a/why_not_llms.md b/why_not_llms.md index 6855ccf..98ac740 100644 --- a/why_not_llms.md +++ b/why_not_llms.md @@ -56,6 +56,7 @@ To start learning a bit more, you can checkout the wikipedia page on [Environmen - [UCLA: AI is Destroying Our Planet](https://newsroom.ucla.edu/stories/opinion-ai-is-destroying-our-planet-we-must-act) - [The Guardian: Officials hugely underestimated impact of AI datacentres on UK carbon emissions](https://web.archive.org/web/20260425032459/https://www.theguardian.com/technology/2026/apr/24/officials-hugely-underestimated-impact-of-ai-datacentres-on-uk-carbon-emissions) - [KU Leuven Centre for IT & IP Law: The environmental costs of AI: a shake-up of the EU's twin transition](https://www.law.kuleuven.be/citip/blog/the-environmental-costs-of-ai-a-shake-up-of-the-eus-twin-transition/) +- [Politico: Europe must choose between AI and climate goals, data center lobby says](https://www.politico.eu/article/europe-choose-ai-climate-goals-data-center-chief-warns/) - [Australian Parliament: Impacts of AI on the environment](https://www.aph.gov.au/Parliamentary_Business/Committees/Senate/Adopting_Artificial_Intelligence_AI/AdoptingAI/Report/Chapter_6_-_Impacts_of_AI_on_the_environment) ## Labor From 791950b18a38ce31726fc955b1c7417650baf83b Mon Sep 17 00:00:00 2001 From: ruriofdoom Date: Fri, 19 Jun 2026 06:04:31 +0200 Subject: [PATCH 339/413] Add Ares, MAME, RPCS3, Snes9x, and Stella (#989) I was browsing the GitHub pages for Ares, MAME, Snes9x, and Stella, and learned that they, unfortunately, have at least a single commit "co-authored" by Claude Code. (I've been able to find the last commits prior to them thanks to [repo-slopscore](https://slopscan.ava.pet/)...) I feel confident putting Stella on the list due to its [CLAUDE.md](https://github.com/stella-emu/stella/blob/master/CLAUDE.md) and the fact that it's used for huge changes ([refactoring the codebase](https://github.com/stella-emu/stella/commit/e8ca91e376511073a1a5213135283c8d6947dc6e)). I don't feel as confident for the other projects, for the gen AI usage is a bit sparse and I'm not sure if they still count as part of the "permissive AI policy" rule, especially since, as far as I know, MAME developers have been outspoken against AI on Reddit and brought up MAME being vibe-coded as an [April Fools joke](https://www.mamedev.org/?p=562). I feel like these projects should have an AI policy in place; perhaps more kind eyes needed? EDIT: [RPCS3](https://github.com/RPCS3/rpcs3#ai-use) also has an AI contribution policy that, from how I've read it, accepts some form of AI and stresses the responsibility of the human user behind it. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/989 Reviewed-by: Ethical FOSS admin --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 54040ee..e2e296d 100644 --- a/README.md +++ b/README.md @@ -985,10 +985,15 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | +| [Ares](https://github.com/ares-emulator/ares) | [`ae41a43`](https://github.com/ares-emulator/ares/commit/ae41a4356732803a0ee72280a0a7edab431d1a79) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ares-emulator/ares/commit/38a2e6260396bc648c4b7303f67d3708f3940c68)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Cemu](https://cemu.info/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cemu-project/Cemu/issues/1924#issuecomment-4502709266)) | [decaf-emu](https://github.com/decaf-emu/decaf-emu) | | [Dolphin](https://dolphin-emu.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dolphin-emu/dolphin/blob/7b69949cec7afcd1691a9a046d26d5c4a99ce4fc/Contributing.md#genai), [2](https://github.com/dolphin-emu/dolphin/pull/14511), [3](https://github.com/dolphin-emu/dolphin/pull/14632))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/dolphin-emu/dolphin/pull/13750)) | [Lazuli](https://github.com/vxpm/lazuli) (only GameCube) | | [DolphiniOS](https://github.com/OatmealDome/dolphin-ios/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/OatmealDome/dolphin-ios/commit/626315d50a53b1ca5e1f6ec52a1d3ce7012411f4)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [MAME](https://github.com/mamedev/mame) | [`4f25362`](https://github.com/mamedev/mame/commit/4f253622aa62fb2902efffbdf2ae3d71e30f124f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mamedev/mame/commit/98fd60c04888f15556d45506bc3cd04a7df3cee3), [2](https://github.com/mamedev/mame/commit/6cb0ec64ac8608c4bcf864807495f91c55db3653)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [RPCS3](https://github.com/RPCS3/rpcs3) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RPCS3/rpcs3#ai-use), [2](https://github.com/RPCS3/rpcs3/commit/d25972e196615c99afa04567e91fb5d81f9af1f6)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) | +| [Snes9x](https://github.com/snes9xgit/snes9x) | [`2e3fce3`](https://github.com/snes9xgit/snes9x/commit/2e3fce37e8e45e449fd9b6f31ca3d078a38e7f39) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/snes9xgit/snes9x/commit/9cd4c1b28614146b3b74bac6b95ffc20848d51b5)) | [bsnes](https://github.com/bsnes-emu/bsnes), [higan](https://github.com/higan-emu/higan) | +| [Stella](https://github.com/stella-emu/stella) | [`616286a`](https://github.com/stella-emu/stella/commit/616286abc78b04ccb51873ea168ddfa2802427c3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/stella-emu/stella/blob/master/CLAUDE.md), [2](https://github.com/stella-emu/stella/commit/2eff78e44060cba96921c9b47a10ca469ff3a108)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [VisualBoyAdvance-M](https://github.com/visualboyadvance-m/visualboyadvance-m) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/blob/master/CLAUDE.md), [2](https://github.com/visualboyadvance-m/visualboyadvance-m/commit/e5c7eae069aeab4630e588b760586f96f9fe9111), [3](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1515))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/visualboyadvance-m/visualboyadvance-m/pull/1501)) | [mGBA](https://github.com/mgba-emu/mgba) ### Game engines From bc9c6d8c7ea901dd5706b081b081319dab98dfaf Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Fri, 19 Jun 2026 15:33:45 +0200 Subject: [PATCH 340/413] update starship (#1010) ### Description of Changes link to github instead of website, update evidence for AI Functionality, Permissive AI Policy and AI Code Reviews tags Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1010 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e2e296d..f0ffa52 100644 --- a/README.md +++ b/README.md @@ -693,7 +693,7 @@ This is a section for repos that are similar to this one either because they are | [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://ohmyposh.dev/docs/segments/cli/claude))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/starship/starship/pull/7451#pullrequestreview-4214288411)) | [shmonad](https://github.com/matthunz/shmonad) | +| [Starship](https://github.com/starship/starship) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/starship/starship/commit/b8ee82167c5b49c7e9fd70e5542fad0e56810b39))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/blob/main/AI_POLICY.md), [2](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/starship/starship/pull/7451#pullrequestreview-4214288411), [2](https://github.com/starship/starship/pull/7324#pullrequestreview-3952260056), [3](https://github.com/starship/starship/pull/7317#pullrequestreview-3932388345)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers From 43eb9e47a338d4f8670fce5ad073ad9504a06d41 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 19 Jun 2026 15:34:15 +0200 Subject: [PATCH 341/413] Update audacity and add 3.7.7 as last untainted version (#1007) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1007 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0ffa52..1c6d63a 100644 --- a/README.md +++ b/README.md @@ -430,7 +430,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | +| [Audacity](https://www.audacityteam.org/) | [3.7.7](https://github.com/audacity/audacity/releases/tag/Audacity-3.7.7) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | From 57e7ee94bde81cdfa238ac5a07abcfe8b3aabf70 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 19 Jun 2026 15:40:22 +0200 Subject: [PATCH 342/413] note that we don't accept adult content at this time --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index acdf344..db5db13 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -99,6 +99,8 @@ Projects that have an explicit "No AI" policy can be awarded the [![Anti-AI Poli - At this time, we're not accepting alternatives that are centralized and/or lacking the appropriate documentation to be self-hosted by non-experts. For example, we will not endorse the messaging app "Signal", or social media platforms based on AT-protocol. In the event that such projects do become tainted they would not be easy to fork, operate, or support - which places users and operators at a disadvantage. If a project does improve their documentation such that self-hosting becomes more accessable, we will of course re-evaluate. Feel free to open a PR at that time. +- We do not allow adult content at this time. (Please also do not submit alternatives with screenshots of adult content) + # Contributing Issues Issues are meant primarily for discussing if something should be added or questions regarding clarification. An issue that says "Add x software" will be treated as a call to community action and labeled with `ready-for-pr`, provided it meets the above criteria. This is not a problem, but does not necessarily mean the core maintainers of this repo will create that PR for you. However it does mean you or someone else in the community is clear to go ahead and submit a PR for that software. This is maintained in the community's free time, so please understand that there will sometimes be a delay when a PR is created for you. From 885d1a25df4389d03fdf0be9b6198273c2d1edbf Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 19 Jun 2026 15:45:27 +0200 Subject: [PATCH 343/413] note that we don't allow CSAM (including drawn) --- CODE_OF_CONDUCT.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 0dc8b3e..5a2f683 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -36,6 +36,10 @@ That will display like this: Failure to do so will first result in a one time warning and future offenses will be considered a strike. We ask that you do not use the acronym "NSFW" and instead use specific tags such as "nudity" or "discussion of sex" as to be inclusive to all workers. +# No CSAM + +We do not allow any form of CSAM, including drawn CSAM: lolicon, shotacon, or "cub" content. Do not submit alternatives that feature sexualized children anywhere in the source code. This includes drawn children. If you need to talk about a someone being acused of something related to CSAM in the context of alternatives in this repo, please use a specific Content Warning as described above. + # On handling rude comments in this repo specifically If you see someone behaving in appropriately, do not feed their behavior. Tag @ethical-foss-admin instead. They will handle it. From d6c857772cd69e41caa3f15814cb948c07502772 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 19 Jun 2026 21:58:49 +0200 Subject: [PATCH 344/413] update permissive AI policy to include more evidence --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1c6d63a..20fd28b 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,7 @@ Evidence can be: - an explicit AI policy (e.g. `AI_POLICY.md`, `CONTRIBUTING.md`, developer docs) in the repo or something in the project's contributing guidelines or in their website's documentation that says that AI/LLMs are allowed - an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. - core maintainers' blog or social media post about using AI/LLMs +- LLM code being merged into the default branch of a code repository. (Must be merged to count; Open PRs do not count) > [!Important] > If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. That tag is specifically meant for extreme cases only. From 605336fbf9c27961002396eeb78283c16c50f514 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 11:27:40 +0200 Subject: [PATCH 345/413] make it clear that examples we give are not the only evidence allowed --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 20fd28b..b8deb24 100644 --- a/README.md +++ b/README.md @@ -204,7 +204,7 @@ The term was coined by [Andrej Karpathy](https://en.wikipedia.org/wiki/Andrej_Ka Sometimes people will refer to vibecoding as "agenic engineering". We will not be using that term in this repo, but that still counts for this tag's usage. -Evidence can be: +Evidence can be, but is not limited to: - blog post stating the project was vibecoded - link to readme stating that the project was vibecoded. @@ -219,7 +219,7 @@ Evidence can be: A policy that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a permissive AI policy. -Evidence can be: +Evidence can be, but is not limited to: - an explicit AI policy (e.g. `AI_POLICY.md`, `CONTRIBUTING.md`, developer docs) in the repo or something in the project's contributing guidelines or in their website's documentation that says that AI/LLMs are allowed - an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. @@ -235,7 +235,7 @@ Evidence can be: This would include the ability to enable or disable an AI feature, such as an AI assistant or AI summary feature. This would also cover the case when a project depends on an AI program or library, such as an LLM SDK. -Evidence can be: +Evidence can be, but is not limited to: - a link to the docs explaining the AI Functionality - a blog post advertising the AI Functionality @@ -247,7 +247,7 @@ Evidence can be: An AI agent/bot is used to review pull requests, which makes slop acceptance more probable and maintainability more difficult, especially when human reviews are scarce. -Evidence can be: +Evidence can be, but is not limited to: - a link to an AI code review requested by a maintainer. - an AI code review CI workflow. @@ -262,7 +262,7 @@ Evidence can be: AI "Art" is being used in a project. This is typically for banners, avatars, promotional material, and/or blog posts. This means they're using tools that steal art from visual artists. -Evidence can be: +Evidence can be, but is not limited to: - link to the place where the AI "art" is used @@ -272,7 +272,7 @@ Evidence can be: The project is sponsored directly by an AI company. An AI company is any company that advertises itself as pro-AI or develops an AI product itself. The obvious ones are Anthropic and OpenAI, however, all the big tech companies (e.g. Apple, Google, Microsoft, and Amazon) also count because they all have AI services and direct products as major offerings. -Evidence can be: +Evidence can be, but is not limited to: - Blog post disclosing AI funding - link to website that lists AI companies in sponsors list @@ -284,7 +284,7 @@ Evidence can be: The use of an AI company as a third party service for processing user data. -Evidence can be: +Evidence can be, but is not limited to: - Blog post talking about using AI for processing user data - Privacy policy listing an AI company as a third party service @@ -295,7 +295,7 @@ Evidence can be: The use of an AI bot/agent for responding to Issues, Discussions, Forums etc related to a project's issue/bug tracking. -Evidence can be: +Evidence can be, but is not limited to: - Link to AI in an Issue, Bug report, Discussion, etc - must be related to the project's bug/issue tracking (e.g. dosu) @@ -310,7 +310,7 @@ The reason we still find this worthy of a tag is because it: - means that the LLM, often provided by a company with very little respect for copyright, will then save a copy of that open source repo for use in it's future outputs. - still encourages people to use LLMs and carves out a special situation in which they're still OK, but as this repo is against AI/LLMs for more than just "poor code quality" reasons, we still believe this is not a good course of action as it still promotes the use of inherently unethical tooling. -Evidence can be: +Evidence can be, but is not limited to: - An AI or Contribution policy that carves out a space for "using LLMs to understand the code" or "finding bugs" - Core maintainer using or accepting the use of AI for finding bugs or security issues From 4f281c689dd6b3d0755ea0a900bfd58015678d67 Mon Sep 17 00:00:00 2001 From: Spike Date: Sat, 20 Jun 2026 12:40:58 +0200 Subject: [PATCH 346/413] Add Gaybar, gaypanel as alternatives to Waybar (#1001) ### Description of Changes Adds my projects gaypanel/gaybar as alternatives to Waybar (and describes them, because the naming is a bit confusing...). Closes #716 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1001 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8deb24..f8b6947 100644 --- a/README.md +++ b/README.md @@ -1907,7 +1907,7 @@ Little bar on your desktop, kinda like a "start" bar. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Waybar](https://github.com/Alexays/Waybar) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Alexays/Waybar/pull/4888), [2](https://github.com/Alexays/Waybar/pull/4964)) | [polybar](https://github.com/polybar/polybar) | +| [Waybar](https://github.com/Alexays/Waybar) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Alexays/Waybar/pull/4888), [2](https://github.com/Alexays/Waybar/pull/4964)) | [polybar](https://github.com/polybar/polybar)
[Gaybar](https://codeberg.org/pastthepixels/Gaybar), fork of Waybar without AI commits
[gaypanel](https://codeberg.org/pastthepixels/gaypanel), successor to the above | ### Desktop Shells From dd2c43e0ba2cda3f1a8a5a2c2671e72102da8782 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 14:17:48 +0200 Subject: [PATCH 347/413] link to removal doc --- .forgejo/issue_template/config.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.forgejo/issue_template/config.yaml b/.forgejo/issue_template/config.yaml index e906078..12638d1 100644 --- a/.forgejo/issue_template/config.yaml +++ b/.forgejo/issue_template/config.yaml @@ -8,3 +8,6 @@ contact_links: - name: How to Create a Pull Request url: https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/ about: Learn more about how to create a pull request on codeberg 🩵 + - name: How to have "tainted" status removed + url: https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CONTRIBUTING.md#removal-of-tainted-status + about: If you want to know how to get your project (or a project you love) removed from the list, please check out this link. \ No newline at end of file From f80f5b2106b2fe244a8d6146d90a477f08f6f4b5 Mon Sep 17 00:00:00 2001 From: Mirian Margiani Date: Sat, 20 Jun 2026 15:25:47 +0200 Subject: [PATCH 348/413] Update chardet (#1014) (#1020) ### Description of Changes Last untainted version is 5.2.0 according to the maintainer. Closes #1014. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1020 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f8b6947..c3558c5 100644 --- a/README.md +++ b/README.md @@ -1450,7 +1450,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Black](https://github.com/psf/black) | [`25.9.0`](https://github.com/psf/black/releases/tag/25.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/black/commit/43dbc2f1ccbd74d4eea1c3615fe854961e6a07b7), [2](https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab), [3](https://github.com/psf/black/commit/8ab9719dcbeedccadf5d458d8139df38fcf84285))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/psf/black/pull/4790), [2](https://github.com/psf/black/pull/4804), [3](https://github.com/psf/black/pull/4825)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | +| [Chardet](https://github.com/chardet/chardet) | [`5.2.0`](https://github.com/chardet/chardet/releases/tag/5.2.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15), [3](https://github.com/chardet/chardet/issues/327#issuecomment-4006480251)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | | [`cryptography`](https://github.com/pyca/cryptography) | [`44.0.0`](https://github.com/pyca/cryptography/releases/tag/44.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pyca/cryptography/blob/main/AGENTS.md), [2](https://github.com/pyca/cryptography/commit/ce7f263d2b5492222497966e4132010caf650a70), [3](https://github.com/pyca/cryptography/commit/62d0783211a329c5d1d27b52c527a245e9bc842b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pyca/cryptography/pull/12976), [2](https://github.com/pyca/cryptography/pull/13137), [3](https://github.com/pyca/cryptography/pull/12937)) | [PyCryptodome](https://github.com/Legrandin/pycryptodome) | | [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | From 69d1a3fbe3b732d362ef9c882931495b553faab3 Mon Sep 17 00:00:00 2001 From: TSR Berry Date: Sat, 20 Jun 2026 16:30:16 +0200 Subject: [PATCH 349/413] Add PyJWT (#999) ### Description of Changes This PR adds PyJWT as tainted Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/999 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3558c5..916f41e 100644 --- a/README.md +++ b/README.md @@ -1455,6 +1455,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| +| [PyJWT](https://github.com/jpadilla/pyjwt) | [`2.11.0`](https://github.com/jpadilla/pyjwt/releases/tag/2.11.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jpadilla/pyjwt/commit/412cb67a93363812ae4029d6a95f5d4d40ab2609), [2](https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93), [3](https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jpadilla/pyjwt/pull/1112), [2](https://github.com/jpadilla/pyjwt/pull/1152), [3](https://github.com/jpadilla/pyjwt/pull/1101)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Pylint](https://github.com/pylint-dev/pylint) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pylint-dev/pylint/blob/b080a21ca0005b13e985456537bb8510919a2672/.github/copilot-instructions.md), [2](https://github.com/pylint-dev/pylint/pull/10350), [3](https://github.com/pylint-dev/pylint/pull/10892))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pylint-dev/pylint/pull/10321), [2](https://github.com/pylint-dev/pylint/pull/10322), [3](https://github.com/pylint-dev/pylint/pull/10930)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` (Python Standard Lib)](https://docs.python.org/3/library/urllib.request.html) | From 440ec0f788a864f0ab56b51d226de6193b82edb9 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Sat, 20 Jun 2026 16:32:02 +0200 Subject: [PATCH 350/413] replace xcancel link with archive link (ffmpeg) (#1021) ### Description of Changes This PR replaces the xcancel link for "GenAI 'Art'" evidence with a link from the Internet Archive Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1021 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 916f41e..f288a27 100644 --- a/README.md +++ b/README.md @@ -754,7 +754,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://xcancel.com/FFmpeg/status/2054689695532036382#m))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [FFmpeg](https://ffmpeg.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FFmpeg/FFmpeg/commit/37c176a2a2a8447a28c157e7bdb4be683a8c946b), [2](https://github.com/FFmpeg/FFmpeg/commit/b40d91cad92f2f694045a6a7b69f117b3dcfa19c))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://web.archive.org/web/20260513222612/https://twitter.com/FFmpeg/status/2054689695532036382))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/FFmpeg/FFmpeg/commit/1bde76da890127608744c3b17669a99d2adce54a), [2](https://github.com/FFmpeg/FFmpeg/commit/4492ad7228a381c2f0c8b79d333a59c7657311c9), [3](https://github.com/FFmpeg/FFmpeg/commit/444f2cf047b92fac8d470f969dbd04bf1107757c)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Fladder](https://github.com/DonutWare/Fladder) | [`ddb71ef`](https://github.com/DonutWare/Fladder/commit/ddb71ef83514399ed326688cde5d6ee108dde7dd) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DonutWare/Fladder/pull/827), [2](https://github.com/DonutWare/Fladder/pull/828), [3](https://github.com/DonutWare/Fladder/pull/831))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DonutWare/Fladder/pull/158), [2](https://github.com/DonutWare/Fladder/pull/161), [3](https://github.com/DonutWare/Fladder/pull/556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gstreamer](https://gstreamer.freedesktop.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e4d7f95b0c8ea4b1e23d6660317968f8033ae3a9)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Jellyfin](https://jellyfin.org) (server) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://jellyfin.org/docs/general/contributing/llm-policies#llm-code-contributions-to-official-projects))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jellyfin/jellyfin/pull/16540)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From b217847790d1347720e0da6ccb2a7b9255e55d9b Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 16:36:26 +0200 Subject: [PATCH 351/413] clean up why not LLMs links --- FAQ.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FAQ.md b/FAQ.md index f42a78f..ad5e454 100644 --- a/FAQ.md +++ b/FAQ.md @@ -34,9 +34,9 @@ There's no great place to put these in our current files, but these sorts of que > > We're also against AI for more than just code quality reasons. There's plenty of ethical reasons to be against continuing to use AI: > -> - [environmental](https://codeberg.org/ethical-foss/open-slopware#environmental-impact) -> - [ties to the war industrial complex](https://codeberg.org/ethical-foss/open-slopware#ties-to-the-war-industrial-complex) -> - [effect on hardware prices hurting newcomers to the industry](https://codeberg.org/ethical-foss/open-slopware#effect-on-hardware-prices) (especially those already disenfranchised) +> - [environmental impact](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/why_not_llms.md#environmental-impact) +> - [ties to the war industrial complex](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/why_not_llms.md#ties-to-the-war-industrial-complex) +> - [effect on hardware prices hurting newcomers to the industry](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/why_not_llms.md#effect-on-hardware-prices) (especially those already disenfranchised) > > The commitment to stop using AI stops those above ethical issues. It's like going vegetarian. You're still a vegetarian if you previously consumed meat, but now you don't. You've still reduced suffering and helped the environment. A commitment to doing better is better than never stopping a harmful action. From 09967c105f5a25c31c956d35097d9453225d5217 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 16:44:40 +0200 Subject: [PATCH 352/413] give a bit more explanation on permissive ai policy, change "can" to "may" Hopefully this clears things up a bit more --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f288a27..d0e98b5 100644 --- a/README.md +++ b/README.md @@ -204,7 +204,7 @@ The term was coined by [Andrej Karpathy](https://en.wikipedia.org/wiki/Andrej_Ka Sometimes people will refer to vibecoding as "agenic engineering". We will not be using that term in this repo, but that still counts for this tag's usage. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - blog post stating the project was vibecoded - link to readme stating that the project was vibecoded. @@ -217,17 +217,17 @@ Evidence can be, but is not limited to: ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) -A policy that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a permissive AI policy. +A policy, written or otherwise implied by maintainers' actions/statements, that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a "Permissive AI Policy". -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - an explicit AI policy (e.g. `AI_POLICY.md`, `CONTRIBUTING.md`, developer docs) in the repo or something in the project's contributing guidelines or in their website's documentation that says that AI/LLMs are allowed - an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. - core maintainers' blog or social media post about using AI/LLMs -- LLM code being merged into the default branch of a code repository. (Must be merged to count; Open PRs do not count) +- LLM code being merged into the default branch of a project's code repository. (Must be merged to count; Open PRs do not count) > [!Important] -> If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. That tag is specifically meant for extreme cases only. +> If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. The vibecoded tag is specifically meant for *extreme* cases only. ## AI Functionality @@ -235,7 +235,7 @@ Evidence can be, but is not limited to: This would include the ability to enable or disable an AI feature, such as an AI assistant or AI summary feature. This would also cover the case when a project depends on an AI program or library, such as an LLM SDK. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - a link to the docs explaining the AI Functionality - a blog post advertising the AI Functionality @@ -247,7 +247,7 @@ Evidence can be, but is not limited to: An AI agent/bot is used to review pull requests, which makes slop acceptance more probable and maintainability more difficult, especially when human reviews are scarce. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - a link to an AI code review requested by a maintainer. - an AI code review CI workflow. @@ -262,7 +262,7 @@ Evidence can be, but is not limited to: AI "Art" is being used in a project. This is typically for banners, avatars, promotional material, and/or blog posts. This means they're using tools that steal art from visual artists. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - link to the place where the AI "art" is used @@ -272,7 +272,7 @@ Evidence can be, but is not limited to: The project is sponsored directly by an AI company. An AI company is any company that advertises itself as pro-AI or develops an AI product itself. The obvious ones are Anthropic and OpenAI, however, all the big tech companies (e.g. Apple, Google, Microsoft, and Amazon) also count because they all have AI services and direct products as major offerings. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - Blog post disclosing AI funding - link to website that lists AI companies in sponsors list @@ -284,7 +284,7 @@ Evidence can be, but is not limited to: The use of an AI company as a third party service for processing user data. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - Blog post talking about using AI for processing user data - Privacy policy listing an AI company as a third party service @@ -295,7 +295,7 @@ Evidence can be, but is not limited to: The use of an AI bot/agent for responding to Issues, Discussions, Forums etc related to a project's issue/bug tracking. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - Link to AI in an Issue, Bug report, Discussion, etc - must be related to the project's bug/issue tracking (e.g. dosu) @@ -310,7 +310,7 @@ The reason we still find this worthy of a tag is because it: - means that the LLM, often provided by a company with very little respect for copyright, will then save a copy of that open source repo for use in it's future outputs. - still encourages people to use LLMs and carves out a special situation in which they're still OK, but as this repo is against AI/LLMs for more than just "poor code quality" reasons, we still believe this is not a good course of action as it still promotes the use of inherently unethical tooling. -Evidence can be, but is not limited to: +Evidence may be, but is not limited to: - An AI or Contribution policy that carves out a space for "using LLMs to understand the code" or "finding bugs" - Core maintainer using or accepting the use of AI for finding bugs or security issues From 81ff6da54bd4e4373cf83aebf9d77fd009356f52 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 16:56:01 +0200 Subject: [PATCH 353/413] More granular language, tips, and making sure badge links work --- README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d0e98b5..876b609 100644 --- a/README.md +++ b/README.md @@ -217,7 +217,7 @@ Evidence may be, but is not limited to: ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) -A policy, written or otherwise implied by maintainers' actions/statements, that permits the use of AI/LLMs in any capacity. Opening the door for people to vibecode counts as a "Permissive AI Policy". +A policy, written or otherwise implied by maintainers' actions/statements, that permits the use of AI/LLMs into the code base. Opening the door for others to use gen AI counts as a "Permissive AI Policy". Evidence may be, but is not limited to: @@ -227,7 +227,9 @@ Evidence may be, but is not limited to: - LLM code being merged into the default branch of a project's code repository. (Must be merged to count; Open PRs do not count) > [!Important] -> If a core maintainer has noted that the code is entirely vibecoded, please use the ![Vibecoded](./badges/vibecoded.svg) instead. The vibecoded tag is specifically meant for *extreme* cases only. +> If a core maintainer has noted that the code is entirely vibecoded, please use the [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) tag instead. The [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) tag is specifically meant for *extreme* cases only. + +If AI *code* is not permitted in the project, however a policy (written or otherwise) suggests that the maintainers condone the use of LLMs/AI to ingest the repo to "find bugs" or "better understand the repo", then you should not use this tag, and instead consider using the [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) tag. ## AI Functionality @@ -303,7 +305,7 @@ Evidence may be, but is not limited to: ![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg) -Condones the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. This is independent of a project's licensing. This tag is to be used for the maintainers' statements about, or reactions to, the usage of LLMs/AIs to ingest the repo. +Condones the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. This is *independent of a project's licensing*. This tag is to be used for the maintainers' statements about, or reactions to, the usage of LLMs/AIs to ingest the repo. The reason we still find this worthy of a tag is because it: @@ -316,7 +318,7 @@ Evidence may be, but is not limited to: - Core maintainer using or accepting the use of AI for finding bugs or security issues > [!tip] -> This tag is not to be confused with ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg), which is for when there is already AI generated code in the codebase or an `AGENTS.md` in the repo. +> This tag is not to be confused with [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy), which is for when there is already AI generated code in the codebase or agent instructions, such as `AGENTS.md`, in the repo. ## Request for Help @@ -333,6 +335,9 @@ This is a special badge with a *positive* connotation. It certifies that a proje > [!Note] > Previous tainted status does not disqualify a project for this tag. Any project that was previously tainted, but took the steps for Removal (removed AI functionality, removed LLM agent instructions, and put out a No AI policy), can have this badge. +> [!Tip] +> If a project has an Anti-AI policy, but doesn't fit as an alternative to anything we have listed as tainted, consider checking out one of our [sibling repos](#sibling-repos) that specializes in elevating slop-free/No AI software. + # Sibling Repos This is a section for repos that are similar to this one either because they are also forks of the original upstream, or because they align with our goal of identifying and avoiding AI/LLM usage OR identifying/elevating projects that do NOT use AI/LLMs. These repos are not all maintained by the same people, but we may share some contributors and are generally kind FOSS neighbors. ✨ From f83f14f2c7836f30fb5150c0f00f237b848220b2 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 17:01:43 +0200 Subject: [PATCH 354/413] remove "no ai" policy from definition table as it's already explained in the anti-ai policy section also add a note tag for the condones llm ingestion explanation in the permissive ai policy definition --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 876b609..27f0d74 100644 --- a/README.md +++ b/README.md @@ -184,7 +184,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question | Term | Definition | |----------------|---------------------------------------------------------------------------------------------------------------------------------------| | LLM | Large Language Model, a language model trained on vast amounts of text (often entire websites without the website owner's permission) | -| "No AI" Policy | A Policy in a repo that explicitly forbids the use of AI and does not contain any special carve outs for "finding bugs" or anything that condones AI usage | | slop | Anything generated by AI, typically code, books, articles, or images. | Below are special definitions that are used for tagging purposes. @@ -229,7 +228,8 @@ Evidence may be, but is not limited to: > [!Important] > If a core maintainer has noted that the code is entirely vibecoded, please use the [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) tag instead. The [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) tag is specifically meant for *extreme* cases only. -If AI *code* is not permitted in the project, however a policy (written or otherwise) suggests that the maintainers condone the use of LLMs/AI to ingest the repo to "find bugs" or "better understand the repo", then you should not use this tag, and instead consider using the [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) tag. +> [!note] +> If AI *code* is not permitted in the project, however a policy (written or otherwise) suggests that the maintainers condone the use of LLMs/AI to ingest the repo to "find bugs" or "better understand the repo", then you should not use this tag, and instead consider using the [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) tag. ## AI Functionality From 09ed501880862306086418a7c54a45943da59a03 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 20 Jun 2026 17:03:13 +0200 Subject: [PATCH 355/413] fix more badge links --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27f0d74..14ff3b3 100644 --- a/README.md +++ b/README.md @@ -210,7 +210,7 @@ Evidence may be, but is not limited to: - contributing/developer docs *requiring* the usage of AI > [!Important] -> Please note we only use the ![Vibecoded](./badges/vibecoded.svg) tag in extreme scenarios when a project is *mostly* coded using AI. If the project is not mostly vibecoded, you should prefer the ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) tag. +> Please note we only use the [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) tag in extreme scenarios when a project is *mostly* coded using AI. If the project is not mostly vibecoded, you should prefer the [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) tag. ## Permissive AI Policy From fe03ad7dd3585672f1679d049d5601b320878a79 Mon Sep 17 00:00:00 2001 From: Mirian Margiani Date: Sat, 20 Jun 2026 20:23:13 +0200 Subject: [PATCH 356/413] Fix some typos in issue/pr templates (#1024) ### Description of Changes Fixes a missing "s", a comma, and some extra whitespace. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1024 Reviewed-by: Ethical FOSS admin --- .forgejo/issue_template/discussion.yaml | 2 +- .forgejo/pull_request_template.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/issue_template/discussion.yaml b/.forgejo/issue_template/discussion.yaml index b49c954..38001ca 100644 --- a/.forgejo/issue_template/discussion.yaml +++ b/.forgejo/issue_template/discussion.yaml @@ -15,7 +15,7 @@ body: label: Discussion Topic description: | Please let us know what you'd like to discuss. - Remember that if you already have concrete evidence, you should just open a PR. Pleae don't create an Issue. + Remember that if you already have concrete evidence, you should just open a PR. Please don't create an Issue. This is also not a place to ask advice on using your own LLMs. - type: checkboxes id: terms diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index 554a2e1..e73d32a 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -7,9 +7,9 @@ body: attributes: visible: [content] label: Description of Changes - description: Include a description of what you're changing and why. Remember, anything here, will also show up in the commit when we squash and merge this PR. + description: Include a description of what you're changing and why. Remember, anything here will also show up in the commit when we squash and merge this PR. placeholder: This PR (Updates/Adds/Removes/Improves) (Name of Section / Project) As (Tainted/An Alternative) - + - type: checkboxes id: terms visible: [form] From 70ba3ed1efaf25eaa173334f57bec5f9bc48ed93 Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Sat, 20 Jun 2026 20:25:45 +0200 Subject: [PATCH 357/413] update ArcaneChat (#1023) ### Description of Changes This PR updates the evidence for ArcaneChat Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1023 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 14ff3b3..00965af 100644 --- a/README.md +++ b/README.md @@ -1084,7 +1084,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | +| [ArcaneChat](https://arcanechat.me) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ArcaneChat/android/blob/main/.github/copilot-instructions.md), [2](https://github.com/ArcaneChat/android/commit/b8b203e5176d20a31f7f52987dd5c6f1d53e9389), [3](https://github.com/ArcaneChat/android/commit/7eb0a99fc7a5066866c9e5f1a4109c50f0033972))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://web.archive.org/web/20260326083758/https://fosstodon.org/@arcanechat/116292382977465468)) | | [aparté](https://github.com/paulfariello/aparte) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/paulfariello/aparte/blob/1f384456294c539286183f059eb206d2705cb4a7/AGENTS.md), [2](https://github.com/paulfariello/aparte/commit/1f384456294c539286183f059eb206d2705cb4a7), [3](https://github.com/paulfariello/aparte/commit/53503e3b5a22c28b53cdaf7079e93fa28f7215bf)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) From c4a5e64c7a8df5b4ee66aa5f8cde27961bdfd639 Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Sun, 21 Jun 2026 09:28:30 +0200 Subject: [PATCH 358/413] Restructure the Books and Library Software category (#954) ### Description of Changes Split the Books and Library Software category into Book Readers, Citation Software, Library Management Software and Graphic Novel Readers. Add Anx Reader, Episteme Reader, Komikku, Kotatsu Next, Librera Reader, Readest, Reikai. Add Anthology, Areada, Book's Story as Alternatives for Book Readers. Add Mihon, Kahon as Alternatives for Graphic Novel Readers. Replace F-Droid links with GitHub links for Komelia and Taison. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/954 Reviewed-by: Ethical FOSS admin --- README.md | 49 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 00965af..a43b88d 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,12 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) * [Books and Library Software](#books-and-library-software) + * [Book Readers](#book-readers) + * [Book Readers Alternatives](#book-readers-alternatives) + * [Citation Software](#citation-software) + * [Graphic Novel Readers](#graphic-novel-readers) + * [Graphic Novel Readers Alternatives](#graphic-novel-readers-alternatives) + * [Library Management Software](#library-management-software) * [Bootloaders](#bootloaders) * [Browsers](#browsers) * [Browser Addons](#browser-addons) @@ -543,15 +549,48 @@ This is a section for repos that are similar to this one either because they are ## Books and Library Software +### Book Readers +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Anx Reader](https://github.com/Anxcye/anx-reader/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Anxcye/anx-reader/blob/develop/.gitignore), [2](https://github.com/Anxcye/anx-reader/commit/1c568f9edeff45b5f8ec39cb40dc3dc20e9a73fb))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/Anxcye/anx-reader/blob/develop/docs/images/mobile5.png)) | +| [Episteme Reader](https://github.com/Aryan-Raj3112/episteme/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/Aryan-Raj3112/episteme#editions)) | +| [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | +| [Librera Reader](https://github.com/foobnix/LibreraReader/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/foobnix/LibreraReader/pull/1533)) | +| [Readest](https://github.com/readest/readest/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/readest/readest/blob/main/.gitignore), [2](https://github.com/readest/readest/commit/cf41e7d50dfcc5c8eede6cf1868f00cfa93f131b), [3](https://github.com/readest/readest/commit/7128e8964e00ad0b9735997049e7cfc8186a8cbd))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/readest/readest/#planned-features)) | + +> [!Note] +> #### Book Readers Alternatives +> * [Anthology](https://github.com/nikhilmwarrier/anthology) +> * [Areada](https://github.com/iTsMe-Zen/Areada) +> * [Book's Story](https://github.com/Acclorite/book-story) + +### Citation Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Booklore](https://github.com/the-booklore/booklore/tree/develop) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | -| [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | -| [Futon](https://github.com/AppFuton/Futon) | [`5754292`](https://github.com/AppFuton/Futon/commit/57542921c342be555fd2d1835621c0317590aa6a), version [9.6.6](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | [Taison](https://f-droid.org/en/packages/com.gent8.taison/), [Komelia](https://f-droid.org/en/packages/io.github.snd_r.komelia) | -| [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [LANraragi](https://github.com/Difegue/LANraragi) | [`1cfd949`](https://github.com/Difegue/LANraragi/commit/1cfd949c45f00221126a2996df5dabf8ed9964fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Difegue/LANraragi/pull/1220#issue-2973877545))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Difegue/LANraragi/pull/1218#pullrequestreview-2728016763)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Zotero](https://www.zotero.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) | [Citations](https://apps.gnome.org/Citations/) | +### Graphic Novel Readers +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Futon](https://github.com/AppFuton/Futon) | [`5754292`](https://github.com/AppFuton/Futon/commit/57542921c342be555fd2d1835621c0317590aa6a), version [9.6.6](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | +| [Komikku](https://github.com/komikku-app/komikku) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/komikku-app/komikku/blob/master/AGENTS.md), [2](https://github.com/komikku-app/komikku/tree/master/.gemini), [3](https://github.com/komikku-app/komikku/commit/582ea3e60d93b498c5ca46bbbb450a8b89d41848))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/komikku-app/komikku/pull/1683#issuecomment-4698428698), [2](https://github.com/komikku-app/komikku/pull/1682#issuecomment-4697653377), [3](https://github.com/komikku-app/komikku/pull/1676#issuecomment-4666543985)) | +| [Kotatsu Next](https://github.com/Ero-gamer/Kotatsu-Next) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ero-gamer/Kotatsu-Next/tree/devel/.gemini), [2](https://github.com/Ero-gamer/Kotatsu-Next/commit/88a85119b4e079735780a9bb36b8e646649d92d5)) | +| [Reikai](https://github.com/unseensnick/Reikai) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/unseensnick/Reikai/tree/main/.claude), [2](https://github.com/unseensnick/Reikai/blob/main/CLAUDE.md)) | + +> [!Note] +> #### Graphic Novel Readers Alternatives +> * [Komelia](https://github.com/Snd-R/Komelia) +> * [Mihon](https://github.com/mihonapp/mihon) and its forks: +> * * [Kahon](https://github.com/AmanoTeam/Kahon) +> * * [Taison](https://github.com/Gent8/Taison) + +### Library Management Software +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Booklore](https://github.com/the-booklore/booklore/tree/develop) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | +| [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | +| [LANraragi](https://github.com/Difegue/LANraragi) | [`1cfd949`](https://github.com/Difegue/LANraragi/commit/1cfd949c45f00221126a2996df5dabf8ed9964fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Difegue/LANraragi/pull/1220#issue-2973877545))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Difegue/LANraragi/pull/1218#pullrequestreview-2728016763)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Bootloaders | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 6e34b6b06c85e5bf4394f836ed2b6240563d755b Mon Sep 17 00:00:00 2001 From: cerox Date: Mon, 22 Jun 2026 07:39:22 +0200 Subject: [PATCH 359/413] fix spelling (#1029) ### Description of Changes This PR fixes spelling throughout the CoC, Governance doc and Contributing doc. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1029 Reviewed-by: Ethical FOSS admin --- CODE_OF_CONDUCT.md | 6 +++--- CONTRIBUTING.md | 2 +- GOVERNANCE.md | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5a2f683..11ba5cc 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -38,13 +38,13 @@ Failure to do so will first result in a one time warning and future offenses wil # No CSAM -We do not allow any form of CSAM, including drawn CSAM: lolicon, shotacon, or "cub" content. Do not submit alternatives that feature sexualized children anywhere in the source code. This includes drawn children. If you need to talk about a someone being acused of something related to CSAM in the context of alternatives in this repo, please use a specific Content Warning as described above. +We do not allow any form of CSAM, including drawn CSAM: lolicon, shotacon, or "cub" content. Do not submit alternatives that feature sexualized children anywhere in the source code. This includes drawn children. If you need to talk about a someone being accused of something related to CSAM in the context of alternatives in this repo, please use a specific Content Warning as described above. # On handling rude comments in this repo specifically If you see someone behaving in appropriately, do not feed their behavior. Tag @ethical-foss-admin instead. They will handle it. -In some cases, we may delete comments, issues, or PRs if they're encouraging an innappropriate atmosphere e.g. a popular maintainer has come in with an accusatory tone and is actively advertising their followers to come and spam the repo. +In some cases, we may delete comments, issues, or PRs if they're encouraging an inappropriate atmosphere e.g. a popular maintainer has come in with an accusatory tone and is actively advertising their followers to come and spam the repo. ## Strike system @@ -100,7 +100,7 @@ Some example nouns you can use if you don't know the gender of someone: - user - colleague - friend -- aquaintance +- acquaintance > [!tip] > Many people put their pronouns in their profile. If you're unsure, you can check there, and if a person has pronouns listed, use those. If there's no pronouns listed, still default to neutral language as mentioned above. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index db5db13..f357a0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -97,7 +97,7 @@ Projects that have an explicit "No AI" policy can be awarded the [![Anti-AI Poli - Any project associated with bigotry is not allowed. -- At this time, we're not accepting alternatives that are centralized and/or lacking the appropriate documentation to be self-hosted by non-experts. For example, we will not endorse the messaging app "Signal", or social media platforms based on AT-protocol. In the event that such projects do become tainted they would not be easy to fork, operate, or support - which places users and operators at a disadvantage. If a project does improve their documentation such that self-hosting becomes more accessable, we will of course re-evaluate. Feel free to open a PR at that time. +- At this time, we're not accepting alternatives that are centralized and/or lacking the appropriate documentation to be self-hosted by non-experts. For example, we will not endorse the messaging app "Signal", or social media platforms based on AT-protocol. In the event that such projects do become tainted they would not be easy to fork, operate, or support - which places users and operators at a disadvantage. If a project does improve their documentation such that self-hosting becomes more accessible, we will of course re-evaluate. Feel free to open a PR at that time. - We do not allow adult content at this time. (Please also do not submit alternatives with screenshots of adult content) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index e85a1ac..b194c57 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -6,7 +6,7 @@ So it is clear: This is not anyone's full time job. Everyone is an unpaid volunt ## Owners -This is mainly @ethical-foss-admin which is an account that is run by multiple people who intitially forked this repo. They have the ability to make new rules or tags and updates to the code of conduct. They have full approval and merge rights. If they've approved any PR, Team Human Made can pop in and merge that PR at their leisure. If you're asking for a new rule, tag, or major change to the repo in some way, you need to tag this account. This is also the account you should tag should you need moderation help in any capacity, as they have the authority to ban people from the repo, as well as lock a conversation if it gets too heated or has the potential to drive a rude atmosphere. +This is mainly @ethical-foss-admin which is an account that is run by multiple people who initially forked this repo. They have the ability to make new rules or tags and updates to the code of conduct. They have full approval and merge rights. If they've approved any PR, Team Human Made can pop in and merge that PR at their leisure. If you're asking for a new rule, tag, or major change to the repo in some way, you need to tag this account. This is also the account you should tag should you need moderation help in any capacity, as they have the authority to ban people from the repo, as well as lock a conversation if it gets too heated or has the potential to drive a rude atmosphere. If future owners appear, the tag to get them involved would be @ethical-foss/owners. @@ -37,10 +37,10 @@ These are people who contribute to the repo. They have no special access. Anyone # Vacations -This repo gets put into "vacation mode" periodically through out the year. We do this because we need time away from the repo, and during that time, we can't gaurentee any moderation, so for safety, no commenting on the repo can be allowed during that time. +This repo gets put into "vacation mode" periodically through out the year. We do this because we need time away from the repo, and during that time, we can't guarentee any moderation, so for safety, no commenting on the repo can be allowed during that time. During vacation mode, we will disable Issues and Pull Requests and will not actively work on the repo in any way. The repo will still be public. There will be a notice at the top of README explaining that we're in vacation mode and when we will be back. When the vacation is over, the Issues and Pull Requests will be re-enabled. Vacations typically last anywhere from 3 days to 2 weeks depending on the owner's schedule, and are announced in advance. -The owners reserve the right to put the repo into vacation mode if they are unwell and unable to tend to the repo. \ No newline at end of file +The owners reserve the right to put the repo into vacation mode if they are unwell and unable to tend to the repo. From 75af8edf1c7d0c3ebee24caa1d7bf9db8b5673b3 Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Mon, 22 Jun 2026 07:40:45 +0200 Subject: [PATCH 360/413] chore: Remove the last untainted commit ID for Futon (#1025) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1025 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a43b88d..7619773 100644 --- a/README.md +++ b/README.md @@ -572,7 +572,7 @@ This is a section for repos that are similar to this one either because they are ### Graphic Novel Readers | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Futon](https://github.com/AppFuton/Futon) | [`5754292`](https://github.com/AppFuton/Futon/commit/57542921c342be555fd2d1835621c0317590aa6a), version [9.6.6](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | +| [Futon](https://github.com/AppFuton/Futon) | [`9.6.6`](https://github.com/AppFuton/Futon/releases/tag/v9.6.6) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFuton/Futon/pull/3#pullrequestreview-3614488057)) | | [Komikku](https://github.com/komikku-app/komikku) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/komikku-app/komikku/blob/master/AGENTS.md), [2](https://github.com/komikku-app/komikku/tree/master/.gemini), [3](https://github.com/komikku-app/komikku/commit/582ea3e60d93b498c5ca46bbbb450a8b89d41848))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/komikku-app/komikku/pull/1683#issuecomment-4698428698), [2](https://github.com/komikku-app/komikku/pull/1682#issuecomment-4697653377), [3](https://github.com/komikku-app/komikku/pull/1676#issuecomment-4666543985)) | | [Kotatsu Next](https://github.com/Ero-gamer/Kotatsu-Next) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ero-gamer/Kotatsu-Next/tree/devel/.gemini), [2](https://github.com/Ero-gamer/Kotatsu-Next/commit/88a85119b4e079735780a9bb36b8e646649d92d5)) | | [Reikai](https://github.com/unseensnick/Reikai) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/unseensnick/Reikai/tree/main/.claude), [2](https://github.com/unseensnick/Reikai/blob/main/CLAUDE.md)) | From 64a20b8c10cecc3526285ecffcd454e5429a99a7 Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Mon, 22 Jun 2026 07:42:13 +0200 Subject: [PATCH 361/413] fix: Fix all AI Functionality badges (#1027) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1027 Reviewed-by: Ethical FOSS admin --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7619773..96cd7f3 100644 --- a/README.md +++ b/README.md @@ -552,11 +552,11 @@ This is a section for repos that are similar to this one either because they are ### Book Readers | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Anx Reader](https://github.com/Anxcye/anx-reader/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Anxcye/anx-reader/blob/develop/.gitignore), [2](https://github.com/Anxcye/anx-reader/commit/1c568f9edeff45b5f8ec39cb40dc3dc20e9a73fb))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/Anxcye/anx-reader/blob/develop/docs/images/mobile5.png)) | -| [Episteme Reader](https://github.com/Aryan-Raj3112/episteme/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/Aryan-Raj3112/episteme#editions)) | +| [Anx Reader](https://github.com/Anxcye/anx-reader/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Anxcye/anx-reader/blob/develop/.gitignore), [2](https://github.com/Anxcye/anx-reader/commit/1c568f9edeff45b5f8ec39cb40dc3dc20e9a73fb))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/Anxcye/anx-reader/blob/develop/docs/images/mobile5.png)) | +| [Episteme Reader](https://github.com/Aryan-Raj3112/episteme/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/Aryan-Raj3112/episteme#editions)) | | [KOReader](https://koreader.rocks/) | [`2023.08`](https://github.com/koreader/koreader/releases/tag/v2023.08) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koreader/koreader/issues/11147#issuecomment-4171255898), [2](https://github.com/koreader/koreader/pull/13806), [3](https://github.com/koreader/koreader/pull/13884))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/koreader/koreader/pull/13633), [2](https://github.com/koreader/koreader/pull/14578), [3](https://github.com/koreader/koreader/pull/14583))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/koreader/koreader/releases/tag/v2023.10), [2](https://koreader.rocks/user_guide/)) | | [Librera Reader](https://github.com/foobnix/LibreraReader/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/foobnix/LibreraReader/pull/1533)) | -| [Readest](https://github.com/readest/readest/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/readest/readest/blob/main/.gitignore), [2](https://github.com/readest/readest/commit/cf41e7d50dfcc5c8eede6cf1868f00cfa93f131b), [3](https://github.com/readest/readest/commit/7128e8964e00ad0b9735997049e7cfc8186a8cbd))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/readest/readest/#planned-features)) | +| [Readest](https://github.com/readest/readest/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/readest/readest/blob/main/.gitignore), [2](https://github.com/readest/readest/commit/cf41e7d50dfcc5c8eede6cf1868f00cfa93f131b), [3](https://github.com/readest/readest/commit/7128e8964e00ad0b9735997049e7cfc8186a8cbd))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/readest/readest/#planned-features)) | > [!Note] > #### Book Readers Alternatives @@ -588,7 +588,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Booklore](https://github.com/the-booklore/booklore/tree/develop) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/the-booklore/booklore/blob/develop/CONTRIBUTING.md#ai-assisted-contributions)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | -| [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | +| [Calibre](https://calibre-ebook.com) | [`8.15.0`](https://github.com/kovidgoyal/calibre/releases/tag/v8.15.0) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/kovidgoyal/calibre/blob/master/Changelog.txt)) | [Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [LANraragi](https://github.com/Difegue/LANraragi) | [`1cfd949`](https://github.com/Difegue/LANraragi/commit/1cfd949c45f00221126a2996df5dabf8ed9964fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Difegue/LANraragi/pull/1220#issue-2973877545))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Difegue/LANraragi/pull/1218#pullrequestreview-2728016763)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Bootloaders @@ -1744,7 +1744,7 @@ This section is strictly for software implementing a core set of UNIX-like (or M | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Contour](https://github.com/contour-terminal/contour) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/contour-terminal/contour/pull/1900))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/contour-terminal/contour/pull/1900)) | +| [Contour](https://github.com/contour-terminal/contour) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/contour-terminal/contour/pull/1900))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/contour-terminal/contour/pull/1900)) | | [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | | [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | From cb46565cc47efc121a48d107cc5328dccc83b27a Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Mon, 22 Jun 2026 07:57:44 +0200 Subject: [PATCH 362/413] update the issue template to let people know they can ask for help with any slop-free project --- .forgejo/issue_template/collaborate-with-me.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/issue_template/collaborate-with-me.yaml b/.forgejo/issue_template/collaborate-with-me.yaml index 9567e14..25ba6c4 100644 --- a/.forgejo/issue_template/collaborate-with-me.yaml +++ b/.forgejo/issue_template/collaborate-with-me.yaml @@ -9,7 +9,7 @@ body: attributes: value: | Thanks for helping to make the world a bit more AI free 💙 - The idea here is to request help with forking or rewriting a currently tainted project. + The idea here is to request help with any slop-free project, including forking or rewriting a currently tainted project. - type: input id: project From 829da100d3713c1d150aaa8d2beabb14e72028a3 Mon Sep 17 00:00:00 2001 From: hazel Date: Mon, 22 Jun 2026 12:39:03 +0200 Subject: [PATCH 363/413] add python-jwt as PyJWT alternative (#1026) (#1031) ### Description of Changes closes #1026 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1031 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96cd7f3..47dcc01 100644 --- a/README.md +++ b/README.md @@ -1499,7 +1499,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| -| [PyJWT](https://github.com/jpadilla/pyjwt) | [`2.11.0`](https://github.com/jpadilla/pyjwt/releases/tag/2.11.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jpadilla/pyjwt/commit/412cb67a93363812ae4029d6a95f5d4d40ab2609), [2](https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93), [3](https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jpadilla/pyjwt/pull/1112), [2](https://github.com/jpadilla/pyjwt/pull/1152), [3](https://github.com/jpadilla/pyjwt/pull/1101)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [PyJWT](https://github.com/jpadilla/pyjwt) | [`2.11.0`](https://github.com/jpadilla/pyjwt/releases/tag/2.11.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jpadilla/pyjwt/commit/412cb67a93363812ae4029d6a95f5d4d40ab2609), [2](https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93), [3](https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jpadilla/pyjwt/pull/1112), [2](https://github.com/jpadilla/pyjwt/pull/1152), [3](https://github.com/jpadilla/pyjwt/pull/1101)) | [python-jwt](https://github.com/GehirnInc/python-jwt) | | [Pylint](https://github.com/pylint-dev/pylint) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pylint-dev/pylint/blob/b080a21ca0005b13e985456537bb8510919a2672/.github/copilot-instructions.md), [2](https://github.com/pylint-dev/pylint/pull/10350), [3](https://github.com/pylint-dev/pylint/pull/10892))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pylint-dev/pylint/pull/10321), [2](https://github.com/pylint-dev/pylint/pull/10322), [3](https://github.com/pylint-dev/pylint/pull/10930)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` (Python Standard Lib)](https://docs.python.org/3/library/urllib.request.html) | From a0cb0db310d4ba51a2052a4bf6c28a887c7ffc5b Mon Sep 17 00:00:00 2001 From: killertofus Date: Tue, 23 Jun 2026 07:31:05 +0200 Subject: [PATCH 364/413] added aur helpers (#961) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/961 Reviewed-by: Ethical FOSS admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 47dcc01..9df0f8f 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Kernels](#kernels) * [Other Operating Systems](#other-operating-systems) * [Package Managers](#package-managers) + * [Aur Helpers](#aur-helpers) * [Password Management](#password-management) * [Cloud-based Password Managers](#cloud-based-password-managers) * [Local Password Managers](#local-password-managers) @@ -1300,6 +1301,12 @@ This is a section for repos that are similar to this one either because they are > > If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. +### Aur Helpers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [yay](https://github.com/Jguer/yay/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Ai Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Jguer/yay/pull/2845)) | [paru](https://github.com/Morganamilo/paru) | + ## Password Management ### Cloud-based Password Managers From f875cad3d17b92456c87f1a609eb49608e3b6b99 Mon Sep 17 00:00:00 2001 From: cuynu Date: Wed, 24 Jun 2026 07:59:34 +0200 Subject: [PATCH 365/413] add shellcheck (#1035) ### Description of Changes shellcheck added claude instructions, there also open copilot fix PRs. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1035 Reviewed-by: Ethical FOSS admin --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 9df0f8f..4b04f63 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Peripheral Managers](#peripheral-managers) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tools and Libraries](#programming-language-specific-tools-and-libraries) + * [Bash](#bash) * [C](#c) * [C++](#c-1) * [CSS](#css) @@ -1390,6 +1391,11 @@ This is a section for repos that are similar to this one either because they are ## Programming Language-Specific Tools and Libraries +### Bash +| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | +|---|:---:|---|---| +| [shellcheck](https://github.com/koalaman/shellcheck) | [`1b59697`](https://github.com/koalaman/shellcheck/commit/1b59697528185ab3d8261cb26a7f9a6576d0b188) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/koalaman/shellcheck/blob/master/.claude/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### C | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | From c920db4ff8c3a3b141be10af5bd60167802ffc24 Mon Sep 17 00:00:00 2001 From: awe Date: Wed, 24 Jun 2026 08:04:54 +0200 Subject: [PATCH 366/413] Add ansel as tainted (#1039) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1039 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4b04f63..97cce20 100644 --- a/README.md +++ b/README.md @@ -791,6 +791,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Ansel](https://github.com/aurelienpierreeng/ansel) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aurelienpierreeng/ansel/pull/890/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/aurelienpierreeng/ansel/pull/898#pullrequestreview-4552911974)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [darktable](https://github.com/darktable-org/darktable/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darktable-org/darktable/pull/20706), [2](https://github.com/darktable-org/darktable/pull/20575), [3](https://github.com/darktable-org/darktable/pull/20556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [RapidRAW](https://github.com/CyberTimon/RapidRAW/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CyberTimon/RapidRAW/blob/main/README.md#rapidraw)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [RawTherapee](https://github.com/RawTherapee/RawTherapee/) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RawTherapee/RawTherapee/commit/c4b04007107a426dd7011002e8085aa6f398ab60))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RawTherapee/RawTherapee/pull/7518#pullrequestreview-3348449593), [2](https://github.com/RawTherapee/RawTherapee/pull/7435#pullrequestreview-3059697445), [3](https://github.com/RawTherapee/RawTherapee/pull/7378#pullrequestreview-2969042638)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 6071713980c05c7e1806b4c60aa469103a38228a Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Wed, 24 Jun 2026 08:13:27 +0200 Subject: [PATCH 367/413] add tapir and a section for Scala pl tooling (#1022) ### Description of Changes This PR adds tapir as tainted including the last untainted version added in an own subsection for Scala related programming language specific tooling. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1022 Reviewed-by: Ethical FOSS admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 97cce20..de3ef45 100644 --- a/README.md +++ b/README.md @@ -1574,6 +1574,14 @@ Note that Rust is itself tainted; see [the Programming Languages section](#progr > > On facet: If possible avoid all-in-one libraries for deserialization, and avoid macros that slow things down. +### Scala + +Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [the Programming Languages section](#programming-languages). + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Remote Desktop | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From a85579cc6550a01638660bc9beb644fbc4c1fea5 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Wed, 24 Jun 2026 08:15:53 +0200 Subject: [PATCH 368/413] Add postgresql JDBC driver (#1028) ### Description of Changes This PR adds the PostgreSQL JDBC driver to the Java PL section. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1028 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de3ef45..3076ce3 100644 --- a/README.md +++ b/README.md @@ -1469,6 +1469,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | [Gradle](https://github.com/gradle/gradle) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gradle/gradle/blob/master/AI_POLICY.md)) | [Apache Ant] | | [libGDX](https://libgdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.gamedev.place/@badlogic/115697365956020092), [2](https://github.com/libgdx/libgdx/commit/3335e7598fb061cadc6472e8f4dffe811d438ab2)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Maven](https://github.com/apache/maven) | [3.9.12](https://github.com/apache/maven/tree/maven-3.9.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/apache/maven/pull/11632)) | [Apache Ant] | +| [Postgresql JDBC Driver](https://jdbc.postgresql.org/) | [`42.7.9`](https://github.com/pgjdbc/pgjdbc/releases/tag/REL42.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pgjdbc/pgjdbc/commit/4c9beeb3a8214e2ed9f1ebd81bd680f936a1c144), [2](https://github.com/pgjdbc/pgjdbc/commit/3ba467fcd7480db468c8083361a13a7f10ce7b31), [3](https://github.com/pgjdbc/pgjdbc/commit/05d9acd0293ab74e381d461c274c2a4731e93fcb)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### JavaScript And TypeScript From f929b59aedf72975ffb26ec3174ba2070bc66bb7 Mon Sep 17 00:00:00 2001 From: Mirian Margiani Date: Wed, 24 Jun 2026 16:19:26 +0200 Subject: [PATCH 369/413] Reduce shadow of "AI Functionality" badge (#1044) ### Description of Changes This PR reduces the text shadow in the AI Functionality badge because it may trigger nausea in some people. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1044 Reviewed-by: Ethical FOSS admin --- badges/ai-functionality.svg | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/badges/ai-functionality.svg b/badges/ai-functionality.svg index 745d6c0..8765563 100644 --- a/badges/ai-functionality.svg +++ b/badges/ai-functionality.svg @@ -1,20 +1,16 @@ - - AI Functionality - - - - - - - - - - - - - - - AI Functionality - + + + + + + + + + + + + + + + AI Functionality - From e4a06e2cd34102a23c7395cb147fc3d5fae672a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Thu, 25 Jun 2026 08:39:31 +0200 Subject: [PATCH 370/413] Add Scala section to the index (#1049) ### Description of Changes This PR fixes an oversight where the new Scala section wasn't added to the index. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1049 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3076ce3..975c5a7 100644 --- a/README.md +++ b/README.md @@ -151,6 +151,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Rust](#rust) * [Alternative GUI crates](#alternative-gui-crates) * [Alternative TUI crates](#alternative-tui-crates) + * [Scala](#scala) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) * [Runtime Version Managers](#runtime-version-managers) From 98097c511f708a863b0f37fcdca05859f773ceb2 Mon Sep 17 00:00:00 2001 From: cerox Date: Thu, 25 Jun 2026 08:42:39 +0200 Subject: [PATCH 371/413] update yay (#1047) ### Description of Changes This PR capitalizes AUR properly, adds the Permissive AI Policy tag and adds more evidence for the AI Code Reviews tag. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1047 Reviewed-by: Ethical FOSS admin --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 975c5a7..0c70125 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Kernels](#kernels) * [Other Operating Systems](#other-operating-systems) * [Package Managers](#package-managers) - * [Aur Helpers](#aur-helpers) + * [AUR Helpers](#aur-helpers) * [Password Management](#password-management) * [Cloud-based Password Managers](#cloud-based-password-managers) * [Local Password Managers](#local-password-managers) @@ -1304,11 +1304,11 @@ This is a section for repos that are similar to this one either because they are > > If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. -### Aur Helpers +### AUR Helpers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [yay](https://github.com/Jguer/yay/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Ai Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Jguer/yay/pull/2845)) | [paru](https://github.com/Morganamilo/paru) | +| [yay](https://github.com/Jguer/yay) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Jguer/yay/blob/next/.gitignore#L10-L14), [2](https://github.com/Jguer/yay/commit/b09f3de91318797d63dcfee1758b31e53b0bfe6d), [3](https://github.com/Jguer/yay/commit/3e3d5aa111ab200c32da2fa50e82936ea7f158e7))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Jguer/yay/pull/2774#pullrequestreview-3727680244), [2](https://github.com/Jguer/yay/pull/2769#pullrequestreview-3693094733), [3](https://github.com/Jguer/yay/pull/2768#pullrequestreview-3691355975)) | [paru](https://github.com/Morganamilo/paru) | ## Password Management From 61b42dfd05d3b8831e5aa9436342f775cef69d81 Mon Sep 17 00:00:00 2001 From: David Demelier Date: Fri, 26 Jun 2026 21:41:12 +0200 Subject: [PATCH 372/413] Add libuv (#1012) ### Description of Changes Add libuv as tainted, and add libev as an alternative. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1012 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0c70125..84617fb 100644 --- a/README.md +++ b/README.md @@ -1407,6 +1407,7 @@ This is a section for repos that are similar to this one either because they are | [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [gobject-linter](https://github.com/bilelmoussaoui/gobject-linter) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [libuv](https://libuv.org) | [`f6b713`](https://github.com/libuv/libuv/commit/f6b713398e464a9f166328765be1703fd860981f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/libuv/libuv/commit/f6b713398e464a9f166328765be1703fd860981f)) | [libev](https://software.schmorp.de/pkg/libev.html) | | [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | See below | | [Mongoose](https://mongoose.ws) | [`7a21199`](https://github.com/cesanta/mongoose/commit/7a21199d4a64dc9d941417f3ddef12b89905af1f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cesanta/mongoose/commit/97c53ec5a6e36a7c9ab188314d96ac0772f6c793), [2](https://github.com/cesanta/mongoose/commit/c937144b651eff9c2d4396f1e1d5b43d43956b2e)) | [libmicrohttpd] | From c567072cfb56ceeac0c48a6fa0bca4476154f6fa Mon Sep 17 00:00:00 2001 From: brnt Date: Sat, 27 Jun 2026 20:36:00 +0200 Subject: [PATCH 373/413] Add libxml2 as an alternative for Expat (#1055) ### Description of Changes This patch adds libxml2 as alternative for Expat. Also add a list for XML libraries written in C, so that more alternatives can be added there in the future. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1055 Reviewed-by: Ethical FOSS admin --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84617fb..6f53bf6 100644 --- a/README.md +++ b/README.md @@ -1404,7 +1404,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [cppcheck](https://github.com/cppcheck-opensource/cppcheck) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cppcheck-opensource/cppcheck/commit/376d7f1896e1b9145a369055d5f15be2d87cea11))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cppcheck-opensource/cppcheck/pull/8491), [2](https://github.com/cppcheck-opensource/cppcheck/pull/7517), [3](https://github.com/cppcheck-opensource/cppcheck/pull/7457)) | [ccls](https://github.com/MaskRay/ccls)? | | [cpplint](https://github.com/cpplint/cpplint) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cpplint/cpplint/pull/423), [2](https://github.com/cpplint/cpplint/pull/412), [3](https://github.com/cpplint/cpplint/pull/411)) | [ccls](https://github.com/MaskRay/ccls)? | -| [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | See below | | [gobject-linter](https://github.com/bilelmoussaoui/gobject-linter) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [libuv](https://libuv.org) | [`f6b713`](https://github.com/libuv/libuv/commit/f6b713398e464a9f166328765be1703fd860981f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/libuv/libuv/commit/f6b713398e464a9f166328765be1703fd860981f)) | [libev](https://software.schmorp.de/pkg/libev.html) | @@ -1424,6 +1424,10 @@ This is a section for repos that are similar to this one either because they are > - [GnuTLS](https://www.gnutls.org/) > - [LibreSSL](https://www.libressl.org/) +> [!Note] +> #### Alternative XML Libraries +> - [libxml2](https://gitlab.gnome.org/GNOME/libxml2) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://gitlab.gnome.org/GNOME/libxml2/-/commit/b30494c58492274f885b53d1e7211c63ee11e0ad)) + ### C++ | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 1c2640a6ba74d6f888dd970c84d86d6009a8ae7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Na=C3=AFm=20Camille=20Favier?= Date: Wed, 1 Jul 2026 19:06:24 +0200 Subject: [PATCH 374/413] Add proof assistants (#856) Adds Agda (with alternative Mikan), Lean, and Rocq to the list. [Rendered](https://codeberg.org/ncf/open-slopware/src/commit/proof-assistants/README.md#proof-assistants) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/856 Reviewed-by: Ethical FOSS admin --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f53bf6..dd6c9ba 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Alternative GUI crates](#alternative-gui-crates) * [Alternative TUI crates](#alternative-tui-crates) * [Scala](#scala) + * [Proof Assistants](#proof-assistants) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) * [Runtime Version Managers](#runtime-version-managers) @@ -830,7 +831,7 @@ This is a section for repos that are similar to this one either because they are ### Continuous Integration Alternatives -- [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) +- [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) ## Cryptography @@ -1589,6 +1590,14 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t |---|:---:|---|---| | [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Proof Assistants + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Agda](https://github.com/agda/agda) | [`2.8.0`](https://github.com/agda/agda/releases/tag/v2.8.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/agda/agda/pull/8507)) | [Mikan](https://codeberg.org/1lab/mikan) | +| [Lean](https://leanprover-community.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/leanprover/lean4/tree/master/.claude), [2](https://github.com/leanprover/lean4/pull/12776))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.renaissancephilanthropy.org/insights/lean-fro-and-mathlib-receive-10m-from-xtx-markets-founder-alex-gerko-to-further-advance-the-use-of-ai-for-mathematical-research), [2](https://lean-lang.org/fro/about/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Rocq](https://rocq-prover.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rocq-prover/rocq/commit/3006a6d65)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Remote Desktop | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 4c2c7cf773a2f0048a6a3b195e221d7e1908f31e Mon Sep 17 00:00:00 2001 From: killertofus Date: Fri, 3 Jul 2026 12:21:07 +0200 Subject: [PATCH 375/413] added chatterino (#1060) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1060 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd6c9ba..222283e 100644 --- a/README.md +++ b/README.md @@ -1131,6 +1131,7 @@ This is a section for repos that are similar to this one either because they are | [ArcaneChat](https://arcanechat.me) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ArcaneChat/android/blob/main/.github/copilot-instructions.md), [2](https://github.com/ArcaneChat/android/commit/b8b203e5176d20a31f7f52987dd5c6f1d53e9389), [3](https://github.com/ArcaneChat/android/commit/7eb0a99fc7a5066866c9e5f1a4109c50f0033972))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://web.archive.org/web/20260326083758/https://fosstodon.org/@arcanechat/116292382977465468)) | | [aparté](https://github.com/paulfariello/aparte) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/paulfariello/aparte/blob/1f384456294c539286183f059eb206d2705cb4a7/AGENTS.md), [2](https://github.com/paulfariello/aparte/commit/1f384456294c539286183f059eb206d2705cb4a7), [3](https://github.com/paulfariello/aparte/commit/53503e3b5a22c28b53cdaf7079e93fa28f7215bf)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | +| [chatterino](https://chatterino.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Chatterino/chatterino2/blob/master/CONTRIBUTING.md)) | | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) | [Element Web](https://github.com/element-hq/element-web/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-web/commit/68070b2e9788f0e5396f4c9d532b05e146e6ad60)) | [Element X Android](https://github.com/element-hq/element-x-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-android/blob/develop/AGENTS.md)) From 8295098e5386411cf8dab6532ed1bfb98b2fc39b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Sat, 4 Jul 2026 13:03:02 +0200 Subject: [PATCH 376/413] Add RSS category with many, many slop projects (#1002) In RSS Aggregators: - CommaFeed - Feedbin - FeedCord - FreshRSS - Fusion - Glean - Miniflux - NewsBlur - Tiny Tiny RSS - RSSHub In RSS Clients: - Capy Reader - Feeder - FeedFlow - Feedr - Fluent Reader - Folo - Liferea - NetNewsWire - Twine - yarrand also added many alternatives with no slop detected (tho sadly none have an anti-ai policy) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1002 Reviewed-by: Ethical FOSS admin --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/README.md b/README.md index 222283e..2866c9c 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,9 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Proof Assistants](#proof-assistants) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) + * [RSS](#rss) + * [RSS Aggregators](#rss-aggregators) + * [RSS Clients](#rss-readers) * [Runtime Version Managers](#runtime-version-managers) * [Search](#search) * [Search Platforms](#search-platforms) @@ -1627,6 +1630,62 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t > - [hexcurse](https://github.com/prso/hexcurse-ng) > - [hexedit](https://github.com/pixel/hexedit) +## RSS + +Here, "RSS Aggregators" means services which run on a server (often self-hosted) and aggregate many RSS feeds together. They may offer a Web reader and/or an API. "RSS Clients" means applications which are run locally on a computer or mobile device and allow the reading of local RSS feeds, or feeds provided by an aggregator. + +### RSS Aggregators + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [CommaFeed](https://github.com/Athou/commafeed) | [`5.10.0`](https://github.com/Athou/commafeed/releases/tag/5.10.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Athou/commafeed/pull/1846), [2](https://github.com/Athou/commafeed/commit/a9c7595ee78a101f4569cfdc6196e19ffd583189)) | +| [Feedbin](https://github.com/feedbin/feedbin) | [`e5c9882`](https://github.com/feedbin/feedbin/commit/e5c9882898454c7964f9d564588f97bfb98eee68) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/feedbin/feedbin/commit/740cf1c5fa43b62641773694a62b793dd5c71a98), [2](https://github.com/feedbin/feedbin/commit/5bebd18800e2e371ceb0ebce5a7c459b8074cd4a)) | +| [FeedCord](https://github.com/Qolors/FeedCord) | [`2.0.0`](https://github.com/Qolors/FeedCord/releases/tag/v2.0.0) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://github.com/Qolors/FeedCord/blob/master/FeedCord/docs/images/FeedCord.png)) | +| [FreshRSS](https://github.com/FreshRSS/FreshRSS) | [`1.27.1`](https://github.com/FreshRSS/FreshRSS/releases/tag/1.27.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FreshRSS/FreshRSS/blob/edge/AGENTS.md), [2](https://github.com/FreshRSS/FreshRSS/commit/3e4d5bb0414176dbeef59645af80485930879b62), [3](https://github.com/FreshRSS/FreshRSS/commit/bbb28b5edae3c834fe36f034f434d3e47eda7ceb))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FreshRSS/FreshRSS/pull/8793), [2](https://github.com/FreshRSS/FreshRSS/pull/8094), [3](https://github.com/FreshRSS/FreshRSS/pull/7886)) | +| [Fusion](https://github.com/0x2E/fusion) | [`0.9.0`](https://github.com/0x2E/fusion/releases/tag/v0.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/0x2E/fusion/blob/main/AGENTS.md), [2](https://github.com/0x2E/fusion/pull/176), [3](https://github.com/0x2E/fusion/pull/99))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/0x2E/fusion/pull/229), [2](https://github.com/0x2E/fusion/pull/178), [3](https://github.com/0x2E/fusion/pull/120)) | +| [Glean](https://github.com/LeslieLeung/glean) | None | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://gleanapp.cn/en/docs/guides/mcp/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LeslieLeung/glean/blob/main/CLAUDE.md), [2](https://github.com/LeslieLeung/glean/pull/119))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LeslieLeung/glean/pull/108), [2](https://github.com/LeslieLeung/glean/pull/94), [3](https://github.com/LeslieLeung/glean/pull/115))| +| [Miniflux](https://github.com/miniflux/v2) | [`2.2.3`](https://github.com/miniflux/v2/releases/tag/2.2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miniflux/v2/commit/cf6386b471f7c4bf88466f77d99d1c02ed6ce1dc), [2](https://github.com/miniflux/v2/commit/350df63d993dcc2f458384c8065b8b8ac55f4229))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/miniflux/v2/pull/4026), [2](https://github.com/miniflux/v2/pull/4316), [3](https://github.com/miniflux/v2/pull/4078))| +| [NewsBlur](https://github.com/samuelclay/NewsBlur) | [`bb1b32f`](https://github.com/samuelclay/NewsBlur/commit/bb1b32f9bd1ebb75eb50d03c63c6994132036904) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/samuelclay/NewsBlur/blob/main/AGENTS.md), [2](https://github.com/samuelclay/NewsBlur/commit/18ee9579559cf4a63021e8716f3a2d76434014c3), [3](https://github.com/samuelclay/NewsBlur/commit/b29aa41204014944d9935953bc4a46ddca162113)) | +| [Tiny Tiny RSS](https://github.com/tt-rss/tt-rss) | [`032193f`](https://github.com/tt-rss/tt-rss/commit/032193f30507357857c2ae8e7974941adfd40e04) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tt-rss/tt-rss/commit/9891f298e06390fc5f5852a949debf0036b220e2), [2](https://github.com/tt-rss/tt-rss/commit/ff7343520a820d5554cdf71cdcdeb8b2fe94f61f), [3](https://github.com/tt-rss/tt-rss/commit/b078b2d428fcfbecddb6e9161afb364955a9a1cc))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/tt-rss/tt-rss/pull/270))| +| [RSSHub](https://github.com/DIYgod/RSSHub) | [`bdccede`](https://github.com/DIYgod/RSSHub/commit/bdccede8abe51a91525ade2f8ee2e370713a9e5e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DIYgod/RSSHub/blob/master/AGENTS.md), [2](https://github.com/DIYgod/RSSHub/commit/591dcb85be168b411ae86ae9bf22c145f086c87a), [3](https://github.com/DIYgod/RSSHub/commit/e27f501643d5352f7bf46777de0b43a5787c4174))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DIYgod/RSSHub/pull/21300), [2](https://github.com/DIYgod/RSSHub/pull/21224), [3](https://github.com/DIYgod/RSSHub/pull/21207))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/DIYgod/RSSHub#special-thanks)) | + +> [!Note] +> #### Alternative RSS Aggregators +> - [KrISS feed](https://github.com/tontof/kriss_feed) +> - [Leed](https://github.com/LeedRSS/Leed) +> - [selfoss](https://github.com/fossar/selfoss) +> - [yarr](https://github.com/nkanaev/yarr) + +### RSS Clients + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Capy Reader](https://github.com/jocmp/capyreader) | [`2025.04.1123`](https://github.com/jocmp/capyreader/releases/tag/2025.04.1123) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jocmp/capyreader/blob/main/AGENTS.md), [2](https://github.com/jocmp/capyreader/blob/main/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jocmp/capyreader/pull/1018), [2](https://github.com/jocmp/capyreader/pull/1199), [3](https://github.com/jocmp/capyreader/pull/1244)) | +| [Elfeed2](https://github.com/skeeto/Elfeed2) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/skeeto/elfeed2/blob/master/AGENTS.md), [2](https://github.com/skeeto/elfeed2/commit/bd9e367188f6b567991afe672e9d467314575e2a), [3](https://github.com/skeeto/elfeed2/commit/4a7334e05b1095f87c94308240fc367ab3d01661)) | +| [Feeder](https://github.com/spacecowboy/Feeder) | [`2.10.1`](https://github.com/spacecowboy/Feeder/releases/tag/2.10.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spacecowboy/Feeder/blob/master/AGENTS.md), [2](https://github.com/spacecowboy/Feeder/pull/1097))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spacecowboy/Feeder/pull/1153), [2](https://github.com/spacecowboy/Feeder/pull/1045), [3](https://github.com/spacecowboy/Feeder/pull/1145)) | +| [FeedFlow](https://github.com/prof18/feed-flow) | [`1.0.68-desktop`](https://github.com/prof18/feed-flow/releases/tag/1.0.68-desktop) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/prof18/feed-flow/blob/main/AGENTS.md), [2](https://github.com/prof18/feed-flow/commit/37564554d34fb05a35a26db90fa1eaa7a69adf77), [3](https://github.com/prof18/feed-flow/commit/8edae6bf186671047410a23f5e475196dbfe1f79))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/prof18/feed-flow/pull/843), [2](https://github.com/prof18/feed-flow/pull/887), [3](https://github.com/prof18/feed-flow/pull/1005)) | +| [Feedr](https://github.com/bahdotsh/feedr) | [`0db7ec3`](https://github.com/bahdotsh/feedr/commit/0db7ec3098cf4db3e070f7993d26184e88c0b8d0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bahdotsh/feedr/blob/main/CLAUDE.md)) | +| [Fluent Reader](https://github.com/yang991178/fluent-reader) | [`feb6429`](https://github.com/yang991178/fluent-reader/commit/feb64294682e08a0c10b863cf1c2e788dac9356d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/yang991178/fluent-reader/blob/master/.github/copilot-instructions.md), [2](https://github.com/yang991178/fluent-reader/commit/d272ac3c4872dc5bc6a4491a1f478a509dea63d0), [3](https://github.com/yang991178/fluent-reader/commit/2f2d6a7c94e9b00bfbf4cd0add8fc06885bd21da)) | +| [Folo](https://github.com/RSSNext/Folo) | None | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/RSSNext/Folo#ai-at-your-fingertips))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RSSNext/Folo/blob/dev/AGENTS.md), [2](https://github.com/RSSNext/Folo/commit/a86b2c6383d456649a80ea4e702dc706b715ded9), [3](https://github.com/RSSNext/Folo/commit/9b4f4f4fa42ca133f216378cb1ac8f3d9961e464))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RSSNext/Folo/pull/3510), [2](https://github.com/RSSNext/Folo/pull/3960), [3](https://github.com/RSSNext/Folo/pull/4202)) | +| [Liferea](https://github.com/lwindolf/liferea) | [`1.16-RC2`](https://github.com/lwindolf/liferea/releases/tag/v1.16-RC2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lwindolf/liferea/commit/9e4f4436bd0bd1ccc88dee33b9f2265223695ba9), [2](https://github.com/lwindolf/liferea/commit/73639ac27ca0e73d44dc4dfa072f5454fcc46924))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lwindolf/liferea/pull/1536), [2](https://github.com/lwindolf/liferea/pull/1426)) | +| [NetNewsWire](https://github.com/Ranchero-Software/NetNewsWire) | [`6.1.10b2`](https://github.com/Ranchero-Software/NetNewsWire/releases/tag/mac-6.1.10b2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ranchero-Software/NetNewsWire/blob/main/CONTRIBUTING.md#llm-guidelines), [2](https://github.com/Ranchero-Software/NetNewsWire/blob/main/CLAUDE.md), [3](https://github.com/Ranchero-Software/NetNewsWire/commit/e027c009f967ffef86a7ee769bc91b5db5046dd8)) | +| [Twine](https://github.com/msasikanth/twine) | [`2.10.0`](https://github.com/msasikanth/twine/releases/tag/v2.10.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/msasikanth/twine/blob/main/AGENTS.md), [2](https://github.com/msasikanth/twine/blob/main/.geminiignore))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/msasikanth/twine/pull/1793))| +| [yarrand](https://github.com/danielfn/yarrand) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/nkanaev/yarr/discussions/274)) | + +> [!Note] +> #### Alternative RSS Clients +> +> | Name | OS | Notes | +> |---|---|---| +> | [Akregator](https://invent.kde.org/pim/akregator) | Linux, Windows | | +> | [Alligator](https://invent.kde.org/network/alligator) | Android, Linux | Android builds are unstable (nightly) only. | +> | [Newsflash](https://gitlab.com/news-flash/news_flash_gtk) | Linux | | +> | [Pulp](https://gitlab.gnome.org/cheywood/Pulp) | Linux | | +> | [Read You](https://github.com/ReadYouApp/ReadYou) | Android | | +> | [Readrops](https://github.com/readrops/Readrops) | Android | | +> | [RSSGuard](https://github.com/martinrotter/rssguard) | BSD, Linux, macOS, OS/2, Windows | | +> | [Thud](https://github.com/aerotoad/Thud) | Android, iOS | The repo was last updated on May 2nd, 2024.
iOS builds need to be built from source. | + ## Runtime Version Managers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 982ac457de0b045fc48e7c0bad948f831b3fcf5a Mon Sep 17 00:00:00 2001 From: ch0ccyra1n Date: Wed, 8 Jul 2026 12:50:58 +0200 Subject: [PATCH 377/413] Add Newsboat to newly created RSS section (#1075) ### Description of Changes This PR adds Newsboat as tainted Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1075 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2866c9c..bb0929c 100644 --- a/README.md +++ b/README.md @@ -1669,6 +1669,7 @@ Here, "RSS Aggregators" means services which run on a server (often self-hosted) | [Folo](https://github.com/RSSNext/Folo) | None | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/RSSNext/Folo#ai-at-your-fingertips))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RSSNext/Folo/blob/dev/AGENTS.md), [2](https://github.com/RSSNext/Folo/commit/a86b2c6383d456649a80ea4e702dc706b715ded9), [3](https://github.com/RSSNext/Folo/commit/9b4f4f4fa42ca133f216378cb1ac8f3d9961e464))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RSSNext/Folo/pull/3510), [2](https://github.com/RSSNext/Folo/pull/3960), [3](https://github.com/RSSNext/Folo/pull/4202)) | | [Liferea](https://github.com/lwindolf/liferea) | [`1.16-RC2`](https://github.com/lwindolf/liferea/releases/tag/v1.16-RC2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lwindolf/liferea/commit/9e4f4436bd0bd1ccc88dee33b9f2265223695ba9), [2](https://github.com/lwindolf/liferea/commit/73639ac27ca0e73d44dc4dfa072f5454fcc46924))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lwindolf/liferea/pull/1536), [2](https://github.com/lwindolf/liferea/pull/1426)) | | [NetNewsWire](https://github.com/Ranchero-Software/NetNewsWire) | [`6.1.10b2`](https://github.com/Ranchero-Software/NetNewsWire/releases/tag/mac-6.1.10b2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ranchero-Software/NetNewsWire/blob/main/CONTRIBUTING.md#llm-guidelines), [2](https://github.com/Ranchero-Software/NetNewsWire/blob/main/CLAUDE.md), [3](https://github.com/Ranchero-Software/NetNewsWire/commit/e027c009f967ffef86a7ee769bc91b5db5046dd8)) | +| [Newsboat](https://newsboat.org/) | [`r2.43`](https://github.com/newsboat/newsboat/releases/tag/r2.43) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/newsboat/newsboat/pull/3344), [2](https://github.com/newsboat/newsboat/pull/3370)) | | [Twine](https://github.com/msasikanth/twine) | [`2.10.0`](https://github.com/msasikanth/twine/releases/tag/v2.10.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/msasikanth/twine/blob/main/AGENTS.md), [2](https://github.com/msasikanth/twine/blob/main/.geminiignore))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/msasikanth/twine/pull/1793))| | [yarrand](https://github.com/danielfn/yarrand) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/nkanaev/yarr/discussions/274)) | From 7bca49453505ee36340a02405de0989849d902dc Mon Sep 17 00:00:00 2001 From: killertofus Date: Wed, 8 Jul 2026 12:53:21 +0200 Subject: [PATCH 378/413] Arch has banned ai issues (#987) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/987 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bb0929c..6ea490c 100644 --- a/README.md +++ b/README.md @@ -1264,6 +1264,7 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > #### Alternative Linux-based operating systems +> * [Arch Linux](https://archlinux.org/) has banned LLMs in Issue Trackers ([1](https://gitlab.archlinux.org/archlinux/packaging/packages/onnxruntime/-/work_items/18#note_460864), [2](https://gitlab.archlinux.org/archlinux/packaging/packages/mkinitcpio-systemd-tool/-/work_items/3#note_503832), [3](https://gitlab.archlinux.org/archlinux/packaging/packages/python-huggingface-hub/-/work_items/43#note_504464)) > * [Chimera Linux](https://chimera-linux.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing)) > * [elementary OS](https://elementary.io/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://docs.elementary.io/contributor-guide/development/generative-ai-policy)) > * [Gentoo Linux](https://www.gentoo.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://wiki.gentoo.org/wiki/Project:Council/AI_policy)) From 8b26c1c8cd7015b70290b2195f2716d9120768a9 Mon Sep 17 00:00:00 2001 From: killertofus Date: Wed, 8 Jul 2026 13:08:41 +0200 Subject: [PATCH 379/413] added tealdeer (#1017) ### Description of Changes closes #623 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1017 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6ea490c..7414f1a 100644 --- a/README.md +++ b/README.md @@ -689,6 +689,7 @@ This is a section for repos that are similar to this one either because they are | --- |:---:| --- | --- | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [tealdeer](https://github.com/tealdeer-rs/tealdeer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tealdeer-rs/tealdeer/pull/489) | [tldr](https://github.com/tldr-pages/tldr-python-client)
man-pages | | [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/ethical-foss/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/ethical-foss/ethical-tldr-client) | ## Clipboard Managers From 6491ac692af45d5e6cb3ad6f3337bdc89b1b19e0 Mon Sep 17 00:00:00 2001 From: cerox Date: Wed, 8 Jul 2026 13:22:50 +0200 Subject: [PATCH 380/413] add myBB (#1056) ### Description of Changes This PR adds myBB as tainted Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1056 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7414f1a..eb5cb3b 100644 --- a/README.md +++ b/README.md @@ -1012,6 +1012,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Discourse](https://www.discourse.org/) | [`v3.1.0.beta2`](https://github.com/discourse/discourse/releases/tag/v3.1.0.beta2) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://meta.discourse.org/t/discourse-ai/259214), [2](https://meta.discourse.org/t/bundling-more-popular-plugins-with-discourse-core/373574))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/discourse/discourse/blob/af03824f417510aec37091f4f4e3b0c00e71075a/AI-AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://meta.discourse.org/t/all-discourse-ai-features-now-available-on-pro-and-business/333409)) | +| [myBB](https://github.com/mybb/mybb) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mybb/mybb/blob/dev-1.9/.github/CONTRIBUTING.md?plain=1#L158), [2](https://github.com/mybb/mybb/commit/fcbdb89fa16502da444101ffa6246dd950286176), [3](https://github.com/mybb/mybb/commit/0063750e2fbd9b7cbd273da477203de5d7c16ae1))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mybb/mybb/pull/5394#pullrequestreview-4539870463), [2](https://github.com/mybb/mybb/pull/5390#pullrequestreview-4488064061), [3](https://github.com/mybb/mybb/pull/5352#pullrequestreview-4311558403)) | | [phpBB](https://github.com/phpbb/phpbb) | [`3.3.16`](https://github.com/phpbb/phpbb/releases/tag/release-3.3.16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/phpbb/phpbb/commit/ddcf8f16d2dd254e5c74fb568d9ce83334f74db0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/phpbb/phpbb/pull/6802), [2](https://github.com/phpbb/phpbb/pull/6842), [3](https://github.com/phpbb/phpbb/pull/6959)) | > [!NOTE] From b109bb72863d527399006c8a394d7d53fdf7140e Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Wed, 8 Jul 2026 14:21:11 +0200 Subject: [PATCH 381/413] Add commit hash for last untainted version of Linux kernel (#1006) ### Description of Changes This PR adds the commit hash for last untainted version of Linux kernel - closes #990 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1006 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb5cb3b..94c4794 100644 --- a/README.md +++ b/README.md @@ -1279,7 +1279,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Linux Kernel](https://kernel.org/) | [`d337f45`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d337f4524861f4e74c31ee575d60f2eaa1e82388) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Other Operating Systems From 3f11f6a98a4e4c48b87b5f2be03b0e1abbb0e8c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Thu, 9 Jul 2026 21:36:06 +0200 Subject: [PATCH 382/413] Move RSSGuard to tainted and add RSSOwlnix as alternative (#1086) ### Description of Changes This PR adds RSSGuard as tainted and RSSOwlnix as an alternative RSS client. Addresses issue #1085 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1086 Reviewed-by: Ethical FOSS admin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 94c4794..e88de42 100644 --- a/README.md +++ b/README.md @@ -1673,6 +1673,7 @@ Here, "RSS Aggregators" means services which run on a server (often self-hosted) | [Liferea](https://github.com/lwindolf/liferea) | [`1.16-RC2`](https://github.com/lwindolf/liferea/releases/tag/v1.16-RC2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lwindolf/liferea/commit/9e4f4436bd0bd1ccc88dee33b9f2265223695ba9), [2](https://github.com/lwindolf/liferea/commit/73639ac27ca0e73d44dc4dfa072f5454fcc46924))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lwindolf/liferea/pull/1536), [2](https://github.com/lwindolf/liferea/pull/1426)) | | [NetNewsWire](https://github.com/Ranchero-Software/NetNewsWire) | [`6.1.10b2`](https://github.com/Ranchero-Software/NetNewsWire/releases/tag/mac-6.1.10b2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ranchero-Software/NetNewsWire/blob/main/CONTRIBUTING.md#llm-guidelines), [2](https://github.com/Ranchero-Software/NetNewsWire/blob/main/CLAUDE.md), [3](https://github.com/Ranchero-Software/NetNewsWire/commit/e027c009f967ffef86a7ee769bc91b5db5046dd8)) | | [Newsboat](https://newsboat.org/) | [`r2.43`](https://github.com/newsboat/newsboat/releases/tag/r2.43) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/newsboat/newsboat/pull/3344), [2](https://github.com/newsboat/newsboat/pull/3370)) | +| [RSSGuard](https://github.com/martinrotter/rssguard) | [`5.2.1`](https://github.com/martinrotter/rssguard/releases/tag/5.2.1) | [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://github.com/martinrotter/rssguard/blob/b9b7dcb09a05e2ff0c1428a21074210465333c94/resources/text/CHANGELOG#L19)) | | [Twine](https://github.com/msasikanth/twine) | [`2.10.0`](https://github.com/msasikanth/twine/releases/tag/v2.10.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/msasikanth/twine/blob/main/AGENTS.md), [2](https://github.com/msasikanth/twine/blob/main/.geminiignore))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/msasikanth/twine/pull/1793))| | [yarrand](https://github.com/danielfn/yarrand) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/nkanaev/yarr/discussions/274)) | @@ -1687,7 +1688,7 @@ Here, "RSS Aggregators" means services which run on a server (often self-hosted) > | [Pulp](https://gitlab.gnome.org/cheywood/Pulp) | Linux | | > | [Read You](https://github.com/ReadYouApp/ReadYou) | Android | | > | [Readrops](https://github.com/readrops/Readrops) | Android | | -> | [RSSGuard](https://github.com/martinrotter/rssguard) | BSD, Linux, macOS, OS/2, Windows | | +> | [RSSOwlnix](https://github.com/Xyrio/RSSOwlnix) | Linux, macOS, Windows | | > | [Thud](https://github.com/aerotoad/Thud) | Android, iOS | The repo was last updated on May 2nd, 2024.
iOS builds need to be built from source. | ## Runtime Version Managers From 139a9d4d6000236fdc2f81f92664a2115dd04f8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Fri, 10 Jul 2026 09:16:58 +0200 Subject: [PATCH 383/413] Add Gooey, zigcli, zlint and new Zig category (#1003) ### Description of Changes This PR adds a new Zig category, and in it adds Gooey, zigcli and zlint Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1003 Reviewed-by: Ethical FOSS admin --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index e88de42..d1da993 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Alternative GUI crates](#alternative-gui-crates) * [Alternative TUI crates](#alternative-tui-crates) * [Scala](#scala) + * [Zig](#zig) * [Proof Assistants](#proof-assistants) * [Remote Desktop](#remote-desktop) * [Reverse Engineering and Debugging](#reverse-engineering-and-debugging) @@ -1597,6 +1598,14 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t |---|:---:|---|---| | [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Zig + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Gooey](https://github.com/duanebester/gooey) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/duanebester/gooey/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [zigcli](https://github.com/jiacai2050/zigcli) | [`0.2.1`](https://github.com/jiacai2050/zigcli/releases/tag/v0.2.1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/jiacai2050/zigcli/pull/74), [2](https://github.com/jiacai2050/zigcli/pull/69), [3](https://github.com/jiacai2050/zigcli/pull/63))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jiacai2050/zigcli/blob/main/CLAUDE.md), [2](https://github.com/jiacai2050/zigcli/commit/35e013d209b18d0e9c1df85e7e2044e15bde22ad), [3](https://github.com/jiacai2050/zigcli/commit/545559f2aff762e6c68d4f722427222fb9c58031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jiacai2050/zigcli/pull/74), [2](https://github.com/jiacai2050/zigcli/pull/69), [3](https://github.com/jiacai2050/zigcli/pull/63)) | [zig-args](https://github.com/ikskuh/zig-args)
[zig-clap](https://github.com/Hejsil/zig-clap) | +| [zlint](https://github.com/DonIsaac/zlint) | [`0.6.4`](https://github.com/DonIsaac/zlint/releases/tag/v0.6.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/DonIsaac/zlint/blob/main/AGENTS.md), [2](https://github.com/DonIsaac/zlint/blob/main/.cursor/skills/zlint-new-rule/SKILL.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DonIsaac/zlint/pull/320), [2](https://github.com/DonIsaac/zlint/pull/243)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Proof Assistants | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 6548f9a5b8dc8da94a593ba95ffd1d8760d316ab Mon Sep 17 00:00:00 2001 From: znmz Date: Fri, 10 Jul 2026 09:20:22 +0200 Subject: [PATCH 384/413] add LibreOffice, OnlyOffice, Euro-Office and Collabora Online (#801) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/801 Reviewed-by: Ethical FOSS admin --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index d1da993..109770f 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Documents](#documents) * [Document Converters](#document-converters) * [Document Viewers](#document-viewers) + * [Office Suite](#office-suite) * [E-Mail and Calendar](#e-mail-and-calendar) * [E-Mail Desktop Clients](#e-mail-desktop-clients) * [E-Mail Mobile Clients](#e-mail-mobile-clients) @@ -893,6 +894,15 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Sumatra PDF](https://www.sumatrapdfreader.org/) | [`v3.5.2`](https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/3.5.2rel) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sumatrapdfreader/sumatrapdf/commit/aad9f76790d2f44894d73e28620eac41aeb5eb5c))| [Xournal++](https://xournalpp.github.io/) | +### Office Suite + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Collabora Online](https://www.collaboraonline.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/CollaboraOnline/online/commit/5e6b28e4d2888c89f62d2fea5ac37c5bf935255b), [2](https://github.com/CollaboraOnline/online/commit/87b7357d65655664140034bac569c3bcfb7d9ee8), [3](https://github.com/CollaboraOnline/online/pull/15555))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CollaboraOnline/online/blob/main/CONTRIBUTING.md#ai-policy))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/CollaboraOnline/online/pull/11550), [2](https://github.com/CollaboraOnline/online/pull/15290)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Euro-Office](https://github.com/Euro-Office) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/Euro-Office/desktop-apps/blob/421654b5d0c4c37a4fc353f19bae83e734cffa15/README.md?plain=1#L18), [2](https://github.com/Euro-Office/DesktopEditors/blob/c3af2176763da1fa3c246961419c01733fa058a3/README.md?plain=1#L22))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Euro-Office/eurooffice-nextcloud/commit/51e2d6a9f574ee4f53aeac5ff121e4bc5c18783c), [2](https://github.com/Euro-Office/core/commit/146975f73d45f672349b7d97a85738c1a6398f4c), [3](https://github.com/Euro-Office/eurooffice-nextcloud/commit/c6a1f72668cbb28491c9613ecb7c2e2a92b69aad)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [LibreOffice](https://www.libreoffice.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreOffice/core/commit/70c7f6ba49cfc506fc47dac32af98976ecf33cf8), [2](https://github.com/LibreOffice/core/commit/42cdc47554fa746baa863860143fc81fe8bb1c80), [3](https://github.com/LibreOffice/core/commit/7c0d875aca090de4f4d1164578683c0b7e0c6040)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [OnlyOffice](https://github.com/ONLYOFFICE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.onlyoffice.com/ai-assistants), [2](https://github.com/ONLYOFFICE/DocumentServer/blob/c05795f471af72f820444088c9aa4836840eee5b/ROADMAP.md?plain=1#L89), [3](https://github.com/ONLYOFFICE/onlyoffice.github.io/pull/526))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/3d41bd9a1c2a036fa16f113b570a275d2ff942f6/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## E-Mail and Calendar ### E-Mail Desktop Clients From 02d657f5e6fdff68c372f609d92839d5b846512b Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 10 Jul 2026 09:33:18 +0200 Subject: [PATCH 385/413] Add bloop (scala build tool/server) (#1078) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1078 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 109770f..4d0eda0 100644 --- a/README.md +++ b/README.md @@ -657,6 +657,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | +| [Bloop](https://scalacenter.github.io/bloop/) | [`v2.0.19`](https://github.com/scalacenter/bloop/releases/tag/v2.0.19) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalacenter/bloop/commit/bc7bdd65396856204164cba6e803fdbc93cf1fad)) | See Below | | [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | | [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | | [Mill](https://mill-build.org/) | [`v1.0.6`](https://github.com/com-lihaoyi/mill/releases/tag/1.0.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/com-lihaoyi/mill/blob/main/AGENTS.md), [2](https://github.com/com-lihaoyi/mill/blob/main/CLAUDE.md)) | See Below | From a3ae2cc5ecbb2f930ee93a1cc7237b32a52ef8a6 Mon Sep 17 00:00:00 2001 From: Adam Price Date: Fri, 10 Jul 2026 09:34:53 +0200 Subject: [PATCH 386/413] add `urfave/cli` as an alternative to `cobra` (#1040) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1040 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d0eda0..cb33c36 100644 --- a/README.md +++ b/README.md @@ -1477,7 +1477,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [cobra](https://github.com/spf13/cobra) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [cobra](https://github.com/spf13/cobra) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | [`urfave/cli`](https://cli.urfave.org/) | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Delve](https://github.com/go-delve/delve) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-delve/delve/blob/master/Documentation/AI/AI_POLICY.md), [2](https://github.com/go-delve/delve/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | From 73542ede4bd4fd521d6526dc77f2874f1476a926 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 10 Jul 2026 09:35:35 +0200 Subject: [PATCH 387/413] remove backticks from alternative --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb33c36..0b77344 100644 --- a/README.md +++ b/README.md @@ -1477,7 +1477,7 @@ Note that Go is itself tainted; see [the Programming Languages section](#program | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [cobra](https://github.com/spf13/cobra) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | [`urfave/cli`](https://cli.urfave.org/) | +| [cobra](https://github.com/spf13/cobra) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/spf13/cobra/blob/main/README.md)) | [urfave/cli](https://cli.urfave.org/) | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Delve](https://github.com/go-delve/delve) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-delve/delve/blob/master/Documentation/AI/AI_POLICY.md), [2](https://github.com/go-delve/delve/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | From 3378e6a5a9e9f80562780c12233679afb8ce7e38 Mon Sep 17 00:00:00 2001 From: cerox Date: Fri, 10 Jul 2026 12:28:49 +0200 Subject: [PATCH 388/413] update darktable (#1032) ### Description of Changes This PR adds the AI Functionality tag to darktable Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1032 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b77344..680cb50 100644 --- a/README.md +++ b/README.md @@ -801,7 +801,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Ansel](https://github.com/aurelienpierreeng/ansel) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aurelienpierreeng/ansel/pull/890/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/aurelienpierreeng/ansel/pull/898#pullrequestreview-4552911974)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [darktable](https://github.com/darktable-org/darktable/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darktable-org/darktable/pull/20706), [2](https://github.com/darktable-org/darktable/pull/20575), [3](https://github.com/darktable-org/darktable/pull/20556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [darktable](https://github.com/darktable-org/darktable/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/darktable-org/darktable-ai/releases/tag/release-5.6.0))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darktable-org/darktable/pull/20706), [2](https://github.com/darktable-org/darktable/pull/20575), [3](https://github.com/darktable-org/darktable/pull/20556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [RapidRAW](https://github.com/CyberTimon/RapidRAW/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CyberTimon/RapidRAW/blob/main/README.md#rapidraw)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [RawTherapee](https://github.com/RawTherapee/RawTherapee/) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RawTherapee/RawTherapee/commit/c4b04007107a426dd7011002e8085aa6f398ab60))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RawTherapee/RawTherapee/pull/7518#pullrequestreview-3348449593), [2](https://github.com/RawTherapee/RawTherapee/pull/7435#pullrequestreview-3059697445), [3](https://github.com/RawTherapee/RawTherapee/pull/7378#pullrequestreview-2969042638)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 939aca968892b13f25df9e74ec89802a55210368 Mon Sep 17 00:00:00 2001 From: Olivia Date: Fri, 10 Jul 2026 12:31:03 +0200 Subject: [PATCH 389/413] Add CMake :( (#1041) ### Description of Changes CMake has added a pro-AI policy. I left the last known untainted version blank because I have no idea how to find the last version. Because the policy states > AI tools and services are not considered authors. They should not be listed as co-authors, and their review is not considered adequate for demonstrating a human author's understanding or the correctness of a proposed change. There's a good chance of there being slop commits prior to the policy, but that cannot be identified due to the lack of co-authored-by. I'm seeing [a couple PRs mentioning claude](https://gitlab.kitware.com/search?group_id=415&project_id=541&scope=merge_requests&search=claude), one of which were made a little under a month before the pro-slop machine policy. Meson is also at risk of falling to the slop machines. They've merged a slop machine commit, so it technically _is_ tainted, but there's an ongoing discussion that may lead to a ban, so holding off on it for now. For the record: * https://github.com/mesonbuild/meson/commit/74faddbb44475b0671fd1acbaedace2e8a596263 * https://github.com/mesonbuild/meson/issues/15761 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1041 Reviewed-by: Ethical FOSS admin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 680cb50..de0c02e 100644 --- a/README.md +++ b/README.md @@ -659,6 +659,7 @@ This is a section for repos that are similar to this one either because they are | [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | | [Bloop](https://scalacenter.github.io/bloop/) | [`v2.0.19`](https://github.com/scalacenter/bloop/releases/tag/v2.0.19) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalacenter/bloop/commit/bc7bdd65396856204164cba6e803fdbc93cf1fad)) | See Below | | [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | +| [CMake](https://cmake.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Kitware/CMake/commit/475cc5487f2f17713d9b4af3ba45667f293b2a2b)) | See Below | | [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | | [Mill](https://mill-build.org/) | [`v1.0.6`](https://github.com/com-lihaoyi/mill/releases/tag/1.0.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/com-lihaoyi/mill/blob/main/AGENTS.md), [2](https://github.com/com-lihaoyi/mill/blob/main/CLAUDE.md)) | See Below | | [mise-en-place](https://mise.jdx.dev/) | [`659f851`](https://github.com/jdx/mise/commit/659f851bf6e29d2ac12d64b35fff9afa9981d02e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jdx/mise/blob/main/CLAUDE.md), [2](https://github.com/jdx/mise/tree/main/.claude), [3](https://github.com/search?q=repo%3Ajdx%2Fmise%20claude&type=commits&s=committer-date&o=asc))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://mise.jdx.dev/mcp.html)) | See Below | @@ -682,7 +683,7 @@ This is a section for repos that are similar to this one either because they are > #### Alternative Build Systems > Various other build systems exist, > that try to address perceived deficiencies in `make` and its derivatives. -> * [Ninja](https://ninja-build.org/) - standalone or as the backend of a meta-build tool like [CMake](https://cmake.org/) or [Meson](http://mesonbuild.com/) +> * [Ninja](https://ninja-build.org/) - standalone or as the backend of a meta-build tool like [Meson](http://mesonbuild.com/) > * [redo](https://redo.readthedocs.io/) > * [tup](https://gittup.org/tup) From f6be1750b7c3891c577a5fcebe02c247b5fad673 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 10 Jul 2026 12:33:39 +0200 Subject: [PATCH 390/413] Add sbt-sbom as tainted (#1052) ### Description of Changes This PR add sbt-sbom as tainted Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1052 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index de0c02e..58964c6 100644 --- a/README.md +++ b/README.md @@ -1608,6 +1608,7 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [sbt-sbom](https://github.com/sbt/sbt-sbom/) | [`0.5.0`](https://github.com/sbt/sbt-sbom/releases/tag/v0.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt-sbom/commit/ac26403d23701c3a2b6a468211b1931dcbf5a67e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Zig From cafed22bd3609d308d88a8009503a4aacea4a424 Mon Sep 17 00:00:00 2001 From: bencollver Date: Fri, 10 Jul 2026 12:36:42 +0200 Subject: [PATCH 391/413] Add ELKS. Several commits are co-authored by Claude. (#1072) Co-authored-by: Ben Collver Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1072 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 58964c6..d865482 100644 --- a/README.md +++ b/README.md @@ -1291,6 +1291,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [ELKS](https://github.com/ghaerr/elks/wiki) | [`c228942`](https://github.com/ghaerr/elks/commit/c22894237f7b324a93ba23fd0f28c5d88590f04e) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghaerr/elks/commit/82cb55fff3db3b1ddc6c52c6d621fa85c55a80c5),[2](https://github.com/ghaerr/elks/commit/297fc2af56d57a16db65056c899f208170e03f87),[3](https://github.com/ghaerr/elks/commit/c2c3c18377b3c315f521dd1e077b9bd431ce6a7e))
| [Fuzix](https://www.fuzix.org/) | | [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](#condones-llm-ingestion) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/pdffAOvuZusjj.pdf),[2](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=ca1ed0baec4d339d2c5273d7f4782210f6835cdf), [3](https://cgit.git.savannah.gnu.org/cgit/hurd/gnumach.git/commit/?id=afede3dac65a566fe0c72a0f141048e27218b73d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Linux Kernel](https://kernel.org/) | [`d337f45`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d337f4524861f4e74c31ee575d60f2eaa1e82388) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 99ec7db753b55c3bbeeb5670f7676d4d69eaad4f Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Fri, 10 Jul 2026 12:56:26 +0200 Subject: [PATCH 392/413] Add Mixxx (#1070) ### Description of Changes This PR adds the Mixxx software for DJs to the list. Fixes #1069 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1070 Reviewed-by: Ethical FOSS admin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d865482..821870e 100644 --- a/README.md +++ b/README.md @@ -449,11 +449,12 @@ This is a section for repos that are similar to this one either because they are ### Digital Audio Workstations -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Audacity](https://www.audacityteam.org/) | [3.7.7](https://github.com/audacity/audacity/releases/tag/Audacity-3.7.7) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | +| [Mixxx](https://github.com/mixxxdj/mixxx/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mixxxdj/mixxx/blob/4ae413dbe825f5929b3a04805f27f3df7ac4514a/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | > [!Note] From 9bed30630dc97f5b32a5c776dea149ad6ca8d99d Mon Sep 17 00:00:00 2001 From: killertofus Date: Fri, 10 Jul 2026 13:17:36 +0200 Subject: [PATCH 393/413] added jay (#1081) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1081 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 821870e..21487ac 100644 --- a/README.md +++ b/README.md @@ -2048,6 +2048,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res | [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | | [i3](https://i3wm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/i3/i3?tab=contributing-ov-file#ai-contribution-policy), [2](https://github.com/i3/i3/issues/6546)) | | [IceWM](https://ice-wm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) ([1](https://github.com/ice-wm/icewm/issues/203#issuecomment-3318901550)) | +| [Jay](https://github.com/mahkoh/jay) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) ([1](https://github.com/mahkoh/jay/blob/master/book/AGENTS.md)) | | [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | | [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | | [miracle-wm](https://github.com/miracle-wm-org/miracle-wm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/miracle-wm-org/miracle-wm/pull/775), [2](https://github.com/miracle-wm-org/miracle-wm/pull/780), [3](https://github.com/miracle-wm-org/miracle-wm/commit/1177f50000c1bd2c7d6492a4c700a4e75b6804e9), [4](https://github.com/miracle-wm-org/miracle-wm/pull/862)) | From 78d093bd357be862a48990c7dd8a939651eae7b6 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 10 Jul 2026 13:21:21 +0200 Subject: [PATCH 394/413] Remove Tuta since they have a No AI policy now Closes #635 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 21487ac..785f873 100644 --- a/README.md +++ b/README.md @@ -927,7 +927,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---------|:--------------:|----------|-------| | [Proton Mail](https://proton.me/mail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://proton.me/blog/proton-scribe-writing-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ProtonMail/WebClients/commit/4825a7cf6b1285784e5861d067a2c3c6a37715c4), [2](https://github.com/ProtonMail/WebClients/commit/064e5ee4b72ac84c5ce597fdc8a62a4f74415b99)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Tuta](https://tuta.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tutao/tutanota/pull/10817))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/tutao/tutanota/pull/10112), [2](https://github.com/tutao/tutanota/pull/10282))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Calendar Mobile Clients From 0baea54f9110d408befa4db59b9131134b6c49e2 Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Fri, 10 Jul 2026 13:22:16 +0200 Subject: [PATCH 395/413] Fix typo in "Odoo" (#1098) ### Description of Changes This is a minor typo fix for the software "Odoo" which had an extra letter capitalized. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1098 Reviewed-by: Ethical FOSS admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 785f873..d0d47da 100644 --- a/README.md +++ b/README.md @@ -390,7 +390,7 @@ This is a section for repos that are similar to this one either because they are | [KMyMoney](https://kmymoney.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://invent.kde.org/office/kmymoney/-/issues/49#note_1331389)) | | [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | | [MyExpenses](https://myexpenses.mobi/) | [`47ab235`](https://github.com/mtotschnig/MyExpenses/commit/47ab235ace5161220d3fa44eb4ab13d2e71030ee) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mtotschnig/MyExpenses/commit/ab7b802b7e65516bc05076651e81ef49f6111eac))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mtotschnig/MyExpenses/pull/1948#pullrequestreview-4321501043), [2](https://github.com/mtotschnig/MyExpenses/pull/1944#pullrequestreview-4291334840), [3](https://github.com/mtotschnig/MyExpenses/pull/1934#pullrequestreview-4208237200)) | -| [ODoo](https://www.odoo.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.odoo.com/documentation/19.0/applications/productivity/ai.html)) | +| [Odoo](https://www.odoo.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.odoo.com/documentation/19.0/applications/productivity/ai.html)) | | [ProExpenses](https://github.com/arduia/ProExpense) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/arduia/ProExpense/pull/89)) | | [Recurring Expense Tracker](https://f-droid.org/en/packages/de.dbauer.expensetracker/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/DennisBauer/RecurringExpenseTracker/pull/748#pullrequestreview-3351802682), [2](https://github.com/DennisBauer/RecurringExpenseTracker/pull/740#pullrequestreview-3329344288)) | From 3798a62452526c45032639095abdf12b5e1470a9 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 10 Jul 2026 13:28:57 +0200 Subject: [PATCH 396/413] clean up open source AI FAQ --- FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index ad5e454..774c31e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -50,9 +50,9 @@ There's no great place to put these in our current files, but these sorts of que > No, but you may find the work of [DAIR](https://dair-institute.org/) interesting. Also, see our [Why not LLMs?](./why_not_llms.md) section. -## What about "Open Source AI"? +## What about "Open Source AI" tooling/usage? -> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](./why_not_llms.md) section and thus such projects will still be included on this list. +> Yes, simply being open source does not resolve the issues listed in our [Why Not LLMs?](./why_not_llms.md) section and thus such projects that utilize "open source AI" would still be included on this list as tainted. ## Why is removal harder than landing on the list in the first place? From d6c064d1017e32993cf84fdba734af69b70dc915 Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Fri, 10 Jul 2026 13:37:04 +0200 Subject: [PATCH 397/413] Add GNUCash (#1099) ### Description of Changes Adding GNUCash. I couldn't find any actual policy for this one, but did find that it has claude code as a contributor (albeit with only one commit). This one hurts me a lot. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1099 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d0d47da..2a9c907 100644 --- a/README.md +++ b/README.md @@ -386,6 +386,7 @@ This is a section for repos that are similar to this one either because they are | [Actual](https://actualbudget.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://opencollective.com/actual/expenses/277324), [2](https://github.com/actualbudget/actual/blob/master/AGENTS.md)) | | [beancount](https://github.com/beancount/beancount) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://groups.google.com/g/beancount/c/_7udAMlfLAg/m/o6PazGuoAAAJ), [2](https://groups.google.com/g/beancount/c/cz8Xwnb7BLE/m/LSA3rTfMAgAJ)) | | [Firefly III](https://firefly-iii.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/firefly-iii/firefly-iii/blob/main/agents.md)) | +| [GNUCash](http://gnucash.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Gnucash/gnucash/commits?author=claude)) | | [hledger (v2.x)](https://hledger.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hledger.org/AI.html)) | | [KMyMoney](https://kmymoney.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://invent.kde.org/office/kmymoney/-/issues/49#note_1331389)) | | [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | From 93535bbb414b058ee590721f421fbc8ca8cfb8f9 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 10 Jul 2026 13:41:56 +0200 Subject: [PATCH 398/413] Add scalafmt as tainted (#1067) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1067 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2a9c907..cde604c 100644 --- a/README.md +++ b/README.md @@ -1611,6 +1611,7 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [sbt-sbom](https://github.com/sbt/sbt-sbom/) | [`0.5.0`](https://github.com/sbt/sbt-sbom/releases/tag/v0.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt-sbom/commit/ac26403d23701c3a2b6a468211b1931dcbf5a67e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [scalafmt](http://scalameta.org/scalafmt) | [`v3.11.1`](https://github.com/scalameta/scalafmt/releases/tag/v3.11.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalameta/scalafmt/commit/a63c1441b93f123d143caa725ca42cd5473905f9), [2](https://github.com/scalameta/scalafmt/commit/57afd53e1112f5d982e8c10b5b9436a5fd145608)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Zig From 0cda4e6a077bf0dcee69c357733505f3a3bc1cb5 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 10 Jul 2026 13:49:43 +0200 Subject: [PATCH 399/413] Add scalameta (#1077) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1077 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cde604c..497406f 100644 --- a/README.md +++ b/README.md @@ -1612,6 +1612,7 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t |---|:---:|---|---| | [sbt-sbom](https://github.com/sbt/sbt-sbom/) | [`0.5.0`](https://github.com/sbt/sbt-sbom/releases/tag/v0.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt-sbom/commit/ac26403d23701c3a2b6a468211b1931dcbf5a67e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [scalafmt](http://scalameta.org/scalafmt) | [`v3.11.1`](https://github.com/scalameta/scalafmt/releases/tag/v3.11.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalameta/scalafmt/commit/a63c1441b93f123d143caa725ca42cd5473905f9), [2](https://github.com/scalameta/scalafmt/commit/57afd53e1112f5d982e8c10b5b9436a5fd145608)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [scalameta](https://scalameta.org/) | [`v4.17.0`](https://github.com/scalameta/scalameta/releases/tag/v4.17.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalameta/scalameta/commit/98254e636bdf07e350e6cb83cbb124d6c445f73d), [2](https://github.com/scalameta/scalameta/commit/6ea1517f833478f1771752a69a408a6a2e3ca08f), [3](https://github.com/scalameta/scalameta/commit/582895d9a2fac26c3924a061ef8139239f5dcdae)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Zig From dc2ef23dc05179b6485feb60b01ab2d879c3c415 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 10 Jul 2026 14:17:31 +0200 Subject: [PATCH 400/413] move vibecoded before permissive ai policy for rsync --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 497406f..ab68bfa 100644 --- a/README.md +++ b/README.md @@ -1002,7 +1002,7 @@ This is a section for repos that are similar to this one either because they are | [croc](https://github.com/schollz/croc) | [`7331264`](https://github.com/schollz/croc/commit/7331264a050bd29a6905ba09e3bc4ce2c0722e66) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/schollz/croc/pull/1110), [2](https://github.com/schollz/croc/pull/1015), [3](https://github.com/schollz/croc/pull/993))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/schollz/croc/pull/1053), [2](https://github.com/schollz/croc/pull/1099)) | [Magic-Wormhole](https://github.com/magic-wormhole/magic-wormhole) | | [LocalSend](https://localsend.org) | [`a14e610`](https://github.com/localsend/localsend/commit/a14e610ee015a15b5fcd84c0f46f3033cda9a033) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/localsend/localsend/pull/2741#discussion_r2404361615), [2](https://github.com/localsend/localsend/pull/2518))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/localsend/localsend/pull/2880#pullrequestreview-4093401027), [2](https://github.com/localsend/localsend/pull/2922#pullrequestreview-3723284938), [3](https://github.com/localsend/localsend/pull/2777#pullrequestreview-3342581351))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/localsend/localsend#sponsors)) | [LocalShare](https://github.com/defname/LocalShare),
[PairDrop](https://pairdrop.net/#about),
[Sharing](https://github.com/Ammar64/Sharing),
[Warp](https://apps.gnome.org/Warp/) | | [rclone](https://rclone.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rclone/rclone/pull/8930), [2](https://github.com/rclone/rclone/commit/18899a58f3b74fadd9da9bf8433a18a52ffe87e5), [3](https://github.com/rclone/rclone/commit/ffdd043b957aad7808f82910f737bab3de2f5b10))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/rclone/rclone/pull/9273), [2](https://github.com/rclone/rclone/pull/9305), [3](https://github.com/rclone/rclone/pull/9056)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/RsyncProject/rsync/pull/903)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/),
[gokrazy/rsync](https://github.com/gokrazy/rsync),
[bcpierce00/unison](https://github.com/bcpierce00/unison) | +| [rsync](https://rsync.samba.org/) | [`3.4.1`](https://github.com/RsyncProject/rsync/releases/tag/v3.4.1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/RsyncProject/rsync/pull/903))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b), [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f)) | [openrsync](https://github.com/kristapsdz/openrsync),
`scp`,
an FTP client,
[tar](https://drewdevault.com/blog/rsync-without-rsync/),
[gokrazy/rsync](https://github.com/gokrazy/rsync),
[bcpierce00/unison](https://github.com/bcpierce00/unison) | ## Filesystem Navigation From 34089d60f6cd9b0bf333bfb93edb76ad771203d4 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Fri, 10 Jul 2026 14:20:20 +0200 Subject: [PATCH 401/413] Add "Anti AI Policy" merit badge to Tenacity :) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab68bfa..732754a 100644 --- a/README.md +++ b/README.md @@ -452,7 +452,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Audacity](https://www.audacityteam.org/) | [3.7.7](https://github.com/audacity/audacity/releases/tag/Audacity-3.7.7) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | +| [Audacity](https://www.audacityteam.org/) | [3.7.7](https://github.com/audacity/audacity/releases/tag/Audacity-3.7.7) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/tenacityteam/tenacity/src/branch/main/CONTRIBUTING.md#the-use-of-llms-and-ai-in-contributions)) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [Mixxx](https://github.com/mixxxdj/mixxx/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mixxxdj/mixxx/blob/4ae413dbe825f5929b3a04805f27f3df7ac4514a/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 2ab797593eafd4f6eb0b9ffe9333134988bbad2c Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 10 Jul 2026 15:34:56 +0200 Subject: [PATCH 402/413] Add scalafix as tainted (#1079) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1079 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 732754a..6347dd8 100644 --- a/README.md +++ b/README.md @@ -1611,6 +1611,7 @@ Note that Scala (except version 2 and up to 3.3.7 LTS) is itself tainted; see [t | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [sbt-sbom](https://github.com/sbt/sbt-sbom/) | [`0.5.0`](https://github.com/sbt/sbt-sbom/releases/tag/v0.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sbt/sbt-sbom/commit/ac26403d23701c3a2b6a468211b1931dcbf5a67e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [scalafix](https://scalacenter.github.io/scalafix/) | [`v0.13.0`](https://github.com/scalacenter/scalafix/releases/tag/v0.13.0)
[`9af410d`](https://github.com/scalacenter/scalafix/commit/9af410d23966494416b2b9ec940b58d6a55caa9a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalacenter/scalafix/commit/26efbdb38db4882b33b18ec8b5ed91f34d935b45), [2](https://github.com/scalacenter/scalafix/commit/0bb05323e5935bd9ded76696af64f765f6fbf4e4), [3](https://github.com/scalacenter/scalafix/commit/1951ad71bb8d291bcc59f938aec0c0df1605adc3)) | [wartremover](https://www.wartremover.org/) | | [scalafmt](http://scalameta.org/scalafmt) | [`v3.11.1`](https://github.com/scalameta/scalafmt/releases/tag/v3.11.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalameta/scalafmt/commit/a63c1441b93f123d143caa725ca42cd5473905f9), [2](https://github.com/scalameta/scalafmt/commit/57afd53e1112f5d982e8c10b5b9436a5fd145608)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [scalameta](https://scalameta.org/) | [`v4.17.0`](https://github.com/scalameta/scalameta/releases/tag/v4.17.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalameta/scalameta/commit/98254e636bdf07e350e6cb83cbb124d6c445f73d), [2](https://github.com/scalameta/scalameta/commit/6ea1517f833478f1771752a69a408a6a2e3ca08f), [3](https://github.com/scalameta/scalameta/commit/582895d9a2fac26c3924a061ef8139239f5dcdae)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [tapir](https://tapir.softwaremill.com/) | [`v1.12.6`](https://github.com/softwaremill/tapir/releases/tag/v1.12.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/softwaremill/tapir/commit/19ba37dd80838cb7a8c38e00262c18b014cd8ef7), [2](https://github.com/softwaremill/tapir/commit/3d15edbd6d45b27568244327a52512502d85b8be)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 5627f27a03427ec66b55967cde6eaec062f4a78f Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Fri, 10 Jul 2026 15:35:47 +0200 Subject: [PATCH 403/413] Add TimescaleDB as tainted (#1053) ### Description of Changes This PR adds TimescaleDB as tainted Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1053 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6347dd8..30cea92 100644 --- a/README.md +++ b/README.md @@ -875,6 +875,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [supabase](https://supabase.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/supabase/supabase/tree/master/packages/ai-commands), [2](https://supabase.com/docs/guides/ai), [3](https://supabase.com/docs/guides/ai-tools))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/supabase/supabase/blob/master/.claude/CLAUDE.md), [2](https://github.com/supabase/supabase/tree/master/.cursor)) | [PocketBase](https://pocketbase.io/) | +| [TimescaleDB](https://github.com/timescale/timescaledb) | [`2.25.2`](https://github.com/timescale/timescaledb/releases/tag/2.25.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/timescale/timescaledb/commit/5ff94658889f761b3e8c0fe298ae2da915c63552), [2](https://github.com/timescale/timescaledb/commit/017617e60f5a9aad6f8499247201449df4746edf), [3](https://github.com/timescale/timescaledb/commit/874d6b9ecd459cc0ba1a49dd14699768219cfe44)) | [SiriDB](https://siridb.com/)
[list of time series dbs](https://en.wikipedia.org/wiki/Time_series_database#List_of_time_series_databases) (several are tainted too) | ## Device Exploiting From 9fc108b8d790fb2a9c42830c07ee7b7135ffdf40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Sat, 11 Jul 2026 11:18:24 +0200 Subject: [PATCH 404/413] Fix broken tags in office section & remove LibreOffice Draw as alternative in image manipulation section (#1100) ### Description of Changes This PR fixes the broken "AI Functionality" tags in the newly-created Office section, and removes LibreOffice Draw as an alternative from the Image Manipulation section (since LibreOffice Core is considered tainted now) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1100 Reviewed-by: Ethical FOSS admin --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 30cea92..0ee1d21 100644 --- a/README.md +++ b/README.md @@ -787,11 +787,11 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [delphitools](https://github.com/1612elphi/delphitools) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/1612elphi/delphitools/commit/0dc9b6aa6d3672bc55c55c2e3b905317c1c8438c), [2](https://github.com/1612elphi/delphitools/commit/08997b0806abe9912ed8cf71148ce4f20e9e171f), [3](https://rmv.fyi/notes/i-hope-you-don-t-use-generative-ai)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) -| [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] -| [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | +| [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | | [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | -| [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | +| [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Interactive Media @@ -903,10 +903,10 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Collabora Online](https://www.collaboraonline.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/CollaboraOnline/online/commit/5e6b28e4d2888c89f62d2fea5ac37c5bf935255b), [2](https://github.com/CollaboraOnline/online/commit/87b7357d65655664140034bac569c3bcfb7d9ee8), [3](https://github.com/CollaboraOnline/online/pull/15555))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CollaboraOnline/online/blob/main/CONTRIBUTING.md#ai-policy))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/CollaboraOnline/online/pull/11550), [2](https://github.com/CollaboraOnline/online/pull/15290)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Euro-Office](https://github.com/Euro-Office) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/Euro-Office/desktop-apps/blob/421654b5d0c4c37a4fc353f19bae83e734cffa15/README.md?plain=1#L18), [2](https://github.com/Euro-Office/DesktopEditors/blob/c3af2176763da1fa3c246961419c01733fa058a3/README.md?plain=1#L22))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Euro-Office/eurooffice-nextcloud/commit/51e2d6a9f574ee4f53aeac5ff121e4bc5c18783c), [2](https://github.com/Euro-Office/core/commit/146975f73d45f672349b7d97a85738c1a6398f4c), [3](https://github.com/Euro-Office/eurooffice-nextcloud/commit/c6a1f72668cbb28491c9613ecb7c2e2a92b69aad)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Collabora Online](https://www.collaboraonline.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/CollaboraOnline/online/commit/5e6b28e4d2888c89f62d2fea5ac37c5bf935255b), [2](https://github.com/CollaboraOnline/online/commit/87b7357d65655664140034bac569c3bcfb7d9ee8), [3](https://github.com/CollaboraOnline/online/pull/15555))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CollaboraOnline/online/blob/main/CONTRIBUTING.md#ai-policy))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/CollaboraOnline/online/pull/11550), [2](https://github.com/CollaboraOnline/online/pull/15290)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Euro-Office](https://github.com/Euro-Office) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/Euro-Office/desktop-apps/blob/421654b5d0c4c37a4fc353f19bae83e734cffa15/README.md?plain=1#L18), [2](https://github.com/Euro-Office/DesktopEditors/blob/c3af2176763da1fa3c246961419c01733fa058a3/README.md?plain=1#L22))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Euro-Office/eurooffice-nextcloud/commit/51e2d6a9f574ee4f53aeac5ff121e4bc5c18783c), [2](https://github.com/Euro-Office/core/commit/146975f73d45f672349b7d97a85738c1a6398f4c), [3](https://github.com/Euro-Office/eurooffice-nextcloud/commit/c6a1f72668cbb28491c9613ecb7c2e2a92b69aad)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LibreOffice](https://www.libreoffice.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreOffice/core/commit/70c7f6ba49cfc506fc47dac32af98976ecf33cf8), [2](https://github.com/LibreOffice/core/commit/42cdc47554fa746baa863860143fc81fe8bb1c80), [3](https://github.com/LibreOffice/core/commit/7c0d875aca090de4f4d1164578683c0b7e0c6040)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [OnlyOffice](https://github.com/ONLYOFFICE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.onlyoffice.com/ai-assistants), [2](https://github.com/ONLYOFFICE/DocumentServer/blob/c05795f471af72f820444088c9aa4836840eee5b/ROADMAP.md?plain=1#L89), [3](https://github.com/ONLYOFFICE/onlyoffice.github.io/pull/526))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/3d41bd9a1c2a036fa16f113b570a275d2ff942f6/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [OnlyOffice](https://github.com/ONLYOFFICE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.onlyoffice.com/ai-assistants), [2](https://github.com/ONLYOFFICE/DocumentServer/blob/c05795f471af72f820444088c9aa4836840eee5b/ROADMAP.md?plain=1#L89), [3](https://github.com/ONLYOFFICE/onlyoffice.github.io/pull/526))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/3d41bd9a1c2a036fa16f113b570a275d2ff942f6/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## E-Mail and Calendar @@ -2145,8 +2145,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Konsole]: https://invent.kde.org/utilities/konsole [Lapce]: https://lap.dev/lapce/ [libmicrohttpd]: https://www.gnu.org/software/libmicrohttpd/ -[LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ -[LibreOffice Draw]: https://www.libreoffice.org/download/download-libreoffice/ [LibreTube]: https://libretube.dev [Lua]: https://lua.org [MATE Terminal]: https://wiki.mate-desktop.org/mate-desktop/applications/mate-terminal/ From 18c53ce48d0f232ad897d704a8ec2de822570418 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Sat, 11 Jul 2026 11:30:07 +0200 Subject: [PATCH 405/413] Update docs to require either an alternative or last untainted, and set open PR limit (#1097) ## Description of Changes Adds updates to the Contributing and Style Guide docs to note: - You must provide either an alternative or a last untainted commit/version - You can only have a maximum of 5 currently open Pull Requests (after your PRs or merged or closed, you're free to open more) - There should be a break between in the title for the "last untainted version/commit" column - There can be *both* a last untainted version AND last untainted commit, but if you can only provide one, prefer the version - Update "evidence and tags" column to just be "evidence" We also update the PR template to add a check box to ensure that either an alternative or a last untainted commit/version is provied. ### Related Issues - closes #1050 - closes #1090 Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1097 --- .forgejo/pull_request_template.yaml | 4 +++- CONTRIBUTING.md | 4 ++-- README.md | 4 ++-- STYLE.md | 13 ++++++++++--- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index e73d32a..31565a5 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -15,7 +15,7 @@ body: visible: [form] attributes: label: Docs have been read - description: By submitting this PR, you agree to follow our [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + description: By submitting this PR, you agree to the following: options: - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true @@ -23,3 +23,5 @@ body: required: true - label: I have also read the [Style Guide](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/STYLE.md) required: true + - label: If adding tatinted software, I have provided either the last untainted version/commit OR an alternative for all new entries in this PR. + required: true \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f357a0f..8c81fd3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,9 +21,9 @@ https://codeberg.org/org/project ``` > [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop so we don't all lose hope <3. +> Please do your best to *research alternatives* to the slopware before submitting a PR. All new contributions should have *either* an alternative OR a last untainted version/commit, so that people can fork the project. It's important to elevate projects that aren't drinking the slop, or to let people know how best to fork, so we don't all lose hope <3. -**Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** +**Please make sure to only submit a PR for *one* section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. We have a limit of only 5 *open* PRs per person. Please do not submit more than 5 PRs at a time. When your previous PRs are closed or merged, you are, of course, welcome to submit more, but please do not flood the repo.** Other tips for keeping the repo tidy and making sure we don't duplicate efforts: diff --git a/README.md b/README.md index 0ee1d21..8a3ca51 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ ![trans rights](https://pride-badges.pony.workers.dev/static/v1?label=trans%20rights&stripeWidth=6&stripeColors=5BCEFA,F5A9B8,FFFFFF,F5A9B8,5BCEFA) ![Sponsored by the Gay Agenda](https://pride-badges.pony.workers.dev/static/v1?label=Sponsored+by+the+Gay+Agenda&labelColor=%23555&stripeWidth=8&stripeColors=E40303%2CFF8C00%2CFFED00%2C008026%2C24408E%2C732982) -Free/Open Source Software tainted by LLM developers/developed by genAI boosters, along with alternatives. +Free/Open Source Software tainted by LLM/AI usage, along with *alternatives* and *last untainted commit* so you can fork. -The intention of this list is to raise awareness of AI/LLM usage in popular open-source software. Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is not a resource to be used for the harassment of other open-source developers. If you wish to advocate for a "No AI" Policy from another project, we ask that it be done respectfully and constructively (and do *not* mention this list). +Provided below is an informed set of AI-free alternatives for users and developers to consider should their ethical boundaries be crossed or tolerance for risk be exceeded. This list is **not** a resource to be used for the harassment of other open-source developers. If you wish to advocate for a "No AI" Policy from another project, we ask that it be done respectfully and constructively (and do *not* mention this list). For more information on why we think this list matters, please see out [Why not LLMs?](./why_not_llms.md) file. diff --git a/STYLE.md b/STYLE.md index a0525ca..513bb0a 100644 --- a/STYLE.md +++ b/STYLE.md @@ -14,13 +14,15 @@ Be sure to put things in the correct category and always update the above TOC (t Make sure to format your table like below (note that it is alphabetized by software name): -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| Name | Last Untainted
Version/Commit ID | Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`v1.0.0`](linktolastgoodcommitid.tld/releases/v1.0.0)
[`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://link-to-software-blog.tld/how-i-vibecoded-the-app))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/ethical-foss/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | | [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject]
[amazingSlopFreeProject] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://link-to-anti-ai-evidence.tld)) | **Name column**: should be the name of software linked to their git repo (or other software forge if they don't use git). +**Last Untainted Version/Commit**: should be the last commit before AI started being used in the repo. You can provide both the version and a commit hash, but if you can only provide one, please prefer using the version. (Reminder: This is meant for forking only, as running old software comes with security risks.) You must provide something either for this column, or for the alternatives column. + **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): - [![AI Functionality](./badges/ai-functionality.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-functionality) @@ -36,7 +38,12 @@ Make sure to format your table like below (note that it is alphabetized by softw > [!note] > The above order is the official order you should add your tags in. -**Don't know what the alternative or last known good version is?** Use this badge in its place: +**Alternatives Column**: should be a link to the source of a different project that is similar to the one that is tainted, but does not yet have any AI in it. This column can be omitted if there are many alternatives for one entry. See: [When to use an Alternatives Note Versus Table Column](#when-to-use-an-alternatives-note-versus-table-column). + +> [!warning] +> You must provide *either* a last untainted commit/version *or* an alternative. You can provide both, but if you don't provide one or the other, you will be politely asked to do so. + +**Don't know what the alternative or last known untainted version/commit is?** Use this badge in its place: - [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/ethical-foss/open-slopware#request-for-help) From 9eaebff7fbf571d6f8f3ca9e6ff0d38f3c58b995 Mon Sep 17 00:00:00 2001 From: killertofus Date: Sat, 11 Jul 2026 11:33:04 +0200 Subject: [PATCH 406/413] added NETworkManager (#963) Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/963 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8a3ca51..001c20b 100644 --- a/README.md +++ b/README.md @@ -1231,6 +1231,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://curl.se/dev/contribute.html#on-ai-use-in-curl), [2](https://mastodon.social/@bagder/116204333476519757))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://mastodon.social/@bagder/116609161259593989)) | [HTTPie](https://github.com/httpie/cli), [xh](https://github.com/ducaale/xh), [wget](https://www.gnu.org/software/wget/) | +| [NETworkManager](https://github.com/BornToBeRoot/NETworkManager/) | [![Request for help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BornToBeRoot/NETworkManager/tree/main/.claude/commands)) | [stacer](https://github.com/QuentiumYT/Stacer) ### Reverse proxies From 5f4406a7eb6606e4d63bed36f0054ce7cfce6705 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Mon, 13 Jul 2026 09:04:49 +0200 Subject: [PATCH 407/413] Detail alternatives/last untainted commit/version exceptions, add TOC/formatting to Contributing guide, fix PR template (#1108) - lets people know where there's an exception to our rules, as noted in https://codeberg.org/ethical-foss/open-slopware/issues/1090#issuecomment-19000415 in the Contributing/Style Guide docs - adds a Table of Contents to the Contributing guide - cleans up some typos, formatting, and wording in the Contributing guide - fixes a stray colon that was breaking the PR template Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1108 --- .forgejo/pull_request_template.yaml | 4 +-- CONTRIBUTING.md | 54 ++++++++++++++++++++++------- STYLE.md | 4 +-- 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index 31565a5..b139e0f 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -15,7 +15,7 @@ body: visible: [form] attributes: label: Docs have been read - description: By submitting this PR, you agree to the following: + description: By submitting this PR, you agree to the following options: - label: I agree to follow this project's [Code of Conduct](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) required: true @@ -24,4 +24,4 @@ body: - label: I have also read the [Style Guide](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/STYLE.md) required: true - label: If adding tatinted software, I have provided either the last untainted version/commit OR an alternative for all new entries in this PR. - required: true \ No newline at end of file + required: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8c81fd3..7d025ea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,24 @@ +# Guide to Contributing to this Repo + > [!warning] > Before you interact with this repo, please read the [**Code of Conduct**](./CODE_OF_CONDUCT.md)! This is a repo for *nice people only*! We would also appreciate it if you did not mention this repo on social media or in chats in order to shame a project or community. Do *not* make posts like, "`` should be added to the open-slopware list", especially if you are tagging a maintainer or using a project's hashtag. +* [Contributing Pull Requests](#contributing-pull-requests) + * [For Adding or Updating Tainted Software](#for-adding-or-updating-tainted-software) + * [Other tips for keeping the repo tidy](#other-tips-for-keeping-the-repo-tidy) + * [Criteria](#criteria) + * [Alternatives](#alternatives) + * [Style guide](#style-guide) + * [Removal of "Tainted" Status](#removal-of-tainted-status) + * [Adding Alternatives to Tainted Software](#adding-alternatives-to-tainted-software) + * [Rules for self submission](#rules-for-self-submission) + * [Unqualified Alternatives](#unqualified-alternatives) +* [Contributing Issues](#contributing-issues) + * [Discussion](#discussion) + * [More Kind Eyes](#more-kind-eyes) + * [Call for Collaborators](#call-for-collaborators) +* [Contributing to the Why Not LLMs File](#contributing-to-the-why-not-llms-file) + # Contributing Pull Requests ## For Adding or Updating Tainted Software @@ -20,12 +38,10 @@ Please don't link directly to codeberg.org repos, issues, pull requests or commi https://codeberg.org/org/project ``` -> [!important] -> Please do your best to *research alternatives* to the slopware before submitting a PR. All new contributions should have *either* an alternative OR a last untainted version/commit, so that people can fork the project. It's important to elevate projects that aren't drinking the slop, or to let people know how best to fork, so we don't all lose hope <3. +> [!note] +> Please make sure to only submit a PR for *one* section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. We have a limit of only 5 *open* PRs per person. Please do not submit more than 5 PRs at a time. When your previous PRs are closed or merged, you are, of course, welcome to submit more, but please do not flood the repo. (There is an exception to this rule if one or more of your open PRs are awaiting upstream feedback.) -**Please make sure to only submit a PR for *one* section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. We have a limit of only 5 *open* PRs per person. Please do not submit more than 5 PRs at a time. When your previous PRs are closed or merged, you are, of course, welcome to submit more, but please do not flood the repo.** - -Other tips for keeping the repo tidy and making sure we don't duplicate efforts: +### Other tips for keeping the repo tidy - Search for the software name in the Issues *and* Pull Requests of this repo. (Great minds think alike ❤️) - If the software is already reported in an open Issue, but not as a PR, open your PR linking to the open issue with the following description, so the related issue gets automatically closed if the PR gets merged: @@ -35,7 +51,7 @@ Other tips for keeping the repo tidy and making sure we don't duplicate efforts: - If the software is already reported in an open issue and as an open PR leave a comment in the PR with the new or updated evidence(s). - When submitting a PR, make sure you're comfortable with the description of the PR being what gets committed. We use the PR description when squashing all commits before merging. We default to sqaushing and merging, so that if the repo has only one commit per PR. -> [!note] +> [!tip] > Don't know how to create a PR? You can learn more about that in the [Codeberg Pull Requests and Git Flow docs](https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/) 🩵 ### Criteria @@ -52,9 +68,23 @@ The criteria for being included in this repository are any of following tags. Yo - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/ethical-foss/open-slopware#ai-in-issue-tracker) - [![Condones LLM Ingestion](./badges/condones-llm-ingestion.svg)](https://codeberg.org/ethical-foss/open-slopware#condones-llm-ingestion) +Please don't submit social media posts as evidence unless it is a post *by a maintainer of the tainted project* talking about using AI to develop the tainted project. Even then, we'd prefer links to a project's LLM commits in a git forge, AI/contributing policies, or blog posts. + +#### Alternatives + Alternatives should not contain any slop as defined by our tagging system above. -Please don't submit social media posts as evidence unless it is a post *by a maintainer of the tainted project* talking about using AI to develop the tainted project. Even then, we'd prefer links to a project's LLM commits in a git forge, AI/contributing policies, or blog posts. +Please do your best to *research alternatives* to the slopware before submitting a PR. All new contributions should have *either* an alternative OR a last untainted version/commit, so that people can fork the project. (You can still provide both, but only one is required.) It's important to elevate projects that aren't drinking the slop, or to let people know how best to fork, so we don't all lose hope <3. + +Alternatives don't have to be perfect 1:1, as long as you provide a note letting people know the differences. Sometimes the solution to avoiding tainted software is a combination of other tools, and that's OK. + +**Exceptions to needing an alternative** + +- You've provided a last untainted commit and/or version. + +- The tainted project is [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware#vibecoded) with no clear alternative yet (this is fairly rare because AI code is often a sum of other stolen code), you don't need to provide an alternative (or last untainted commit). + +- There is *already* an "alternative note" section that provides at least one alternative for that section (e.g [local password managers](https://codeberg.org/ethical-foss/open-slopware#local-password-managers)) ### Style guide @@ -105,7 +135,7 @@ Projects that have an explicit "No AI" policy can be awarded the [![Anti-AI Poli Issues are meant primarily for discussing if something should be added or questions regarding clarification. An issue that says "Add x software" will be treated as a call to community action and labeled with `ready-for-pr`, provided it meets the above criteria. This is not a problem, but does not necessarily mean the core maintainers of this repo will create that PR for you. However it does mean you or someone else in the community is clear to go ahead and submit a PR for that software. This is maintained in the community's free time, so please understand that there will sometimes be a delay when a PR is created for you. -Please make sure to only submit an Issue for 1 piece of software or section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. +Please make sure to only submit an Issue for 1 piece of software or section at a time, otherwise it is more difficult to coordinate between multiple Issues and Pull Requests. We use the following issue types and tags to keep conversation focused and actionable: @@ -122,7 +152,7 @@ This is not a place to discuss what you think an "ethical" LLM/AI is. We will cl This is also not a place to open an issue to the effect of "think of the centrists". -If someone has a question in a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @ethical-foss-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are ok with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). +If someone has a question in a Discussion type issue, and it requires a hard stance on behalf of the repo, please do not comment with a definitive answer unless you are a maintainer. If you do comment, please explicitly state that you are not an official maintainer, and tag @ethical-foss-admin if one has not already responded. There are still situations in which the maintainers will ask for community feedback, and in those, anyone is free to comment. We have these rules to reduce confusion and prevent conflict if there is a mismatch between community members and maintainers. If you feel strongly and want to push back, we are OK with that, but you must do so kindly and in accordance with our [Code of Conduct](./CODE_OF_CONDUCT.md). ## More Kind Eyes @@ -166,13 +196,13 @@ This issue type is for advertising your "No AI allowed" project. It follows the - project has a "Code of Conduct" - project has a "No AI Policy" -Provided you meet the requirements, you're free to ask for additional collborators or contributors to your repo :) +Provided you meet the requirements, you're free to ask for additional collaborators or contributors to your repo :) -# Contributing to the Why Not LLMs section +# Contributing to the Why Not LLMs file This is a much more free form section without a specific rigid style guide at this time. Here are some general guidelines: -- Do not link to people's social media posts e.g. fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. +- Do not link to people's social media posts e.g. the fediverse, bsky, X, etc even if they are against AI. Using blog posts is OK, but we'd prefer if the language there was not filled with profanity. We try to keep this repo professional. - When adding a link to back up your point, please use the name of the source and title of the article as the link name diff --git a/STYLE.md b/STYLE.md index 513bb0a..9fa5b5d 100644 --- a/STYLE.md +++ b/STYLE.md @@ -21,7 +21,7 @@ Make sure to format your table like below (note that it is alphabetized by softw **Name column**: should be the name of software linked to their git repo (or other software forge if they don't use git). -**Last Untainted Version/Commit**: should be the last commit before AI started being used in the repo. You can provide both the version and a commit hash, but if you can only provide one, please prefer using the version. (Reminder: This is meant for forking only, as running old software comes with security risks.) You must provide something either for this column, or for the alternatives column. +**Last Untainted Version/Commit**: should be the last commit before AI started being used in the repo. You can provide both the version and a commit hash, but if you can only provide one, please prefer using the version. (Reminder: This is meant for forking only, as running old software comes with security risks.) If the project is [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware##vibecoded), you can just use the word "None" for the Last Untainted Version/Commit. You must provide something (even "None" if Vibecoded) *either* for this column, or for the alternatives column - unless there is already an "Alternatives" note. **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): @@ -41,7 +41,7 @@ Make sure to format your table like below (note that it is alphabetized by softw **Alternatives Column**: should be a link to the source of a different project that is similar to the one that is tainted, but does not yet have any AI in it. This column can be omitted if there are many alternatives for one entry. See: [When to use an Alternatives Note Versus Table Column](#when-to-use-an-alternatives-note-versus-table-column). > [!warning] -> You must provide *either* a last untainted commit/version *or* an alternative. You can provide both, but if you don't provide one or the other, you will be politely asked to do so. +> You must provide *either* a last untainted commit/version *or* an alternative. You can provide both, but if you don't provide one or the other, you will be politely asked to do so. There is an exception if the tainted project is [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/ethical-foss/open-slopware##vibecoded) with no clear alternatives OR there is already an "Alternatives" note. **Don't know what the alternative or last known untainted version/commit is?** Use this badge in its place: From c8dda5b388d0132e6115c634adf0f3ffa497c4eb Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 13 Jul 2026 09:11:48 +0200 Subject: [PATCH 408/413] Add Ren'Py (#1084) ### Description of Changes This PR adds Ren'Py as tainted. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1084 Reviewed-by: Ethical FOSS admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 001c20b..e11aa43 100644 --- a/README.md +++ b/README.md @@ -1076,6 +1076,7 @@ This is a section for repos that are similar to this one either because they are | [GZDoom](https://github.com/zdoom/gzdoom) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2)) | [UZDoom](https://github.com/UZDoom/UZDoom), [Chocolate Doom](https://www.chocolate-doom.org/) | | [Jmonkey](https://jmonkeyengine.org/)| [`3.6.1-stable`](https://github.com/jMonkeyEngine/jmonkeyengine/releases/tag/v3.6.1-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/jMonkeyEngine/jmonkeyengine/pull/2640)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/jMonkeyEngine/jmonkeyengine/pull/2640#issuecomment-4039106977) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Luanti](https://luanti.org) | [`5.14.0`](https://github.com/luanti-org/luanti/releases/tag/5.14.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/luanti-org/luanti/pull/16808), [2](https://github.com/luanti-org/luanti/pull/16961), [3](https://github.com/luanti-org/luanti/pull/17095)) | [ClassiCube](https://www.classicube.net/)
[Cubyz](https://github.com/PixelGuys/Cubyz)
[Cubos](https://cubosengine.org) | +| [Ren'Py](https://www.renpy.org/) | [`7.4.6.1693`](https://github.com/renpy/renpy/releases/tag/7.4.6.1693) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://nitter.net/renpytom/status/2064433925926142248), [2](https://github.com/renpy/renpy/pull/6939)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [UPBGE 0.5](https://upbge.org/) | [`0.36.1`](https://github.com/UPBGE/upbge/releases/tag/v0.36.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!NOTE] From 4651e0669a2fd5cd0ef10dd3b1154803c64cdd94 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Mon, 13 Jul 2026 09:13:55 +0200 Subject: [PATCH 409/413] note that there are exceptions --- .forgejo/pull_request_template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/pull_request_template.yaml b/.forgejo/pull_request_template.yaml index b139e0f..a4b0a0f 100644 --- a/.forgejo/pull_request_template.yaml +++ b/.forgejo/pull_request_template.yaml @@ -23,5 +23,5 @@ body: required: true - label: I have also read the [Style Guide](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/STYLE.md) required: true - - label: If adding tatinted software, I have provided either the last untainted version/commit OR an alternative for all new entries in this PR. + - label: If adding tatinted software, I have provided either the last untainted version/commit OR an alternative for all new entries in this PR. See about exceptions in the Contributing/Style guides. required: true From 56df2ab93eb2912a1b48a5ec06e8bc92bcb17815 Mon Sep 17 00:00:00 2001 From: overbillduplex615 Date: Mon, 13 Jul 2026 09:16:37 +0200 Subject: [PATCH 410/413] Add Note Software with Alternatives (#1008) ### Description of Changes Add AppFlowy, Ferrite, Markor, Notesnook, QOwnNotes, SiYuan, Simplenote for Android, Simplenote for Electron, Simplenote for iOS, Simplenote for macOS, TriliumNext, VNote. Add ghostwritter, Marknote, neutriNote CE, Print(Notes), Standard Notes, Zim as Note Software Alternatives. Move Zettlr to tainted. Replace Joplin, Logseq, Memos website links with GitHub links. Replace the list with a table for the Note Software Alternatives section. Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1008 Reviewed-by: Ethical FOSS admin --- README.md | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e11aa43..973d886 100644 --- a/README.md +++ b/README.md @@ -1945,16 +1945,41 @@ This section is strictly for software implementing a core set of UNIX-like (or M > | [vis] | TUI | vi-like | ### Note Software + | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | -| [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | -| [Memos](https://usememos.com/) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | +| [AppFlowy](https://github.com/AppFlowy-IO/AppFlowy) | None | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://appflowy.com/guide/AppFlowy-AI))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/AppFlowy-IO/AppFlowy/pull/8805#pullrequestreview-4483796508), [2](https://github.com/AppFlowy-IO/AppFlowy/pull/8320#pullrequestreview-3399799972), [3](https://github.com/AppFlowy-IO/AppFlowy/pull/8295#pullrequestreview-3336562461)) | +| [Ferrite](https://github.com/OlaProeis/Ferrite) | None | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/OlaProeis/Ferrite#-ai-assisted-development)) | +| [Joplin](https://github.com/laurent22/joplin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | +| [Linwood Butterfly](https://github.com/LinwoodDev/Butterfly) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LinwoodDev/Butterfly/commit/96ed14afb61c7df01897f6a76787baa983b37856), [2](https://github.com/LinwoodDev/Butterfly/commit/4fd79f2bd31a33114ea9344631a25ece061d5f67))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LinwoodDev/Butterfly/pull/1111#pullrequestreview-4402872631), [2](https://github.com/LinwoodDev/Butterfly/pull/841#pullrequestreview-4391376916)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Logseq](https://github.com/logseq) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | +| [Markor](https://github.com/gsantner/markor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gsantner/markor/pull/2808), [2](https://github.com/gsantner/markor/pull/2778)) | +| [MarkText](https://github.com/marktext/marktext) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/marktext/marktext/blob/develop/CLAUDE.md), [2](https://github.com/marktext/marktext/blob/develop/.gitignore), [3](https://github.com/marktext/marktext/commit/f572a127462b420c03168849f386780c16b04d4a))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/marktext/marktext/pull/4436#pullrequestreview-4464852398), [2](https://github.com/marktext/marktext/pull/4439#pullrequestreview-4465329146)) | +| [Memos](https://github.com/usememos/memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | +| [Notesnook](https://github.com/streetwriters/notesnook) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/streetwriters/notesnook/pull/9415))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/streetwriters/notesnook/pull/8162#pullrequestreview-2890601840)) | +| [QOwnNotes](https://github.com/pbek/QOwnNotes) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/pbek/QOwnNotes/#features))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pbek/QOwnNotes/blob/main/AGENTS.md), [2](https://github.com/pbek/QOwnNotes/blob/main/.github/copilot-instructions.md)) | +| [Saber](https://github.com/saber-notes/saber) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/saber-notes/saber/pull/1755#issue-4562408563), [2](https://github.com/saber-notes/saber/pull/1759#pullrequestreview-4438423542)) | +| [Simplenote for Android](https://github.com/Automattic/simplenote-android) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Automattic/simplenote-android/blob/trunk/AGENTS.md), [2](https://github.com/Automattic/simplenote-android/commit/4c3ae4e236f4ede80aade5038570146cce2955a7), [3](https://github.com/Automattic/simplenote-android/commit/5058bd1ad7d167cbfc8fe83b3fc2244c54a2a388))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Automattic/simplenote-android/pull/1817#pullrequestreview-4407122139), [2](https://github.com/Automattic/simplenote-android/pull/1811#pullrequestreview-4370567402)) | +| [Simplenote for Electron](https://github.com/Automattic/simplenote-electron) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Automattic/simplenote-electron/commit/94ae0aaff6eeea4cd50afc867a816dbd85ba1d6f), [2](https://github.com/Automattic/simplenote-electron/commit/0d109df13ba911b2279f7280009c138a7f6e3017))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Automattic/simplenote-electron/pull/3383#pullrequestreview-4472644017), [2](https://github.com/Automattic/simplenote-electron/pull/3380#pullrequestreview-4455091995)) | +| [Simplenote for iOS](https://github.com/Automattic/simplenote-ios) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Automattic/simplenote-ios/commit/0df989b08d1427344c865ff01f3ee9633ee76a3f), [2](https://github.com/Automattic/simplenote-ios/commit/cc7b39989e26c108f746be472470ba4b5a667ba1))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Automattic/simplenote-ios/pull/1781#pullrequestreview-4398267422), [2](https://github.com/Automattic/simplenote-ios/pull/1778#pullrequestreview-4333084208)) | +| [Simplenote for macOS](https://github.com/Automattic/simplenote-macos) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Automattic/simplenote-macos/blob/trunk/AGENTS.md), [2](https://github.com/Automattic/simplenote-macos/commit/b568089ad521221dc1510fcf92ddec44b311ac5e), [3](https://github.com/Automattic/simplenote-macos/commit/54e1a8778a4ee1ce41cec905f499485c2d610309))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Automattic/simplenote-macos/pull/1260#pullrequestreview-4360989839)) | +| [SiYuan](https://github.com/siyuan-note/siyuan) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/siyuan-note/siyuan#-features))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/siyuan-note/siyuan/pull/17656), [2](https://github.com/siyuan-note/siyuan/pull/17657), [3](https://github.com/siyuan-note/siyuan/pull/17658))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/siyuan-note/siyuan/pull/17780#pullrequestreview-4433170978)) | +| [TriliumNext](https://github.com/TriliumNext/Trilium) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TriliumNext/Trilium/blob/main/CLAUDE.md), [2](https://github.com/TriliumNext/Trilium/commit/51f848cd4609b5954fab097172bf4f5baeb183a9), [3](https://github.com/TriliumNext/Trilium/commit/df56d711c60d32143adfb1c568602486395579c0))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TriliumNext/Trilium/pull/10172#issuecomment-4705513281), [2](https://github.com/TriliumNext/Trilium/pull/10169#pullrequestreview-4493271570))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/TriliumNext/Trilium/blob/ecb6a3002d735782dd67132591be9b75cf5fc6a8/README.md?plain=1#L1-L8)) | +| [VNote](https://github.com/vnotex/vnote) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vnotex/vnote/blob/master/CLAUDE.md), [2](https://github.com/vnotex/vnote/commit/ab8e7d5dc8dc77e9fca266d9fbdb9452fad5382f), [3](https://github.com/vnotex/vnote/commit/e4e0a58fd28acd6acaceb8be2ef81924402aede1)) | +| [Zettlr](https://github.com/Zettlr/Zettlr) | [`99a91eb`](https://github.com/Zettlr/Zettlr/commit/99a91eb59635656b1a3780e0290191155834a9ce) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Zettlr/Zettlr/blob/develop/CONTRIBUTING.md#ai-usage-policy)) | > [!Note] > #### Note Software Alternatives -> - [flatnotes](https://github.com/dullage/flatnotes) (Markdown-based) -> - [Zettlr](https://www.zettlr.com/) (Markdown-based) +> | Name | File Format | Platform Support | +> |------|----|-------| +> | [flatnotes](https://github.com/dullage/flatnotes) | Markdown | Web App | +> | [ghostwriter](https://invent.kde.org/office/ghostwriter) | Markdown | Linux | +> | [Marknote](https://invent.kde.org/office/marknote) | Markdown | Linux | +> | [neutriNote CE](https://github.com/appml/neutrinote) | Plain Text | Android | +> | [Org Mode](https://orgmode.org) | Org | *BSD, Android, Haiku, iOS, Linux, macOS, DOS, Solaris, Windows | +> | [Print(Notes)](https://github.com/RoBoT095/printnotes) | Markdown | Android, iOS, Linux | +> | [Standard Notes](https://github.com/standardnotes/app) | Markdown | Android, iOS, Linux, macOS, Web App, Windows | +> | [Zim](https://github.com/zim-desktop-wiki/zim-desktop-wiki) | Wiki Pages | Linux | ## Unified Push Distributors From d2169d9e1d91b1007fec5bd0dc067586bd151609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Mon, 13 Jul 2026 09:18:43 +0200 Subject: [PATCH 411/413] Add LaSuite Docs as tainted, and Calligra & CryptPad as alternatives (#1101) ### Description of Changes This PR adds LaSuite Docs as tainted, and adds alternatives to the category with Calligra and CryptPad Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1101 Reviewed-by: Ethical FOSS admin --- README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 973d886..e59bc1b 100644 --- a/README.md +++ b/README.md @@ -901,12 +901,21 @@ This is a section for repos that are similar to this one either because they are ### Office Suite -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Collabora Online](https://www.collaboraonline.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/CollaboraOnline/online/commit/5e6b28e4d2888c89f62d2fea5ac37c5bf935255b), [2](https://github.com/CollaboraOnline/online/commit/87b7357d65655664140034bac569c3bcfb7d9ee8), [3](https://github.com/CollaboraOnline/online/pull/15555))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CollaboraOnline/online/blob/main/CONTRIBUTING.md#ai-policy))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/CollaboraOnline/online/pull/11550), [2](https://github.com/CollaboraOnline/online/pull/15290)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Euro-Office](https://github.com/Euro-Office) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/Euro-Office/desktop-apps/blob/421654b5d0c4c37a4fc353f19bae83e734cffa15/README.md?plain=1#L18), [2](https://github.com/Euro-Office/DesktopEditors/blob/c3af2176763da1fa3c246961419c01733fa058a3/README.md?plain=1#L22))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Euro-Office/eurooffice-nextcloud/commit/51e2d6a9f574ee4f53aeac5ff121e4bc5c18783c), [2](https://github.com/Euro-Office/core/commit/146975f73d45f672349b7d97a85738c1a6398f4c), [3](https://github.com/Euro-Office/eurooffice-nextcloud/commit/c6a1f72668cbb28491c9613ecb7c2e2a92b69aad)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [LibreOffice](https://www.libreoffice.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreOffice/core/commit/70c7f6ba49cfc506fc47dac32af98976ecf33cf8), [2](https://github.com/LibreOffice/core/commit/42cdc47554fa746baa863860143fc81fe8bb1c80), [3](https://github.com/LibreOffice/core/commit/7c0d875aca090de4f4d1164578683c0b7e0c6040)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [OnlyOffice](https://github.com/ONLYOFFICE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.onlyoffice.com/ai-assistants), [2](https://github.com/ONLYOFFICE/DocumentServer/blob/c05795f471af72f820444088c9aa4836840eee5b/ROADMAP.md?plain=1#L89), [3](https://github.com/ONLYOFFICE/onlyoffice.github.io/pull/526))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/3d41bd9a1c2a036fa16f113b570a275d2ff942f6/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| Name | Last Untainted
Version/Commit ID | Tags and Evidence | +|---|:---:|---| +| [Collabora Online](https://www.collaboraonline.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/CollaboraOnline/online/commit/5e6b28e4d2888c89f62d2fea5ac37c5bf935255b), [2](https://github.com/CollaboraOnline/online/commit/87b7357d65655664140034bac569c3bcfb7d9ee8), [3](https://github.com/CollaboraOnline/online/pull/15555))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CollaboraOnline/online/blob/main/CONTRIBUTING.md#ai-policy))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/CollaboraOnline/online/pull/11550), [2](https://github.com/CollaboraOnline/online/pull/15290)) | +| [Euro-Office](https://github.com/Euro-Office) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/Euro-Office/desktop-apps/blob/421654b5d0c4c37a4fc353f19bae83e734cffa15/README.md?plain=1#L18), [2](https://github.com/Euro-Office/DesktopEditors/blob/c3af2176763da1fa3c246961419c01733fa058a3/README.md?plain=1#L22))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Euro-Office/eurooffice-nextcloud/commit/51e2d6a9f574ee4f53aeac5ff121e4bc5c18783c), [2](https://github.com/Euro-Office/core/commit/146975f73d45f672349b7d97a85738c1a6398f4c), [3](https://github.com/Euro-Office/eurooffice-nextcloud/commit/c6a1f72668cbb28491c9613ecb7c2e2a92b69aad)) | +| [LaSuite Docs](https://github.com/suitenumerique/docs) | [`1.5.1`](https://github.com/suitenumerique/docs/releases/tag/v1.5.1) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.la-suite.eu/#ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/suitenumerique/docs/commit/25cf11c90f18c6f12e340f3ead250a54122e9d2c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/suitenumerique/docs/pull/2215), [2](https://github.com/suitenumerique/docs/pull/2220), [3](https://github.com/suitenumerique/docs/pull/1897)) | +| [LibreOffice](https://www.libreoffice.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreOffice/core/commit/70c7f6ba49cfc506fc47dac32af98976ecf33cf8), [2](https://github.com/LibreOffice/core/commit/42cdc47554fa746baa863860143fc81fe8bb1c80), [3](https://github.com/LibreOffice/core/commit/7c0d875aca090de4f4d1164578683c0b7e0c6040)) | +| [OnlyOffice](https://github.com/ONLYOFFICE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.onlyoffice.com/ai-assistants), [2](https://github.com/ONLYOFFICE/DocumentServer/blob/c05795f471af72f820444088c9aa4836840eee5b/ROADMAP.md?plain=1#L89), [3](https://github.com/ONLYOFFICE/onlyoffice.github.io/pull/526))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/3d41bd9a1c2a036fa16f113b570a275d2ff942f6/CLAUDE.md)) | + +> [!Note] +> #### Alternative Office Suites +> +> | Name | Platform | Notes | +> |---|---|---| +> | [Calligra](https://invent.kde.org/office/calligra) | BSD, Linux | Windows support is being worked on. | +> | [CryptPad](https://github.com/cryptpad/cryptpad) | Web | Can be used on a [public instance](https://cryptpad.org/instances/) or self-hosted. | ## E-Mail and Calendar From 505d1a1e4fcb979b36455234d20182cfdfde1784 Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Mon, 13 Jul 2026 09:28:41 +0200 Subject: [PATCH 412/413] note that no issues or pull requests are deleted during vacation mode --- GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index b194c57..496065a 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -39,7 +39,7 @@ These are people who contribute to the repo. They have no special access. Anyone This repo gets put into "vacation mode" periodically through out the year. We do this because we need time away from the repo, and during that time, we can't guarentee any moderation, so for safety, no commenting on the repo can be allowed during that time. -During vacation mode, we will disable Issues and Pull Requests and will not actively work on the repo in any way. The repo will still be public. There will be a notice at the top of README explaining that we're in vacation mode and when we will be back. When the vacation is over, the Issues and Pull Requests will be re-enabled. +During vacation mode, we will disable Issues and Pull Requests and will not actively work on the repo in any way. Even though the Issues and Pull Requests are temporarily hidden, they are not deleted. The repo will still be public. There will be a notice at the top of README explaining that we're in vacation mode and when we will be back. When the vacation is over, the Issues and Pull Requests will be re-enabled, and all previous Issues/Pull Requests will be visible again. Vacations typically last anywhere from 3 days to 2 weeks depending on the owner's schedule, and are announced in advance. From 6864726f163fe2fcc0f60ac4e87fd8b4381f76ad Mon Sep 17 00:00:00 2001 From: ethical-foss-admin Date: Mon, 13 Jul 2026 17:30:41 +0200 Subject: [PATCH 413/413] alternatives update - you don't have to have a perfect 1:1 alternative --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7d025ea..c7af47b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -112,12 +112,14 @@ Do you see a project on this list that you wish was not on it? Please consider r Feel free to submit any software as an alternative provided it is FOSS, has no AI in the code base, and is not associated with hate or bigotry (see [examples of bigotry](https://codeberg.org/ethical-foss/open-slopware/src/branch/main/CODE_OF_CONDUCT.md#no-bigotry)). -You can absolutely self-submit your own projects. +Alternatives do not need to be perfect 1:1 replacements for tainted software. Sometimes, the alternative may even be a combination of multiple pieces of software. If something isn't a one to one replacement, please add a note explaining what the differences are. Projects that have an explicit "No AI" policy can be awarded the [![Anti-AI Policy](./badges/anti-ai-policy.svg)](https://codeberg.org/ethical-foss/open-slopware#anti-ai-policy) badge. See the [style guide](./STYLE.md) for more info. #### Rules for self submission +You can absolutely self-submit your own projects. You just need to make sure you adhere to the following: + - no previous strikes or bans in the repo - project is completely FOSS - project has a "Code of Conduct"