From 829c69f55a044ba4794c807a62036093d5a482e3 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Fri, 8 May 2026 21:27:47 +0200 Subject: [PATCH 001/180] 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 002/180] 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 003/180] 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 004/180] 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 005/180] 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 006/180] 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 007/180] 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 008/180] 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 009/180] =?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 010/180] 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 011/180] 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 012/180] 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 013/180] 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 014/180] 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 015/180] 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 016/180] 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 017/180] 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 018/180] 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 019/180] 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 020/180] 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 021/180] 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 022/180] 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 023/180] 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 024/180] 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 025/180] 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 026/180] 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 027/180] 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 028/180] 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 029/180] 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 030/180] 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 031/180] 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 032/180] 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 033/180] 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 034/180] 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 035/180] 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 036/180] 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 037/180] 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 038/180] 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 039/180] 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 040/180] 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 041/180] 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 042/180] 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 043/180] 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 044/180] 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 045/180] 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 046/180] 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 047/180] 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 048/180] 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 049/180] 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 050/180] 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 051/180] 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 052/180] 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 053/180] 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 054/180] 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 055/180] 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 056/180] 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 057/180] 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 058/180] 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 059/180] 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 060/180] 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 061/180] 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 062/180] 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 063/180] 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 064/180] 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 065/180] 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 066/180] 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 067/180] 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 068/180] 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 069/180] 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 070/180] 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 071/180] 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 072/180] 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 073/180] 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 074/180] 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 075/180] 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 z_{0Ulq&Fgh)tG8_EmuOcb#yW_ERotrHoC=lCbis-Wh0f)*fTq3J{n(5(^GVf4fnz% ze@B1cSattqaZb1yBIkm99En%8_vFF8$d9Q8p2F&vFE7)k`BRxc*~5AQ9M78&pBcn7Mw$7CK{TH72V0r7tj3PSwJV{q*4!<^qzaf}(?vDM8ZF}r*d*RlJA1D)tM9OmFTX={vbwHGk;37E7!hkb!|=?6>Hinu)l zWX9V=k>Bm~iq=9^hOTA@rrh&Pd62UT{zFDJO&Bt2S}x7a_KJtVB{vpa<7U20EArWp zWsN2WOv9|>SkNVw*EuW9(g}1$2AKh*`3+*#|afV zd`NL16E!+~T8iqns+ImkX?@@5VIu`Pv3|T#-%}>X3pF#Qg>D^C3c<06*)^r>SI`U< zagT<@ry5q!yg^ReC816C^ZrFru=@l&eKRuNVcvJ7OcvG1Q)V)pvYciXn!@_ohRe5* z3JVUVtAa)-dCAS*CA^^zh)X1ujw(zVqPiq(|4KgmJ^S)GYT zu3{S}I5$O_1pAA$BfIhpOxA5fs}rf+(lAx})6{A3d&*p*Ml<(csf=vZj+sN3jj1V0 z0yoP3XB>sax}~l6c@;TIAyyB1Dl7-4#)sju_pbOE+w^~`Y`!NZB?dcA#^7C6MVWUd zOb{j9%4>XRAr3#}Jym*DCVHIT-DAfdCSWv*f|b9u+N3Hg&rMzKQ;jY^8y|FM&X0t` z(dMG1PVnX2>(ar`JF4~?!`i@Z8JOiN9~ZXv;?hl=L}tD!t;CLC2v120d2PTXmi}Zk z>!rSqO=Q0mB5F5zks4-Gw;2jspeB}oTz&5|EjQ`tqxLA|7124Za4L6+1%ifeRSHd&w;gzD3h{=6zvm$~{MrlV*28 z6+v4vV;jSn{Ku<=X2za@M4mpgDDEThblm@uCQtax+okO_ii`P^NwhcUsCTZ?i0D7@1mhXUwxaeS5s6HnUoLuR#HUuY%0ZKEn^*+EtAM@I!^^)6Pz{XZ2H zymy>DsTa(u7}=cgMqr4Q#(?=0b08*Kv}ET8c3&q?N~mV!`*&+*qWeXPjZ4^Zl)SF5 z@5~kU3Hk>W$4}RxkoD1fH*FLgK~+^AC0C!Gp}YR@wO{1Ry_B8Eq-PzhOz?2rL0LPF zDE^Uj8*@Chzc1Zm3p$;BEG@xq*_Z51V3_@rQX|pBw(k!=yLWk&_u@Pb;uxM5YEk8P z6iN+V>eJrLU)Vo!sE>B7Q32P!v8^q!SyzHvza*6IgU^5w?V@hy4>U)b58uPrCnE*r zFS*lEq+5oX%?Mr^q0|IRuVPqkj!>g!8^!jBs*b!dDe_5z_Xsv$mMOvI1?4~=qol8| zpLC(gq0;6qxY4tET%$I{GC~Rx&h<3hb8ltuw}PF1@*LPgyu}{uZho~9aoQ5yiWWi0 zqPET*bQJs6*^wgF3(E?^JK3TL?rSecVpTc>qKt$j20W*2bxw;q$Vw(<45Fh6?S!I7 z_SvFbrZeuRFs~du8>=_Ic(x)}ao-$m*|9Q9)I4p-s0tnrvg;qs_^p!n|Nt;@gX}SM^cBbIrpM_3Iy8e{5|9mRj&MxAL>E z7%bJNp?$C4XzYoKupdn)GTr!OR6%(D_4veMkL-`_HE*pg^@QecP-Vzfn`HF6o?S%B zvCh2hw53!l}OK{J!eq+g#J*Q;=xHK=%W@Z+iv z@ygD5ug@?OnFyvakNeXM7k}F!oniI7Np&OnlB9~tBY39LS-BL(x5S!5~m1 z^FQ`>oIa}4M`0R-1bwmWNg}WSFS|k52l&6n)o1i_^@GAaA38reSIrV)NW0a_@lof8 z$ZIm~P$p1au3?nKj8z@6TxdU9A;*Uox-ll5DQ_0mXRe?o=G!=KNqhg8@?hS%0BhYB zh2h`z%$C>M*5$^q27MBnGYog>J?@r1n|um;UnRc8_@+^)ZsdKTrT@d#S4P#jEz1TA z?(V@If(3^J4;tJd1b4TEyL*7(9^BpC-2*J#-QDh&efB-?j`x?b1`K-D?AhH_)zc3P z?H50fOVruB3ZME~KQSY{p1|-!79_ zm1vVQWl`Jn^v-W@-;-YMiM`&JJ)Pf~;vaPcsIlnTzjQ|uE_^udcWSf)RIguL@2y@F zLP-R~I$&W7sMjQUnrtZfe^ac*-bV)T4o4HU!PiTwZv8oP8f9?((jKWh(7M~t9!(-h zdG<>EAlKdT(e-@YcV$z7={jO+3!ma9BE=0-0YcTa#}sT9WrFodXYM&-nyq)5u*_tX z{y!PpJwC%nZKW+gX)e)O$^d!27Ail zIwa%16-l>(Y;NsX_?kofAU;4w?Zu_ZDB67)aP9u>8^W&^+iYbgtThM9Vpb@g#}`Dl zFM4g_Ooh5NpYr5cY^D;`cVajen;Zx&7i-a@NCctjBs*{x2G}K+)XEi!hZ8D3QwP`B zK?kWnCG>7lj#&wVPFLD6oh{c8-kv?X&2_RUNe60;7tXjLZpChoztyTM&?+~=$#Y=5HwPHt& z@vsS2J*tI`jSbtw%y=R*&)sV?>sXw(*4bd8O!2WPNw-R9S`x zY~ND8XMUngPuUF@^uL1PDqr)d5nXk$T$6z-hpKMv2r=Hb?U4j4c;m3>ViYTvz>C3k z6-Z?EbLmNTT-{kl*X{_&rqq6`aV8FtUpkepx2t4)xBY~^X%)e^9YyV#yp_Yc%*&HO z0pIMg_+!9y%0lxB`r#7WM_4Q@ERn(y3YUmd_K?CcJX{3h>rROC%C|cw*Up;3&8=zXYY`2}StU2IrAQ2tp>3(ZJWq%#9b!A_n&>ogV z`_-_V8H=i;D(ffRjvze)@ejxKPC@QQZx$l*W_Tk7TD&5YN4%ia>H?1y3yGZc|g~2{9e}~%@D!U7f4p&)|w!3?9Od6o-1hct3=Sa zDY(kod|RhjR_YW#kZ*oUQoumfjf=pAF>|P;>0X6k%Y`q8AP^49>nHHMa<}O zI@LrlMs)H;db(FPZH`}a_6UD8q9ud7MM=YWo?W~hHmF75 z5p=3xrB~gqR{tnqRQ$8j9oPYkjYeMl02y%ov_K{OeT4sQD_%iB(DM?{_?4A7 zkx4`JGLp2QpM9}?5T&l8XhgQva4;s8p7}>InJ%A;WpKxQg)innbSPCkvCSs|rC;g? z$`u-j!$}p;bV~Vgk?|$)Q<}!OWTgvb8ZZmxI!>H?a}&`deCXy2MFo#;*{}mqugJ!+ zYn9*_J{OYxrCeMm#W>OS5BxC+hk?cqXBk;)$Dfnj6wX@CHWp$H zjD9C39luLHx0!2Y-TO4N=z^(fUuQl;lJd!7NTYj*;fqFbNQnDKr%Pz{7EnIc?CyuAVH#2Sw$ppYa+kDCtA$Pc%GVjS4hGu4OthL4$J9@OLEq;`R8o zmR1G(UqX9tj^^T?J$G2X!HGww7J|@^<=dLO%1`(>l5s^K+w2pHw<`$nYkpFB`rmiI zgNMUf>lWjri6RXYL)^79kjU=C0UhFJzvrGgGgVejU`#90t|Rc!sjeLfZx1+J#|v&u z=Y2qJu(e~thi!NL;w~*ZfHCI8#3BD32Rd!2C6OC1v}Fn;F0GxuV`U7q5(5;78e@GG zyiWolE4Y-!eHb;aLGMI-$U4!!!?|KW8j}@Ut>HJ%&c_$lGx6OexvdwpLxuDiz%QGQ zjZcx=FZ~RybcEMIv}dA^P>mwybMZ&OW@s^lIW%9HYz95fhT5KYda2c1?(bbt5U#1D zIumbr>+NvXmNgdI-<1=8yt*@!D~qWsEQ}T9Y(77pZo^eBRTfKH8^in|%cuWrs@`Vr zmZm;v;oO!(rNDHfC9LK?rdjJ(f5MB-zyi*ddGa~crHLSgS`Nj1$Ieu{8!MI`G4Eux z?Bdt@aCtQqL}IrbWTr&ZH9tnU@|s>LI7Ut%QJDBT)X1k0+1wyfP(ImifLj8*>5K!v zb~4w-Zh3E!elD9(C0YF=b2f!hH|J#Wi&?^HY?+bm2C?R2xP}J9n9|5~$jY4%hu^#v z-{<1>?@Zxwql69N8XvuxN1q&UM8yT;Wk#&opz$D)ApVJE77>KFGQ&WGKo=0ykHF7K z{N7O%AGAu+g_|=%(0taaH%Alz-DU5#YknQ$D%C@LdAfxxEogzEjN^4WK-pnXo(?pP zU-oh|;5C|d{nKF+4VI9JW%hc${}$e8D(XkDBGaP9?R88$`s-7&gHVauN(6av>L(i* z&qriOGd4{o@gx?V0KFjOoK4@)R>XN32B1E_D0Cp=DH+^G&BpUDif6=U*(1O(CZXP@?XDqvpmWh+%fk%!fweApecYdM@aC+hCvNsxs z&EitkQdor<#vD-nPwo%=&eOFjY`Ikhe+-7r32{2#4&C~Gkpq(^@illkNY5VH$)7YE znXK^UT7A28qmk<#L-=|NQbAmuPb7TBe}e#C^r-6)5KMd!s+!b*Lw=sf+D4?SUcW>`EkqXTd&- zJ@{AbNB3Q%{AlyUj00?U(;MIuur`H{oh{)noML&503Bft7qa63X3Zb^!I-1PY*rRG+a(&-J)JpRlDI~ z%4zj6;2rs?u=wye}a#DG%7wn zTD{d`o>{^TWwBl6h*`(Pd$4$?PIsa#VHWAdA0M1g;_rW}{m8ALQAp>s`1I>$53)z6 z`I0s(Uwh!TY~#;VkH=35VvG65_wP}OA-oJ(wY3qVNd^48JV69Ynbm@_+CPBrItqE! zPA!LE09snD6h_m4LoL+2Hs^Gz1eL>jsk^L|>T8FN4^?mV>cHapvQ*&NHvaM^Q1cBDXYwo_~)UfTd0v083+{zW+u{Cj6fR2qMc_8W_Oc zWzsgke{G9mig3HZ0L8TJMQFaP=4nXpuM`MT%BB6OGPm|_GwtHHhCJ#CMzz*c)5MlZ z=S7xD7MwZRR{#3+36s1|h)n#)j~_qzsrkxuMV&r>{!psffIeL?@u9^UMAh5JGDg7V zQy`zYuac+3BUACGOTTS09C(r=4^M^$kro`uAy%EO7R?MM8B+bmzYe|P;c^USl4~%; zSd{nRUHtv!tn-n>tQTK_DKeT5V~$P{y6f;J^&M{Y6hb-LT;olDUQvfge?)d|aju2n z-gt&DGx0Jc^XVMl`sxZMjeKy$@RkN*Cmx{Bx7P?W~JZJoUO2CjjYZy5%hFHJvo)>W_k&UgsWOPGQ~UV^VQn~ zlIZX??|7}%E~hXp<9>8sCGQM6NItS;+*N-DJ2ng>JBJWN`#1mJ0%#;CM2VU%F#-?#|Feaz8>!``ur5_KwIUdeV?AQ@(#zJRaADpbgaY^97x(1Zp1gZ{8k zY_yyan(F*ye#m85ytUFi^h;+(#-N3!DKUAzC|K5zL{L_7o-Iq&pR8VtMkDdkx@EV= zIQ*jg#%s^`;b8w1;?BiV_V)dJj}`R{!+8D|iyVTXgB!vID7nfOhenSBau2lz<21eR zSZdck7#hGe$#YGk1#3#Io=J_WFRm=TwQVh0hjWIA{!K(#tw_~>S&4@kB!dAuY8)(b z8u=YiDoE~_YEIN_{T9!NgbXJm$Eiob)?@SIXQq`F7oh?_L;Qb}iyZ-wb_Wg?2IwdL zjY9bc03T|TPtT=H3h8^^dR><)N1MIvKctfw1IUE#-oR+cFMrd1N?O>Aff;ojBB$Imk>kw6+_-kvDA585VSU51OcSSFeiE0fJ9Lzpvd@Bb@Yz% z=2B6KvnQiVpi8YnGh5?9ree@vRXT^@j&!Bc$RuqF`_Eb(*}Pq0!9k)UTvDT zz+8gctav1$0&XU>#YTQkUQ(6ozMWaS+4T!gj9doX*iZcV(&cRh zO3t-yKw~IU(=TKyb$Mk}Me%PL30&MT0D|0yQw>l4Q~w}A^!+_YtcHH5=KxCce7^f) zQA{D*kC|gb(EKokb-Z~QsmL`mIZ}NXdomnbunvDIIZPGWS+%p9{A)PGLV8Pa5F#i`te=q7iyeh2!MN#%YC<+(L;XO-Q z)L$<5j1lyF&zpSsYsBxtyE{bRzbG+8RmL=7EA%v%*!OU;4AT-^xys5br$d2X?bt^! zn0z$Ctzx4_AAW|kmR|COA?I=3*R#_2WtaO%>T0qJ%257X+$XWL7IKDRIA%7iP`ASx zIf7V7L&FG6>4doXNNU7h9-u39<3Ddz=ahfOtj?%W`z{EDhS()19V#2Yi;hZJ;4A?ARdvIQlXnn7OPyRr~%hvmo63S>pP_X z^4kiHC@n?G>ojBNXrY3KL7-MHx&-2DK}y|G@7!TY`JD|#P*Ww>vmbi zKILzB$3h7A88-;ruxK}%Jgweu5Q@++2Z!Uh4O4{@rDx0-KSXG`<6V|b)H994gPt8+ zD2ihzdu(nRY}ROXueXQXmG4d$vHK%ZDc}0&W$1znGuUld*SY&-HufMqzxP#BF>^Ip zJ;_bxs*xsLg)-nXYBj^XM?K!FpK}tMm^8&ojn4DUx#W-N)fsXXcN@ve{HVE_Z&7ff z!w%3PIuG26T4q=iIzEL_uwGuTXn1&rFSM=hchq*s_nQ2;VJ;X{QlkkcTd7F4xW#G} zIe$d~Skh?Y^!nYRG4v{$=a-kh(C`?xq38Y|=nr}L-7Y`hlNDF(_7amtkO~Rj!{)tv zGxP=Xc;&6Nx&_iVZzd;W{^ij3@u|;Fg8|lz6D2_Dw+xh^pqI}JVGximV%txs_&r=v z1-+g-`^+9P4LVXr*H9BHG;@t&?bvK6k78Z-#Hz6NmDQ^x{0>ALb#lQgG?sK zA#f?OM&t$VG*)ZeX=*K2(q_3%Z%Tj>8M4DJb6jK{4V7rp-5h_I6S#x{R1Zc+r zGvT^K6KyWj0)uNpTkBVTh1c1iCPK%9c_sENJJcy)PSiO?5xhRQ;qP;5rLgP90te6} zfsO~$BK?yxG3+KJ_v8{Nv}*1A_!CsqrE<#+R=(rJOX^o@KbXhKwobWjA! zy7(qK7VB7s;q6o|R>O$9U#Xd!Yjv|z@c?geV&3Fq^k@Bx?fp6W)PtnRjl9|kDl}KqnniEvl&}D%k}Mv#rb1heYupalZd@yeWsqz%J5DSOYWf0 zCbb^6Y!r8BCbJGT9|nZlFhwPvZmX;KpgmYEAmd1o+2ArW*-k#@1DVFp&v52%So3`l zA&4m3L5hBks32%!)`jjJnobiBpg(77OLwIS&pH zcLd^ok1)yFF0*It?Se79vYNE&g=oqpx{(nVaTW^L78wF9PQF)rEd51xlyMJ)4X2Q4 z+%xR_ZqL6MhY|f#^|=Q91_xrI8b?u)kpm;}*?prc+TDpySDT=g8mzL59~uYN|G+Ep zT#Bo_r*rIyVS?hBi5f=sy)5ze<9`fiqdJutapZtvUFW)e_K_qL{Gbbds8XV9>vS^^Y`VCyR@AD zy9;3aC2atPz-VY}iw>V5C{Uw6648$t3AewgEx z$%#9hSd#VV#)G<V4<2Dstc|Ud})C)dUdk2%uW3f+OeI zjr-DrS{+0=z2J;Te?=nsFqQZ-F?`aC?~1~`OI=7Q6!+t$rTz8ODB0tSw6P`8{D|Fm zS_ybMSxkaQm_0>!re%Pb6}v@s8$u?6gn9r$@OwSK%MkP|A06ze$w-vo_TcTdmPOn2B*G?%H^*ondJ{B6T7O$6&e_t$5bE*1^8rAqFx ziocyly-zKzqZL}~krf{WoDR`8b1Es7 zsREqJ!A(}Axz4Zaub%sp^~4glTfz~IAESnw?6vQ9T;9)Y0 z#1I9KCDLjT@H!t3Yg~Ta`Ff-~;9T~7FUl&cT3WIcfj!VTIHS#7WbtwbOQ1yT$FsmX zqz}-Dcjrs*g<8Y!IZE|UejAKo{V5}9JZVL~Q196==m!nfd^gZ+4k>3`uKt4id{)wG zPU7+y!QQs{%eO3}tG!I7$$m1=3~}r*_^b+)U~f2eZ2?EUS}}=;`JU&ccuJJB{R;Mu zLQ=>(*p=ynx9BH5aS4a;pvno6g?ShRENB~HnFIXOc-{nN1$EU}aZj%7<+q3M#G&Hc zIMGJhGN%!0FgXj)#3Dcq^LMG~VFw7lzcFL8UpFbkCrkgh$MqD|Z zY>VG(yP~7}we1Odj{+8j>!ReBTd0{NjjbgMP$MO})jc_y>NN8k`n$z9{MN`m!OaOd_Ja0)^V`KgpvZ3wypLIi1bTd<#De z#~sH^CWKum*QGIV)|;}UlzXPoUuhMy_zbBe-woF8rrCGva^6Kj>`ee|3Cw~QJA_+R-a0;M?zKocuZ9Hq3N zK8;4hz`Ah`Iom2ls_Bklc#n>-E3yV_ow_H%&o?iDD2eCp|~AHJbp`B!(q#03e{Ojn$XPnz{UKpYfq;qd~zLxoNsbU6WnI@ zrOSX=@6#IzA{#xr_@?zii#^^a7UR6u@B@4SSJb~XvcRuYR68f4BISq4xI1~AxqUyL zkmalQE3*3MR8PuBV#-_5STqMypcGUP`dlO1+?r5KjeVoniq|H;nWD`m0tPHC4x&sg zNaTo16M}|%G_0kefyJaR%DTig{3Dn`8#VC%2fu+tWPqppox=(Y3fg4zPgL%qD2C_z zwz)|ySkOrpe%_->Tc|ma8l!F_nzQxVSJeg~1^$gVHWm8)`8KY-L}Xa7=6kSvnQ37Cqrdd@ZVUQDGt-Um1RXDv z>(4lsBA95PcM3T3Hl++JD&blM`l+pf2w#6#6nl*#Vu{VhdyAD;Rp3YaHuHhYN zBivXzCFk)Kk3DN0_#st|TZdYV&F!l^cmw^nb^+}~ss32gp`{d=?RlCrJye(EU=$J` z99cqoYu>|zbaxcHr*Q_aKSNOVz%jrXzaDj2V2tuwvm3=jz2_cW=FAZ=vjb<0f{w*jYqV&_nTl(q@NZT)+)ssRHHsr@4(XaF zv}%St2a{X3_6opq9yDOQRVi^>U({c`6$MKZ1Hb z7B2( zP1~o^@U6srdC~8y&JP-gnwe#tGO@a|2P>4KNui703;!D4x3ZyM=ET z0NFqPI%57k$hbd!$o)qaYt+v-hMK%QsT`S6p)IXXwihO9jX zLlSfQE{;^su!{`LZebsWS`$`}O9IS`R<)qlZTayk5bOJ7cwl6Z@({mhniCSP^ysX9|Z z&U(M+M-{_alFw9oG`tsFzAA;yvVZL|TCf)lP;q_--lH2VMZ`OY*aMI|`^lDiXcl?d zA|c_Y?*;~Rnn^wxqNQ=)HspAzjD*?^^r!K7BJkE)z?;gRn0HnU#prjKo7Xh}WCEVx zwTX(#+*Zp$@6Z)6O3+hz2_OOLVI1Y6Z`AXG`NC!o+&q_222Du#>=?qPkaK~0z4P^97s|>`^*|SsWj~wk8D#i2U22Ezq zR0+A-IZJ?vs0`WiF1x=Cr)omQuLVEUoD$?sEC{Vyu3ijkL4M8Wi=wb=t#p4wKN2<& zBrc<1w(ho4zdcz&Ht%N_zWIE#Gk5gKtU7)AFJt{!R}vV89ii2rk9Z+?k-sib7t2jT z#B2J2QLkRz3deb3aWjf!A_(OTyZx!%SBF52#deC-+N7KC==|Yes^W)6?G2KicaucZ z3;iMQr#EI?mA!+AUgCzoYUFhn%0$ODeW} zv>DTJF3h2SsS1qx@WtQ#neN^u{(MwM{3Ew~O_(yf8mN^34A;`dhlGVl1s$S(KeeBXuXHk{A%kkoXswMYwd?u5^odLBdQ zYgh3jN!;uUd@Sgo+o(Dv;gq{tDd}{w$pUrG$>H|I4f5!^FYB8je$tXtijw1NNK%%h> zYuhlc<1?9h^N+~1ys&8*A|V1}nbe$p{G#5d#$2`3osxOXq;t1?5+x6L)6z1hj$yU9 z`izaM1PA4%is}a!o=xd1xQA$M9D zUXK3Q^5GAH72>P1vdUW-0m*DT>y-^UbzuyuA|f?*C1C5-R$;KR;X5!EKlLtlK(JoH zMY-tJq=gT;D#QRplR7Wc<{aF|G7umUq&}<44;%u7YIWqrCNk*=sa#e;wAC(py#;Mg zwv#_M;tNpH9D5<$0XaK&7ckZKC{38FqMEP6(_IC)wOF_!jkdVC>WJT7725d(G8wnQ z7T+cL%N*GVYlhRP7%Ug9?SvR(>o&FQb!wW6*J$Klh-0v_@d>z|Nysxb>K*MGU|2&I zGF~JgR)#Imn_Ujz)GD+WEQuCtT=Yz5%5!m4Xy)zRvsJG8<*w?TXy${^<~W@`6t4j@ zHp#@}#Wtl%uW|rwm6;8;@J<$_%V9ZvRxhAB%UsHd$a#jS1f^mV(A^1CzSN9U>SC_6 z+7Ba;uycpz-SXr4(O^}SY&OVqfBnmSleeBQ^-{}0zQUl-7ZHfN*Lm`+1n+kKMU~hi zO>eGji&v=Nx8F<0Rk_~&8s0KV=>>{zEb4_H78e|U9Y3d2fvcJtuyzAHRzAtV<{rq z!I-Omp&$R!=J^!FpvQD-OkQkv?6>NX6GB6y>HB6aob$-aYQ8AndJYXuU69bmNm^Ul z2jdESUzPn$Y#CL?KOER>&p(=i^O|HMjtV5paR*Zgf9ST^r!3xooyh_rKWvc};KxC$ zRXj`MXsK+Ja_rIX6=DZ6oJf5)dkO{G$Dw~2`4?vEG#*PT8e*ouAyVU7~&CvCKay)YU`*SR9GoPp5h zba?Cht+YOAFow%so{K$0XTunr0OV5nRi1}NL7C2hc1*b_10^Mg6-|qOAIvV z%?Uc~jxb5HD43*-1f0OQEazcB{N8l|+kl zcP247JYw3mss1$|M6JOlB%CppU92`=uG@1W@^HQ(P!1Y@oLgF(o%>nnMS}lTyRM$b zeJIF6SlQjptxGSp9&=$jJF3EexDLaumg(Ek*>B6mcArQsmqna|%ZExbDE*7>hw3W@ z`m>9z0soy6HKk>_&26E#&UIg*5dsM>oodSKgEe{Q<)4(`dLwqngIOGmUio+UA|31C zsV$Ot$(+k_>`Wo=_oyV2cle4%%_5oo3l(xJq~EuHvHtg(Z}WP=*!#VT4IUF#mJkK| zYtGSkBUan6jdgl+ktyh8eS^Sbk1Ed>&|6>%$T}65bY5ORbnXAd!aoq|UW+vTVni~a z#jL|+GmVBq%KIT%;@da0#l&@Jm865l1`CnPGUqT?+Z_B}+q0Q76Vs_; zx0-m3vL}`H%m2diW~HT}b9Zg$14DYhDcDXytJU?wDAJ^oies-Y;-^bh1Nm>0-szG^ zE(X9jrsO~_Vn9@+dTW`f^bbU>Rz7Dr5jM|XULk&92%G^_zDd2H$M?ZDhqDLo)HXey z?|mCTwwZ?W+&Hwor~QH5KpexKqlrZIcmev0&|CKzsJlP;nm=Y~Evs68_OlDb`|V#v zi)QM*D+@VHX7>t4_I?p7l_9Y!Id_vMCKY;xZEQwX%ci+P4Vdjp#J1r+xC=T~DKi2J zSAd-kZT`D%k~6TrHTPy~TmY7H(E+)vD;#^=M9td-*BzCF!XUVIJZ`A{jhFg;aqP=T zT5O<45XUv2rsfA$aRzXsU3%m9+D1u7t{l+ypU`hDasryNb-Vu7MI9wdsp>Az1rOX9 zOiH$0K{)#R>kyTOQ;wCTx9Fr;S3=#$NiuPWi+MFWsQc4k!~1C;eLGxV>FVar0Nqf`=>yqL>nc>6d47D zY(qR4y|pbm~eWomZ&S#z0&vGvAIp zsj&V;%}rjqeBJte4gqcznFeV4{0l+FFf;0F3;d1ynV@GDeXPO~LrS0{k z!kSEI-!DlBJq2u|b&9EihTIipX`FX9%dr(sOcjXZm@)5NpD?7G`3!Ha*~>u?5Omz~ z7_Po0fmP8{Z0DEdR0@&qbZX__Qe;X6t1QBBE(O>3$R+`$Qj5K*4%TR@bp2CjsYXo~ zHJjTPc1E36v>>EI7Cvc$N8&qZf!7HhNh!vA(?A^A)b8Bi=+5*IbFj_nc~v}`^ z%>U@jOtW9%GWqB9N&VT8J%SWKMk0NznK=f3so+*sjLc|qIiq%JyFB5l+W#gHa8q7CJAQi3KDN-sG%g4{ z-r+Ca#KxZkLc4D@<}i!PrG>F~h5H2oqc=%P#06%;)5hcm{ZFchl&o$NGoC(^=3Wd`ztlUQwWWJS`9D!=1=lXcfubeH&(Ni)b^L!aO*aS z8d9d4^>!HK{tLcjvATc27wKMasb`PaMNX0V4kU^}II(_)3N_}&3e=a!Ws(Q@RVK5& zsn|d{Sj1zO%^Ial;Sx1b80(^hIcK^N#Nf-C9w!qj&jAes_^Yu%^>{rlhSnEIaz({G5+;iU{)LBL>%<4>y{CK(?E z882_x)$GNk3P)88at*?d%k82NhV$>IDS8*iZAD%1EPvgiAh|}s3TfBGXPx3 zzHLsFbEm-LFOy~j*{dtHYVBTH%pHb=SDHxOn zRB~lJ3#DsFjfK9>jjkI+vqdUnX7#68YD5f0suPp*3|pafTNu^9Utxz27O(@`d3?=X4E$`7myj%xK2~Kz~(4IQ3-6%B{3HY;7thBm;wErMIl&k5M zG^*S+CX?*&IVT`AEs7#Mi56yyTJBp+O>5r%V!ldvqV4S{yktDDKC;CorLy>0K`C3SRPLTz2C9!e_NWy51lGtf%HPJt6gL)hM!4{SYf+*q;nK+ zD_ALX6f((j-Ys}PrJq*;4~Ae+2OHol}@5 zg>laXa<8)e%S)DA6oKwhX-(f>#CKluv5|r?wLL-u_&UxdqP?(7K5I>Ib4XuK?|Z2f z+JiQj0h{s#NPOhMCD$&AFJtP5?kHfGbl+11i67&0{?o}knM9`pJ@?#T`WCzS_R6fN z)3fVED3z2oiiG3S$=240?C?sv=NRwz&Qzc$+L5#*ur4FgOWCT!=am}xbhQBV+}?mw z5#QG2l0-}D8V|3Zc@CpzTSp6#vZ>KROc}sHAey5V+y-WkEJr^@0IVGEqNZ$tO!9k3 zD1XOARmcnA2A0lg{+fICS4dj5z96-lRHlviaETkCl2L+QXQ3Q4lC*7g!)kI$e&4KY zrWRf+NGf*whe30n0oZig#yP$S&-9{u_P3WPv>OkL_k8;kn|nS|sc$W&>~gvU1*oi< zTafKB%eC8ya7I%Lj<_)f3Y31!2NUr)443^rb_7&I@4+-WjDMQv4yVf)luKo7eEqGG zH#QowHS?>}s4}fuCwXKA{5znY1tw7%S@gSFn>MhkFp?1d;_#^89~=gw68q@|A;AEo z77nunIxaZ1*)`T9hM6*cSCn%T5S$Y3bH$J}b#^SjdV(M|o#>E39$Z$-O{k`4xX~{b zJ*0<2_AceBs|i2o5;HQrZ9hdF|7l|2FrAfTB%HfAnlBCHsWC>!K--gi4jC2lh0VMT z8j!Iglb~~@`k`^sGcDHUYcH_sl3DL zNrj-%omZjF;7N6Vww*JwQOKqBUXcLm-f9;;kmF{$`<~z)NlDr z2`+jTziET-J;TwnAKQVpat%AiSmwsl<2mt45%Z~67*d_o zeq%c|MP+@u4^bNhbX}s3W+jlD_W+oFg`MUQ0edlP)B-z@S;V)PUHEhR0A<1@^X)ib zm#*3aven-Nn4MNQi6=pyz>|Ib4=g$TLP*tH`=CKp2&f(X=!pEC`#}gRn))e#%h5h@ z;aPww%6Ol)&sK?|^M@NiaV)-aJB-G=8b2A zgVZs}b8{A^lcKCr|3!0uE;oGh*mVDHyO;QuY!fGy6ql|%pa<%&_R%;pwGmsP&0~(2 z4PLi1`**n>%JBlJTqbYX5jPtpB}J{}3Jw9M^)U#F$lkUd(4TAu(o&EOvzpck(eDcU zJJ{iOA}~En1~*-GrgVJbV^Wg!1E?QNmk|k3QYV_foeU>PoS}^zSm*{Qy{atXpZT+* znK2{oQNnPTkgsrA>^+E?^`ifGa^-P-Z=KTe9UhBCLD6m{O#toTm`>v}C*G&$x^WFf zkv;ft9Z&a^HS-EGs|9bYO7XzGUy#n@nZob}EF3UQ10`sw52?}8EebRB6fn(_lXvrs z*t}*iNGzQ?Jv4J4&D=Yxl*|Q%_7WnEefX!+tMX8@yK~HGHffNnw1d*Yn7wVgT9XBO zZNOxuUEffcChaDl!;@iGdaTJ-KP1-AT`LSahf4h7_;Q9jle*fqmftBro);0reT^R%wICoLiEyrG=tLfi3DrZUVVLIb}o` z+5)~niW{y4Iuc;rz}>0L1e`!F_4r@qNrPlW$(AIi{oZ{9Fl`i2NDn#|I+3`|?Dt{t zy`Y%<&w2qi{eRXAATIo~ULZ9;7YkA@@*Uz1@H_r9C`V~~A9S0qS^gh@S&!2GX>ljL ztDYk0ueO5LK)#_{Coe43aEN^YZHjEOSL;pWx<50GMYXm9sZsi*tvI1otyCH2_xLX{ z;+n)U?*RWNrZahZ2d2SNK;+$BUp5TSrupc35XKn;47G}k8Jg8PtOXjM&v;x#ykJ4^ zbytanp5-%JkaSlCl}r4doL|pRTnyLB;B*FJ8z(%ArgwmM+CZx3{2%v0Bs2z=_04{aoivsnu168fzf*^#(o;g@f&8TcDphMyUR2%z5&LL zrbh`&b0s}HBYToJc~2^3A?6w1(Pr4A8k<0ojTID6FtE_?n^O{2t^i|L5dO^XKYc?@ zlfd{pNl&5&Ab?_&h*ivhe)FA!@f$>NX!#RuWhV-|3d313{q{N9q06ipUS5A}$$WWW zo~|y6e2a4^b7Vm~WnBEP`Sl-0n2cW#J2Y#GJv17d!uT0U8;8!9Q7Vm9P1! zUaw7c?>SFY+&4m13?X<|q7DJz&M=3-2y4ZQ?@DfSI9&84igI9>vt)?1h(V(dgfkEs zc)7D%uNmqTFFHvy!M!V=%3m&B&))R8o)aB`-S`!LXIKrZIiLRYFu^-pd=8;FBjGBB z9c*`j#hjCaZJUk9jMtMT(P3W1r6XW4r1bg*ti}+on?-fWp1!Fn?2n7=)j4$)PjzE8 z*wNW91J;oUPZWl-|7|od?a8+exfLV9Jc7Bv@K9cPx!JGLHwWsMs)uGWBX+BgQywW`)arD#7cJD&21s9@N}&Kw^X-DyYf_X$lcb~{Ezpa zrk$Ga`IO{4r^_0-##Yr_lsY4+n}Jtd@ig6u@E9uf4m-QUuD{aVRR*t6X z2#>){i%cPhvqdwV?IHu%b9!={N;LA_SrAY|dDZP(gTTs)&!4IT$Ep(;I+uf)A4t&c zP=`HqM5`bE-9RzfrY6sZuA$3TmXgX~ikAp{E_icKB{l1d>KQWD5a?`m z+rL>(qHara36w7zZd_@z#@uoUe^UY^>wIafpr<}MIzG{QqNRiIGab(=Kk`MK_x9WWM`Pc|M2}( z_z{nozmoLv`gG{v?(OvnPG4V*`$)H)hr3=ZDeh|=g7!Tyb_(+{O6zO ztqcP`mt#s2KFGnbH$ilDoM<9IV!Q#S+FZXFOT`mb_MUgCa!@3tn6IFg-h~Yx@@lRX zIl__s{+GnA2OZvpt93WN1{k~BPVj-B#x?e*%V->r!DAY1i+6Uc+Na0KO}_cZ!KLt9 zUw+HzsRMh~H@HeYX`)ONVYP0R!zrI+ctO!s#$V)?>dv5b+^_2+?GHSj|5R1FZfG~) zN#HQNa*jSbWJsT&gIsS%lPkSWct!eS@AZZ3N4Wt3@~>}m+F>I}G{Jdw7>Cus;*j2) zX0D%1dgJ-k0VMTx9O%szbs0r~>GZF7yU;Xgb8^SF;xt|C%9aH<5wcEy@BMD~W{iI{ z%L?*)6Y=qAE@xjR&gP657QVDUKM?DMNH5rjnp3o=R*vdCp@=Nik}=mQ4E0PYDA)#| zNjBaLEV37DbU$3BVaF+4K^Ly&_s2dU;sk6^>__X{q5cUBNE3O9Qf+5tW!X4gNdIvAu zKQ5$lkp!aweO1rdjF5ZHB#6H!iNVqFx5=zmMb1Ea4Q_?vi+C!p8>CDsn?fOe@n(Rn zgiR_pDZbop;KO%5Qn%Mj2?-sP?rFbC657L{DS_@p0DP!=aK>b^Ue zHX`>-?W3Y77al-e%S(G|bUlySuW#AVKfhhs3;aHQsba5Jswaz0g!Fe^NL)f`?SI-O z#*)#SpLbhtX)tf^noqw0q{d&LSn-_2aQ8rIs4BA_1mf;kjYYe{)?iAVg-EKi)ybjo zR*u(-W^eIvB-xf^8l%Np72zUO%&H$eNjzvxIrwUC{4&W;!u##B@K1S4oVn}JL+Z%( zU;_zM#KiDe%_DrU*2DRQQd)kjDU~vq+v(EgexrpqM;&$ zz6O>nG#FK zM)d!X^_F2#wr$j?h;#`ENJy6=-7%oFO1E?=-NG=WG)Rkd2`Jqm14DO*Fm!hg&Cu+d z=Y5{<+sEEN`N45;bDh_^&RA=mipGa3S5F$!#0M?2DO!I8Jp^It3(-)y7_79Q#<@#! z;1Syf1jGQfrJyeZh`oJ>CO<8^Srv8+-s@6(MSE`C%!-Ls@+PXR99~e)xhMaJiQ;ld z>L-*cmAcpXXFI-!`+}~azpwP(2~}U%XaBZfWaDs-8&}pjwAKZXr}5ktx0~X)X`76~f*lTGq=5LNj>@1w-}(voVBu{>+Q&!QHk8~^ z9q3;1f)d5F_I_3&nI5hT2`feEpGEy%Pvy%(T4e`{5>>bs6Vu>@I%uaOyt+4CG$1cb zBQiGHiPt093Zrc+TaoFaf7&~oh||s=A_HhQze$WrXN(;)rMd*vvMRL;;P30N8n+SB z{PvR%yanqCoA*bA@9%@%lVLvl6oAmxNJy@@6yS)U0kwM2ceOC712far9)Z9&MfU-x z*;v2hm#+DIV7%4-nAqs{q*^;ydTr=e-KFfiN0~CKi^|J-9P@J zo=8SwtE2fqw7(;~-$@doy&DWnEp)Zj&*egm0Pj`u9vxDqxEX-|8n?KN{B=;oNbL=1pm}q`xVwG#Q8?@di;3Xk}7gjb=&`XyB?Vh)T5;GIYToBV1hD&PeC zYaW2wyX#=wod2V7;l1Uju49w`l|?uXaUzNm0Vdz5-;69gWAeO8pZeexz%(6PLgyxyQPnMF3eg6(M0$LXmbg zZ6U$`6mX=aNx>DmJ*N7!g>jeH?K5Y3k9zx|fFW63d+bCA{)?{+Aq0=>!zby>#TCg5 zov-)+l~R1ohxJY#|;|FK(?}%RZ$}jO@=* zg0rOq;_lzX6|jF*Z7ol^upSR&&oFYP@c$<*H3gJ!J5x#dVcZO=B_zW6=)Pc|jk#&w zL%Vbed(}=?%0H4r`gH{p>lYOaBTza6HaUKhhC_$vPJ<~bgE`s5uXVWyf(cyh@p8~q z8}0g;xBeESTh5=>kHVCFE#bMKvlVQz9tL?sZa_t9UFQ)*2>Vi}vAOAp;(J6(YwZ%?qNZk3Mb|4|YD#0J!lMgEbX zj(_E|8DIZVpUdzP!J(5#zjog-l#u|JI;UF-jS}feyKG(Pp9Aqn$dHsHop&=N+(6lnt*d(2FJ9zZj$v+S^Y|A@hd(yYW&Uo0#Xit)g(UGFDt2bj_Z zfYN>J$6MAsWi#m-zTD3Yh2TA5Omd!32RL11!lA*Jk5Q%lAkfl;?nU|_fN=A$FJA{! z1>{*w!T;J1e5ErcdeBaPCmT%pPdi-!i2Ph_6~;S~V)O9<)##u7xjb|Zbx?pg)puva z(`s6mSjXplKg*T}XQ8fS=KberaE~6QWk7G2r zU(Fu4KJ@SL;raKjAxxb9em z_#mO`Ht=>)JjmnuC{?{TZb;;J)|v3WwZWXv-)krR)?@CjAdbocZmcoz7nIv>({D@f zar__IuEN7-DjsKl=_u?RvvqF*wqQ z8hpEB&sxy{gaRb*X4V4PGjYCVe;sDdV7@~}kC~b{wmoF2Gf)`{K{ses8{Gf1Wcf-D zL}m#lM?%uS5_d5y;DU}pQi0QR%J#bLvitJrbV+}W=)K1q$CWjR{KkQDP5!^5!2FE@ z<|=>&*_sHs%iB;LwQxI_LD`?Je%d&^IO3mA4LT-E;@u@^!fcPyESd}qi^~JjOrSRe zNUEDFjz4)Ykuv%dI-g-P6rwFx$#!XGQ&2AL?)KNM1GKD^8j#cF+C)j}SI>AuAzvjo zUO>%H`HCa!Um!|}%ohiyxQ7IoG3YYO^Or6b?Pbllnim>#AH?^O(<)h}>ric{ben-t z>vR;0&i_7F??GT(>jNrw{uhgXG6Bb!8&FCfwu4K~(-sB7*nYItTK8~>UyTo1&0?4p zbqi%~YwYn(5!3MxfjV1*MCKtrRL@RdVR_w;zNQ6Vwiun)r`X7E|SmjY26wH<%T^Y$WklUeVy0|$L6OZ;n zceU0I06a~4UL~AaRT@_^e;>=^&Yr9D_L7>L=ZX1s1dW6nU|Hu=xV1|6-Mf&B6}X1@dPOkg?UQG95StN#IqC_v@r=2qGry5h@wI?WXG&&T3d>W~3ID`-EDHeKmWh=ZX`|G>NjUKCfR zaG|5UnB`_kz^-6b+90x+k)beBIy3%1vkpWsa8Kv=Bg?NI%!PnM{%ZdZ9E}434X_@T zPwS>iJ-2Chg#S5W%cDMi$|b;s>9_9qLv;_U=P%eO;Hv`Wh;5y0ChuunQhX3;AGwYv zO_av0-fF=5r4hpcA??wMDZ-s^to$Dvtp{#xZRte+e-9TFmcKz6&uzxaXEj08r(G;P zAAoKYJkgEkTM}S6FDl9&d}gIYSNVbVpJ(NTc?HLStVS822?L4*qt{gWVL~of&&JEN z`{Q4)bW};4y})GGtBoXf<*)n>oGy{KmcYNr1f_g9-73NFTqcsCWSruFfLRNf(iu)h zK*XZ-*kQ5B59rM)BabWg07+s@GqOH$5StGjg<*X@iPV<^Fod;$`cCkA0JEhP`=Z6M z;J_Ayx12Z*Ll7^(XiGRQ?POHTJ1;Q-jBCF4(B_hr%>`Z@t$xT=cjn!Ie*lt<#_w{B zK!^MXrnt`qCNO7@QOH|Y{1KTWhi~;!y12n^ecnxs*I`+WRqJL~XWJkQ`oQXbZIhXo zaLl1G`Rt|t(xKDU#O+wFLSQd(Hx`K%Sst3I_ubsbe59f)%sI`#((n3zRKP3ZzPhF! zMxljB9FNW;(DN*dwFhJrZDPOPh01G$Z-cKBK9-II$QJN?$}%tD0rEw{ZNYA*Uxt9LK@tn$7O&-GVxHL*YQ0VNnKU~k5xHnF7_`E)*X{lnQ@A<& zdQ|(Bwi-_s=_+~eV}9s#g^S=r&kLR=cPl_uYS8$eUpa>t=CN)R3M33sSMysQ6~`bN z6y*`#jQfPGKO+M`6He6N<6j;@lxz{|i_1$XW8>}k^Ekf_Ne21Q-gO(adN&`Ywzd#ug{h;U&o}n-(4Ir%r!t{KG`4BwEH>s{jh53 z?j|U|eXt>wo4F&R7H`PAd{UK|NB|IsaRJvUs&`Rw^$rUiEmaoLbgy>mZi4gWletXj z<>Ozmzntyf$;AtEevJfFvag&qt}x@kRlTC`LsdPxGK1_(O)90a zd!8>(U+Z%vrcSvC-cmo^0_>AGTxQUjumVG^0rzy)Y>Fdc0El_)F;yPNo6i6Pjn-(q zrg(+by<9_R_+&fO2R`lo`R@;MmEXE}M}EWq?D!#qYFz4NqJtm7Z5E6KcXNaRR^QJg*T0<&db(Hz|IY zZ`SsG!H>V=ttTPyjH824by`PogbsY}8%1h5#fAbYS9?qA zP~&l^7{~MZU!zFJ2fdwVsdS1f^>c0)&EXE2Id)e8doeRcL`JT~kG@Ru_4Gm1)DVaF z8Db=i${F9UKL*Z2acQI@G#u;E`~g7|>zCg}zxDO6Pi8gu~$%et&s!;k=$h zB8XnSrUXc(AsBCVPy$(-afUM`Tq~X}cUQy#X2NkVgaHtET;w_f=vR88H#i_kO|F7* zV3$5vtVb8%Y_2v8ncM8 zzvmk^S%cOF6D0&_UzxSp>xaA|>Cg9?;h8p`@X;J{&xQ1BjWp%BfD7LnKH@;IX$jFh zxxgS7$hgc^@_sJ-x%j(v|NC%H)@&U6g0ENJfCZ1a(Nv*Yuf{x^X2Vl4cSobsk0ocg z2p7-2gQ}&(*U6SI#sQb5eF}{teXUbf@EBVZ37i7leQaA6AGHXiqrkiyyFC~ee(UMF zmV~8}S89WkY+KRcQYT%bHus|6=}b4uNBgQVCDfhjZ6!r*z|!4aA{pRhYl<{9D5)(P z7PPrRoojN{{*v+YZBFpWVK@%oC$8;T1D%qPi(H7?;8GiJM7Blv#HIp1 zH8nN-%Rwy((1rCQb3XiqfgPMaElJB8({d6#il&hO9LQ+Y*i(C9!s|d=E8wy1j|Q`8 zz$qKt{lC^Sn}H2#2UXb4zFuwJZ=d^}BFXYE>+g%1YXB#(U0{I$5xhB)n!t6}TMkcd zQDj&BKQ92e56r*Gcf(+I^AQN`^(c!wq$Y6PovZEO1!)8?_%QFpj|4YS)Q5=3jkVH;(Dnww&YJu_6nP;?NW0viuv%i&o7!}`7&Ic6{A5O_S$f)TtP^ycJ z9>W&^=fj8eO#0O6|Ay&>4M1-I+8>$C_kMH|_r<%&SEgK_W?om){=z1}h|i(Q*2P0; zyh6StuDeR_LKc>lajww?*04j;Up?PsjldGEbqIJz%T?H#4+tTiaGC@lX`* z>{F_;>BfIP)m)Z+nGAgcywS;k3a}mUANjP(AZT*^hus)C^kQPoslcd4Yo_-dklB`7 zNX(byuDQ!NsE-);sQ)45|6XEI#Nv2C z9+oP|^uk!k>o6ZcNnoE$%TQy8WuYdI$vx@u+CbZSL2U!&JB?baNkWhFT$|WvA^ME> z0SnOCiD7`(hHz(AoEZlsoSA<#^PHOi66l5Z)t3=ZvG!eL?^rHM{rlhK3k?udNSLQJ z6~i|)!)EaQDBdfLV#Wjo*BgX^=uhudQvcyyx&vq}J)%Nh^k4rY+LRK}ZIbTyJAN>; zUb%3xlv`69KG5v&-n)3IlBFg?jsHqcSh|K{u0R8!&g^^!(^@QooRIqO z2|GWv*;QdxDW^3bJP)$hniL|noY|6FG1yO75_=m<&t!aKjuWd$eA0=t**@MISBJ&S zuz@vUH-#?j(#zns{znhsOG8N5wH|M9X2U@Erb(in%)NI%955EkRs?KIhr&%n%Rzjo zL~t|NNHsnQVzN+cZcrSrw!KcR37aBjT?6UBJ+Uk<V`xz?78gUAo8%ZDyj*Ki6M#cv?x6q0=Dr z>Q}P6rYR`5e^>j0x3Nw6b4%nT@)m9Hl@lC)<1Wf zHsdUKo56JA&k9{SNPTc}!7LO%_4zq8G?6Boq4VtND zGF|>!=ooz0lf;RJ&pe6lA<{0vva77x&AVrfDI%^E`MQnh;|1C@l@`NqbHctuZg{>t zFV<;Nam;8L9wyK#{>XmWkdi8d4!F&f(49QFLqTyo?I16z73Du8^NTaRqz*p2$$F)+mYd2i;;>y$EM8@p$*Wu$=cUHe(@6RA!5vA`94und2$k^kJU_ zj#Bz{;??ur2evjKxK(;`iqOV+_FB5(@TMjHMP^K|B~>7Yu!K(vPNyAVL!(#S^=OAB z=H~9NHXs{bI%c}Q6cfL_ikyYAlU~?pM{k`|&ijsGe$K$i1;#237!Mmh9@0mTU2?r? zF5ZV&OvMnOSzP0g=08rd{1Ki;?Xjh_L57K94qFFycYHru#nU^Zb+@0-nK>%WkghSC zb}yL>X;zsA^!r;gvy+pVRU5MOQv!z^6fp`N@X+@+b+a1`ZuYyJ)COVGh~1zy{(Apz z=OY5Cj>g%iG6K4JB!F_Lv+jBHw{MIb-4c2>W)Oh)idIas=tgJbqIAu5Ja)3@c_ISuq`OW#l(@Ea=LXF@d1DMFSuKQ^i{vm6Wxj`SfOpMAK6fU88P-Z*Y zb=uga7ru~LfJ@Z#%`_L0ZkM6$G~O=qJeMItzejW^lC)W`>B6+({l#txAMH}Mb@w$+ zveLKHw-1%=TovyP;HsI6ZvBH?*MqgDYRwK6omz)23!mQ_y5l@o8{5_Iu z*Q*NfR2h%ReB?0TGfeg^Ke`OIfepQ1fVFeT2_jl4@@@3-CNm&Q%OS?6&y}lFjJ+{8 zuWxhr&=!4>@kr7a=eXO*bnrah5J;jNTw43qgu3BqhRt#2B}?F!Nms$S6--sdc=b?Q z?D+l6v;=To57AC{0knCucoLP9^cz!SHYND}%0C@rjQ2=VBd#ISr;GfxbPb#rGZ+R3 z#jXVvExI>C-pC|PyDQZL3rJ3LpmHv>q>&XMW_Nso=ZFJ-2Xqj<3m zWqrHN+J7i6=q7UeZUcqNE;rCqr|Cqo#SOMl$Y9Z<^GjqaWd_9q66okuj|>U(s; z9hcsQTv*6?H5~x|D}qH|3rO?)@}^bzuV&jjxicTTk0w8o?UOL@pQti=FspoA-q>xM zFEps%BQL6dsZ55bKU4U5M{#N2I=@wRkjDW5EVY+6{Z?ZgzL8|7(0`7T0|`qGry|2= zW}wBz@14B9C@oKge2~=8`>3Qkl-L)enb!U-wnHC%VV+ge#A876M3~K6=pzrt8 zYd@41%XBJm1x=C9*ZWgPWSVO}8qn<1q%@=pIWcGs9B=#{@n2quGF1Y>{EZ*TH_qAZTx$v7))&S?psGzn^`+`$Ueqx8j!W>I8ygW}mBz1_ z;9#@`XVbUM+LH=juW39+W|>9takEpT7KFpBk995=$re`(*Dl>!^7}5%Q_GgVdLyxm z#PH_=_*EvM6r~_uvyJWY+bB_V8=t8~BcJWg!zl(SlTOzu-d~H#605II5wq-j=jgEI zlp>A*jDu#usZTqeEMYrjM((6T;%31GFGSY77jFpy*~*$0G|CKETC_m{4G8DGM52y}`%qP(W%g$lo!l`@&$xC z-R5N7vFsTXTqvt`g1-=^tKT`k3$@1i^5rEyLr2WfVgAe0CERFJdcmzv)#W3rm%Ly^ z^upm9=^#E^zaVahKU(vuPg3K~9To1SxZ9r47Gm4K^Xz2QaUn+clg*YBHj9SAK34q3 z?x14EoTetRCQX4N6Voa!FE36#4ED3h$57`M2Wcw!oYjxZDWCyk2ZrAsqqiV@HXz?} z+moa8b!=FSS4Ev+sCoB%cKK}5P& z1#hqMFE$aLI;}*i)FpuYqkk~V>f_d|x8o9Zu}ggy+;Km-+3rmH^i30&&Pn^-UHGs> zfE50W_IzG{MzYu?0W@*L?D_lNrXV8OZt(0U(Ijm>n>76EZAMkaWiRCPN#^0nu!P6# zQgwrR=!M{7a=^J`L9G%DUsq47EmQE?Y-GjsZP|t3Un?NeaMs0=GQu#jXIkbXrCp&{ z^Ft+-xO4CD0~*VKUF_{LiH46;?V2F0rj!%>(zqF3E2BHqY@)|41!GG;#`dCdPv>hF z+t4;MFhn-7SO<D}QC!ImDcI?sw*QHHHX z3rp@cB+X~-TiGN?*mBX)GAq5lalb0)Ud}!l#?rCiGwNy35#gwG2na?$`4cm0Owrd^ z?^tX7flKu74z=hB{pi8+1Wgo(;pAXBoAU0ge$8ORFJSiIi20yNnqRo%Z$q|bHk!w& z(&$1HHUkxBWj*6cL&p=w-z>$^>nv@5e}`w4l*q(u8X8947`n;3VyoJrG;?&mW#j^h zEsnfHg9?5jMBv%QOkP4{o@YB3Td&{L8)eZn7Vpak=Mluqlp@!@X9ixIYOgd+Rsa2d zuEBIXgGpFvt%=k0i}O#8HRB@hGjio1{*~x#R9~te5t?LO=5MU5n1W?#exGxe6L}Izi|2Gno%#?$ZEz(Ky3kWwCy(bNTWkm5w;|E38u;szp#b~I5mLP>Re@KH1 zF?6WS!+OZHuymSr=~gbBc!q5Kzsa&RRhv&M)Fd z)NgIoY4$}R$o<--3$tiUUH#WvB=@o+kuYEHth9$m^Nj{26b4K)w3}U;%08QaZkb0e zpkAV#2QS}U6_qXhyalOh6>nfMmo*cL1sYB&{lXa*rOEI-$Fe(lqO`r>*j-KIlZ;VN zQ1C}`W_lDw@6J_y3$cR@n{!;$7JTb}^%7W=C||YU{sI9#J1^g`NCVgdZ7MrPa?jt- z(i(g#0@E7d*I#h4UQM+MsC>Ruc8|CJ7JNm8NHZGMbH*0%vi?g%Q&LL{Q z3aS-xcNof3(bcj))0Bp=IezdjIjoh&A>UWx;bfL}bx^LIH|4j5EbkyqaBvQPo5=m0 z6ggG+`Z=jGVEQ08{Dsh{pXbld;TcX^!_bcl-eEg$jyF>eo~SBPQ9D5%*%&X}7@7QR zHquPajGo)rs(7_0=oI58|D|3h)EX`MG8(`0Z4p_-;UpXPsVi@Ai-4FTI>ux^ykD9+ zx^FP#yJ@tE+?tbvLv&pQVFn?&5-02juCm=XI^~Kr?P5zcljdzvGm@zEx07?Cgb9blX74nok#lD>?(6G`+!Qi<+sM<1XYR-VWz^f(^nHS%*7%T3=0dCH z)oAe-GpR!Kk8bU+?qCik_ul8vC%&FEb}G%WC?sK8WDwtGbochYw7!nIpM#Kj9d&ju zjfeX(o)63;=P`B_kEPv?I=N?7GktDQ@KfEmWCLG<=Q8LxcaVqRwB&dayQ;~$`vMl4 zfN)MBaQe*~awTH8#sTge=e6scVCwhu<5KL?OZCuYu0@{%sSf^GmdU1e%2F5wqVam@ zCt8=k;gN$mA9VJ&c7(vFX-05oI9<{$HGy=EAB-~8`uH>GKKnytcZ8XIFohgzj$%-l zUQTx8@7&x1@XCVWaGL9o$)@lcy4^!LJ+v+14+k)ZRr!%vc4OO6Xt$YvWzYuQh#>-_EBgs+AYkJZc z1KIOw$L&hCGCx#&F?Z;PwmU=;13?hMg0JA-wg3FnKCwfqyiBxRhw``O*}<3MDEm6m zk(X!MMs13M`k-Q;Jpa8k4E*tOM<6eBrtc*{L(2Ezt!Eg!nX`V9c8SEFW2ms8hx2Bc zE~C$(nq)~We4>WFZ#_7LQUF^gH+R2-jj~hR8(aA&aO$yfy7H0CETKE5X&C)7)X@v0 zq#VU(lCcR1`0???@XM7>SLk5HrT3sG9W|!vet6f6*^6%hh4k4e&q9|~4T4J#KW{4eYYGaO5zhBdA@Nmr(i8_z2pik|~g5y?OL$kBd8}qM!(3uz8bBPu98f4CVlIv@6 z+#rFL(KG3e!r{|?oRgoG?XOCoNyUs2q+GqGh6jf7_Tn8=V+y|rrmJmm*-4K5dd=OP z5l9WRmxeAqHM+n1aI&+xMC5P8fbFwW)^64(Kezwt-Nhif3_a$oI}~$24jXCswbyZ* zvg_dAn72o!ntJQ7v$H3yJQXl*{XQ>rM}9BaDnuy+xLXU&b$`-~yw~Fok3wi53}Y%; zN>jYmNlW=T(N(_(?}E}C_hO-f+qU<6UpGZUce=XJFS?axC6$#4rd}T0rPr@j7A^e@ z$h)+dbrUCPY-z$C#fi`>y8w$&%E`Cce63tc}(0I}PkYys!vs1D?yieL4 zs#<*tB<-{$nsuKdz8@Q^XcKL zv%rH!H>zQ=eRFV^@D$A+d;?>>R6UE zw~?AEL%Hak*$Yr%9(6fE)bGrYS+D+GsR{;V(5-^da)zi+y%H#rlX|GX(yF2k##B?J^WAMx)>sX05#n?Oqt zG#m~$?yp5(PVbhld)g@un$ud42B4nZ4j}>bHsYJ0-c_T5U&N>#(gFPWFE#LXh@9Iiq9nJiQ9jjnF+Xyh6 zi4*JYRZk@fy38HHUF)5nYf#t^vio7zQGU>RTS>v!)6`^P>{z-H22gcN@ndGD)xS}En*jt%S2m?VLE+XfPV%EVGG20!;|({T z*1s^&&x>G+jC5>iQvcy?=4Dk2Qdi^A+RsYM$gtNinPrLns&{KwRo)i2Lt9u7um*BD z#_C>Tyr+=clRv(wJN;Jl0_))2zJr5JK(qakFZ2;_wVfCA47+ApP^QpgZ-T9?@rozS zXD6)Cs+GBZ#V=pL5sa#;ND%+!B$(1}kIh4shFDcG&{e3nB^`lv=Iz?nK>^*(z-TLA z-m0PTy`W3;IL2xpB34KeLcz+{3rHa8MFaMc2d+koP!Ks0`l+8hsSwDWcSWK;6nHX^ zwMRTl>vnkD5AP1;VJeH-z3S)i$;C?0O@l*T1gNk*In${vXJ!ag2*j>Um-1J^&&``S zL3Z6|;iOr1F7$i?9L~0e5ttKXhCZld;Pt5q`&X9Q`fqdueJ>y)GoBe@b^B2Xha;%S zHn_IoXB%Jt!Egg7xNG?$3dXe7W_1BZ8>hrQ9{{p_|A6d;3IMX#IlTnIo_wD$V1huv z?%i27Px^T>o<|Hc%UzqJE|z@&5LW2RHOO!+JvD!*=S|)?cC>n7{3M@KjJZn*!YJ}j zdl`x^BT$jQ0V?tcO2N0}IUpzjI^hJ?^Qe%v`U?+5bzJbbb$jrI&Eg@=Gmq3E?V8fB zpA;hvrCG&B0ZmlL?NJ!k zwUoF&-gtxmZ@L<}NEnhqjs>Lww^_+^4dITDhn^fj_XSQx+)*3vO_iHP-)Xq?c)orL zM?(v;z88TZ`MmBM!Any)_&BdZ+?JHqPNky7vGi^(Ip6N$ocZsTHR5kH+&AS&yZ$;K zP#I>_B6|G!9I@0bo#S4L49&QoeyE1+et~v9&M)=v3HKpN8 zDb06+Ut=8aX^AH~RNJp+rSe<2*7;kjWYbdbg?$&mq|s30E^Na{)E zyvL^vE0)%xvW8zNWCK3Y|CCVd(r22Jb6*!)F)qT5G&YCDZW;9*4c)_gapwwFRL%wj zX6^8v#kUUe?M4bNO{Ci6izqvG!nH*Na=p*D@0aGPK1-q!S;Pqhs(~ja=y|yc#qF zUi2YWyKUvbhDUiFZ<8(G-&MaWU!lLc%Mqq&V{N`tEK0B-VHp1QaJ4_N=RB5tUx90C!vbnz5W*+X3 zA%v>p@Hh1Z)ZTAVe&2UCet=uO-9auZ?|7Hj#+2|F>4EC%{6Nq6yf|y5uHx5XI%A>m z8i+L1dIxzXIFIeQR|oFkA>Qg@<& z65pgpQLM$z@K#4}u?vK}IYkQ-I|iI=-D#=zDlKH!H`*AYL3Y>XIivR0yGpYTzt8XZ zk0me1-)X3Oir??4L(dCs;BNe1s7qcz4y&b>vpB}B5>t1IGsZvN->R|?;8o0~S|9M-e1$4At!3Iu%; z^7UV)R{D51NzHT11wC9jB<;UQT=rd8{6}W$gNCxZ57CX4-zu3 z6q&ky1yNf>wlG*y+L{-3hsD)eGzVpUbHKOpVV(%vQQ7bDJ{QHb3;K}uRWtsbYN$Q* z+~bS><@^MsqQ9(x^jyNRaDN}aJEtz&lxn~SDRpp@X%LyLt%oy4ut31TJF}`nY)PFo zqdY1uZ!sNj=#CK9r}Aii#gXJw>jK2=b-;G=8{~8>4JKH$4__-d?p&d~e%sRk8e%g% zBB{<2r{`GPrjppuFLro%(&9EatOGK;7c)2>Qq&krXeubMx|^>RGpaBp9}%C?dgx1O z0DY;&+dQlIaF)52kwR2@8y1DBM~$LHSv8-~_}FQV-Tqj*C4IzN3M0rYM&yvFSMy8= zl8{EB5Pg{`^AN9JC%`?u_IUw6(wXxW!9Zr_N@vWNr(NboM7*xC5Lo|MGl8B3-03TAjQzzaYqrLz+Q`lSe86Rb7d6zfSyg3y)X@qmoeC_v`cH$H^CS79> zi6+VR$ceni1S*5Vni09=4{>iN4ZSw;Ou&NnbE@d6FrBz%kpNEBFSxt z1aiej%Sa}j3}}RwF=~LM4!Eun%>>`a&rLrpFGdSHhhpLaF^i+B2sLsXWh$jDOfOfJ zk1~R6qY3RsjI~|i1;0Ab@R5_lX}IXyjR{xf+*8=hfRK8HUC&^ovglM)zUxmCSp7i^ zPkU1h#H3j6t@p0oauWtk%?Wp@`b6ObsnFdNgHz@@=fvfZgc%g#&t7{as_(xzno@c%+Is-uJPwDO}- z5V@_LU2rZl@5j`*xV&?=EM_(N!-WOv@Cn(BPtf(UkGzYz6V{s z@%Vg?nkyoyVFbBkI^6Eg?EK}!S(g75yl~&K!$Rm}XkUZ+Wb$Drik3ng_kkJ zS{^Kod)fhP=#9$DCAKiqm>|4$NHbn|@rG;U7PKw31t72F+sLOy8g94-?GzVtd`fpH>h9 znF3jMieob(*caxX&rAn7ivJiT9p%2$+r6}cGlcgMUn&+kH}_a(P6@O|D`bAPOqckg zFX;C6*0DwWdWGt(nf%EUk*@0DJ0#Ye`z=2-w25H_;;%z9_B}3cd2G132JZQH2Qmg& zis_HIjYUqj`qy7-CFYA2A>m=WifV4H0<-oshvF=3!9#4>FIdYnLIKC&h)V*@&aZ;Rz=MYcu0v; zccI!qFFUX{OPctqxjWG8lWgkVk-Ud2?SrSV?AwsPaMLtuc~!rpvvHo-3bu0-*uu%! zKxVG##E?5+g{j<6o`C6CKSULq5g7uwSFufH!2w|ppey|Vx{mSw5+h>eCe7V(4K74* zH0UQMLVE)RtGgSc2Ertb;9;5**X9&=`BffHRYhw4-ghr$#m!gNm~Owaj($rKpHuFZ zFS@?AWx!Eh~3ECm)DUXH}EB?np^UUj#PP3>be4)Aa!{0)} zbfh1D0fQx_+8@I$=nJeIY<2yl3Mx<ftBeSD=K@o#q?Y5AGKgd3z}E>>qV5z9D*!k|&Me#jXmMmV<92 zX9Iol{U-OQ_-a|~VbxWl-gndYBfLlOKi8mh9dCRbC=J)`C|EP zoH{OO=k38HMl!nHnCS_lBxY7$mL7QXqu9ev45uK8277zh9i1`h1@Aq>y zePyBcq!M>OD2ds`l5I^cS^8K%;|QL6`e)t;Bcfi;Md*r{5Dp9h??grqgKc`{X$z%l7*e^hm(+*F z3F0;3?XJ@a2MZ8SptXDN&5DzOR+u#quKLSA06!zj>?l^q#CDI^>Vu0y(16hT6ZhL1 zZ3ReHn%G4T@nJ3dJ$2u26C++Bq0m@2M1Y(VjPbYhLH$1YYBFV}7c}JaaA3AYL{s3&w&5IP9T<+xcM3WY!AVE} z|7qi%)&wd$R3_)(lH${;^6ICxHSpD`70<@R{Gp*C8L~a6rbRTd(xU6Z53kT0SO+-s zv&NT<3rb2z5;#f-+&=0oMw3hZvQ-`N>{(6H(wj>D{{8#Uh6al3jI3|J8}oa6j@{iE zTda$#vYPO(v)(&3Snpy_72h4%gu+)~@{-RldOwOCDGqq##|>qyK%kcV&NH zp;Oi)cnx|z_YH)HgF?O)4f{uZy~wk7;-UMMqG1g%bzoM9o7dp7o2=924co5`00wqr z_9Up%8WKkr4BQ2a-3bXR-_9}Y_N$Wf(W%-`w~;#Zg;?XM4#2j1m!5!DcS}B$lhe59 zc3x$PFi#lnem^NLQngOFycIoeIYx>=4z;3>b?AKfWJnwXYx)2+VK?vvc>$>Egya6r zH^y*>7hEPX8dQCFgihAcx?CQ>MB(b`h1|`gI1ZQn=*q`v9m64I<+_@y~ zXEph#PR%pj`XDaJS{`Pv=Z#8>BVpI0L{3t13~AfzWJX_kEo3+Sez)6zVhoSEhm3~T zHa1%md}oQyQ+UuUy_{Ytrq)Z`+>8yIG?pPMCKvt?!vV$siN5o4P`le$7!q#d07W~W z@ys;Y#Y6V10HlfoMYC_=%ku={o#3_~j<9Ec&u9iOA0c2!3A%mq1I~k{gCgKH47M7} z%ekAS`{mKz7%Ca>dwm8r86@sWBAri?9S&Xd9&SXsevw#FG50&yVkz4lcDk=S+s-~1`g?f_8*4*UWJn&2o(Nk zyI=9Hnp~Fq66Xf5+tgXendkPR9a#=g7Ub5T8oWM_8;-B^wu)D#eMZ9E{2W__B4@Tn9k!5osyr@+6@Ki zZTh#AHjE<@EK;RzOwEWt- zLQz3zz8lZzN+8i`#<}~SpBiTL*-gYC;{*;pv0@W)McAC}Phc)2j3@P7n*)+pFMOu( zdbR27k6!yH8{{Zc+TMF0X0LhzilOR8#iyRCs&rx(TRCp7n(?d38tS^0kXf&@^-aqqcC7`}4>2wF*1Az~*V`&OI-zm)5U9~->KWl2C!$?t`L9}| zc2UeTyccs-L)3rpSwgJ~N8T?;RahXrmk58V{L&9&hDV_JQ`uc06(`%%!E+R<@L!8& z@%d5tQUZ(80{hgkeO#B#J5tTwU)rCWK^T=>X?bJ7j!r(HJ5Z=uVy)KjsPT7r_y^+^ zkKOi-=L@jMwQ-Ij4#|nYPAxPW2quGviHHbx${+ z$HFg*S8UzwtID7PQc=|mMuNwjVo2OHmx*nYR&F&Q1U2&A*7m{k;UdP9<&Nbirj>S9 zrb!Ghyq3h@sM^viR>u#jLT|rCNypmC5070F%Dg)C5@2mK_xxy+0Zd zbRvZ3$gVS#X_p=vM0D`7dysRG>!pmC4nR(Pw1zv79-ONCsV}?5Fjac?PfrzOw2-G? zN>0kt>`8*?-YE~NEX=M=m+-2FoyxvV0J7JE@c#p3rAw4`fPo5qf*ZKV0nuFDysWRDT_sE;ST z{!%-6BASYhNjLVY%NjyVhcz@J0wx!{$c#Rp1_f+%bl2L?khvgz_qOo3cdiZcyOjXH z*LUhV&%~}iV-S!EP@I=R??1bHsxaGA$m!oFw z{eX&b)KgB#?N@}=XrvYTmf+kMHhY_jTBlc;p)Du!8kv;c(ltjhKvwzt)A}L$Oyo9s zMt*3Q_tD)YGoru;=m^Tf2NmWHAQQ6(MQ9GHBz%t@eEvz5p4gbj{$`_fGy_X=yPrA2VQ}7)ZOmrc={0ERD~1t3Rla z*N6k}-4cM%eQ#&Al)w_XeG&(I$%k`Q_mKqxK{H7OAqpYkoQ*u={i`b?y2g^r7|pjE zyZKkEPgK3zUA0m72OH+kMP=avL#bBFT?p8I;Pumq*}u4>Y|HJe(r1TBK|87-ua`sK zA8?v1{eoxJ9tQDtlP|tvp328XSjEx{excb{_U!gWQ1(54E7zZzVhp5fDBEvD~(`R94ve_VIWjQO0O_qiR%ah{)c)pG~MhMdTPO*)soDthzgQq;8U>esXN zE`v)YO$9tlq_gvMY6&L37cSp+Pty6^W>RI7CP-xVZ1P+F=q#N!bgxTvqT>Fl*hkGL z1I(278oB5ZXEdc8S4GG(4W9e2Y*$cWeEokRS|zj*0b`*8)4sVgrpvi*1C#v|&El&{ zxQ7h=nJ=QZ-uX<iwH~s(=($Yu!)9rTU<$o?zhU$TgOtAgwo*dQRrU)1& z{M$SA1r=sctZ!yc2wnHm`|_jv=2SdY5vc9a)SA^(PYU%T7Fc?H{V1i@!~kOL$JBdp zHs|Ly&XwN8Z&?rAgbhZ({Q=ULwp(KUl-SzBLX+C*Wq%_2XS*Fr&c8MaA{`!bcyVo< z;Rg5K@Uw)rdeQh4+Alzf<)~zY@$s)Q;Ew{5QQjxg7{*u{1HAaHjILPAqQ{-HA|?~( z%^!_Yifz0(Z>r+G7CS#D*oFW{i0XRet8nHHl}rf; zgy~Vk`eg7(Np;}|qQjjign!evM7(^-%b<5unC9u*go+`+c+2K!w@_fB)b7k3C#TgP zl>FgN57o$t-knHD_1L}dydT1I=9kD;86|W^=GS;0Ycq@|1;{aj+JtyT>FIOo&*@== z8SVScNfgwQVEB-a-@@ym%IfNYN@>3Y_Q$!CcOSK3e)?=5o+)l<1&dujV~AdNpFMT# z=(Y;rP8T`fefY=i-@o*y!fZ)WupwWy!4gd2FPI$bDQsoAQ~P4MB5wNN4@+%(o1Wq? z($Od6*R3mBqR_oJU-R=qgVY{@t`pPOY#qsgeuQF)e z4b>~wL2H5eEKN;#+iWV#z}8dB_jmUaSb(s#6j_16Yb(U_SQ+X5C|KrER6YA6!TcFZ zcZw$xUrL4Pg>E~q@bmIM-(z`3H#q(v%h@q(=kfTnX<^O+&F29DzHK9_ts#2>P!Uq4Ke?TvdMj7q)pzByCjsI*-dJ9+=SiPQs?CfOqTF72%3(5|vMB+& zB6%ehdm<~N_PgX>b|=khvms7LqWgPuOj9|KKFYt2u?#u5sK){Kd8t7}13wH_AWmVI zE=FyzKi!BqWA*-vmcH5fRo@>4MNeomC2os}%4miGl_(tz@d9#$WaEqTf@O*`JWmQ;zo-updFtGy`F+hGmV!!^ZX&Zu4`mTL3B_e+b5Au;;mqvw*uAR9k80=DwiG&SKLZ=F$f zGWvLqzy60wx=#T@6|ib+`PtQ5!;eFCOhfWb$hLhxKcxQ@7bVTud*FfP^!m)Gz=kY> z3A!k;YpXvQUrsv$57(=s?i0EdUL4-88R`N9uYb(*!dfj%&BXSc1k1LM)WcQ=!3wR+ znnK#ks%CGO0>XyLC7GxYyp@ zF=;Q`vdM3PIsqiOr=P8FCQv7^iIV+x@w2BK6~V=eO8YF<96JNQ62TV4GQs#CFs#k^ z!DKBtKZ78xAVnDc^bF?Qul)~4f#cuAP+4VVWW}{}LDUz>_N#1;$cIck3#L=Oz}3@m zB%P4Lzn!*d{rUks=bh7|!~TBNDGf!Zb^)oQ@VXlVCwlqj+Q9u|pgj5zqpGVT-O0xb z6uTt>MThkjewCJo&w4Whoqv+dH}SCgwGZku^s~S6-DCE6&UAA`_2Np=7liT~4at?O zzYZ$RhwMVBFiSF-!Y_QS2yxt@`rDk*Qbc)~Q^O8fw`{EY~da$o=@&H-7v5m9s6vz)9LRr{lXxf1BvsD-iXXGiZ0= zAR_Ys^ma$WiVX!K@RT7)Rq~9Qz0)QXROXU|cupV}a z;C_DETWw+x(m0R0q#kUa>>rtVDYR2)xrbw7M(0t>JDl?5R7t}Y@6*N4^ZpKphN^oj zepgZgM(bzj>00l7Pa}WZQLAas!h>?*<&e3L!sDy=&u1pd?%Tj)$`S6TdAV;Ls z#n#9h6}0Teoj`Bo&y)J}982vHOFv7~M>W%uAiJ6eK5N05&X{o?5a_n zSH;ND7O1uvJkHT%O33;%qi!(Otx`%nmAD+~!7+adGG46R{;RE*{8#s=Q=rCx_WPt; z&S9?(v>I4Lb`ck+KC6Pxjde2P%*rc3Fp(~ZUQ_u~Fo6GL5?qV?oSi$&-bjLTq5)Ir z4J&hMoI?Kka_>Mx{Y8Df*&EF30z**?=*^xIX6($2^*NrzV04Y9Hx7HjWvcrdJO=zP zRvIBMoR|7De!H*i7D0IUL(w`PbwRJ(xN!r&%W>_&x3U}{->3Z4uL(V0Xk^TBtx0%0J2$t% zzVRlH;~*b6!yK1>fw5(bqQD{?#j|43u;f_Ne9?G6(4F$JSKh(OXvrkdB|SfqIv_4D zGJ1GhXi75=^!<@`)Gr=RM>J1rgpnUr?XjSSe^|d2gF%@dn^s;et4IT)1ciG7_xn&Q zB);OZx_c*STJ2C<-uVh~Pc+S%US;77wFUVHMjh%Rx3sw-M>{rYLFch?BhnN+tA|5) z$vh8FhZQS}{gb9Zk9O6j`!`ZFpj z9a{Gn1r;SmM$_#)otv@ShgwnVYh)G!`Oi`=E52E`Mx) zpB+05pxLk!?;t-`8$U)`-AO@t@5Y=E7q3FDTEEt@w>9*48JgZ1`P9I^%D&2J7L@wU zB9D1ujjyD_bn3540b|%yVDoMUDj-eI;=Ojwc+WvWcd1VZG=avGEZwN2m_$3Rns zpA&MZJczu>D>^hdKWjcbwd?h3D(vVJs01jTy1kfp_pCv4tO=%)HUFxli2}-XO*y_`oNpZj(zsZY4+=jSVFI_lNqEAYN zg@T5O)ppq@)bG?!^a<{n@d#2ZP2aEj;yG$o5e5yv@t}^Q;H9 z%iGTOCVnp{;&I9!Ile_`aPO+eL`W0b#4Ji_!?tT&CZ6!jqR9og5nUP4l;W^>QJQTG z`wfXqg$#kZAD5|moeZX0P4jB^tmYm!@NjVzltk<>7Tg-d(%rn*KHVo|Q0 zkWE|>N@u*ech#*9(NP3`;$6OLN{v}uWVq>=^6Kn)ZmNigu;~1cuWC)4>LPrQ#xDez zT`zb}#1)(m$!C%F^>N1z4u;aYY#t`ayK9`5g~7yQ2Rz4If=jdIPcVhxb9NDGK*D-K zdklvo-P~M9yi<)=&!|_u%Xi_9I>U^1N=i!TymAKz&-lQ=i9-D%w`}I@cb#7f)j467 zma(GW?Tn4drIt>=8$JAda^q{kxcogG_IpWZy<&w`<=^tR2A*8&?~S$SMFK#p?TuMXFUrv6(z* zG?fkN+T2yyyagF%+PzJeDG?2gON=LBINkU}wWc_!Yhzm+8DU*_ufB3-Ov**l%Jh;F1MRSQthB~~x{>5Lr0O*$M zxb!#F9%7yjJACNs*~$;RkPdP!F#m|c5GCbUgDpafokn5w=D*^)MH*R5B zLVQP_2e2~)a@dp`{@5P(eE~|Zi=<^vlX z7~T2`UOJq+!K#w^Ib1%sJI#Q6{MkVcd;Wap!KJI8LsLWC%)a(4%Ww5VXbuFfUMCyC zrSFvAoXJb`)o*~TCHWrJRWgTEw?{zoYR{C7hiGNaY)F>YmUxXBM6kXnhQ-suH9Y4( z+K9oTwtO(ry~O`kVqhqdqcPFK(e4Uh>kdZL2^%Q(&*_ZwSHC-m6 zKFchIF-@AApkHObOF*}MW)#$pC^98T>!7Y>u0XL$tTL)7Z0p4|*BGFYDIv~9f-K}N zpyy#fn{fSpcKA)BUd0w45w9H@6%%vwGx8~;2qbb)$3 zTBXawIGmoGpckwk@1XkSjd1?FszA5ANy3{*IW?MixKIqngNHpIda$k*-qU#}7S?2X zM!PEzvKciqYPf&rY5(&R;DLA@c9}*qrZYHouhycqm5We0PIq^A3f=H#5(Ct#sYq<# z#(jN}^Yk*a6NdGSZ5V~p%qj-@bzE!MkC?U#%!%0K%S>Es`xS`QbS!q?7hECDH>km` zyqB?6_!=2>Xn(5U#@DYx=$FeL!%|wb9G#Sb`R6gIDjFG|Lmq~{%~T+k*Sat@KQX~* z+h(g$_`}cGm}%sQZ*s`o_q-kDeGM!kc3Z|vVe!)IevD6QzFY|DwVr^z`yS=+{NUrC9{a-Rnz<#l<2@t+(;;{Apg(CHXQYIOD3_ehCu!iNq(X z*2<4@rD#mUin8-Ug!D$5^^>k7>xJb-ZE{pX`+oSF9fs!AjH;`+b<2Pm#FiC*$ z9`Uh>-@jjOVJD9glrXX#bHNlqO$hYda_$*DjUS< zl$U9o6k73X8I@4;T<(vhjT+;?QNe7^ylZ=b>^6ggho{xQFlJn+gfa>vuN2R7h|eNs zICS@LE1nZiKiWJ$SUI)GaI}qiFe|?X6<^sQ#JrzgYaU&FmbJQm3``e@*v48Y4%`utfy#6B#6p);f`4G&6;E5)@*pIQDJ5jR5J{PqRY$J@1<}ezkGQ-fHWn0uWPVfSTtG9 zo)`@JJ_7^Idlr>;=%1~vfw^<{Z0CB#dR0TrUeBSA6nv8SL#JL!espzRhgHm<_?o=^ zp@0)DOPb`c{q%C2fzUF}!637To{K9r_@sQ#-b$F7i!z@~cr>y+H0t8b;Y8cDq;{uR zZ;nNFq&O^ZTyVKfotivcul^fKvw|Ol2Ihh1bTM#r3IEt;`0*tlU&%a5m7E1^tE3(% zpNQ?d6h4yqB7g3q%{d@Ux67Lv!`3`~U8wH&!c*6ELu_XZSn_qGtS=6fr0>SNOb z=gEBJkFMSLRM#>3WF$GIlS$f_Xf{J*YB_=efd;;5N8S#KLF zF}P8R3~{Z~Em>9u_iYPXJc;rn2*QmTlY%m~$PdfE=t=Jhk4uGp0LMq=p0=~w7YNUa zzPnCpF${zBH3cmebh^+cQhJeicsZ@c_znbw%uRZHZJL1nbFgTDT(+GuH4QIOl?n7 znY5M45|+)C^EqsuvgS-WCJGxO3BKv_XMhJ^-C3nj+u1k>z3|1EQW|a6`z85}%-zQy zs-;GxH=02Y1*XVdOfL644 z0JlBNM|GKcmQqRAbyO$?b>>t*#hN1qZt9V(hkMO~BG+bC7Rl_QhgvE2Jefv*ML$h# zh}>Z?_f`~Ld323c0*rZ5ZVo=nwlZ=5z}#_d6^lyd>T>1wuzp4hPg!&1a(bP2x4{@A zu*Sb8Mf0@&Ej!Zn=D8n+*b)zC=Mzv;r<1Iz+FDTh z9fvd3GM7ewoPY3A*49bRX(fln$?;awIZa3QlEs|-(w+~Ro7gI8uV&AY!Ltp|-7d{w zQG4$95qN^xbneXflJGrUL0HTj3?C;-^FKes-M5 zs$~WZEKx@a(+m!|S`Eg@XZ(4}Ql-6P7& z&E<6(yTF$;;PmBM=7<)RuF8{Tw3#Iqf2N2ps=aSx7NGS&gry2{EPf5LK5(tZ^d1=OBH(0F`bN>ehugI%#t+S#UXtG8nYeKxc>Q) zHU%&C){{o)&6_9O*Zl%N3BQQ+)J@3T7CF#@@mYh;?o9vc+uD^@x`f2Fg=`BLPQugU z(dz_*EP9y8F!RbtLxg;1>`%>(AD8%B59j7CPOt}XS7`ay3+cO#eq$N`!8B8+#)fir zS?fuzKUG}=>Gd9w>q&V1nyAR1ozmM#`GL|Jg{al{yN*u{&z~d~(+oI+MeNb@_{$zZH1dFS`MFMRs;dCbt$NW^s!aBXLB=%>F6Jc%u zXVxgAUXnEbN{!jDR7~gM$!lDjMG3gv{Q!1ZXIxph6VpcSS$`>Ht26f|_Hc1~+^^-j z^+#sa)1LMA7}X2){TcSPe7XhCjKo#Vz60^rrNdfH>JN{D>)NcJ>Q+`%0DNZasjkff z!(}ooPZEu%F5KPYs-~AYn0f4OwA{o?l@4Wjaa>SER=AVg78aIe;6LBq^!em~G@d7? zwpO;HFC?5eMrYnTCnl{JSS7{9N|PR01J*8 zY}S?R{$CtOcx;&A{ElU0K6g)eUDn>70blG*YPow+tPN5=f%2AoG@+?JfqIH`e$Sd^ zuID#Hkp`5@+UnVM7lRPFuj6AV#Ix20-UHG6BnI18b~$7>2dTkxIFs3S)3aEIz3-8O z3Q2ZuPKKx}V$EIzf7>jU!by!oI!O~8>(6Jw#wO7~e>TmPxw(h-0uEUY&ESk|e=#d> zZ-pWsbIXzOzqEC7Qb2Ed%y!_uVJz0(2wc7NBBL=(PbWOSLa`?0*MLQ|>$GEFGU15+ z?r6H!_`L|_L<sb8@8G}3s8+*UY?keoMGwQqQ2H+-+UGj_12Hvf-Ei7pr?s=!eY zQtc{=cU|a0`eWZ9+HIKzVbNhQgHtSrc1DMVq{eLP$sM}4*Jvjk@ukW#hPa zr#M+1#K%#5;%Sn~aF{w$zm}~qX z6v2(u(doM)&ZXe_Lt^ps5|c-utW*CE@5W8DAeL4|RW-Gjq_iTsc|q`+pQg9dHlFcJ zNcFy!bhojxT{h#)dMtQuFS@e&y?G_VqOCw93k${v6%2VENH0F@pwmIVnDlWaqanVmJ8YL=dg>Fk_Mvk|!|x;$u=rn2 zAp+qH6I#i%`Kmd7oR=4p(|%UixJ^60S<4U-ZQs*!>Qa(u)e{|!Nm&Cv@VkU*t$cMY zuhzJOX?C%1Rev)KMC>TyQ~~Y~``tSXEJZ$-Ts&b1lKBPi$Fq_ozb|k_(=6ju&6@R9 zc(kABHPCw64R3c=_~fm1c>8>MUS%(Bn^phsQ%q;d{!B4ZzNCTm6NZ?Sg*tPne$Ykw z7r%#`^SXbZi)Nk0$rFhVeJQ|Kcy9(8cqZ4U5TOB*2%ZSkbeE1(@ZXio)4vKA(`lsM zLA9BT_%iTK*Ifo1g6z>-RDgxmghEQ` z6q^2nygN>inb3x4yup3(lYM=+27Ge@&UQTIM4qIH-cJkn4&b3Z z*E5XL@+>ZltMDTuZC(dXfdtZO&6+35L$#bz9BMWGIwmG(>uauL z;l~{_rj_@rhy61T@uYlGGac%jJ7AV^LTWIiXXN>wp#baJEy~Jbt&*XK(XLaDfr0hF z`w%}sc??!Il>F|lJV87&9hXngTL$*>Tux+zHs2w12DK<-l@ti5Q|5O;oiaiKmwm{l z*n9&5q5iqNA)4b4=h2m6Tbkx!}h#p>Op1hFg7G67inu3D7 zXyQE=y3T{M1T1%B0ZT=!v>IDD?o%*o|s#6ERq&to*#pHITtpxS`Yfp7cW?U<-%POI3R~-nj$5^38Opi zB*MoCIKyNk?)qY?5aMwe;lOO5Pe1>ZQm+u_bof`_gRaF;x?idwkb z;^m+ci0tkh9f|Y^XEqLC!ELAwP1rwV?}Q$3s9nX1tDo@bRI*SW-n zqiAJy{qTH5t*z9*_b$f~z|LWU$>3zWS&p)dB5z~xZEMk3^@{ekNW&K*uPl}>4Jqz* z*r6|Z&20#E53uYekAlt*VGR&AkdKtmXICUqz&lu1S_!GeYu@H53|_+A@feMQOT`+D zdH!jFTM*#?Z-U0Mb{AKNTJNlZ62SFC;%lV3=`(DbU&l%UiYeZ(f}Q?*5g2a8`(Th& zMMWj_E&A(MeGHWfZfNKQCxeW=J(B&#V%W-x2KKIJeJ|ap^g-H-etBW{E25&Tg8WJ@ zNn4>TEm9tQ0`^TWX_iOT_u!D2{Dy}QF=C(Yx)%jFo?}V~kE?6V3@I)?uMkUVS@T^( z*T&Pcf^1LYVZYhHZ7`&+!Lm$R%1Cd0dtm6!IG$~4pj$*&Uqe^y3|~K~=X?uJ^!c6A zdI;MQ`ziyOM+_Xkz);xIVu z=4;$R_ak}Nkc!+F;%HmIBG`_O%uLG)r?NY*z1HriUl%DcJpH85DEzvT)M7v^Q+-Uz z6?}M^k95b{a%4WNO=WOPuE$ZD=>Xywk>o;9_9qiB0uV9I|HcbgN-%KL~0df6ZpR^)eO=h1_ zXO4^KLFG2bpDiIuN2QMxUVY4YkkJqkiu%rgOr!m60l3D^>SH*i9iSt+4YehBu+slG zhT@xNv!ee8MS;ZrClrNw7v~aX&pX@|A}dB?r*6x~`3GAhA15D)Z&QskuznE=eD$ll3h9sIw0*Ln5 ztM+6eHI_)0!(7ZCXv?Zrf{a1gzx}>KDFf`=&q>)jN57&tKC1(m>?zihy+V@cx8RnJ z#5lGhl=`3*F4KUY28DqmMkr;C+kKs_@!IOMx;II<&=YyJN)p9n+ROTO@xFf)1pm?& zXtPt1%e%iejUN4%*7CP1=P%{u@xR^z#ZD6G(*mHw`UFfMC_#LGp}U;9nZIKOb{*ii$w5YMGc=KCYQZ7Y6R` zDtvr%E%1-pyNds9M-G|1M&_ihO0I8IjkPY6PA#=4uwMGbgq*_Xgfw zAI9AAqCOcG)sp)D3X=8;4-fs?dYFG>HlTq{czJtY_RC~oxDUn>&M`1BgvztUR##Rs z85t#IfZ^4wO&-wwz7@gPJdhIwPNGrQ|e%@ z$Z7Bs?lj>6z3$XHYx;F1+5`f+Ejq2y#JOfhoH>rOPy&K_CD?jIp>D&%w(jO7YZLdw zI+a#E_z2jp5`_0Cgf@!-&_~pUBZs|4u8T)R0)+gS^41k&-M69m@H9n`S$yRtW zp;~eDgcmX|KEh@(8`Q}Q2Z)i87VbaqjSihjbTTT>zv$&v?eoDwy1TP8sIN~|K}%So~-z zH6(Vv4)E=x7U-*Bc;!AH9}l}=O6EpDTU^zdzJ8&Bs(#w=j%(MnOodgbJ>-K0?w2W3 zV+M++rd-+;opjhkmX?;%Yijx(5hQwgO9fif@?*DeU)Ob~%6O9|%@`UQs^`FQWz5^5w?vEZ_P7TZr84O;%=TXfIp^Q9Zl zYv-@sFdj_5I3AtKGgV#gmSS{8er#V}e-t4$i`Z?-882|GoC0`_#|t1qI5B;ikg}@U z^aw`5KXZzOVGvtjmUD7o6(HTm2V@)783O4@sTEzU94CRNZgXp30iO4js9z{yCsF?S zry5MbS0cz4QP_ykMhZy%{eYEG5@|pZ2!qG=+*z-1SG;aiUSX@b40MtiZr{aXpBM(S zVCv3$>C)4MYqu~{KP0E`7G6$PwYX+)KWNZmWNggmB{Ebf@@?}~6P2#+K>ieC%$3z2 zyk9G$l&|9MO1!06 z6sy@T0*f>>4genqiqD3c4g&PG0@K^@rfEmnk0o_lh-Ja(c+>@?DN89>Jn(2|0eZG}&mz59iT=`1PU%+J+oRInFV04iq% zL+fcNOm#3Gk5}RS?xCc_1h(+#ZZi2@rQ5OP?7K=GBjR@`fbah$HKMsT+}+h>z!y5# zwf9Ze#LJ62oJr|LzRg1}Po~(R4ATzUQ?kx*rWJWIS_b8@e#JfoU7JUb3Kve&DW*x< zU+W$F4ivuN`|zyL-9u()n?N5k=C^<8Ri?8H(eLKr@s{=188{otVqpWIlYbc??mP^H zM1bZ`BNyN%U-_nyL)Ol_z=1HgD;fu${D%`$Q!Dy&c=dVB9^mJig^s$Rprs~2Yy?Vb zt=kS%;RQEicl1_SFk|xhk(v_bP-sxvb!ty^N z&FKM3QE3bswAE_oyq+=8Yj%dEUflh~%|REQF})kzV&)&WqQL`pV-QN!n)rP%GQ%qP zf`IQUG(cDjUj9bE!z zIrzpS@^hj02t3>6oz+0~-=t7FU?>bW)^fRe`bHeM;1=`LJCd*|MST5i*WC<~=9^3% zKW0{B?n!cSsZ$T?^U;JaE$*em23?xwARA5bPa}5{`xCiy+_NDcpTlSJe?$gS5|F%gz;v ze;rOV5?)tRLyljXPt3v137L`^JBvz-nWB;(GfVXUWWTMO42;kuGK3fJ4+ONZ@g{(K zCmmm!*f}-lQ{RPZbJ$V|vMYk1tR?SZkztdD2jl4*L4lM5Tej=&?T|`eINwTuwcLzp zuzeozrDN+HLj|2+G35DM#S-gdoZ#XO@*bNAgFoW>BK199bat@`(5eqjgr$AJc?$vl zk(efq2!V2dC0ImlL;H|$rrg0>i zKjcADpdZrYg2}s2b(wo?q}%F6Ej~JNv9SYVPV#0wsr=rpNMF(LLj8lmkecC` zIiB>pV<5#Nrgei$&++cqw(2L(XCui)>){v|_?6li$NMUL7>&bX2&&)y3w{Pdg z#XT1~OasRH5erag8d5O|?~;Cj?ZpcsE#tipov!#O{=gfk$1>ElVoFk!8O%<+dN?o)&~>h1>v)R_C@%^B1k zG%;A&jIEkAZPi=vAL3diB$YUVFAWP>qQxxG@A&LeFZT*{cQ=5H6OdYS9!i_<$h@VN zUJU?G0FM)aYK?GUwqwvGz?*_>SV?I;bpc%{tDry;bYfL!Y=AJ%;_~RTtZeaH~%)9O@BQ=%L~ zSY;NFm8(dMa=Yf>T9hheN{~wEH4ygAW5DBfxx|6A+BhRC%TytJ;XB?x=(GD+?ghH= zPg)b7@z`L8$%DQCBIe&ks`nKbH5d*W0W@ycE)Kt)``DxckWlgs-qA5I%psxJ=xUGv zpm&u%I+1B3{P$l;StG>Q-+nV&*RlU~QSCbeCATGd*a@7GC%eJ+K<|-E{~=biv;Xga zA_1d^^z9RamF32;%Kk`e9;8q6Iqiif66TodQ*VTYy>fU31*y5!hP4m^=Jmv&t*IMV zaE%V$`>4@)V0_IJ-`yHrS*NTx^n9{IeLMoJ;)@w3&>Aj9vB$2{JM=r}{BMmDbckPE z)PL!I3a>-9y1XO|_1Z9OM+@|o)t%fl{gZt(&_lc-wSeoT19jSg- z*AzVo4+_}D-7GfRH0D{cR7y(o=l29b-eV-@ySzK2m!JVVwL|vdAqM4yH&J+d$#d~i zrZ;wk3U~L-03TXry2e&I$}+2RK?gIh|0I5OdS-AtAY`Qm|Y;7WZga;lpX9Trz>=gn82qDRR0UoplJctSI z>2ymP{@zCNX)x5P0c!Q;Hac;Ef%3cth$fMR`skE3w?$wK_isY_?llS^+7%z?pN}B_ zP@dw5C#0W~H0h`1`nh>{_&Dump+$|`>Vbh)>7}KHp5o}VBffM0eI1zm)UW@x4$R>b zZohnE(y@3*jF#y0Hz=}d7WcHfJ`E%s!Zxzae4D*fCh;FcdcQROi}ENtmGp*E;ls`1 z_j@{jI$lRE0rpi{U5J8i&HV=BgF&n%I@lKsMKKs?)3&^aTKSFu&jb+x_m?dI)(ats z#Po2xGYEP@K+!aB#r$G10MF+lXa#zOST3ie_{}pL6s1;EVP1C1hTHP36A!LYtMixC zu8#=mqe6hOA9DUE6qL~=qKn`Uc)s7OEKezGid&U=*AQdd7hp0E(8(v1Y)bCGf~4#m zOkTRbyM@$G1Nu2|GuhihIJYTC9jkkCX?;$IPOR*;yG^Yam%!dFDYWOKw{;Slwu<`2 z217s}Cb+w_S3tfEc3*{)y{}Jdd~&?|YTXiOuO%y-gexLspKot%{SxVqvHDjP+Y?N1 z94z_O5@_=^P@^tgHYmc=ADl;>&~Me_89P28Q~x+1m9;gSbshM`B?7}wh$S1JQ>neV zMJr{*RXQX~cPgp7z$p>(0wpaW1QGJEVkAI~7 zH2(2O(R0GgbN;grSe7IVi)6Z-E|o_j&H`1fPWY&Ig(DYWIwAOsdDhu15nMOV>M;)h z7*gLe&QZ)Ae5(K|xaLJ@n;Ac5Mjp3=HVx}|1~bAwj@orVuK{R@}>H;o6gb8{SmW|1?umoGqrU%FSWWooFd z)kc??R9yzb=hIJ&Iq9>frM>~8KzTyj^l>^<^E5X{V#4zlww%A20s^K|@-8KR2J%+2 zqM`yk4`A~XKl#$0pq1@UC9v1#YT3ymmI|RNu)zbygVP633AmMz!NRkwpiWNP*WdqB z@}&Os2gm%97xfr9^4RasfI{_mr_>HP_!y*_IldQk=IU1`Q1ycfmBm1z;R_0R46FPG znE(m!r6#=a69si5J$a;dzJW7ng9)ttF^EvL4B{CmgpCM_B!zohRjFQQ6)X=dPRHbK0BY7&oWM ztJQ&^HXxW~ebDZE5?Dd{1Abzf#afw;kU$3AgoSOHVDB}O?a7~{+r|WCDWTGhd*(6{ zqbofm8E}lgAdOq~WZ9f!VZt{>VxBb@j2G0ItgXxu;F1DI02~o&|Jli8F&N-YkmC^^ z*~zfHdL>9P@EG3f`ZR&mYJ@czJ~KOcLfU7sgf$tCiCgyWUYhm@A9DSK36^tgJ5s4s z6Tm?))82GY@bb!KFZA}R9(aDadu!oc@-g;_Ko2+Yf5Nd+!&5*dQZv11w0&=*Mwnk? zo@_;fopu{ZcOacO?6t*zJG(odm%Cjm~u5d-XpAf}i`-1C+f^t3BX<{KoSD zU>^)98({mNf!6+4CI}Pr0(36_e<1aLyU=tZ@Lk>0ue<*rndIN!{*;<3bA&wb^8fga z3xqum%vbL+|NE!?AAO1$Fwd4O+nN9I8~>l&O3T=M4P|Bjfq~l#OG|;mj|UeT*&gAQ zH8g@=zLYnts}^`PG7}VpVu0@!QJgzBapWs1iGRDu!9$2sML-5LPbUS~$i43SqM|G8 ztCAks#<2PQqN*xT3P@_2JJVx5sU`~aW=x&u@A&8G$G|_Cik`Y9&9NR+{V?)_R1BPj z5R`Pr@*TT(fUL7>IZ-*ahC~}dn7NBiGbbkI&H+zl>KPrSRoSt?#l^&s1O|SNj)}== zH)1dNGx#?$Y7nTW&q>e2%`NL_#x@h#c}9Ze^5vIcwk#?;zjTG|69d%iy7j|Z8C6we zbtQoH2}w*xhvTEwm3M3GRd4Y*HmUJYGMZ9<5Z4W>-C&#wfj&_a#jM*iGjx}Pa_RgY z-;aL%Iy;r&#<`5~Z$LxbaJgs~SRO+V1JzjhwiXdozU|MlzcwsQL*>z^D5t4% z4$$0ZA<}-*V2G!#a@wwwE6U-G%3hP@mD_6H*w}FM*0{Wz93M}SlM^4Bp3B>wB_=L@ z0e!L#d6IPWv|)vP4o3w@%^WIW#O{t63FTR#zajk?i3nLzI9@bn;C1k8?&ql^@*x+` zUN2XHC=vjQg-k?_7=i?5m?%70EX#KKn{XO=7!!4K4M6g2HFRcdyd9ql{>H zn{Z%+$a($~!a5&m552Gjp07+`6B@3uN3X9_c%HCzG&{{_Ao7jZ1?v?=koXgpbe+rd z{he)L^8>4nt$+}3i*yqLs=oeuy7=u>~ zef|$T-;YH2gW-8zlhWvKIUlpq=rcWT+zWUVk9)uy|bV=-)Qlj_3C>cmI$&Nr2^gg)(h|9uZA> z0waX)%>{r7lRpka8F547znkc*QItKIk7@SSbCydB284Bf3#0O4a)XbbE2{B?r4 z)}9G(&9Z?-wk{Py+N>eboU3+(*%A^s3-+4q9Y;s0pjcLa033?2)ativ^3Wg>Ex4`~Jy)mqO z;~qfr&&A9SY)fGay-vn{16V#$j-E6zd>;C(EoxjQ(8I~e=`+=yTra6|YimUEi4E`D z*4>?7#_?4OaR7%Ww$I`}j`3*cC2+@q+7EP<(}ZycAQE@1oZw&UwoLT%w*4hhYV_JVpnb{>eer|4f?#fxp1}jfpGTI zb>i&>=j~Gra{&|lD2O=aS8*_7qDBKEsuElEy>d@J^jJtZ^vN;den_#(d z&_RCah{%)>?yYHPkiKm-MobF-d8J#<~=MPXkd1x-&i@DWw|NQ*Nx&kD6&YsFs@fo zPm*R)<5VV8x4vIYh9&V!@JuyCFN~H9=Ib%l|8lu9)4mv;(=LWIrKP2LfF0JpxjK6P zTIgBq=49$ANm|iU@Bj#(_|4T-WHdUve2aEX`J>ANVG#$+zih|Yb)SugY9E2FS6N0d zO$uQzV9L07H1Goj4LQSC7nPsQ)pAO?N=(I)T8U<@8HwN;eD=6u)V_BphMG>FyjrLP}C#=6PDv^0?i?f~hepB~y5qa}-Oqi$_xpV7`~GpcX6ZU- z_PNh}9{V_seO-Mc8RoSCj-}B?YZI>i8@sz46aiv)rW{#;L2jX#-V0y-E81ehhU5*V zERr`;2m8p?JwX~Lm5Y95*mJ<{Mhhy7^d@$m4uHaUD)PbEO)TSNrxhD;x%(vq@CW$% zRC%KZg_Xr}^26L)NCdo04;ldZvBI~IzUuCyjRFhk92HWous}?d=yzYNcHO%msXsXS zj+Iq)u%A4dXP=X8#&Hz@vvOnpnzInIcDY6>9q(baZGP!C6^NcOA^l_X8FuR(LGS zFUSyH4wf?Tx6(9yFnBxoVxHkdww6IT8&MBM*yj$d_Bo1#TiWJFWahu{M4egIM8YTu z+dD+?&j@P^K0M3HSoU2cq`DUnl;-erXX=`45w`Y>qa#MK(Rc=B%HH8b-|y}0%-34B zVzbX}P=K$P#h0@_40YeAlCszOC8)eSyJLsqt9`J9(}d}`n z`P(r(aW-+<%IrXV2ikEr5iYRpT&z*ozN-JqNAgZWTSLott{_rFd#wr^EFsqVoz{W4 ziN^g$9MV%pUMtj}X>)AFzr_0f;8&ds7CDPm9mtx3iPDo%8 z)(ZizO8ipZl5l?xT5dkYXW2(h;60x%Q7&2-CYlAqmV-u9)gvVvXp|DZs8Wz5<8q;z z#qWfk_9e0Dhna?W*_cAlmdMb$t;T%3P%^rb? znmm#3pop$J+}5uaK2dz<0UK?u4=QZ``&j^R$wP--;u;> z+X8Aw=}83ZHfPyRXN$1IG3fb}=ft+hl zv)c2TZ;%aZWEq;xq0~-BGnpKOjZOOx;^J*)3mIui&xkqtX!%mJ(2^x2dJ8=lHiWLJ z0$*#r#cBA2xxApKQP3}vEz=)l*YS()xd(e#WGi*QPbyTNfdB0aF&u?un&Wjy7CvX0 zxj~en`{qO<t)g|wJP1(!($^R5;a4^^qFt*-Fr$>mzJ&npJhxQi77Nv7!!7OV5~ zZ8lRtcqH3#Y*vSI4X-HotMtAL0Z&p=QJXaRkb+8izM-VfPX8w>R!D8lPI)=lOKON_ z8#k8XLNQ?VdJ;IN<~OeGdLQ6zo#jG~yUj7q-t#Bz8RR-XRnFT_*V(AFcAuMXX5W{N z6Z^5x^1@dHk;J_z48B_} z^cDw0x#6es+j=MBenj%G!*lkT@Tm}5t)`U>KrO~~pKUX1Xp~FwcB+TQ{P?;HIGko# z9W07Us|@ml`UbL#BC2gnU30;LrzG>2Y*77UQ1Y!)d)YC`yb~+TJ9<@@xoq1-+FDP# zb`7q#H#y-YwU(VA*Om-%-kU=y(M*js^HIODKANZZRMPd{ zIb(WjenKlxFdML{ZUV17Q&Oj7y7H_)o2pDf0&WXK2K4JF*N5x`!O7OT2uNx4Z=75D z4{)z7I1po5ctEGL{E_}WNYisyYU}CpOAphuFwFmvJWaEaeKMAgpJ1XjaZ1A;d3twH zdo@*bnt)P!7u7$D7AH0Ef+RilOGhoewx-^hl$4bG$So=^4BsGzA=Ui67w5H{;ARY} z$k7@q{aKms!=0=N|9uXbfpd6_-9^pV-z7fUQ5&uLkiU!OpN8@8_~33>a4VCxCE{cQESjYX+edx)zsZ_-D}bKG(*Aay6Q zZ?mi|UtxooiTFJ)ux314W9TBR+nc6SBGEm-aelKWGXAai4#X!URIy2-?_GcMp?mB~ z01-^xTROJ}lHsoEq%Z4IVCvj^vps=a=li#>lwe6-G14Jr1LG29IG#p9Fm84iSc!^? zpNf`Nq4q||`{uRV-BtXl>3(PQGb=N^iQ^Jg-9HX>hhf9ffAgjQ`{c$}29e!L8;*8$ zKk1&7HbwcX(5YM?YuUXh8A681a#Z(B| za@KWn<4Jlt6HkVqmmvj-l+{5b=awt~Y>JY$cu83c{j>EZW3WvGFo!$ZJt| z-$eXjz{CGaene34O+`179h1xaBr&M0RLC?d3J9r!)pRk97HU6j@L8q4qrKh3?3AukT>~iweZ9ZJPi={e6g?WOtT5@{e$74zR z*kVbvAd93+jkvoyp>IiaDK@K`@*7?u$ah!PB*L zJ9^CP@o2ww(+NlwiQXq2P8!=7N5YIu%5@c)--^;-KPX0aAy1E^9pFYW@ko4 zsg!o--t;{fk=L&eN!%Zop8O8!<*1et?rY&(=C!djPW+G3#MI*@{;gpA^^Jb+zVl0b zS^r4RjN^}p#lIu_76mwq8XC^JwnW_!`6yILN0|g`)+RD|GkHS3S}2b!93|cDl8Xvl z`-i`7cG{*Vs#=i2R7RgDeeXPm%lQGkE3|yFc5IGNvE4Ac!>+$4=|*=h+Ocum2ag=fevWD9H+k0v>&->rDrXPj z^j8XZYr_@}zwiEJalnMGv5X!jh@a{UF*t77z4f+A>Z4TmK&4cv&GLfK9?>Y7I~$V!cOlGmpkMG zgn6rIu6?xsj#?nYRylG=?#|!tN9J6AarSQ#z8rWCYyi54&#ch%C@4hP|^qq z6-k6=_@}H|n#*yo-{t3@#5do_kDIVsYfRl1f}}hmkBunAm)Egi2F2fOoWdwpJS7WN5<++edeTGYV|%Ks<&K>LKAr{Z{F@L zyeS`HEjZnpb&UmqmobRYa3d2PfQ?GPL;zw&b9A#7e8%^r5FAp(FWI#RI=5;DE4VEoa2 zKR;HbIddG8jcxhe@2@c&C|Q&Ts2p|+N(U}utIm3X?xa{DeTageLi{CVoD40|eQLEq z?mp)S>pQ5g8>TC8^2EC^!H1a)Io%KL$G~5RVQqU^46y90+aOt}SjXM9V^~Vb!+nPz zjp!rm`KWkT81{5NIInb0nzG(ue!je*9`x@pbq>yymJT$h=K+B#+EXv-0iW&`?Yk7} zE}LiYcr>u&ylC<)ewBSdLUd;~l#B4g?3eiXt>*Id!_6)_gKmVySbfS>p`w11+j@YB zV`Y;C{VGPeR(0O*5Vhh?qi4r0#K=~Uyo+62P1?$GQ4EyNHxtVbfB!^*E$1CLsvMCV zY{y@TqrfhDD4@-85Hxq%DStIN+X(A#1-amZJ)p%9+D3j4HiT-fHkm$t-a^)aTIN&b z$Z7#kB1Mk$_(R#nQP6278AUYUDr*(S-~4(ZY3+Qqoz{xmB(?eUTS=Cq^!&-g144p6 zZB7KuUh_Y^NtN&Jrk`` zFK7Pt-bcY#5@3Wjs`8j}STP5m%$dcI|}oyhD|ipQoqAJu8y$K)!@~K7M$gSGprb zpKt0fRwm`wV8Wys$Ux5k{HH>(F8!myw-;95)&E)5L_cpKI{X zQ4kRk{QdrG4G%oL2y0=>@Y?_SJWbqqH0Cvxa&}ws;#>V@_0ZT)(*x(9Gd~#`F_xuE zunORz{eFpHugbdc(u>o|UyNA-SXOo}_s#F0rW|X@QayOi_H(6(7A8uWc1nz8iV}>Z z|N24ySwm(U4NcO8*|*!o<3FDr5g{AiLFIoq_mjeUKhW_qm$wU}OExriQgMp-``J^k zu|?29KPpG*0r7E=>dL&5t=nPCGkWx&=;gj61H~3#I+4mUmRaR8F8=S;#-CQR_GvY- z`#-BuBa6W2U+dL>8TbD9=b{zM@i9wm+0XOq%Lr?GA3>8ZhzL;0u1o^?j>!C1%|O8X z(A>yGNqAkUXS@$6)H!x{dqZ<2r=^aL)+N;c4kZWY>q&_l{J+9G0<7G?#ZImLpG`$X zh(IfpPsMS)cf)hq8k4Qj+*CY=EnsU^=~%ZRU|M5HHlVzTWJgAP_pxhnQ6<8fjX33tzxeX;m9^DNezq>Fr)wcc09DV;<*}owQs@QCQ_9L_7{UIt+|?`#WyT^IueX!Y{>e~ba+2rAg&hc z)V??~DFc=d_2WB9thbsL->nkP9UuIQfGcOMSgy?;%5ignc-AJtjV{Tn$Rnx$Uu!&N z@b?!8d8JCx_L^g|{|SI$NY`2(P41_H%l6M2v9Cn~PKxBa&JP?7x#{QqfoQQ%Zx{mq zIM?5gk2%G1Oun89$ZVZhKfcq%I}{A@UG|kcr`dhKlsUP*7a&yD6X1?VVIv5@ShXdM&duBS>Byw zRo8A8Cha4F4DZy291PIm$}pCh)AngTMIzjfgE7T&Lc5+0h{O*Gu_JuQZy-%9qCTSk zuif^1`kfa(k0uxY*$Cs9uC(LCT-U6|w9A6Vz!K#g@$CrnHy0Zy?V4;%90ao|U918x z(0=0}W;l1d(&5eMNzFrb2-3@`}+zP6Yc9p&`>W#8W zOr}hq;JyW&n@jR4d+T1d1{)P~9X95@e?W>H;tMt~+!U{>c^ZQ%y`p)=!s|QvF2tN2u zYgGBpun0m{I@6v0MA>q90!|E^TFK~Q$3#1nLXNpA@614dOBBHor9`YJU?i_mI?Hb zu6E&_YkviJOY7+*@u~z7+?qx z!6GLBTB310Nsu;yx`L!L7Wk;_J|}`4rI+0RcJ%?4OI%~mRckM&r9o3SAxEIqz3^3R zz&F|T1LSBCY~_SO@&L>B9Xy2Oqr8rPhutdxR@lhaTwY4nn{>Pi})FqtE`mdke0 z`6bfe18lijHffu9nBzukpv@8TjUV&l$E{?7nfKcDj7m8oG|dckbkpq~=hVv`-bk-i zmD?N#-3t;(@tKQMKjg4yZ8|)s9BXo*3Q5-#R`wX=e~yZe;-VsRl81%*TzPG4Sd>mk z=e{>{)qP_kbM@~C)P1^jjhpJDtT38fn_&WmzWdb?RTBHL=o9^G`Ky*U`CU!?A}=%k z12{m=lc%%1qp(!!VIpzWYNIL@@9+thddE@0{^~rh#R4$ihofbv$zwCFdIA)+6U$$ZXcTy zE`wdhU+vLfos+NL^I=YDnFpG$Mb_SZ8!XYQ_ zo7o}~&xeRXA2V1eKQ=kLl1LC$YttYunx00ThQ?_z&<)UF zALoMw0pPQGoP{Zpm_qJ1it&}0UFKpkpeapO6u1a0Med%-br_QF_+GZB7pu)=30WaV zz2@eU%#J5pglYnL3B+Ns>A?LGC|b3)v2&XlL=$|v|VApzYgF1QNyY% zV!G=>+wscq0DQQl-BE6Y`x?E$dcL1ZUH(trr}Z*qc=ebana*xe=V#%&L+>XID*_;q4og^=F>FF+q9IIRo z-oZlVM=H^j+MQicN+?50P_7N;rT?ju1Z%}qq#+n3S*qR(#5`~1Hzsc-=+`{G*q&MJ*g$V zK0C|Di~4fP=DF`qu$id(te$ygkpYFz)J}4Ed8)fof1ZvHI$_!?fggrV@3mXMsdZX- z*;TRd1|X?7Htt?H{`FC;O~J*+4*l}c3ZnOve?a;tuKtY@R0d)&&~3r2Rrai16uvuV zqImyM=4&)eNK5&-w`u;vLT$RWa+TM`AxWuWbDNjVmE3LXKFdF)h72r>Y-}My;{Zr1 zh5mw=lDsYZD>b&EK>q*cJKo}UHIzOv=)9c*H(c&|m$HrQyI3PJaNcUwc`$gzbN|1PU zyeU1UO@|q-ZkwD>nrv2z_3^-pU$>}KYIGf#^4Zw9=KLmbp1R!be13}QC*+Q27Fxuo zH=m!(R=MSX(2aZPbsZrCtAF_tCidlUfnZvk_=rCY5g(uVt#ZzTeoHZ<*+vKh>`wrd zkdPdyF!P_R&FX>^Qsvd5WcyW>^lzy<~UjgL!1D_kk|94R76P@us zulCR-oO5GSMhKOgEF|<{4w!#$UN0Ev5rn_X{Z&6B)$8H14!pCObC&WioS8-PoP~p^ zq$PV@5nk^IrV9X&pB(BXY^8Pg1`Vh*^=mQg>)d#_B7-saQgb)BIo%LTDeD1>V{xC* zP>kdRqUD52|3i4I zOK1;N0S(T^)oqxpMm+vq3F^!sFIYSmw4jTt0!UNMhWjkg?;jX9X*73+0pP1i~_%z(3$CiypN%<{#`2N ztGiHO?-m8+Q{Kov3&S+rrEL{SfLR-C77!y` z=yxg$H8KBT3L$j?HM)-^m5??v^2@^`JWDaZ&cbI&^9e6qksE`8+)jKE4LT`N8Dd@s zZf-r|55~L*My8}}vri-N4(=?F{{dj>o=A=dTtl~Gy6}rh!H;uY6>+?bVPCfHXt7|+ z9c-VRHwUoyJl5~r-@7@80{kKprI4Gk_5Fmns&H`AK1kW%e8k4met|DII9MV+zdzTq zW@Cz%nOW|pRZ0Mx))$J9&MkjSL4Mf|i2n@PlNMe9A4^hAI1(g?9^*QXr{mHbVvT)* z-O^i(uRCP-Vtbf9wD&W&1zzGlCuG(LYAes55@eC_K}EGlT-DV&nTTUBB~froqoI1h zStv-jlw4ih@YNNE zKV1(NS5>QU>yoOhJiT*Lxk8ioxP-HqyAZ`Eu%n`Jnt!?FqO+bqb%{6s>BEPuOqn^8 zp^|$f#BXz-V$nDr>?vLV_~sYORQP60C)hxK2vrXoAKFQ%p84$=Ze`oq3Ck41MnZKe z^})|&yaeHoH_tbc;0XpqvMP>esqN=vplF@eN`}&ibEU_dJ=(zld;`Reu{6>A92|ZYsI~uV+mllwx}R z`RF+=;x~G^N08vp?m4zh;Njgde{MYMt%XgI!Dln-$I&Ay)!m*dKfk!k9@*j1%gWvl z!aEb)CNquy;+BVPoF&X8Wk1zPUgnez{kO5V9ZZ<~#%kZ4G)q;>-zBkL3!uMv@r7XD zVt=L8lQ@Q)AB$|hI`L?*m)XO?xA+4-$x{izv#O?vB=p6xo~gi2F4qVS2*!w)*xE~O znav6f#hu6!#1w3_4`$2c>w$#gTJ12k&BI|=3J-U|;XQlir3MYmNsPK&*A9_(eljTa zD#Bhz&kk4H@!#3%FdXBzLuc7nT4bOoH23ARAAGoMc6dN1>8VEU(QC&odWj(?kJq;x zCw#siXQzz;I)wN5^h*$KgY{`m9%oZ|P$+9W?w+E4_Z=7sysUcRYpNrn@CW_tT$GiQ<81jdI1*R?gJleP*>)18 z*JNqD^RvWY0|kyJ^GFe2p{Vj29Xi_hW7Gk zCf-Wu>`rNl@@Z??Tqq!0G;lWU=u5(@?nf>=LRu>cXWh!)8g=APwSN7{EET!&=Z|=T zWLG-(;4ss+P#-fb_cC3{AtXnXuG5BIyBzKJLe{H^<8Gu-6!|xf*MRkjzSENfo&B4r zBEdBz-o2O#)60YXhx;ab>q8hr zo<#cNNL)I7NnU#oZ4bECF-cJeCj{pS#&ku@9?(gqkW%~^uU0QFGxOdvu-}j3PZ00n zhm65@Uh@PX-CmMd2lRuJ0dYaENKRv(8@LNGVV1$aHhSNw6dUln{cX?=Pqz2V16MS@ zWR}IDyh0}$yG>zicqdP^;IZVOy~?~?aJrqke5g%F^fefR(3Ow23{r)^etTi7Z+zdv z`@xh5q(?PBtIh(8{IFGCwf7eDc>`9Wo6h|r=p>p zBS1J1OEF;%4I=s}nZtsmS*8)_w9TR>ES7hnG}#~!68YZi=xqh)7U}Nv(q7?0(fS_P z47vMh9qD|A$VTXQ1`5WZM22cLzL`@yJPsT;w4Kmd7Fx-aRvfo#Xz~@-2Jn(dJC$I@ zQl#*WNY{kx;hyW$p-%{dRAOvS0aYulFN@rH%X&XZo&zjEVmq;AJft2zi7o&>kaZyk zgkJwViRa&$%PuM2%T+8$e7~@gGzAGXgko85m;p5VR!qyrhajtf5d3 z<#H*nHWi!*D`wO)0Wa@l;B1zVRj_ma_3|4V0YD_ujbA#CiPF-)Y;TH?d!yG4lo1VSuy<#XJ6 z4zUrm7)45;wMy_R6~@+?TyIfEC`NHK*}Jaas=Z;2L70^Da8`m@Q>kb_D|Pw=m1lE* zGiyV4f>PL)!~;XH-+0QPX)2uaq{tX3Lox+J-H?7OvbwwscZy!^khLWTYO~to=ec-G z;g$7i_5@x!N`jr_$rg_jzRk5k;a0-XF3)?|m_&Q4niA*r>aMENWTiB?RHF!^Xq93-H{XMKoxx*^TU@pBp0EiJg?CX*8aAL(Wqn0=IH3b zl-`LGd;q436~e99ivI@(JPvugP%yd{$Oa zbrPfAmAQYp;v^%hasfIeUeejlL>Lg(qm|_0f zBl%85iC;L$iHKyEK^6?`oz-%7oyX~38JWdPU$dJ8Tm1oFUi;vSRQL({-zQ&QHmP)x zx7JI2PN6ZX8L6Us@0aEOb}xD{E-;q?B-P>*G$=jKS=<91k;DZ}X0U89q0MYT;>SHc{&75au z`H5V(*(BX|kYm9oD#!S!1MGruI#_iwBl=%KSO41WY+-T}=eGL&^}OWt>5^x9&3WYx zyJr0!QkbxFvJTW0&og?WnKJ_=LCExqeU!~g`$37rgF!`oho=5h*~2B_dA8#%7^$OC z2j$B<_$>wJ3szoqc{3MvW02m`3pwO=E@=C-B5>t8@nyJY@rx&HU;hK#`kqWzIzOPr zw4|z!w5f#v-=NaA{PY*I&&Cz!56}4+0??^Jr{HP26XA&XQmm-I@k{x+{UFr0Ev~R< zt*&;cV5b0>uxA%pGK)F|C39Jc0%^6p2o1sPqLF`je#X0YQ?!tsEn~?@Tv3w^#gDfN zIc(uJ)eWK*Axw!3;#lZ>`6-q#?Me-e0^WrHNqJc}KkeD#V*b~JvzIVoV`^e`Jz!Rj z+xmcHJkgO^CUZ3_#=0|Psu8_R~?79?niij zpE5Td`k}ftnb*q_v3hB#d5zBy(;Mf1zh2@kN(xJOmxGRlm9#O!=T=>_&Z(<;{M6vB z=D5he!09SGk0OON+8c$6c;9}gTy&`n_)zn@{=LzAdlAN^vLEF3%V1mOc2jSOelVqo9yeb8baR}p9W zxc+G`^Q-r{uh%}|DgdaEqwRN6xpVK=z+;-%D%hgvlQ3a(( zOEyqmN2zGoJhC`wYD^bip7b?b=H~S_>#KN*BW)Wd(#O!S@02i7k{31`HK?gZr_9vP zIhL0CI6S_77rb*%2r6-?PIa2oiOD)>S{olZX+dU&<`+eBGT< z290cw8&p!Sy)oe=-!bF-#v;ULMmvYT3mKG|+d3gP`}ECgUtxmp>vptf$DJgV#0?hh z>I9pNOjs)GAN<6ZYa797TUO?f?8GKS+(ejpZ{s~lJHxyC4pwc9x z`uTp}_NwdQ{-}SqJ=|n(p&e6RlDFI&zXkEW2_$Wjyc8V7Bv(z0!@jM}YJ?$ydd}b( z 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 z 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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 076/180] 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 077/180] 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 078/180] 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 079/180] 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 080/180] 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 081/180] 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 082/180] 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 083/180] 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 084/180] 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 085/180] 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 086/180] 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 087/180] 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 088/180] 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 089/180] 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 090/180] 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 091/180] 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 092/180] 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 093/180] 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 094/180] 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 095/180] 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 096/180] 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 097/180] 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 098/180] 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 099/180] 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 100/180] 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 101/180] 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 102/180] 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 103/180] 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 104/180] 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 105/180] 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 106/180] 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 107/180] 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 108/180] 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 109/180] 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 110/180] 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 111/180] 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 112/180] 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 113/180] 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 114/180] 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 115/180] 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 116/180] 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 117/180] 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 118/180] 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 119/180] 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 120/180] 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 121/180] 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 122/180] 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 123/180] 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 124/180] 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 125/180] 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 126/180] 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 127/180] 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 128/180] 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 129/180] 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 130/180] 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 131/180] 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 132/180] 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 133/180] 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 134/180] 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 135/180] 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 136/180] 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 137/180] 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 138/180] 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 139/180] 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 140/180] 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 141/180] 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 142/180] 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 143/180] 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 144/180] 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 145/180] 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 146/180] 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 147/180] 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 148/180] 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 149/180] 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 150/180] 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 151/180] 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 152/180] 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 153/180] 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 154/180] 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 155/180] 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 156/180] 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 157/180] 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 158/180] 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 159/180] 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 160/180] 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 161/180] 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 162/180] 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 163/180] 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 164/180] 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 165/180] 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 166/180] 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 167/180] 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 168/180] 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 169/180] 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 170/180] 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 171/180] 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 172/180] 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 173/180] 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 174/180] 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 175/180] 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 176/180] 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 177/180] 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 178/180] 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 179/180] 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 180/180] 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).