From 5799ceeaac69097f24bc9f82e161108e74049de8 Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 15 Apr 2026 13:49:41 +0200 Subject: [PATCH 001/356] add niri only if #374 is not successful originally identified by @ethanuppal in #160 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6759029..c2e3eaf 100644 --- a/README.md +++ b/README.md @@ -725,6 +725,7 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors |---|:---:|---|---| | [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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/commit/5ea9092a4954f8c5cd795f0ebec910666b367d5f)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | # Why not LLMs? From abe4c8415398c73ae750b0ffcebc4bc8c7197be8 Mon Sep 17 00:00:00 2001 From: lejun Date: Wed, 15 Apr 2026 14:07:52 +0200 Subject: [PATCH 002/356] Add plainTextAccounting (#235) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/235 Reviewed-by: JesseBot Co-authored-by: lejun Co-committed-by: lejun --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6759029..0604401 100644 --- a/README.md +++ b/README.md @@ -663,7 +663,11 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | Name | Alternative(s) | Evidence | |---|---|---| | [Actual](https://actualbudget.org/) | | Include [AGENTS.md](https://github.com/actualbudget/actual/blob/master/AGENTS.md); [Used Open Collective funds for Cursor subscription](https://opencollective.com/actual/expenses/277324) | +| [beancount](https://github.com/beancount/beancount) | | Main developper Martin Blais [used ChatGPT](https://groups.google.com/g/beancount/c/_7udAMlfLAg/m/o6PazGuoAAAJ) who knows [how many time](https://groups.google.com/g/beancount/c/cz8Xwnb7BLE/m/LSA3rTfMAgAJ) | | [Firefly III](https://firefly-iii.org) | | Include [agents.md](https://github.com/firefly-iii/firefly-iii/blob/main/agents.md) | +| [hledger (v2.x)](https://hledger.org/) | | [Explicit policy](https://hledger.org/AI.html)| +| [ledger-cli](https://ledger-cli.org/) | | Include [Claude.md](https://github.com/ledger/ledger/blob/main/CLAUDE.md), notably [used by John Wiegley](https://www.newartisans.com/2026/02/my-claude-code-toolkit/)| + ## System Services and Daemons From 2d3a5f4308d59e150e32d0464069e3a112507a67 Mon Sep 17 00:00:00 2001 From: Robin Syl Date: Wed, 15 Apr 2026 14:20:00 +0200 Subject: [PATCH 003/356] Update Telegram (#376) Added "AI Functionality" tag to Telegram with evidence Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/376 Reviewed-by: JesseBot Co-authored-by: Robin Syl Co-committed-by: Robin Syl --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0604401..6158477 100644 --- a/README.md +++ b/README.md @@ -529,7 +529,7 @@ Also, there is an advisory database of Rust slopware crates, which you can use i | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [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))| -| [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))| +| [Telegram](https://telegram.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | | [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)) | | [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | From ad069c9b12ed4a99740ed8f1ef450ed92b4e6870 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 15 Apr 2026 15:13:20 +0200 Subject: [PATCH 004/356] Tidy C based on new style guide (#367) Tracking based off #325 ~~Currently a WIP as it depends on information from System Services and Daemons section, needs PR #369 merged first~~ merged Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/367 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6158477..aaf93e2 100644 --- a/README.md +++ b/README.md @@ -451,11 +451,11 @@ This is a section for repos that are similar to this one either because they are ### C -| Name | Alternative(s) | Evidence | Notes | -|---|---|---|---| -| [harfbuzz](https://github.com/harfbuzz/harfbuzz) | Not realistically replaceable currently, use earlier version. | [Core developer enthusiastically discloses LLM usage](https://typo.social/@behdad/116172838540880597) | | -| [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | basu (sd-bus extracted from systemd 2 years before first AI commits) | *See systemd section* | | -| [zlib-ng](https://github.com/zlib-ng/zlib-ng) | [zlib](https://zlib.net) | LLM-powered Coderabbit reviews are used extensively for pull requests: [Example](https://github.com/zlib-ng/zlib-ng/pull/2197), contains commits authored by Claude: [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) | | +| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | +|---|:---:|---|---| +| [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) | +| [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/) | +| [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) | ### C++ From b7a823ac1e63c232c96d3396e577d055894be3a6 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 15 Apr 2026 16:34:59 +0200 Subject: [PATCH 005/356] Add last untainted commit ID and Gen AI 'Art' evidence in profile picture to ch32-hal (#378) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/378 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aaf93e2..5342f74 100644 --- a/README.md +++ b/README.md @@ -438,7 +438,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [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) | -| [ch32-hal](https://github.com/ch32-rs/ch32-hal) | [![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/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)) | Official [WCH C SDK's](https://github.com/openwch), [ch32fun](https://github.com/cnlohr/ch32fun) | +| [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) | ## Service Monitoring From 844c5f0294cd5aecfb4170cf9ab949e7c19c3c1a Mon Sep 17 00:00:00 2001 From: Haijo Date: Wed, 15 Apr 2026 16:55:21 +0200 Subject: [PATCH 006/356] Add Qt Creator (#379) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/379 Reviewed-by: JesseBot Co-authored-by: Haijo Co-committed-by: Haijo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5342f74..cea23ac 100644 --- a/README.md +++ b/README.md @@ -411,6 +411,7 @@ This is a section for repos that are similar to this one either because they are | [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 | | [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 | | [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 | +| [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 | | [VIm](https://www.vim.org/) | [v9.1.0189](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | | [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [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 (emacs, etc.) | From 63a686d7bf17b3c4afab9e25e42129b7e59a5572 Mon Sep 17 00:00:00 2001 From: xarvos Date: Wed, 15 Apr 2026 16:56:15 +0200 Subject: [PATCH 007/356] Add AI functionality tag for WordPress (#380) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added tag for WordPress with link about announcement for AI agents managing content Co-authored-by: Ngô Ngọc Đức Huy Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/380 Reviewed-by: JesseBot Co-authored-by: xarvos Co-committed-by: xarvos --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cea23ac..0c3d80b 100644 --- a/README.md +++ b/README.md @@ -580,7 +580,7 @@ Also, there is an advisory database of Rust slopware crates, which you can use i |---|:---:|---|---| | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | | [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449)) | [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
([![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) [1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | ### Static Site Generators From 56e3a0fbf8538e783f213093ec2e3ea0b47cc8e4 Mon Sep 17 00:00:00 2001 From: xarvos Date: Wed, 15 Apr 2026 17:15:33 +0200 Subject: [PATCH 008/356] Add pygments and GNU Mach (#138) Close #137 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/138 Reviewed-by: JesseBot Co-authored-by: xarvos Co-committed-by: xarvos --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0c3d80b..44216ae 100644 --- a/README.md +++ b/README.md @@ -489,6 +489,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | | JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | +| [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | | [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [pytermgui](https://github.com/bczsalba/pytermgui) | @@ -693,6 +694,7 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | | [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | | [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [The original MS-DOS source code](https://github.com/microsoft/MS-DOS) is under the Expat/MIT license | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) - kernel for GNU Hurd | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | | [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | From c12fbf8e6aca1545bef43df68d3fdc0637bae8bc Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 15 Apr 2026 17:26:43 +0200 Subject: [PATCH 009/356] tidy C, C++, and CSS sections based on new style guide (#381) This tidies all sections starting with C haha :) Relates to work from #325 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/381 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 44216ae..fced572 100644 --- a/README.md +++ b/README.md @@ -456,20 +456,20 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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) | | [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/) | -| [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) | +| [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) | ### C++ -| Name | Last Untainted Version or Commit ID | Alternative(s) | Evidence | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [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)) | -| [SQLiteCpp](https://github.com/SRombauts/SQLiteCpp) | [`v3.3.3`](https://github.com/SRombauts/SQLiteCpp/releases/tag/3.3.3) | [SQLite's first-party interface](https://sqlite.org/cintro.html) | [![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)) | +| [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) | ### CSS -| Name | Alternative(s) | Evidence | Notes | -|---|---|---|---| -| [`tailwindcss`](https://github.com/tailwindlabs/tailwindcss) | [`twind`](https://github.com/tw-in-js/twind) | [Sponsorship page states explicitly that the founder uses AI to write code and even sells access to his "Cursor/Claude/AGENTS.md rules"](https://tailwindcss.com/sponsor) | | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [`tailwindcss`](https://github.com/tailwindlabs/tailwindcss) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tailwindlabs/tailwindcss/commit/9ded4a23de06fb7e8cdc34a3bdf9318e7e8d2bbc))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://tailwindcss.com/sponsor)) | [`twind`](https://github.com/tw-in-js/twind) | ### JavaScript And TypeScript From 29688afd7edf50d27fae24e6d4cea3f60c396c9c Mon Sep 17 00:00:00 2001 From: Lily Gruman Date: Tue, 24 Mar 2026 18:09:18 -0500 Subject: [PATCH 010/356] Add CoMaps, Organic Maps, and OsmAnd --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index fced572..fc237d6 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Search Engines](#search-engines) + * [Mapping](#mapping) + * [Alternatives](#mapping-alternatives) * [Computer Graphics](#computer-graphics) * [Image Manipulation](#image-manipulation) * [Photography](#photography) @@ -289,6 +291,19 @@ This is a section for repos that are similar to this one either because they are |---------|----------------------------------------------------------|--------------------------------------------------------------------------------------------|-------| | Searxng | [LibreY](https://github.com/Ahwxorg/librey/) | [Copilot used](https://github.com/searxng/searxng/issues?q=copilot) in reviews | Note: maintainers experimenting with and open to adding AI results, see [1](https://github.com/searxng/searxng/issues/2273), [2](https://github.com/searxng/searxng/issues/2008), [3](https://github.com/searxng/searxng/issues/2163) +## Mapping + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | +| [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | +| [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | + +> [!Note] +> #### Mapping Alternatives +> * [Navit](https://github.com/navit-gps/navit) for car navigation +> * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. + ## Computer Graphics ### Image Manipulation From 802ce2cb03fec95bf61a1f276718b19f70017128 Mon Sep 17 00:00:00 2001 From: Lily Gruman Date: Wed, 15 Apr 2026 11:06:58 -0500 Subject: [PATCH 011/356] Add VirtualBox --- README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fc237d6..aab971d 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Bootloaders](#bootloaders) * [Operating Systems](#operating-systems) * [Virtualization](#virtualization) + * [Alternatives](#virtualization-alternatives) * [VPN Software](#vpn-software) * [Window Managers](#window-managers) * [Why not LLMs?](#why-not-llms) @@ -728,10 +729,16 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors ## Virtualization -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | [QEMU](https://qemu.org) + [virt-manager](https://virt-manager.org/) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | +| [VirtualBox](https://www.virtualbox.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/VirtualBox/virtualbox/blob/main/AGENTS.md)) | +> [!NOTE] +> #### Virtualization Alternatives +> * [QEMU]: Emulator and virtualizer that [does not accept slop contributions](https://www.qemu.org/docs/master/devel/code-provenance.html#use-of-ai-generated-content). +> * [virt-manager]: GUI for managing libvirt machines. Needed for VirtualBox feature parity as QEMU [does not provide one of its own](https://wiki.archlinux.org/title/QEMU#Graphical_front-ends_for_QEMU). +> * [GNOME Boxes] ## VPN Software @@ -926,6 +933,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [ffplay]: https://ffmpeg.org/ffplay.html [foot]: https://codeberg.org/dnkl/foot [Garage]: https://garagehq.deuxfleurs.fr/ +[GNOME Boxes]: https://gnomeboxes.org [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial [`iocraft`]: https://github.com/ccbrown/iocraft @@ -938,12 +946,14 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Konsole]: https://invent.kde.org/utilities/konsole [MATE Terminal]: https://wiki.mate-desktop.org/mate-desktop/applications/mate-terminal/ [matrix]: https://matrix.org +[QEMU]: https://www.qemu.org [Rio Terminal]: https://github.com/raphamorim/rio [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://drewdevault.com/2026/03/25/2026-03-25-Forking-vim.html +[virt-manager]: https://virt-manager.org [wafrn-rn]: https://codeberg.org/wafrn/wafrn-rn [waterfox]: https://www.waterfox.com [WriteFreely]: https://writefreely.org/ From beb90510414d6102c5dee22922ae170ddd6ec75e Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 15 Apr 2026 18:53:06 +0200 Subject: [PATCH 012/356] tidy up the javascript and typescript section (#382) relates to the work in #325 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/382 Reviewed-by: Max Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index aab971d..80ef515 100644 --- a/README.md +++ b/README.md @@ -489,13 +489,13 @@ This is a section for repos that are similar to this one either because they are ### JavaScript And TypeScript -| Name | Alternative(s) | Evidence | Notes | -|---|---|---|---| -| [Zod](https://zod.dev/) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | [CLAUDE.md, AGENTS.md, .cursorrules in GitHub repo](https://github.com/colinhacks/zod) | Is also sponsored by AI startups | -| [Valibot](https://valibot.dev/) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | Uses LLM's in [GitHub issues](https://github.com/open-circle/valibot/issues/1389) and [PR's](https://github.com/open-circle/valibot/pull/1388); [`prompts` folder](https://github.com/open-circle/valibot/tree/main/prompts); [LLMs.txt](https://valibot.dev/guides/llms-txt/) | | -| [ArkType](https://arktype.io/) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | Uses an LLM for PR review (e.g. [PR #1594](https://github.com/arktypeio/arktype/pull/1594)), [accepted a PR from someone using Claude](https://github.com/arktypeio/arktype/pull/1553#issuecomment-3672923281), and has an [llms.txt](https://arktype.io/llms.txt) | Contains a [Cursor instruction file](https://github.com/arktypeio/arktype/blob/main/.cursor/commands/armstrong.md) that may be pro-LLM | -| [Electron](https://electronjs.org) | Using native GUIs, such as [GTK](https://gtk.org), instead of making a web site | Contains [CLAUDE.md](https://github.com/electron/electron/blob/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208/CLAUDE.md) and commits from Claude (e.g. [1](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [2](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785), [3](https://github.com/electron/electron/commit/f4a50a8fde877075ce3877efd54578997d5e7ece), [4](https://github.com/electron/electron/commit/6993eb3c78770087e0d2a10e184ec96f9eda6b97), [5](https://github.com/electron/electron/commit/f4c4cd14ac8eebf4ed33d75ca4f9b35b0e013208)) | | -| [nvm](https://github.com/nvm-sh/nvm) | | [AGENTS.md](https://github.com/nvm-sh/nvm/blob/master/AGENTS.md), with [precursor copilot rules dating back to July 2025](https://github.com/nvm-sh/nvm/pull/3609) | | +| 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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | +| [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), [1](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [2](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Using native GUIs, such as [GTK](https://gtk.org), instead of making a web site | +| [nvm](https://github.com/nvm-sh/nvm) | before [July 2025](https://github.com/nvm-sh/nvm/pull/3609)? [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![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) | +| [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | +| [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | ### Python From 22150505501abbde0c8699f31ef467f303c3cf18 Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 15 Apr 2026 19:05:27 +0200 Subject: [PATCH 013/356] add backticks to versions for programming languages and editors (#384) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/384 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 80ef515..a3c1b2a 100644 --- a/README.md +++ b/README.md @@ -396,18 +396,18 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | 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 | -| [Julia](https://julialang.org/) | [v1.11.4](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | -| [Kotlin](https://github.com/JetBrains/kotlin) | [v2.3.0](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | -| [mruby](https://github.com/mruby/mruby/releases/tag/3.3.0) | [v3.3.0](https://github.com/mruby/mruby/releases/tag/3.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mruby/mruby/commit/b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mruby/mruby/pull/6482), [2](https://github.com/mruby/mruby/pull/6572)) | See below | +| [.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 | +| [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | +| [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | +| [mruby](https://github.com/mruby/mruby/releases/tag/3.3.0) | [`v3.3.0`](https://github.com/mruby/mruby/releases/tag/3.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mruby/mruby/commit/b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mruby/mruby/pull/6482), [2](https://github.com/mruby/mruby/pull/6572)) | See below | | [Nim](https://nim-lang.org/) | [`e2a3063`](https://github.com/nim-lang/Nim/commit/e2a306355ca179aa256a2cee7a0d3a809538c8b9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nim-lang/Nim/pull/24564), [2](https://github.com/nim-lang/Nim/pull/25429), [3](https://github.com/nim-lang/Nim/pull/25439)) | [Ada](https://www.adaic.org/)? | -| [Python](https://python.org) | [v3.14.0a4](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | -| [MicroPython](https://micropython.org) | [1.26.1](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | -| [CircuitPython](https://circuitpython.org) | [9.2.9](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | -| [Ruby](https://www.ruby-lang.org) | [v.3.3.8](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | -| [Scala](https://scala-lang.org/) | [v3.3.6-RC1](https://github.com/scala/scala3/releases/tag/3.3.6-RC1) | [![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)) | See below | -| [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 | -| [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 | +| [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | +| [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | +| [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | +| [Ruby](https://www.ruby-lang.org) | [`v.3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | +| [Scala](https://scala-lang.org/) | [`v3.3.6-RC1`](https://github.com/scala/scala3/releases/tag/3.3.6-RC1) | [![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)) | See below | +| [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 | +| [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] > #### On alternative languages: @@ -428,7 +428,7 @@ This is a section for repos that are similar to this one either because they are | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [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 | | [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 | -| [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 | +| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | | [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [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 (emacs, etc.) | From 984d0649edb5c48b2e43663deb68bbaef294fdc1 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 15 Apr 2026 20:14:43 +0200 Subject: [PATCH 014/356] Add https://github.com/fatedier/frp/ as tainted (#385) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/385 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a3c1b2a..78e9119 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Virtualization](#virtualization) * [Alternatives](#virtualization-alternatives) * [VPN Software](#vpn-software) + * [VPN Software Alternatives](#vpn-software-alternatives) * [Window Managers](#window-managers) * [Why not LLMs?](#why-not-llms) * [Legal Ramifications](#legal-ramifications) @@ -742,11 +743,16 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors ## VPN Software -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Headscale](https://github.com/juanfont/headscale) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/juanfont/headscale/blob/main/AGENTS.md), [2](https://github.com/juanfont/headscale/tree/main/.claude/agents), [3](https://github.com/juanfont/headscale/pull/3050)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [netbird](https://netbird.io) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg) ([1](https://netbird.io/privacy)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [nebula](https://github.com/slackhq/nebula) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slackhq/nebula/commit/f8587956babc28da162afaba9861c282dc90a90e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Headscale](https://github.com/juanfont/headscale) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/juanfont/headscale/blob/main/AGENTS.md), [2](https://github.com/juanfont/headscale/tree/main/.claude/agents), [3](https://github.com/juanfont/headscale/pull/3050)) | +| [netbird](https://netbird.io) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg) ([1](https://netbird.io/privacy)) | +| [nebula](https://github.com/slackhq/nebula) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slackhq/nebula/commit/f8587956babc28da162afaba9861c282dc90a90e)) | +| [frp](https://github.com/fatedier/frp) | [`0.48.0`](https://github.com/fatedier/frp/tree/v0.48.0?tab=readme-ov-file) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fatedier/frp/commit/6b1be922e155def020e78aa78f4b796b7a530ea4), [2](https://github.com/fatedier/frp/commit/7cfa546b55ee485240c3a713b01a4923ee6b714c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fatedier/frp/pull/5234), [2](https://github.com/fatedier/frp/pull/5223), [3](https://github.com/fatedier/frp/pull/5209))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/fatedier/frp?tab=readme-ov-file#sponsors)) | + +> [!NOTE] +> ### VPN Software Alternatives +> * Use [WireGuard](https://www.wireguard.com/)®️ capable VPN's such as those listed in the official [wireguard repos](https://www.wireguard.com/repositories/). ## Window Managers From 4df7637fde9419dfc053d8faab10b1f34477f52b Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Wed, 15 Apr 2026 20:15:40 +0200 Subject: [PATCH 015/356] Add dynamic window management alternatives for X (#387) Xmonad, FVWM and others also qualify, but these are the closest to i3 in spirit. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/387 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78e9119..13b9375 100644 --- a/README.md +++ b/README.md @@ -759,7 +759,7 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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)) | [wmii](https://github.com/0intro/wmii), [dwm](https://dwm.suckless.org/), [awesome](http://awesomewm.org/) | # Why not LLMs? From 9b13e49bb4d683e7282e0d1d4ef515be8ef85595 Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Wed, 15 Apr 2026 21:59:33 +0200 Subject: [PATCH 016/356] Add Weblate (#352) I stumbled on Weblate in the commit history of Freetube. Apparently it's a development tool for translations, that automates some attribution and peer review workflows. Their project's commit log is a bit obfuscated, because it internally uses Weblate as well, which generates a lot of commits for minor metadata changes. They have an [AGENTS.md](https://github.com/WeblateOrg/weblate/blob/main/AGENTS.md) file though and i did find some recent LLM commits: https://github.com/WeblateOrg/weblate/commit/aad714d7a3eb728b1800a8874586a27a7253e177 https://github.com/WeblateOrg/weblate/commit/90c3c3a0ca5099d75489e08982c3c9ca9f6eaba5 https://github.com/WeblateOrg/weblate/commit/23d1e3e41c394da62dcf69da2dbb3119bacbc75f Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/352 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 13b9375..316161d 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Rust](#rust) * [Game Engines](#game-engines) * [Audio](#audio) + * [Language and Localization](#language-and-localization) * [Messaging](#messaging) * [Package Managers](#package-managers) * [Password Management](#password-management) @@ -543,6 +544,12 @@ Also, there is an advisory database of Rust slopware crates, which you can use i | [FineTune](https://github.com/ronitsingh10/FineTune) | [BackgroundMusic](https://github.com/kyleneideck/BackgroundMusic) | Include [`CLAUDE.md`](https://github.com/ronitsingh10/FineTune/blob/20bbef22644a468f403cf9a011586ba2b0ed067f/.gitignore#L3) in the `.gitignore` | | [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | | Include [`CLAUDE.md`](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) and [`.claude`](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude) directory; offers [AI integration](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30) for song suggestions | +## Language and Localization + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Weblate](https://weblate.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/WeblateOrg/weblate/blob/main/AGENTS.md), [2](https://github.com/WeblateOrg/weblate/commit/aad714d7a3eb728b1800a8874586a27a7253e177), [3](https://github.com/WeblateOrg/weblate/commit/23d1e3e41c394da62dcf69da2dbb3119bacbc75f)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Messaging | Name | Last Untainted Version or Commit ID | Tags and Evidence | From d9973cc47d6241957b416d873a0375a8dcebe507 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 15 Apr 2026 22:04:08 +0200 Subject: [PATCH 017/356] Apply styleguide to audio section (#388) Part of #325 Applies new style guide to the audio section of the README.md Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/388 Reviewed-by: JesseBot Co-authored-by: Max Co-committed-by: Max --- README.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 316161d..e26e9f3 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Request for Help](#request-for-help) * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) + * [Audio](#audio) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) * [Mobile Browsers](#mobile-browsers) @@ -59,7 +60,6 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Python](#python) * [Rust](#rust) * [Game Engines](#game-engines) - * [Audio](#audio) * [Language and Localization](#language-and-localization) * [Messaging](#messaging) * [Package Managers](#package-managers) @@ -228,6 +228,17 @@ This is a section for repos that are similar to this one either because they are > [!Warning] > We've recently added a "Last Untainted Version or Commit ID" section to our below tables. This is meant for tech savvy individuals to be able to fork the project and continue maintaining it without the use of AI. Choosing to install an older version of software could expose you to to security risks over time. Only do this if you are able to accept such risks. +## Audio + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md) | [DPF](https://github.com/DISTRHO/DPF) | +| [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md) | [Ardour](https://ardour.org/)1 | +| [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) | +| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) [(2)](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude)
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +1: Status as a *replacement* may be debatable. + ## Browsers ### Desktop Browsers @@ -535,15 +546,6 @@ Also, there is an advisory database of Rust slopware crates, which you can use i | [UPBGE 0.5](https://upbge.org) | UPBGE 0.36.1 seems to be slop-free | [0.5 release notes state the use of AI in plain language](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations) | | [Godot Engine](https://godotengine.org/) | [Pandemonium Engine](https://pandemoniumengine.org/) | [Allows LLM contributions](https://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions) (also see [this comment](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | -## Audio - -| Name | Alternative(s) | Evidence | -|---|---|---| -| [HISE](https://github.com/christophhart/HISE) | [DPF](https://github.com/DISTRHO/DPF) | Include [`AGENTS.md`](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md) | -| [zrythm](https://www.zrythm.org) | [Ardour](https://ardour.org/) (opinions may vary whether it is a replacement or not) | [CLAUDE.md](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md) in repository | -| [FineTune](https://github.com/ronitsingh10/FineTune) | [BackgroundMusic](https://github.com/kyleneideck/BackgroundMusic) | Include [`CLAUDE.md`](https://github.com/ronitsingh10/FineTune/blob/20bbef22644a468f403cf9a011586ba2b0ed067f/.gitignore#L3) in the `.gitignore` | -| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | | Include [`CLAUDE.md`](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) and [`.claude`](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude) directory; offers [AI integration](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30) for song suggestions | - ## Language and Localization | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -757,7 +759,7 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | [nebula](https://github.com/slackhq/nebula) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slackhq/nebula/commit/f8587956babc28da162afaba9861c282dc90a90e)) | | [frp](https://github.com/fatedier/frp) | [`0.48.0`](https://github.com/fatedier/frp/tree/v0.48.0?tab=readme-ov-file) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fatedier/frp/commit/6b1be922e155def020e78aa78f4b796b7a530ea4), [2](https://github.com/fatedier/frp/commit/7cfa546b55ee485240c3a713b01a4923ee6b714c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fatedier/frp/pull/5234), [2](https://github.com/fatedier/frp/pull/5223), [3](https://github.com/fatedier/frp/pull/5209))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/fatedier/frp?tab=readme-ov-file#sponsors)) | -> [!NOTE] +> [!NOTE] > ### VPN Software Alternatives > * Use [WireGuard](https://www.wireguard.com/)®️ capable VPN's such as those listed in the official [wireguard repos](https://www.wireguard.com/repositories/). From b7af93a7891c43853564fb4040425eabc2538c5a Mon Sep 17 00:00:00 2001 From: lejun Date: Wed, 15 Apr 2026 22:26:08 +0200 Subject: [PATCH 018/356] Added XMPP clients (#323) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/323 Reviewed-by: JesseBot Co-authored-by: lejun Co-committed-by: lejun --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e26e9f3..47a7e0a 100644 --- a/README.md +++ b/README.md @@ -556,7 +556,9 @@ Also, there is an advisory database of Rust slopware crates, which you can use i | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [Converse.js](https://conversejs.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | | [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| +| [Psi](https://psi-im.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Telegram](https://telegram.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | | [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)) | @@ -670,7 +672,6 @@ This is for both social media websites and apps. > * [Epicyon](https://codeberg.org/bashrc/epicyon) #### Clients - | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [IceCubesApp for iOS](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) (an iOS fediverse app in beta), [wafrn-rn] | From d714be713aa7fa47c692321576912ca23bd21b0d Mon Sep 17 00:00:00 2001 From: micdan5 Date: Wed, 15 Apr 2026 23:45:18 +0200 Subject: [PATCH 019/356] Tidy Developer Tools based on new style guide (#359) # Credits/references list May be incomplete: - https://codeberg.org/small-hack/open-slopware/pulls/274 - Closes https://codeberg.org/small-hack/open-slopware/issues/148 - https://codeberg.org/small-hack/open-slopware/pulls/196 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/359 Reviewed-by: JesseBot Co-authored-by: micdan5 Co-committed-by: micdan5 --- README.md | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 47a7e0a..2dc9215 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Video](#video) * [Terminal Emulators](#terminal-emulators) * [Developer Tools](#developer-tools) + * [Compiler Tools And Related](#compiler-tools-and-related) + * [Version Control](#version-control) * [Document Viewers](#document-viewers) * [Programming Languages](#programming-languages) * [Editors](#editors) @@ -373,20 +375,19 @@ This is a section for repos that are similar to this one either because they are ## Developer Tools -| Name | Alternative(s) | Evidence | -|---|---|---| -| [`atuin`](https://github.com/atuinsh/atuin) | Built-in shell history | [AI command generation](https://github.com/atuinsh/atuin/pull/3199), [LLM PRs accepted](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696) | -| [Sapling](https://github.com/facebook/sapling) | Continue using `git` itself | [`.codex` and `.llms` directories](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [`.claude` folder](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9) | -| [`cargo-nextest`](https://github.com/nextest-rs/nextest) | Just use `cargo test` | [`CLAUDE.md` and `AGENTS.md` in repository](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5) | -| [Golly](https://golly.sourceforge.io/) | | [5.0 release notes say the app icon is generated by Claude.](https://golly.sourceforge.io/Help/changes.html) | -| [`Jujutsu`](https://www.jj-vcs.dev/latest/) | Continue using `git` itself | [A core dev occasionally uses Claude to generate local test cases.](https://discord.com/channels/968932220549103686/1458877549034864703); Merged Claude commits (e.g. [1](https://github.com/jj-vcs/jj/pull/9076), [2](https://github.com/jj-vcs/jj/pull/9083), [3](https://github.com/jj-vcs/jj/pull/8571)) | -| [`just`](https://just.systems/) | A Make implementation | Lists an [MCP server in its User Manual](https://just.systems/man/en/model-context-protocol.html). | -| [`mold` linker](https://github.com/rui314/mold) | GNU ld, LLVM lld | [Copilot use](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd) | -| [Taskfile](https://taskfile.dev) | A Make implementation | [Uses Copilot for PRs](https://github.com/go-task/task/pull/2592) | -| [`wild` linker](https://github.com/wild-linker/wild) | GNU ld, LLVM ld | [Allows AI use](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [doesn't require disclosure](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [accepts AI code](https://github.com/wild-linker/wild/pull/912) | -| [`curl`](https://curl.se) | An older version; [wget](https://www.gnu.org/software/wget/)? | Core maintainer uses LLMs for code review (e.g. [1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787)), and is quoted in the description of the [Aisle Research Bot](https://github.com/apps/aisle-research-bot) LLM. See also [this post](https://mastodon.social/@bagder/116204333476519757) | -| [`rsync`](https://rsync.samba.org/) | An older version: 3.4.1 and below; Maybe `scp` or FTP client? (not applicable to the all cases) | For now (2026-03-15) two top commits at 2026-03-01 were "coauthored" by Claude LLM, see: [1](https://github.com/RsyncProject/rsync/commit/aa142f08ef31d3ffa8d6b3b8af16d00324a98c1b) and [2](https://github.com/RsyncProject/rsync/commit/b905ab23af2d71363271e99e446e8fe0bfc77f7f) | -| [`npmx`](https://npmx.dev/) | [npmjs](https://www.npmjs.com/) | Include [`copilot-instructions.md`](https://github.com/npmx-dev/npmx.dev/blob/7f2fc1ae716605c87612b0e138aa95a277d44559/.github/copilot-instructions.md); [permissive AI policy](https://github.com/npmx-dev/npmx.dev/blob/e3b575ad0760ce79a278e34fc3553020d093e940/CONTRIBUTING.md#using-ai); makes use of [CoderabbitAI](https://github.com/npmx-dev/npmx.dev/pull/2183#issuecomment-4104059314); merges PRs with [Claude commits](https://github.com/npmx-dev/npmx.dev/pull/1513/changes/557db327a06ffa2d42e67a8df3ccc107381fe063) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | +| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm) | +| [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)) | Just use `cargo test` | +| [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) | +| [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)) | A Make implementation | +| [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 | +| [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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) | +| [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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | +| [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client | +| [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/) | > [!NOTE] > #### On task runners and `make(1)` implementations: @@ -399,6 +400,18 @@ This is a section for repos that are similar to this one either because they are > | [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| +### Compiler Tools And Related +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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/) | + +### Version Control +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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)) | [Game of Trees] | +| [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)) | [Game of Trees] | +| [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), [4](https://github.com/jj-vcs/jj/pull/8571)) | [Game of Trees] | + ## Document Viewers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -948,6 +961,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 +[Game of Trees]: https://gameoftrees.org/ [Garage]: https://garagehq.deuxfleurs.fr/ [GNOME Boxes]: https://gnomeboxes.org [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal From b66a75fb13d301dfd0aa31c3b3090d39c90d7c2f Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 16 Apr 2026 07:29:08 +0200 Subject: [PATCH 020/356] Tidy budgeting section based on new style guide (#392) Part of #325 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/392 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2dc9215..67a7daf 100644 --- a/README.md +++ b/README.md @@ -702,14 +702,13 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors ### Budgeting -| Name | Alternative(s) | Evidence | -|---|---|---| -| [Actual](https://actualbudget.org/) | | Include [AGENTS.md](https://github.com/actualbudget/actual/blob/master/AGENTS.md); [Used Open Collective funds for Cursor subscription](https://opencollective.com/actual/expenses/277324) | -| [beancount](https://github.com/beancount/beancount) | | Main developper Martin Blais [used ChatGPT](https://groups.google.com/g/beancount/c/_7udAMlfLAg/m/o6PazGuoAAAJ) who knows [how many time](https://groups.google.com/g/beancount/c/cz8Xwnb7BLE/m/LSA3rTfMAgAJ) | -| [Firefly III](https://firefly-iii.org) | | Include [agents.md](https://github.com/firefly-iii/firefly-iii/blob/main/agents.md) | -| [hledger (v2.x)](https://hledger.org/) | | [Explicit policy](https://hledger.org/AI.html)| -| [ledger-cli](https://ledger-cli.org/) | | Include [Claude.md](https://github.com/ledger/ledger/blob/main/CLAUDE.md), notably [used by John Wiegley](https://www.newartisans.com/2026/02/my-claude-code-toolkit/)| - +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Actual](https://actualbudget.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://opencollective.com/actual/expenses/277324), [2](https://github.com/actualbudget/actual/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [beancount](https://github.com/beancount/beancount) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://groups.google.com/g/beancount/c/_7udAMlfLAg/m/o6PazGuoAAAJ), [2](https://groups.google.com/g/beancount/c/cz8Xwnb7BLE/m/LSA3rTfMAgAJ)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Firefly III](https://firefly-iii.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/firefly-iii/firefly-iii/blob/main/agents.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [hledger (v2.x)](https://hledger.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hledger.org/AI.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## System Services and Daemons From 502b7e1bef5ff1893f7d3ae8f0fa5c18ed03c0a1 Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Thu, 16 Apr 2026 07:06:34 +0200 Subject: [PATCH 021/356] Add alternative Code Generators --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 67a7daf..b0e9b89 100644 --- a/README.md +++ b/README.md @@ -403,7 +403,7 @@ This is a section for repos that are similar to this one either because they are ### Compiler Tools And Related | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [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/) | +| [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) | ### Version Control | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 05d057ef186f78a4382643114e5ee624c3052877 Mon Sep 17 00:00:00 2001 From: James Rampton Date: Thu, 16 Apr 2026 13:53:37 +0200 Subject: [PATCH 022/356] Add zellij (#280) Adds zellij terminal multiplexer. I've added the same alternatives as in #251, but I cannot personally vouch for these. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/280 Reviewed-by: JesseBot Co-authored-by: James Rampton Co-committed-by: James Rampton --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b0e9b89..aafdeeb 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Terminal Emulators](#terminal-emulators) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) + * [Terminal Multiplexers](#terminal-multiplexers) * [Version Control](#version-control) * [Document Viewers](#document-viewers) * [Programming Languages](#programming-languages) @@ -378,7 +379,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | -| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm) | | [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)) | Just use `cargo test` | | [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) | | [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)) | A Make implementation | @@ -405,6 +405,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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) | +### Terminal Multiplexers +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | +| [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | [dvtm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | + ### Version Control | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| From 69a00eeb849f7c83fd4bbbf7d570412448ea2479 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Thu, 16 Apr 2026 13:59:03 +0200 Subject: [PATCH 023/356] Tidy Rust based on new style guide (#391) Tracking based off #325 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/391 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 28 +++++++++++++++------------- evidence/img/zbus.png | Bin 100194 -> 0 bytes 2 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 evidence/img/zbus.png diff --git a/README.md b/README.md index aafdeeb..21a97fa 100644 --- a/README.md +++ b/README.md @@ -543,20 +543,22 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro ### Rust -| Name | Alternative(s) | Evidence | Notes | -|---|---|---|---| -| [`c2rust`](https://github.com/immunant/c2rust) | | [Statement from developer](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395)
[`postprocess`](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess) component uses LLMs
[PR](https://github.com/immunant/c2rust/pull/1614) made with AI -| [`egui`](https://github.com/emilk/egui) | [imgui](https://github.com/imgui-rs/imgui-rs), [relm](https://github.com/antoyo/relm), [iced](https://github.com/iced-rs/iced) | [Claude commit](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2) | -| [`facet`](https://github.com/facet-rs/facet) | Use more specific deserialization libraries and avoid macros that slow things down anyway. [`serde`](https://serde.rs) itself is [tainted by its Palantir-defending author](https://archive.ph/fe9g5). [`nanoserde`](https://github.com/not-fl3/nanoserde) could be suitable for certain use cases. | [Core developer openly uses LLMs for library dev](https://archive.ph/YhcOh) | | -| [`ratatui`](https://github.com/ratatui/ratatui) | [`iocraft`] (<=0.7.17) and [`cursive`]. [`console`] and its family of libraries may also be enough for some use cases. | [Core developer has stated their use of AI for rust code](https://github.com/ratatui/ratatui/discussions/2201) | | -| [`iocraft`] | An older version (<=0.7.17, prior to [Feb 12, 2026](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428)); [`cursive`] and [`console`] | Contains [commits from Claude](https://github.com/ccbrown/iocraft/commits?author=domenkozar) | | -| [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | cargo check | [Allows AI contributions](https://github.com/rust-lang/rust-analyzer/pull/21314/changes) and [has Claude rules](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md) | | -| [`wgpu`](https://github.com/gfx-rs/wgpu) | [`vulcano`](https://github.com/vulkano-rs/vulkano), [`ash`](https://github.com/ash-rs/ash), [`glow`](https://github.com/grovesnl/glow) | Explicitly [allowed in CONTRIBUTING.md](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [LLM instructions](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7) added according to a decision by the maintainers in [this issue](https://github.com/gfx-rs/wgpu/issues/8834) | -| [`zbus`](https://github.com/z-galaxy/zbus) | | [CLAUDE.md](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [core developer talking about their AI policy](https://matrix.to/#/!uSaWOSkfhbBXoCCxYe:matrix.org/$6frxoLIKKBIE7ejJr3OJk9jn_nSTl_B5a2poK4lxDjo?via=matrix.org&via=gnome.org&via=mozilla.org) ([screenshot](./evidence/img/zbus.png)) | -| [`zerocopy`](https://github.com/google/zerocopy) | | [Commits from Jules](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D) and [AGENTS.md](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md) | | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [`c2rust`](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [`egui`](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [imgui](https://github.com/imgui-rs/imgui-rs), [relm](https://github.com/antoyo/relm), [iced](https://github.com/iced-rs/iced) | +| [`facet`](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely before it got rebranded to `facet-rs` | [![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)) | [`serde`](https://serde.rs) (note: [tainted by its Palantir-defending author](https://archive.ph/fe9g5)), [`nanoserde`](https://github.com/not-fl3/nanoserde)
If possible avoid all-in-one libraries for deserialization and avoid macros that slow things down. | +| [`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)) | [`iocraft`] (<=0.7.17), [`cursive`], [`console`] | +| [`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)) | [`cursive`] and [`console`] | +| [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 | +| [`wgpu`](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [`vulcano`](https://github.com/vulkano-rs/vulkano), [`ash`](https://github.com/ash-rs/ash), [`glow`](https://github.com/grovesnl/glow) | +| [`zbus`](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [`zerocopy`](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -Also, there is an advisory database of Rust slopware crates, which you can use in tools like -[cargo-deny](https://embarkstudios.github.io/cargo-deny): . +> [!Note] +> +> Also, there is an advisory database of Rust slopware crates, which you can use in tools like +> [cargo-deny](https://embarkstudios.github.io/cargo-deny): . ## Game Engines diff --git a/evidence/img/zbus.png b/evidence/img/zbus.png deleted file mode 100644 index a669657f479c304659fb2b5d510c0375f37d1660..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100194 zcmeFYWmH@}_y1ko-3RxU;_mJ(P>Q>|yZhiWg%&Fg#ce1yxLYai?mD zjJCU!tA&ZXjguplx{ZUyJLipD0oGi53v)-4TuydQUglg5c0nF?K`ySLZ~A+0bx8iH zqvmAk?q%X?@y^Q8$-#of&CJ!p!qLsz$^8_rL-ZX?#JGaAgt~X;Q5KT1y2Wh7+JQ*h zcWmENSQ^vQwp+v5`j+M@1Fy>RmzLT3s^%L*90CLxn1i-CY^qGB_=7&XyYak#mNE&7juAgY{B?<=^K8Zn35j z79s+!tcR0ay1d?YY?g>N-CdNq^_|6R)Gx$3KU;}?Q>~O3q79NLTZsusr!VyI_VM63 zywbE*A{1{lh(wRXzIntx_gfdohTC)}&Nl7a=Wf9zUNn_yLX-Mxk8!*5ow4BXr=4+m zS!j3!W1tssw3LcPw2gv77xu%4@i=m{0Tjkgmq~?jdWMFkctKp+BRbKexGlqHY_&Ou z(DVk?t1}0K)qSRNw=LkDX!q=)ZmZw<0l$s0le>j^#r&iG#S7n^^8_lfhhRn9E#j4Y zOys|_y!(VI5gCc9xcwZZU9UcGWDb2yaUe;kTE@@Yr5|>u?b&n3w}P2f?ezFhoZpMX z-<4LSl^fxJMo!{ee6_iq@(!um$sfV&J|nW3R}TY+H7y_t5Tl9+>LV_+yvO7RT$837fPrqIydNr|ElH=1Pe{Y=LZiPH5b0V=k_ZE5Ou>UX z+ZARqI7A)N0~B{)(f^c^Yk#P&?z9LjxVTt+vah{t`~VXoU}ycRi2&p&B)GGlP<(0? zrOaR|Q{A}f{53~CW7#)x$GfZwh9!gR3r}4@B&$O?O7T^ppaBvnCfUOlK)q2nIz|cbu3?CC7+3%d$cc&qLSR&&! zSNmxF_Dr2+nSj3h{Z@+)BZoIN0e;3ortZHmk-}}i5noBgBHMENZj&6P6-KKy3e1Sx z)xg!^Pe5Z~C8QOfqu|@3fKub%_H#MX@@fWph?(tMU9%AL^!jP}$HStW;M$5)8geD1 ztt5LhKY=C$8hDY9RY;9LR)sWGVdf#At<#?8B{h&zZBUCNiQ!^O$;GAvkpjL>DvM1) zYl--l+g*>qmSc0i0g#>HoU@ni9b`U~^@|DKyZd+ojXUde#pTBp?pFVkXnv0`Mn?(> zr)y}m&4mTIi_y@2k0ZGwka&Mg+gQ!BFO85WCIa`y{kPs~t5JST!my_+w0}G{GY=0> z8utMbf0i=ms@lda5qJ<0*Q__nK!LYyuff#z=$*bau*YZ8MHbSq?n|Cxbos?n-o?^7o0&W54E*Qyh% z{soP?E^3ix>JdjZ9?}?FD7%Ogny7A_Vj)rHOTU%(&EGBOr47H6#r6G^z90vq-Y;7J zJPuGw)zDPrRo`$2o4VxOUnM;k{f_K^*ESQRa;@qR<>DUtRDGa;+irfYv0jfGYbx61 z?#MvR07bk+7-HFgHXS- zY<^I5`fQV63Z0~LD}|484!_(mzPZ5xGc`+7Gamw1+^rwp6AS&)ffg7q_m`)4HpdM3 zv-~CuPD@c0?)qYZ_^bdP$jq(FN@$Q$M)_)w4H78R8**{RyAwG>dVb_|seZ>FX@0Aq z&>c>Tw2?rIptvpN(+^enIJb3tKm5(U-ni$P&(!N+ z*F|!#f>t#*SrCa^98g|15lOVY#Tf>}6CFKo?`mAx6{4ie1&hOi+XI6RM5EOwII~}n zcZxfox1&+y9`}Ss%il6fe-`wh%*K`^P_}NcmmS=a<;R!i2cw!ywsa3n@_55Wqb#EP z{*?`dLkU@=lH9-r>g(a4H!nWve~kI0+8iKmWg=d@qFR?&fXV8A`jMW>*&!AwK@9(v zQb?kZ{mf4>%kfH4Irnrd_{C-j65JcUS3EY*n+$ax;8SB~7in6!pVnEkviJR)gGCaq zH6~O#!Q*!WhVj17#5&zvB1AT{vOw@pqhS6A>w)mx9x|0S&Xc}y*#TVxJDe2uwH41fV zPoF;WQ8wA1Dpm;##$M@f+RKiwii$#BDt)*j`0;xBiap;@Ix{zo#BTS)$=wQ!-1TX} z4n)0E)zh+p zPW}xzf52famnsJ$Lx4L zEBFA@+wKE=;Uqi~WS|V}%#MH8bfXBo3?hFWLpPwoVpx|C_l#RA9Hlt+)7h6DZ0ndu zQN#;hH45UkRZ=VZo%jqQsMAN(@U+FFPMrL7^fW_|g6=SQ46B>R%#=UP^=_#J7TcZ9 zMLgcSGgrTOCzXYb<1S~dPxFb=Q(Kr73@m&cLksG7Y9gWFOUONqjK9-P`R@D&ZB8KF z^|>z|STven=whj360Pe^mgNK8k+-+18Jpjwui3jAgWmHwu9fxud&={34QHP5u#b^q1sY4nU$xjIlBh&@~Q6q zTdBQECV>zH1Q8!;k3{EKsFiB|ehsNA*FnIql^5;`S}Yl@&0!0>inPZp{U7o zOPcgvyx@G;Zih&ahAJjm=*!+%yB1#1>a0-$@sd64=y%V+fY3f5-!5}k1EBb#-&MNj zmmS-e>h#1$f}k8>gO!uy%o6k={0t2e)i)C=O&FFkzjNOA#pjj23;4@XIW2W(yrJk3 zmqW$2W6G&LuWd0uzHv$ipziKhonGG#5Q%I}${31jxgO5>A_Mm~M*)6gtB3lg1`Ok+ z-(grbo};?v840|hurdfGPniORPRxelEOkWUV$)Dic5jno+Rulwll&Fxo1X8fh+Z>9 zli-Q@^)XHwz9FhR&o_XE3^S<&jEXY~A(0I2|Ar1+S-~zvr&iaOSgQE-Xb5D!3jM(? z{WU&nnxL@>t!C~WkzCwP)7oxnhd%tbF*DvfP~bfrZqXl7!>xRd5CmYvmNX(m4i=Kg zWf5+4;1Wc}gUBlr|Yj-o^j0q zCucCWlcN*J_Q7DJ8YkOfnbX-6P2;9D(Fy!6;%o$lqiAR_ zM;m+Wmnpq59poPJQlo-<5UjvM9uJ|}691js@DeQWobe{l9uGb+W1K5e7+7fQ`g#(& z^QSY$H)HP`b$EFoFx_QYkaQ zRZl)d-PzoXz`__#9R3S z@0Z5H?FME(jyR3#l)=Nltco@teZGFKVq(==qa@Od<75(&Dr~iXU#-6C&+C5Mf4lI5 z^3^|)lZJ#4hV5~k^liANM*BrcpP6%4y!R6*B@?)fCqgzZg&xS{4xCqzlo2+eJ|BGk zG!L>6S{cfUJji$(U2hwr)0XECaEGVm^I9+@B|^XbY$ zHZ|FZMi47P3TQN%dZ=7dqm}g>7H77G zy3Uz2HJ>=SKs`1ye{>o^vm&qV#n~kTa3P7@1M28LBQyj#QiPeJsr^Ro#UVfsn#;7E zz2e?D|0V-3>Y4d4!$^eO^&JDz3E|On`$**$kL5 zdaYjA62(Pppf@-EWC{@0C1++JpTw&Ge|xqm!t2|@GL4-AIc|sVky%fYuG5~nbCATP z{6VElP3}CZ3}cvd{R0xv`4bl>O*f}{=9Y!J z2Z*6(=@|&KxM_Vs9N6Yx*&OhYk+TuCx}ve&Gk=oK9}(9&n@_HsU=z(3CEO5A7<+*@ z=k0lMS-puVbh_YyWHytRGlE8gy|C9zA9EsioaMx5^VY5k^tCM{{Y5onR}3dok*^k}hsjs)%6uJf16lE`tWm@9f+U!p=r-lm_>-J-d6 z9oeJ)mW!AzL=GeXBKObK`Lf}QzkKr@Dh)32(tpkNlNL8N1zn@Sc}|bBAG&LMtzlFK z-tMqA;(}r6>dtE(_kY)ZTbBIw<;d)b;y+4lUI4L;s8hXe1_2)#d#;#fmA(wDRI;Lo zu{Ls4%)8~HL_Jwo76j!W=cYq)F2}}CEdFbfm=uIm5JD*s#R}=_u(J}dJ>ap-7u6sh z?yK~??^60T0yb%0h>DZ6i7lVHl_hQ8uSjK5Rgj&+hp2CJ^GdLiI`K%EsKbB0>lnSZ zM=^Xo4HyALlnJtZMzf?D+OpS>H$JCPSBuWv>*%K(d0MJ=tOc7g7kNf};S29e(Kd|- z%9HNUD+9*$2;j}&c3!p?mElaV4pI&Qt?U8qsA{{>Vr=M13xOm+wc_#w!sLWpOa~zBxda-`ee5RTJgmH-X4(ZC6~Z8 zCwf-RsN!rwLK9-V#n@Cyi-!0CWjwJ_Gxg`ZFHFDeM+bjg{s4*OLF4g7Y!EfO?APgQ z!b!~@5*;Kji2hqaHsI-Z6QY`wiM0!Mvrtl^%`BDSSS4N98DjmsK55tD1*i3auYYd5 z0W#3@7cGhD=vWC+c61RDSoKdYp}4uO;;F)XwkTe_;sWWK6|)jr;GtP>oxG53OYaF= zu}fWh$BQNC_>cF5eGq9p!S&){*Lzhbcf6*1C3ud^O6NknD^AO5B*UC`^{VQcS0wx68p}S z{}D}(si~aFY*y;}+t3QBXTon3k<1Jf!FiOJl@-_LA>$b=Jo)GVVXtg7xr^9ox} zNkl=3W|3tAW0bAHd8B!!!YNC?hiokq!o&ZhA{}`@bR1^vD@ev2Jq2dRUJxDGT|{_fhFe$fi+sFxlK{Zfzt8&E>BUPfFxur%h`dX{%_$F9--o||T;l3C z>YyMu*GcbBs^!v4NXRht0>bG=fz|=-eZxcHWM+53B$M)Xl24cMXGjnUb4dFv>>PPC zx}0w-V$%TyF^f-0+}{vN59El@d2JowH65a~I=3XTN&CnIvN^jB%`C5&R;!QP>5wbu zZvLtz>m)I~V3i!&Vbjkmtb_mu{8P_7`W00+@uT?DS}ui{514hk*-(ws{!uNaNAF2GzN=$ znX3QlTPMrocy9`#8jZy3%k#9^(X#e$^YoZ6QJ(7SC85^Su;0_uOTSY6yttlQ>)eRy z;TRwbzq`AOaB%LG(9rPcd4NDRfAZKRCeNJ9pNWjX(9`^QS~L2>XGT+}gxYjZBZ&W| zy?oIHsHeevg8Kv2pp5Pey5CsF7b1y*!9^e3Dw~<{yV&;t_)gk`Pq0qWPSqaPvctfB&Z6v*w0_pVM_A@ZDQ1mCMjgf>b;o(IsVeY*n4x;CV+ENR|6N%v*4(zS5YMyoW~I zLlyV0^B$Dn`?JV)FTKis`AQ(EKyMJVVaUGkm#3vmtZ+_$W;d6|@S7q8tXIeh4mO4* zPaVhpL9np+#9TvRKiUJDg^R|3*>i^@OoBidh>Ev-iHZ7wN0&_#Kc0>e@LQa2)4X<0 zYYPcMtsPEdMlt&@{V~W>y!M(lu&o_W-g0Uzp2^f4_3zpZnhfhp<1Z#QHAW0`$SLJ$ z5|jdh^jpWJ_6)fUKn?AN4 z`7tlgz$!l^i5vUbpNz56zKu)f)4)$!z5G42x#B3#pX=|_^He&NVZ)3Hb^QZ(1P)!Q zYP%fVNC?SRTkhQJt_gZ);}zWMSjtfT+5dpUmY4PGpRT6x)ipKW{0s$jwsN3IDZ}~c ze1NAe{AjgJ$g%bOA>!7hIHKqSHad}|xe3*cz{y{*?F_*Gen*QbCPa+{0?wa<_T8P6 zmvhwf@f%CSzqUq$)tQ5L(#ZS%c(?Zjb`w}gOxxOnonJf)tnz$k=lmp~2nd+f8p#tp z*Pcq1OCbJolxQ2B_hUv#ULFMKbnN_-YO1z1xqi(snBOs#_B>U6VCz&`o%(Bvw?OLw z7iBU_bA8<_NL6G)=#QwG)#TSNm*yEVKt)dFpcTkgt;>d*j zjnHZcr8VyB^jK|jTCW4y-m+(*uM&4Mb-MZ>jt%r=8M z**N6@KF_fj-+13Vx>?>jK7F6uMZjyf;ko}s9C2M3M5!!zA{vBT-WY+ikSTvE6tyax zRK-X5EO~aT1PG;wjgf~Q`#Q-3TWlD%M%=% zAK&ecTlV~B;>1Z>!7TfCB~V$`?Y3p{mSpGHXV`gW;F^WPNa)mD!#c6acw2l%F;NZq zQ^-SPV&dIpw`A)_bYi z^CcZA=obUUFA3ecjLHF9c*{Q9{K<=5D^%KK#`CdbeN=1N9q1~roO&Yt^?DF~I?!WI zFEV}@=ivY@AvgaBkQN^@zsphWpL(J`ii|W26g|xu+bPpB9Ja~YyQ#Qc=#?OH_Zi_a>CA{&O zDV-4kuCBPs0z2kc$4de$Kbg(>44u20(m1xf7Dvgz^@HRj%EIUH^_5lqA=EU}DV>lf zJYruSEQHeQh%ed(pO7S5M0SHqI|^03y17-+3R)XPjgn=;C~RDq01{GopZEmS!m^RS zu6UGuSkcTOEtn`3@PAowv#G`r}JQhUQ>3>PtgMNsPVke{mh= z>p`@@`9TH$MPIcirBAx*Y79Z9X=KZYQQ6^2G(psRXBqGIXK?40vO=$zGQWN_>EB1R z)bj9+#rH}e#>@5dNR!G*>Rc{b@&3=5eQ|~XziZNjCl@`SiPjt?e82BHuX)JaJ7Sp23lTi_a~$burHUJL z4$(uQkitdP4wX75TT0M98qgr@;~rb18X2H_$< zgzp1wb|slVFl(-mLdGdb{cg$q-ZwMOMwZv!It%#Nq^~GhM0Lwf<#!lLtxgD}L0rij zl8BNDOy-R(3Q{f`Zy7eIK3HW7cAkdos5zy1ce_(Sb&Vmys^;YU%eDw#@#pi!teWaLDPG%YKH#q;s9 z-!FnNiTvXPSR$n6U!}648H{oL+hRsQKSrgVxsS7xJSTk;0wnGUWJ>vA~DLHs=-(~wr&eoDEIuOd1mz=SZAJ`J5kFSr#tvq&r@?E~axrmE?K@czWO z#DaltneTn#N~J$DHB$)8^h|I_k}WliRW-yJX`{nK0U#rdC0>Ag*+oYrI;q&mYlLTQ zo>q*4%zJM9W#NNBD!;Y!7qpRk^C2dENE^oX!=vN!>0(JheLL*E`5GXNf|F1*@|&iAB=Gg{4262YCT* z3eeWjFdaTq%WHCdq@*nr#AO>J{}=h-2j+k(>V|w&Rm-;+3e<@(CR`ZmW=FU?=ar77 zWh~5CkZ)a3)A?7jnPO3uc&RSA=SL-is?oWNwKsqCm?our+)RyZfbv2DJ)aL!$5ABI z{6uj-OktZ%hvxy#7(vA z>9WF9MXUAD;Mfgp#4WdU>P)GZIctF{+hK}DmcaOc){p%g$$aw)n$SNA*&3`VyAWkm zc3$;;Q?_aR@u~%|B477JH1sd?hB`ht-TG{ISysFJTq)~Es_N>J?5TKi@P192y0wk! zpsGVG){<_~c0L3m|A!(wVtw?YlU$Hphd%21$4sGW5M>qW(q>}3gxM*Dic z9wUC$=I^7{Un>wL)9enLunz6o6?bimUr=iS#^N6|W}Bb!XR-#ar8 zs=GHmr089i<9S-GBuxpUT-M(2-I9#8w3Oz^qCI7CuW-3Gjk!q|+Y;PXUnB{Xwnvc> zf;#F|y$}hpU#^C3)9P%WmFF)1k_?odxk=m=Yz)3n__p~T*ox%%HH+y#K#gbQvz~O? zGp5gNhtqkfxOSM1o}_kDAz=2Gx%6@}n3S8TBmI)7t{HhVUhocD$Wmmpl7ZO6w_-t4iADmxkH_)qkG!~}E*U58 z$bO=^?+|*O3k0G@C0Btev5_%bPv{t2n2}B zJa!;Q_zx~<5@h|4e##Qivd6wOR_OPi&U3>=Vf^I-TMm(dO?D4 zF-fU{{O}=S>RgyS7`G}4la9@JHB*3}o)#%GPKa3Mp7e{(4-jfG7U6}dZiTNo!y=fu zL%&eIVnq`r=zW|xU1CFC$Wk>UZO^#A{CWW48%Ed6yu6!8^k3v6KlX%aP`Db&;U86_ z=iKw|E+R*xcN(meNt2T}sM5yueO<;4J*G8X=D(>{O(G|ZfnC;;gT}HFE-0vI4f&IJ z(mn?75dFyh*af^_{*A)hf*^v3DHZ(@xcT$lli)`hU6G_ChF|o$Gbi&SvfgchKQvp6 z$6+)JEd7Qn86F27|30$*FZO5<_soaerGsdW?zp3Xi}MHitlPDzg(rkyclB_U;;v}NqO_@ z>d>3ukhCv9kkms_Mxq|_al%WT*50A#+pOMfH0yXVK=ARx}J^q);1hV$O z=;2YX!$5KZ(42Q}97y?$hn58fbDr_+F@^qy2u|}GfR|Xn+9TQ>O~}!NBFw%RsKd62 zKdr;KkkgJZ=@{s{Ft~ULQo0Y&a-G)N`2)MP`Qv2m7n?E8889lRLVU#hqglc&oV79L zzwGuaXsyMBB?uD^7b#0iDgqEy_z86#&>S|e5Id=oSN?0_yg{Z_eJ>fKowAU=iOqbD z0ST*EDPKpnUi#wh%~D`_6(#|XhjTOB;E~9?gkE#|%A4FpQt8ZbvhfF4QC?FM!2ZoY?bs4dsFEpIAp^GdPIIJv!OJBGXrSdsM z886gePwLjNbg=2t@bmo<+|}4;agd|UI1qLm5HG*afj=CS6V^S+1eBuwMZb_2{V9yK zP)M^%7Zl|Kh@kX^|61!R{eN!ch6Ga{CxjzSDOfr7$4Q%sGaVK7O&+)z9#DWHg^1oS zQGnQ^@f&AU99bs-$!uPpi@W*Z3jX&Kj!P<)npLmP040pudt{7gEF2|x)@rPea}`~a z2yUtx$B16e6=>4z?4k$**&e(V2Lkh&UxJrIdgKSelK(pnHw2j4I1<%-;#R*q6Ej0i zBFQ3t|90h9%sR6}mp@B2z3ZI%=6n0B&27fSOvqK|OI{~fsTdwr@>=7JEtxqJ3})*l zVA{aCJ3rAoEqLz)hkMMB%!ES|(nXjW-2D^v@9PO(X5eGN;Gg60vq0Ukum98Ye9**m zSSJi}F-}?qFZ|nBZC{BSOj!2rT}k@u5;jyA#4oEO`TkL_83pv&jkXJ zhmkWQa(8m!XBapoL8&RJTT5&V-CM3bxl`0_R$`eq#d-(tp)T7CL5;DH!^0?-^CzzaK&<3aHkQIP*i zEWX{49W1zM@xS zJ(J@XC53Pxtl*!gN*TyTE#>s_BS;9}3gdX~&`!l~OAUW!cHVe6|RB}LmAaan~e(f=4xn^bm8$=bq1rj4v5k7zKnY@?tiq-ynBUJDIbpE)H zdK7P0&NC`}sgI9u-?QArrNN!`Uzj!cwTSB*pBO|Ct3{HIEL0?aU~_FRU+?yWc)FVJ z3Q?rH3tL!}65ZU|Zp5=U{R#Qu`7L}#uYdnB4~ujo>XZ0d7-%4+J{AY{j{On}N>o3P z%E=T3r?VW}9+Z4ilD7Kx?OSl*^Mmp6;`JZ2*=nOT%j$Hopu7j@<$aC)f@>T_z?a%N zW^J(iGr5o_`VFCDBT^(~Ah+-JVYG_avooko&Kf=F^*iHh6b@~KnaVoN`SI#$k;!Zk ztVd3PAFjN(G4(%`oUI954#rmp#s;yhR$sH8W6FI`JsL?X4t9~k4bS9(Fk#%!v#A=J zQ}pF7TX{$ue`nKw+A=eDPDmbX0iq4;Nt4ay=*_6(~ei_ zY~Mo{GPl1I|1tY{wWCIw(2H$5Xe^Z{z8DGb3L+)C->qm#2}*8BK4EFJ3p=qpSO*&W zQ5IXe^Ry=g!)|@yH!8!TdUzYyxE572z3krxR zB+6Mh;n)^$9I&FaHpE$#3nyfXBZbWf6Uj$DYg7;yjgS`)2NKwmME`03i>)3$G4MGy zlA@UsOVrz_rMD`f8wWY){(+I1^}WPxulLi=8AsaqN4aPOQQZAN?KT*;*LG|p79+G+ zRgh2uKXH}>6@Gsm#{K^Hq$o%8V3jop0=+WPBsuTVhu=0rrv|RR1q0gR>2%$mUmv&4qad z@K?Il5jQe7IFSXf5SRUxpm%k<-u9JexnNcxK+J~#>R(d9JkY#@rrP3yf`Sm}&5cRy zhNaryz(Cd+yxPW|t3r7NT_dH9Bm)}iG>zMMQOK6v=q&jded6{FmH`$q8#KoOf$x+B z58xMn6;W?e5hfUyRC@e_Oe@-B-vr(KNW3KRS=SL?cYbPQ6C{YdJz2$eFrI`u?~cE` zNlM?1xd3P9`5N_h6lygVAKPFE)bD*J#VP|i6TTjW< zM!im~&@mV4$U#hh^M9Xsu#Vy2KzUt< z!A*KjKYsXq>)7|QZhVSxSHos-fUl=UE1SX!q2*|4UpKwx)kYVzrlE%K39Mi>h-6Y> zdHA)PL_OiD2zTmc)os#-7zPtd$fAlsW!6ZpWI@b#VtoA+L-29q+}pTD8(@e>K#3^| z*-?*JT-0rSy0E)DZah%5-=Cl*N;U9Ad6PEpEUT}5+sft_t`4}s7Q>pr9vt5QuS}Qz z1OCS&E>c6U1q&^c>qDMHPs3G)H`9!2e(oo&ZUCSzC*ImGr$we3`XYQvVU~$%otBC~ z?^oh80KIY2yn0UT#JyHI0U-+C+tnT`=Aaz*^X&S*2Qn@AOwV$TEh54X`*?S|8BPa6 z0ePwqs6k$DSyI%24>qW8%=AGfXIVh|?$3`d;}Qjn^(QJR6<>oW`5j?5bx~$cvy!6J zkZ$`JW3@g=y{c@<8hfR;8nE-nNynn&cHiON1zscSi(0;aLFOOXn4FM0n_VtUgP4*# zW`nKThq=}s&oU8b67xCp@JVMkaNZj91;vFHLXFPkWamzyrXsJ&@6;#m4#EA{f9 zJ~>>AJPC>-1>IW!6crV*DJfO9mXP&*c6Roc8dVDB8r0F~bcZdvf#=@ai9zE6FSZ3P z(3p>`edhy|bDIr8cN=nV9=dqG&IZpQ5|PYvJ`b{$uyj@(BvPLJc-G^k_n9cRu+Z*f zb57%mC)ZnMz^{pUcK3a39$s+p5+Rr6Q^Jx{NA1STiq~58O9Hvj&xUK$f;m_71td!U zxay8<`2jHT(9j3|oga7yg6)d&Y)YjS72PeT?I5F|XC-nm(cLFMml+MMT)$hgy2$;# zz}uC^A77sD_l)u(5aidF+t<>q`HAD+s_Kdg^y-cm!~nK?I@f^-ZEoB-L%(`O8@p(o z+Ba&w!}C}WcRXNlXsFAkI4jg`Or)i6jP0NOisbN7M;*Z_=pO4k$F$ZBtSPWs_ zQ9qwV&U@9oH^Nf^hJO2bk?T>km`;$fMBG+7`g+5U`E92k-oNk6d2tuvwV#*&{t{T0 zOGnE2q-|(ucFJAsx9kf&=3WTEl#%JP{hE`JQO=P6)Fk$11MWaE*QFM?pfSE>XEZ~< z;||5o{1=0?`z@qp@C5$3;W;;U*T4oc_07#608#i$|9khXO=&eyKM(OjM8h>d-nARf3n4(UoS zb#Hms7$hPS&D|Kph48`Mew26-D_WDQomzD(g)K@8oS{*HpM>Q2O|4!IX0s;89@m*wBywHHq;dtOpyk!$nowzu%6Ixa<(hU8~8!#DE) zsGU-s`-^gNagBEb1@SP{V!L0C1ci+4h5fsEIyUP_UBw7++c0YNEw0|`M_Y`;*G|Iy z(!@fksca`M?Ze`e4?RbkS^Htmg^D|=n&^Vhgsw^FK?>ipAi*}tG}RS+h!en%xZ_r@SPI@YCYIgTU7izxnUh(U51VgBCUfab9)G+#sAO;xb}_@k ziA6kuG0nfm{>IUl#u z85=-iFUYuf(DJF&!`gnACsD1sG40gN$ zTE00syBwPW``@GD+V+2!xOSKFxP4o3zHPXLUAzZTidBtxY-`PybQJvN0(1S{#`zlq z&74lRG5_V(7OsYPET3g;=4;`S&IBF|?W2@%G;O`OajL9B$bkAW4Q4?l?hYqM6SkZ z|BScaZK633v+$MfGwtr>1m)T7Q{D}TQP7*Xe#uBgSG63=j&&Oq_~h|(!cm3XjAQfV zk@D*nA?Ytw?YcKduJU8!aq<&euGgvIp-Tb~vXipJ;c+;&kM4c6<8ltfOR&59`}(vu zb$2mbo$P!83KE__^z-?=S3@fxphL3h-%{Tl^Ol-a>=9TNXKi`DNw4^0J1R=-`2cY7 z*NV?Rr-PA@{q-VMZy#bb?_4ntv6=`0&1o40%sOI;#`2!FUTPK$#;h!0#!}V{#BID! z_B&~!40?T}br%ho9(Rc9(|vKg_w(Nfw;~Nhx)*M}T}7I?WOlw3{m+Th?FK3jFT0i+ z7kQUON{92)m~={Q`j;#b=6ks6vN%0yrVlVaq-Vc`=M}wuxV?j9Hx4@hLlOtH%b$~obwedbpdP6?= z?TGQ2gkCrV1UN@m33Y;O2qq_-&uAGHv^^y*t&-=j(dNk29B=R^Z9}WYoU}5=TrViN z6gYA$oY;Mo0<coM5}^S=rJ$c$k|#JedxZ+iAk@S#SbhUHE9ivcN~R9v#{E4 zdjakGLG8{`P707D9_#|L~Z&=&Yn7b#M0#N$3k0pjga1b$`pc zWLk+D_yMhIDe5xbw%dHV9HYlM16!V&z{H9S`=6`@K03T1;ywMG#VSquRh~vz{vs=Z zkChlpmh;%hZ+xn4*C4FKkK46Z`RBIN_7+ljcm@%XEc6+qX^(jl=ZQsavosJATEXX| zd2q|J&))Grjjc&>Uo(3O9X;>u>=%IO5^pzU2V#0&K_WNS7I&{NkIZ$cAFEsQb!_`j z>?6mL=gs=b0yt(EfXb{930<}IiT+XV zO!kg$X<*HWC%yLAHYMYDv(e?SQ4qgq>K37+6B2~Nh}jN*R5j2+sh$fvI^w4575bK# z7(dyq1Wp2viwu9x?gO~TVij0*yvUCohi8XHny#xdQnh&nB`YU|;lRIulb zJNmuh{mjhFAMy1QoX-YXczyuPEJsw8vITI|ijgvOeGpMO(b%lx!^AYoP5&v{+XT6L zGFkQ63m{O!A-%~+OkB+~b@8hO>l2XdT{hq+CEE4xXOh>;LI^v@|8mddnYbWfT#VBF z+N@P7Z7~FIk@G-dyf#9(kYE6u&)?0n$D%Wj zu235*c4y^P{+3hgMt&C9a(|$)p$9-AFZ#D00?j9EuKWR_~{(j^(lzA^f-;@s4H#yoljf&8+Q}_g%V0Ow0!) z7Y`^!b#`%w@iWzyjuNE^?}O#tU!d*#z8j7PWmK;u(6G0m8FiizDY9v2_oM1~_Qb6W zDlLQQjBsUsbMd!mjrC&`pq33$xv%VGrX!#1)HUkGs$c$Dt~w`}-uz`aYI*xJse-?#z4#b+BK(g815g3~m;e||vc_JSO{X&@p zU$5y58`OKx62B+x*Aapi4aOZz+4_DTuaPuX+DAK{vxu$Y>LaUEer(Yjh91s7xvU5va*|PRpYYP&g%wo=5m3MX)@35Br`Tgfl z6NB0P=}O7W+rRGJG!NV-{@q^~ua_|_#4sMf$RVyBvgd;-@yL}>IbT?ra4t4FNn@zE z1=z+BjuS#$c?$UgW(4wWAus<9PF3vdBTPjizvxDpi;oY zBo!BdQg6}q%F2rEHO^mdhvw+Y*m&Je?Do2P0usnW2L2g|^+onI;A-GtIBcVhd3`*) zr=$vqJ%!JL`m`PPVCr-Y?&X==4hfc8wj)a1+V1vKRYVeoNI+Iq6}W28-)M^b%!sZT zDjPb>HNIgr4aRZel;Z%Fh&j}mJ0wgU@>Ws%H^}q^qB0$;rUDKoVPx-Dc77{+Eo;ys zoNp$jPXAEFDm}5n3c#TWGul$4si{=i;rB(u{(SaH{Y>lQ%+XE?tw_hRvKeHAJfTj$?e*J6tYDp~@P^}5WJJi!yTGIT_tYbO!PPBP5GnXR6b zv5VDGy7KtXD5p@exrW#lKb9Sw1?+b2eK5>i`W$7IYS3WT7)JE*wM+*X!a{RdJy&tS zjM%x&;2R?!j%NQS1-)Z^OP76dCZglfGcxTuqm3lORXySG#NG(Vs>({ux1i4uA-WA_ znvFxA(yfQ%?tYWRElIe!Yth_F9VTs$1g$*lSPsCqVTV@e)}4KZtA-oE4D_WeuuO*26eM&%6QXA9kC2w<#5-)a)+H7B$a_2+}v6F zClJD&^h>vKSHp}S+J=$P<;K(4;i}UL=iAEc!ZGKqyu8%cE^`XVI6_ipJ(xyuz#Qz^ zPd&Ok>8AW&4^=t1A|7+z{G4?k&ZzZ<@1jU)S|5dE+rb3*r#;X`koA@DOiO$e(X3}w zQeq!773krjtZzr3!EsoIsm$5~Tfpswkhk_t=k0M%g;`{(*{w}bg^y_Pyk2n4=1h3q zCNw5?Ur5U(4QgrIrb3L;%X*tm7)M+-ah-eSUqd2PF4Q)>ZV?`o^Wz%X%7*R}i3)yv zVbFtAB!Bp-1EGx>sZ^&lQjIcH$w=Yb*TcH06LHsKj9eUp^j1jv7#s_W?-V&S%Wozh z2=Z{~@sEx@Sc2f8q5#2T#9}tO+&?&~eY7{{ z2>kuQ{TmT=;Cj$|Sb0^Iop&N7SKIIPn%2$QSQJm5jvr^%wVa|`?uN|5n;1rcPntqt zyn?}l90%v?a7rGXnF20dTmg7CU=j zfF4|*ua5MKPKr6e)p9#hk40!}*BaF50c9fS@6mg}{RS7$gws6<>X(Cvt($c>*2-EA zwZK;ofv$@HkB!Fig%xK;xj!?q?-hfSbm{4umE5MkPR81LnkJE z-H~T8`oNc`b?c4Sz-54&;rAI}6}4>t^+2?atCRNGukS9f?GNmdeM}#*P}UG>5GEn- zA8w(^ji|N=DnP@Fq5gyG1KwYL!m>7h;Vgdf?GM{a6H#KLEoA!|_L6x*VDRn7Hrv*| z2wT2eQ>i{Zoe7$BX`6;D^h=Pcx&dN91KMCcuCf(+e1{^fd;DA-lot1?~5^ zzk&^+h3e|b3X!)1QR6CGigo{+no+-r^dVmRL$qWy zed#bTYt9qg+LguGHQ-~__Khk|bX_(Nz>NFV{NnU@;m!m0ylsz%dixYPk;VIbe9z^g z)Fvz4I9RYdThCZ0sg{+618>4c)K4d9-P3z)cj2~^x$U~dN#DQL%asB=8w*vCH0c+e zFzvr|tcfG^OvQ-0A02GE%Sm_f7r-Bz87dII;alyY&r0n>~NyRA4YB zRkpDG*Nq|#7DG|IxzSW~MeGj&+BXjtYKm*W3n5z~79#%gg#f?2@DQ-p-1dqe?rba0 zs-VyjB=7%paq7$Z1fo)nKWuShFDt2^26|AE6kH3QKi}hmtsPYJh!?>J>KTKnv{T5< zv}19A8=55Wk$l~Ku7)bKtBeBk(SLV0d|-gO?P0Sctq2zhkOxLdyadpkfZ*UIXTA)m zL?_vf|*bkPIX0SUkdw^?in1+7Ug@33IJfpNhwgz{|J+v@6|4{7S+QfD@M z?dMLU=w9>ETNMRbn>9sQ^CkbU&{;~rOP89y*;`k~{c6?aAmMwzG_K+IL1`SFl0Eve z>kaUXll)&;EQpUx8k#01{?YIG@XD?N1L54=+wM9YmqJ57=2(w3w@8YLhNeOX1xiWg zlf_|m7B6YQkKN>??cV6H$dq1mnw=s7@jBeEd~jR>!n-4c9}9V5B*iT(OSu?22L`2b ze**;f&4%*h7NA5VN5qA9=R2)*ru2$lZuemHDUwMlcZT||{Q7O+ z;pNQ9tDG+KXwE8y);1fH*pmkSbkt8TZ0QF4nafoJQL~LYJo6O1OiQBl=dbp8^j10> zj}BXOPkpvS{L*L>*JfSL`BXaf{W>Xcj~C*)TU+O$bM?P9EKTn?C(Uq>WE!}tNk;qn z)z38FuImm}(1o*R)@cp~MvRrj&+h2j@OeFo#h-1qJ8Mc0^07JqE0D**zC@=@);kEV ze)Je2p9zX7Ap30)NsWBJGYk(yN{T07aT^uHs^X=l#@twog372{f1YDYe?e*eDP~cS zMioDH7RecPZ`Zsi@ezmI+a|_)EO8Y}rVEu81 zq*-0;y1@hAj9*P-8mr(~3lk59J`6nMpTM|lgX4xT_WfiZZJZUF=nG#vqW|gJT^;Qe z7+tDZ{F!SuuZI$R-@EzZwH1H_p5`YD{K=gKLXJjb^lO%CD4y{>{PAoPyFg+UQtTTU zJNB<%IX(7o1D`FzRpg<*KBl+^(x8_ZOtiKW7~BWp-)X4}o_d%I{~`)m<11M>-7cK$ zUXquyFiRCWqkN)*2ye?W(}}AGA~NF7pQ7kC`x7I!ex%^0#D9gojhJwherx~Y?5Hok z*~`|B#!oSWr*-#-a@=UYrPBYeixLP2JjzOs9ez40yC6VhNA$x< zv^Ez%01v+p)4mG-izMMr)L^T2;h^y80#X_$otZBI%b^^6Fv<2MCg5o)zJPyVibh)zlr7{1_02mq5fGYV3jpKX$i{Mkoi`?A;2-zcD`J^uGF#IO+}R+ z4K@y2au-Y9U>Z!$CI^Af61|B%URpRuIXE$mnq0?}4 zYkGuj?|wI^`q z)nWc~vHyRx54_jK0FolkV9L;8hWzs_{Cy>Yx3*?KY^pze$8!rTz{C&&l2rziTY~%!F z&P=edQYJ3OdI%Y!?TN@AgRKd|dj8 zQ5006g>?T>&s~i#B7_qCe>r5~_iE|~;t5j#Vd+e4j5gTNQnvs3>mfP{KVKF8{f^S; z!ge+}i~*>x46Sen?-!gzZ!c?E*{v}Dy%-75wqxXPN7j32!yhz|tu7x??JXS`dXH0F zJwT1rRcuAtUjO~ar}B$+MhQ!J%M4G9 zgq%dQm~`UZ8O2ln_1yBjR*f3L4>Z>$T4D&2cURL1^ z)uqbsV91D;<1exkAZ+OAT-u#CqyOhi{R|x@KAtT?{6u(@l#v{gQrs7L01LoN%ntzZ z_)UebG@7m$^*XQgN$WJ4!6@^+a{Z#E;qi0u_(HA4tiQV3qAQlgVUx0YekeIaNrY&A zHk$r;v?kAY*6C(LsC7DPg&4JS4JXibW}bRILcwf4^V9ud%Zn zA5%BH)+@?-4Yil#q=v^Q9q*q*CvtWkKy22_Y#v*Co^t`BkRg9iujHsgSEy7iJjWu} ze%s!^e8pzeldA zV{Z^>*0=-M?|K@$yq)T4efmo3)b>&LDlrmd5VpPHGgkk-l*q9i9&B3XJlosdW_HS! zb(^4)Z41DC&*^{`t=kAUvm&mBg_8Mgv3u-7$;QOkH6!5kcq`}u+T5ctk!nSLImukn zksn%;xZn>Ib6OAF2OfLQEfw&Zv5^Q|IfI?gTn2+gBQsgTrQ%?=UY{uV#%b=p2C3vE zwAzSf<)9J9iIV#M_whns4HKRW`8>rRbt;0yQ)ApSx5R4Pghy{`7ct4H~MOD$9lbJvFiYn_Cu zc?5Bo^d*cv@xE3nRDb1w$$ovN_-4h5$Lv?DVr6x`dVzFRfPX_E+)`AH$(k`S09FrN zE)H06(dkMzd$b+*JJr{;x9l{Fa9lol^wdrbm6Q=h%thYXwIsa6+II2dFlPLRTgX3F3=T4l+ZR`tR&EyuN68?kns;qVV*a5zN_ zJ26G8H-j|?zTCbDt$U0Y9dn}vh}MXUwYlH25iRxLBHHCW9;9WL-#uRr?{Bfy%JQh6 zCAfKmO$a3%9^5hU+Po=bIl}u)U%GALRtF2?HJV_Nps}>8HT!@=aay~_U{}ucY$SB} zi20j`0%yE?RZx%q=)i2Zs3Of5tc$X))5li}-Zdq_=)I@iE<#E&Es0*dW*B z&QWq&@WGUbcvs?<{?YyR*te<$x2nUeR%(iRvEC!}+~aK&=*wjlP7MYax7}V5zS5yh z!IuAoKO!CH4QQ5d?|qk{i`(X$n`_lJ4@PAX5EFJqJtvWi3*X!P-1b%5h?ZehyF{+@ z;E~*^8TSL2pS&{^v$bsu5DItZgHF&wdzRe1gnua_TXbAT&RK~SXvH;s{y{0uT3PvW z$;XJ1n3kM`9x`_%T~CATHw>vH6;-K+%fMhaUFQ@upB&QVzoMR&kul?jK}AblOebm_ zQP%l%XwG+)66Z3F5oPZ5`S;aso$+faqV^An_gnlSa^MfjeM@=-WMm|SAds&D*jz5S zciy{;&ZC{cXzZoQl5)~_FEtW`&7#tOcK0QH;y%od`trWS88?!SrH527Y)zPCqmDLE zw^iOjaC9pXAMHPxEL?ctS~@N%D=j=XUzk96vLzp2PknRG<;n7cFKChJ_Iyi4cyRK| zpdzXzV6EglXTtJ_wAZq6V-k@|` z(^lPd@d+Oaf||q{tLLf^p5hSEZCYS(IL!5E$BXGcE)Myosd$nUY|ju}$3mot?oT#? z)8(e0=q#8-9GtT|)s<44t9Q4xY_6YEcIvZ|@Nm%>^Z0yAAikyle%#Lvsu0SgR2GKu zi(?BI^rKPM96-y~M<)3y2Ajs=m6d9r-& zT=h4_+4u@S*a?f8;#Z30yLp@r;=j*G{kyuBdNBnCs^}juC_ItJk430e2aK`GFG6I= zNO~QX06ufu&0~%&PCVJ}NF)+{Q8m&-teW_qK}YnnmznftRc+tJ$*ngAUey1NUc~Rf zW7(btFWwRprq9A;P69Dh&FRBNIM9U31&Aga>;cn-iNhqrOoZTxH$ijQr*|uNkvLzf zVL!eVSpzfR%(ttmsRgC|g~?2z zSbeL>&Oyyt9-i6GGa}U7=l@or(<@B+ZSYqJF^8K~R*eVM`xbvBqG3zaHdK^U`q^po z=1)CD-!Gx;J>dq4c_8lF`0kc(D@5mfv7E<81dT`$BfzLuIG=B4RRc(v@}AuC{hpI1 z@R3FRvwCuBGD;ON-a7{>=H5Gt%U9}!{D&$fJY484ZsoT~wX%?f@~{C5so>5Fk91{B znB7C@hN99=0>Tltx|%9Ux@}4EO+AiYrNcF5V%;m3ef(C65zEMp(x?fu(zB!VqI?Bf zMPCV_K>r6QrbiFhd#-hst2V3jv1L)86sHmB&=>G*S{@msC{#6490LkdOF-cV%Yt! zf}x1Bf{szr6sUzv%>QHH8MYslAmXO3%^(H>xs1)?_db_CCT8k1Gp+sxkA16oWCFpr z#R+co#TvZ?6uZT3a9k;FFII0(IJG5WONL*&<~6+rIhFWXey{ZUP=ix(3*(9!D~cXG zbwJ%r3t2K#>L^(imf3mj*oveTmu*xl-b8%c9jxcAWOkyo2e zL5^&-Ll5IXRw~$EeFN}611My%UYc6E2YVfil?Q900MhOKiTH%A+co@gnl;e1R+qrv zR#nAul#QGXZH02*u!Y{{kaG)TseG?S$DdG+Q0j7nVk=FjvkMLu&O+r1=BaWOL7g>& zF}w#%6f?!p1f85qXDSmEXqdohON?)twc7 zU6mC?&fmJbbED#6n9j;x^qTNgm|;tWJJEj7oD`V*f7x1U)mKw^OY2 z=-xBDIuc%W1laZVtMi!8gk6axbl{RQIuZmZ@a3v~*|yWPzS@&!1c#56emKv{;9enq zkMGB$z2F*@4_nP;q79?6LlVq8KM2Z;GY8#C{Fs3JZ=_C~ZFDkj{?&JeBN#R}DcCwN z)bVgykr5CAB_XB5AH?&?m-)vJH#zkBzCv0oqY}*>%F}|Sxz`W)-#e*jsCvyBdUZcn zQK0DP$SEml0_>Uv(lRtm7Dk)tC{;RUEX3c%!@y}ER28ornXuk=M=xALyp(E)l9rw1 ztMiAJUsQL#hE$=>(a0vgBByA*V<89v!aUUm2_pr8F<4Wg;Cn?zbUuBu!bUp73`NRp z5W@Wp3{Xih5I0K7BR|ePstw0C@^~y&;IKah7@)C={0$%xul?%{R-d_as1zvUj+yBAm#nE6M>B;YN zTQoV=R7hIwJoqN@UU-39GmnBev3l=bdKf)Sc#5?I`?9$hflNgN z@Axj~FU^DzzmwgzFd`-gmp`jAm$PCwa+8LS66Q^3K2YuBlfHC;p7^X5yqp z4?v1;Ee(zs|3xbY$`lj1XI`CO zqZAi`_lwB=R-+@z%_^eYg@u=hXa`@p#4Scby|pGVy@s_ z7$9QcWiVmD?Bym{VPpcRP;pUQu@6J$k8&U2XB-^MfPE4U4$Pe-1(gNccfJ^xppnbE zh>Y;CloUkkJD$fX!&?H;7bvp$L&rkHfmp2H$JPmus;Cv>KDphCKeTXtP$NpD1 zqM&V;4$U*D^WMS*>$K>?8N1}%Ea=7s*e)%AKv<3xv~V>I76J^!@?n=pGxv1z3@Nhj z4pk9Q^B{7}5DqYu;M@z>h$^QT(_bFAfkEbB_Gk7(F7}u5N@yO3Yw}4mNlO_T1Z2-; zn~K`&lF(lj*`L933^W0q2i>>Mb9{ZuWYts z3PnYCc6WN!y4^(Qt9m+nyZ?#v;A+b-=2c7TGRgG9nJW0yRVp+P+#Q>Z^huW&_e|>1 z=6bLky3<&D_@>!2e!!K!Ou9@ujFy$Q!Irq4vTp?L-B2=bgc%9D%Cmi_)?(bn2bKD1_) z-et=P$;rh>jU7-Ig;HY4S(7D8{tr-DRMoH*3xEDqZ^1`AifwdcPSkD?SwmB!0u_P# z)}R+x%%B(rdx6`zW4+#a11gM!oZ}C-FQoz_qsfn-n!*u%4iR$kak30C5H6l@t{q-c z*^3*T)Cj_#Q>Ph$p|i6b-nIs8vwlD6_9B&@q5&#mUlOobGO_q8Vx}Yg57U$5V+mGi zVz3g!p{dGBOUkQ>p4M8#tvG;=t(EZq23G$jh(lYjya+N5f()XtsR^&={hlxu3DLA! zM@<$|A{rXHVr(Q5V~u9Yf}Lm|n8tAoZTSuf4~t&3 zhoP(>OIOAk`id4Bw2uMrae@LyH8-RsV;N;lTmh(T4HMl~i&cySg z=191f+e|58(MaT`?2^|gaeu=+(NTpIS1JIwbFLfG7t`~SQE~?2_0-8K!!Ya(yKx*b zIVmtuZXHP_2%t9Vq;-9;pC3+PYi7`RW8i(maI$sr%d2a`M=Zj&_I??KNQF+zPDwuW zgQhbb9j>Se3JBYam2BB3K?sWvZ!x{wE|>Yv^e=D)AHW~cFk)a;m9846mT|9W2rQNR zWZB4I!uU^8a~Hnfl7sGnqaKI=?+@TVUUxj?7P$6>(F6`S>Sj~XKyTADkV!P^#2H1! zmwNA)mK9fj$4Pb$7BbU&d==44g_Y@o7?2()uc(crBu}L2B%h!Esj6)R!K@U@o37Q1 z#vFUtwR+3|9ZF=lt&L@l@)~D->--E^?vfdD!uf2#lE!ZbCQd?-subSItioy(4ZOXA zB=1Vr=Y|fV&q!J>tZSoh^q-PY-wX1$2_2NX<3H`8zIlmw{A)z5a@?0kE5 z)mj3Ya`b*GV6UhoqW>m6?FJYe$AR#@dpGL0%BxXl)fFd6s%)PR3<%?-D*odCK?NB+CE#JUX@fWUIY~7 zOu}<9Xh)9c1Oetx1cEVeM&6ww))E-u+@|3a;*S!6zx1nzCrA4tm3)R3R3v>3DB7vN z^_p?@9njA7o{4`kBpx+n`HBwO_FN>F%I9Hu#A#36IXXd1V04GexYGf0Ji&& zJARW)-(6BMhQ+S{Hw zR2oZPD;eNT54^3B7pAYk!n1!Mgg(--Kt_ssm&pzMAH)4Y^UGoAxK6Sj9w?aho=ir~ zkP#6u(Q%DM#t+D)RMZtuonw2Hl3#_4WGE@PSz7Xn$XUU^ktV~`uz?4%m9beTrRBz_ zQ!&lAcd_9kALg$irKhKtZ{NpT;6eL~Lk9%bMt=YdK^gPGC$fSkl(Gu81pJ@?TlH$n zsi5$;L0X#G8w^aEP_{MuLwhFC&Uo(t3^voY_6r25dI3B%VFa>HKoi!eGoq{n*i@E^ zEX#B{wNNY;QuY(ocQ46-79l=$OtoMj9xiV2UQ_=E#JRXxo=?9rYAAO`@ndU8e?%bd zRM!kVQUWxFjIDEe3?HnP_lO=rJ#P`O$qKW5i-P@hNXOd?m(Asxu-!3I+=7sD98yV+ zixd-bdaI7PEQ8!trq6e{cuO@AF~5{x60iaZ0HOH!@VAEu?}b2kWD<#z>wMx2-Wp@T z@3>5p!}8?6VDLS58#e2b?DU-XzXRus%ipK0^_1w*jv)dYLRr z{96Idb@t?6Ff@J1sH>B&dQ1b1GiyCWcq=_S4R>FtqV2EB`v3&gWKxI5c-@7hPt?lG z09x2hz zQwhAq#nqh?OMk)Lw#Tn_(K0aqS5`E`iILZ5My^4?F3BcBDb2lU2e> zYCs+hZB5hhqP>OJ%2>p8k5`n#xgOE;z*Du;le9;QtQ{^%yAnG<-CWi|Tf8;5VWy_L zu)Q;=u;z+Fmr&|EeJE2LtY^SUY-kkA&H~k^c!hG~5|<;)()Sa3zBW!|(ZU(Joh0e- z=q-S%2lmU!5)d?|(Z+=H_W6EBekJ-IlY#1|uvg~5LT*@R1Cw;6E8ZNK&- zJ-msszHY~}LmoYG=)B%~(qMiO?A5#nShJHbdmBv9X?D*hsPjHu$*gb_V1IwmEvIH@ z;-(~yB610b{{e!S{HphQWPFkd#cTBOZqtG;~qd3q}uf z=%wu6N`hb5*JS0Qhpa?}Ck4}?Uhos!+)#qG$FxmjQboKcGya&?ms7zF7H|K+=J`dR zq>rRgZNS$COGA>_Q3jJAS=*Wv5_sUw(%zFX<#S4d{ShJ+)wf;+35f@zuH?LQ6sVlN zKvJIrN%(2Blr_@cmJ|-?5o@-j17nr7YS%@eWn*D&Eov91-^|-e;gZeC9N39uI=i$6 zyvn2@g}~7VKZKQt97GRU(gLP799o04u!!(~vXxo&ZC4Fk{?e#6?1Ej9H=s8pW|?n? zdh}JJC&GbZ5Hcm2p+yzf%bd^*%?;hE=kB;cPCH#cZ`#OES=dk0Xu_2>AZq{ZUM4Sx z((ZAATI8U`YW)2T6>rspQqdERwCv0oV{Q=||0}dLGEMUbm-51s?(u_xSpw2=a?)L} zkrdX4##)isA>!CV0WmWqc^H3(gw;TNyDkzP>-Fts=+v{z2RVsh)9^vk$iN(|_F@7& zUH{Sns&Jyz1>OGm?e70T{ZWS4%yj&=B75J@1-Z zuXUnI!1u0uhJPKfpd110_kcGT?%J-mBU&zAHxpwjrwxI1#l)y9s_PBU_kiV`OT2&q ze5+ZZm5|o%7a};wpn0b_vX|t)!AhZ(2|9oT`FIOgD;1*MS#^OA{y8){$xBUT(<^5K zk`n*Jjw+t%*F#wf@^m9r36c|4H4I<(DQQ=A$d;LXzzM1Im~7pYl0>Llb2Jg3$%hzt z#u4wx%IqW=8LwPmu)y_lVlEiAP4hGP&qj-c*G8OmI)wu}_7uCKqKz`+bP3g-3s zff7#CkD0%Q47$<$LCB#&2MGtLmb!J=VC$NWvm~=!MBMtd$=Mf5t^xlzwa;cGx>bzS zvseYd&NfhHK5BJQfqp>%AdTVS6uR|^WiX(U@;2eJc6lu1!W5H>Ca+?eDVA+@XcW+t zYP;L?OU}xT-x#pw*dcv?%fwWaqTb}M%4Cho2(NhygEbBM?p25b^|~N;J@@qK0CtJh z<@ggF*J}M>R8_!#o7u+?6#9gVx(iD{|9vvgPye{j&;q*Q2Jtn`rcQTO1?{>(L?f ztjOABR%H$8N^P^!JnQX%<2F6zJ*V_GF*Q#)R|RGH5?_3N#`2j$HIN3pU#)jV4${?f zHiDSb}=!N<{IH_D=TO6-eh73(rI%81!}vW zXxw?iWRZt*kLK7-hS5*QI`4KB6~y?SOHxVeJaMDN|3wGT}#1rM9$_f37zS(&s>^MEABl@_l*rsZB`4=+l+bTq zzR_)JMc)GD+4Lsh=aX8e(Wv#T?_{LpNQX}|ph)9Bvha>FR-%*5044jR9Rc>GR+eJ2 zgM7G}`@VLIr5n6iB~bDBWvE{^lNe}5Le>JGgOxG0ZwY2qN9Ln#W8cbFJ zeAn?eNu2gXT9c3B2o&qj4b_Wqyu|&tQj9Y93WL3$1ZU5PcGR4*2q8V>7!BiRn}ql1 z*9@h^migC5!V?CJ0-n!X2ToJ^0u7AYF)Nre)T$+eG`8vNLxxPGiUuN^GoY)vX!`0_ z&V9<*#U;%nVJA?Y=94ntj739Y_oYnktHUa~&FB#z)?lFR>+0~_=LoJbgscI3miL#C272uCA?dGoB*L%P`lMH=}%26 zKh}qqB=0%Hp#FrQ4z~hQKOU!b__zUugP|G)jaBWK7G!RPlWADKg+Iesi5J%ghxwaR zU@pq`1gl7@PoHD&(4<%ooXlQ`TfnQ@f74)0g$>{1C8bFTlD=fB87uw;^}rXf`Ma2& z06*5*<+M~&Wi_Tz53cm@^nFcUvM`}DgndK#_{O68dT2sKL`}pnqq@&O+e8Xfl+5_Q z0i|TTDSQrjYNz@uzc41{q)XQ|Q;OveF|HD$V3br^pN zZ63y-VbI`P7Y9F+8^Dt^+4I8Te|;~g)8pGb>fpa!LAzk5SIO85a0$GKyXcB5pb3n_ z-~aMOg$cJ~zw_$zq=+A2foz*Jm!H#eo0ns_#bG5BJ&!ZHsV9omiz$(>_KTBC)+Xog zoS20Bo1}iUA^L;-IWueiGN(^(e+ZfKc}X?XvFlUuc%r3RQl~`XpsUAmT7iR*QO#)f z)agJ??Wj7@XFSC}Q`#Pq935YFywz9H^4W?8mT>Ji<1c!i^#Vvenw#a6l?KG4;`_m~ zNO_r&#G5YREmNyxxuvcNQdJBI2UCQ{nVig3hTQU%c!t$2vl4856i<7e)tz}fjc_s7 z<*58OJ>*+0$44VBwmL(k zD!==8*YKk=V2Hq@$B_lsoZpKcwYAJGxixn>S8aOlq0Kv$!_A-&_j$a4H+Uy$_*DN= zfgdUffUtGLk2NxW{i)e+|7wU)^15ruXo$DKKh%w->!V*>@K%pL>^3R;$Qmh422d3} zCUHMNPt4@g_wq6gsc@b9bT@aEi!!{B4nT5kLk0!Lz1RLa1}YV}uMEL=9fm%9{kH87 zb>69ZULBS}^LieP0|6*N_Unn2DZhCh#zRfA+C&yafO65g#z`U1J3uQ=LH=@XU_v3; zZx&aA(N{i;`vMO7=~yCl1;~f+JdT^;(qow=ex5j^jEwRhFZ)d!QVX^UX^gln+I$wjS0e)WpDSf_PDD%T>NEe}f{ZfqjKVlTpwE9n<(fPYPxU zy3s@?5=G>a{HzRp{iPx*>0^Um+kPZ-ioi$pQszWUe{tDc)IYzUI|siR^xC69#&=R2 z_qFRF^}Q=0yXU1?h=!(7KB6!P^mIVS$PDCeU7tN{{xU%Q_&|wP1(`llL4PP}UC+SA zf3jrU03N`tzxBQzZuA5-I#e4Ov5KG&EgDF{M@Wo<#-BDe{O&bCKfiny+4O#c`LeFW z_k1W*caVrz_Xfg;mK)!D#?j?pVPJg+vG(-!t++W)?E$!vqP7+;oV8<|{TBEb@gHEV zZ9YvW!I!(W=X50w^jm-zl7y)(9zQFXUnI#L5c7Xn{3WE5gk}$rD!;guYjxwgjM|es z{3KZ(3O!aVVI5$E{jK*%Ng#-Qc^~13QbDYES-VBjbo5sRXY=MR=(wOf~{Tg`hFR8vG6pyGp`ny%csWdPaMeg6cstNRHIiD zp3=;yUFn(X&zvCm!j=ox$ek(FSXX60Ah~P>Tv1>1+J_h1M@j#pROUk+nrm2Wo~bZD z3XOO?tZ7Yqv~FHukFM3kaeX8>`Bc2qrskddbNdl%{w#G$07-k@IiTty;Bm4ixwjkn zVU}COY&`4FNxmSOitr;@WU{sQd+NKrcdqo1lgQIY#!RM&#uiw4diu&hV8uaR+++A4 zci5^xi~h}x%YjGG;N?t-X49v%NcTt@3JG^ZmCi?svj=rIS_afj6QjE%gs%aW=X+kIU2UW_?z6yb@+A z4}1d3>hxGP3wZgQ{@LqsITPr-KW%K=eLhL&>ttLrQF|6u5mq|5m2TS}Wn3`F=4#pU zzM{tCzBgI-pE7)Wta&$mJ6);NLW}|x1Ok1S7k_PUWwDArsv<0LYiicdJc^tas__BB zcgmfKQS7w0umZMb+>Upw@`1tRVKW3u4>!WkHMzG>iJc(3DM6LjuI*Sx=X+}0k`gIV zx1i?@pZygp0ulf*@7LIR(UkJ{MMc(~-Kx4leBASLwf>=?S*wCQujejiMi#9Zy)Mw5 zHb}(!k?rp5#zqiHPS4{u6qA0F9Kx-EeG0&h!;rHEm>l`J2c(>^W+0~PG)>v6&FXPZ z#N}uZH&jw`@WJno68q9pZQ$f$H-JtEcgJVVd`dK`8_MgYrTKs;{)^%!jsNS_knMT@ z00#eV;?N@}3t!KM4Rgo!8U=WjH>f!}iQSuzE3Pc*3NtiQDpU^>2D~r!11|pC&keVk z)Oh@!A?ZknRz|LcA)F}g=^5!s7@XEwlipoOl}By?N*)Im2{}7yQ+bRQ2S)Ly7K!WY z#R?C?PZ&((P5~Ys5e)N#<=;XA^j$EnTleSA2neLO>eoKW$wx~n7!WOD zXU+yP_si23#FIpkBuq+>Ww($AZ89JK|ECrjVfy{t6Ym(kij9sEj1hwScgN zTu`F)>DTOUhtH5>n~}6MQN(UsEKhR#bd?HJJc(A3s@@ScibO}6Ra;I=ud&{n;uP{TgyEdQL< zHrKPM^4PE{pwa7T;=QvRyuNJ50*b9N<;LoHYm9ZTXG#<>WYf2P%h!+u#0oZgedbW<&4Zsb6$SfN|!OPteSMrl;3`-P=hep3AU)0+K?t4jmk^cG5GVwI{S*cvfoidfY zN@Vc(8}LQDyFalHGNMPDSI6&9ubJa{@;*G3QyyVarJl7SV^N)_nfCOuWIg`k3_Ak7 zcuE~SH5uJN&09BWb3J&laxOFVB_;Y`OuT+DTrL7DGL{3=G4!tgb7^1}BEiJv_wVH8 zF0Fo|*NY1(%YL^<8>c_Pp}zXfb<^@=K3>q<8)!6mPnl*xGyS+@H<6=(o@Hpd?e6;h zH4eG&=WQNwSeJPC5Itt2&h+zjKVaV6J{s-R1VdGX6^(Mnj{Hne)`rdB7;DeQn9Ys{ z!39vh78V5{qvXktZ)+YM{^GJz^zP@IDST7V^B^KZNv>8kQ+W|l_tPKKZ8Pu*djVo6 ze~83kM!(zfj=}%x4bJv-`ztoJv~f+&e zsdeIk#G?;EK`Kk+?f^$R9N+!5YAMfKqTf93V4}YfAo6{1f8259_@+UXP0P^2fn%fT<$M@ga&M>3?}^5lKA%^`!?v3~ z*jIV0yq|MtZd6O6Z@#oKbvYWoay{Zun&eB(j9R-M1gUXHpw9i(LBl9Mv$Fx(d<|s; z7UbNdtn$tG%RH~0QqHNvGzYM=wVp`eR2Ku-xnsG3juy%RKSpOt^a||uF(fl__4Bc} zrj=eYUVr#Uo2G$Id3+E~T7mx)HTQRCFBq11p`d%FyY55&fhBF(!-dv5U#Hu33m{!$ zH!DutyPS@_?`>_z!iAfyp1@!{Y26?m&%HK_p+rvsV3wQRxAi_~?is~9K2ZCoG6Jb0 zPZK}$S#}iZz>~Jo%&y;K>w^tgM?LFh%A#!Zp9PQVqF?Q}bu zxa0oM!~CWj8zR!TDUtguOcyu5dv)c~2`Yw5zTTTk*#f_o{yW0eo4)}`0347CId!)c z$097}^ty|ald}`TYc%QV)?*i{c#6wQF>Q`UreUDiY$!_yZB4oG7Q*Yn6RU{*kUzUo zdU+56nD|=NtHCgeOMOSKRY3ZE4+=qM1OXH){wVZI-((dMEk~>)v?s8kgPI%^E)t@q z#ixZu4TdQ*GYQP`Qn`oWPa$e`MZm>aJ#BQ6RBQpsgNUGtMA*o|r&B!+?b#n4{po9j zFpRiBX(MiPGl5-BfAG|gEDu?iH-^b2rh@P8kW)?VnJp5TIGh{`jxte8voQoZZC7Dg z$@im1yJ;3Ten2F$tg9y)rVerfvWQ6HOMhcW=jBvT%W7VTu#}S9{mS7VQeYxMfmP}% zaTQ;g)t5>xhdv4d)!zXdG-EOB`D!-E9WHAPCXQIyolH0sPzT#Z@Qag-2Ind?lyU+;e; zsTx5ANMmz3I^FQjP;ICzc`T>kgV5he_1CEu`TdH=%|m&sBSHofyaUkjzZ2a4un(0q zu9?MelZjiY$KIj(+BP7Iek{JEMwi`c)W0%>i_6A(y%kRB;a@SkP+Qm&pRO|W8z-i z!npQl%Hu}Zt5x^q`1QTJNGdL>;I*}#1`mfdKVY97d!k>B$R64KBMGgJnA|6YzOH?0 zD;2VSSl|snv?%|5KhMi$#Use}esgNmN5$}S*<5%5jNlt;&-=AvCusGA>hOj1?R9Hu zq2UPG_x8Ld5u+dW1EJImNN~^OdjAz5)a0MwH@uvvWVq{2f1lLIF7jvk`I+#P-GY^q zP=HCm^$aBv<%i0qk1PT&tH=`nXE6c<*SlJwM6&6w>HrOoTKk3GdIE z-*;Z?o9GdJ#Rpgqn^9iI0ZKlCUW>0$FakX1{KsdDpmQ6%cU_(CgTWkmbP!}&Dj5;C zK_z3AMjEuX)YI7O!`wZZHlT6(`ncznVrydC zp4i4Dnb@}N33uPmvyc70f5QIKpQ?|pu3oFUuC;#Gd3MFMYIhn3p%&J6936)re7!dt zEdd^^ZhBY7e;n=z=Mmlg^*#>6;^hBg@ILHl8caaz)0oK(965@ErE7i3v7IQCBB)Gr z&}*x@*~3Kr>JlC31(v>5J7$=2UU{gW3M;j)A-| zYqz-TKR1;}Uxhe(>c1-#sqvn?5%Jr_fh_9Z*93b3b*( zjYW0XVaD|olCglnZBBe%KXTMZ&c(&$qKZz~m}91(wF)UkOIp@>G?e9V6$7o9I0%V~ zC-4-iE#RK8j$YjSFI#YHR3c&}VeZR_tqKuMTYkT7SyasP@!u6@QpHt61y5q7;^M)O zr#8lI$wB6g8Oj=lWy9g*F(^1P9vbb9747gaG@002ziWRrGfXvV6SRy`5xd`N*BG&4 z=}p?H^!`G{)PvOo=*6rMb~X0C@!)96@Nho*+|#^H!U8u5B$EZHy3^R{_1@9g$q^r~ zl4AzSjS2?^6E4^a)Y`_E(y$0f?h~yNt;`cK8pVoKCq3;{Z5WvRo*rD z3!E3{bQrxKPh&(aa^k1dkn2WZQHZ+`0^?-ZRZLS8DxmC)r`Gr^KMO3DZT2ifw$$?H z)y~@Xs{f1?EE*wT{ABBsegmS6Hg>S|xDCbd%f}t%90+)3t!7p+C zX$+&mMOMOphq4GkZw&wiS^3;`#EX9&&Fej%kfnHpkCQRWczKuSh~oW@ro#mX4;P#0 zqr8dT=ph3QMxd#a|6{}8o9y&Cux4>k+ymSJsCeixl21qFgm&z{P~xQA zPTwCxNVFW`7uMpL0{)%nUT%*vRGc|xeez!_I1=UaR#C9f@ZXNWff3$)O0U_t;&ywx zw@R>%Nd5L4<$-4*$*&2I!>)S5mAGc?}n&w;&7FbUI{M%_MNfI&V zngR_sree}n(=3>2H+(vpM3r+r@V>2UxAqx#{}c5oeQasfHI7U)FYqL=i(sw&XYWHW zLpF=kIC75fTD%YY2SKjWn~k>Oz9stvSu}4%-6o-VFZzs99cgiXahK)yTQ;iFvu0-=@g?2A%&s=G zm`6g`g)|LjoX2r_g-|9cGztqzY->@1$K(NfE;0@dn9AQUw-I2g^5L_c3?sL{{ACX) zJRO)90K(ct!81pNL91{fzkeLQlCR3ZJ0+5wQVnHy;gOH(nKWft2LmWlx0Jw=Fcr&V z_-R0nc-WdylxAMWWhtP_VJO&x>d6w0b+nAiTpFI)KfsI?q$O{X%v8GXxNEYwVJeTA z9osJu{a&1DRhxeOHomJ?zL8!HaYI!ee9R<$%oO^1m81V~zrqzTHSPE$lOfjNLrt@=z%!akpxFrr6Z7ubP>~)>K#S=5<2JiAXUaQA2Qt<&@=_*;jx;-0~92sd{pWPO~B)ibtb_#{Ti{fUR6X4U)~5&5Y-@VMte>32&R8)QKUej+m60{T@Rt0wa;x`vp7GhbugV(whrKTsfOhh>);Uai)ok6@DgC|> z1ZhLS;*Z0Nu%6`{TF*82mBR1D0b564(3zB&xd&=-1$Y0ny}}7i0Kj{|eakV8@8dQ} z({K>aU6UEvzk&$Y&(BFt&f%%vfbxfQE$fI*Jw@8SCmlFh0@(?8p#Hi~d7+AD4T^$F z#oWHO-OLh_J7DN7ya-P^w z(bo@3#e-E=xez5rSKao5^TtNom&PaF7(c3{KP+XVD+zH^~Gak6qLli2Wnr+Z?^iJx4`Nm`X%9gDLvB1Jpe4e^z2#7VL{Uw>Wx9D zb|sgwi3DWby$c<19AhU$<)J1to#g)D<9dGK&JzbG#s4tUpzPK%1_J&7Yw3^v{H_+ys)qL zs6%9vL9~xkm0#Qrc8r0AFT?p4Bk`E0gEJ{wm^Q{q3@s0@SWEj^=sZ9tSWl>`wa3VO zzR}HU?7CH7UUy8K?pb3@OB@%~RHrj&k!sk-AwFBOX7Vts@JA9RM+@LT&Ch${Znfq2 zerht*&asmgaBvS^Yq5T;Bnpp=IO`NdQlLJ(<7|1@*`Q`_^u27YN$NFYVqiWsM3~KE z@|5Q-?4>0-KYQNWR|DG-ptxy+FOHhqq_=tzrIwvd4grE+;K1?}9H#^lqj4~tI!2`H zg1u@pAkKB&LaxMuJ&@mL%js@p*|@RbSCM`kNn?u?uvYw-b34SR-wAN|JnMeg(6{of zw-ez`6*incniI|*ZrhS` ztU%>6!bj-9#r*yOjFg#Ml?*7N-MO%u(gI-YvkS3zQy z9kMKKMwhYUKZg&=Ex2<6zW&C+;<&^31)Q!sN8hV3JAZ;1wx$BTX_S3KuyI4c0&Qvj zFggLFoF=ULqM*7asPHGH7umT)=np0s3Gea&j6)gilHL?k@?Qd}K@rBl9t=buhrp5% zs53um5)l&w&?Hz6$UFC8Cg5c4M-f7C7pnO>7t6F};*20Dl^CHlpyA{fJXi7T@+hI! zzT!+xn^&E&^Mu=$ORrWe?Eo_OHQVX&9KT=Q?6mnk^HAU0eO_)B$|^1T6G^Jh`zphr z6P{<6DKHuOmwpyvVLl?2x-!OY!(-4X&J-Kts*HD6hB#f{=k=0j?PF1uo{aka;a%fYU zF0!W^UM_?Yoc=*b&o;1^RXvGaePX zGb=O<@4CBqqz>|`bPw0&NY~muHqsw}H*+=F)E1u;q9Qex#E#iQA>T&12|E}x1wuyJ zuZZ^4TWsUetap!AIK#q%Te|s*YJ?mlsLGWvw z?6M)lc;03a$ydagrtafnCvnT{MWB}fg;=QyaMsCbqy|{Fxt%OiSp8)I=ks!2IoQEN zC0N1o>qZTRnqtz@cy|^}MZW>Z?&RYK&CE9*6_F2Ya5mkNczb0ia?x+Y3cVF*hl?tw z6VPYmMo-f7)LkN{x|(Sll+BKy804#}$o|yBj=25q%)T~iQYSf{yzwS3W?tvr&po20 zc+C!g9Z`EbSsTb9<_`s(UTc&_rX;A?q4p zZLJ{Vj98!hXKPW;P(PYOoG2-GjrYMM9Klg~QgnxnWoiYHmZ{?UK6_t8rXe)?y7U1K zO4DkqhxQhC*MQTlgG#6#4al1>@3EsK;O7>UFTTbv`1PpCt9L^vR~ZxRlW}Ea*_m< z9{~G~JNFO^XTeolzUOejKRG_3`b6Wk=j!&Rq;@+B$Mm!RAt&10mWHEDKs*=R?++5+ zX@TX;1NTmf^~TuX)q%JiFdwHuu}R@h9OkBk>bt2|RBP8QaAJJ_JYMm@*!B2Bwhbk8 zdiTdUN0H2oM9B=Z*YDz8D!amoqk;2}+E<4?RlmOr0PWrYI9q)~7v(n;=+}e=r};boaF^(~EyYZQYq?y%j#T)CiFQY;vi}zl z37R}tP(=43h_(DD57eO_$yJm$JYEO{3=(l~KP0oM*x7%ZGhyp3rNj=~XSwD{n;xF&T{zv}%i{MnfKt&{ z_S5`T%u&A@EgT^3Yyz!}vQNhvtf2HaR%?X0xMyn&`26S40lPL0!5gf>S&me;`eFmW zH9gP&+|J%f+b0j-NPZ>+QBcV70|O7XoZI+3>RU^Wmksndy7k!}zqEAYQk&B(0Qp&MYu2 zKi9p4{`&SlDm}S7oA#AY$7ZZ8%yBv7TTNyQjJkua8pknwO|5*gl;_mIR=U{A)Vwat zeI{U%#v48;*t`)i`ysk^Db;}?^KnY)GfVI=kq~C+z~u>DvwIrz3Xd-5GmVoYph@vIh9Aukq*5YM#2pmyoZ(dzHvBoVC>h# z9iFVR+dJ5{!4>ds7oD|fw!ODx&P+;41I_*u#LI>7dZbZNRVm5&$!uj|(XXQgCxo-2 z%Nr~C=FF_eaNavtq4o3+_s<|AE~k}n>7Lzw6ohMDCYMp7h`aK{q<7- z(cx6so`2F38=}9cp_k1}&#^kjgnmXgZoDv7J=PF;P~oNizz!iHY>W7ksr#l1b27JJ7yEtSKS3bd5h#ju#Z+33m%-s z=Yu4UcF+_3tMO~0wyl!zMSt^5>;8xNiH8>CZrX=}Idi!4)Nd+|bx16AQzj!TjKAhc z>q}fa!7F+GY2YE{DO%x60eMajB|o|#^hNUhl@zqsiq7#pa<;bN^L&x0v4MnK#fIt**oe8N#h!@?bSocl8#%FV~f?J;JS!e6~ z_U1aX_Z28Ohio{hLcsL#@H^c0gTVj~AM^8!@20Bia<0`8pY+d#+{~1%xj7aF`Ytek zs#j{E@A+=@)u0|hro?ZE;d8JbA}>dv9?yFxj*8#ck7VQ@xBdCf9JOmOYSjhqMFm#X5zna;Gs3^mt9?hLPNr3P z_%<%xXAhn*t}N|d1jV&ldxC!i*i;0J;S} z^@T!b_FjiW!*6KTJreicuvNG(bK-QTmrm?#wR-O52cP35Kf30d-H8GDV_3bK9#0=9 zjbUT0FGk-?U(e%12&r$tjYcR7YtEyC@19!S{bkLS3hGd5dTGb4ZXFoa#=M)>=ROKZ z1fnusGe`Y4OrqYuWmWmZD5xJgRC64|2KiZoCnGRcId$tVE_iEvggy--<7Or=OMxp` z#)40qu8rlVrzeN|;r@`1RE@?6f_?`IOC-U4Qi3l$MIn52!}D{liS@NNy|1b*y@v-l z8>yz#k7sTBEnrM@i8 zk^G7EjLY;|tmfm&Y?lHr89=xt?66M}0G%n77hZ_=tPd_qKOLLGDFL4U2Rv>IUM)3U z5bdgM`5(S0un|Wp+L&Gu)+ic@s3BuKx9GRKr&PyKm7%Q*KW+V1L`4Je9*4?VJI~M; zh_eSRayP@I7KZG5J%7f=n9$8DSij!Q&r`ChK0aTvHMmKkj1B?c%6%aPF@Mjn#aK7~ z+r{MbG1t59j;cXsC3Y{;36lH`-|*Y=*MP$}p)JEISN} zw#^}Pqq#I#RKh6A%QFeb;l7N2Pf-0+6Ew1@GM2D5R;Zw2{dt2^m3qHSg0r@IMkzeQ zpgT$E%6p>djl$AAWwK39qn%25LSjFbN{ePJIiq6%fZFGU2B4X}P7bWC_ z`+yDdW@?zkaGw8L#g*fByNZVL3G~1FfWJmw4BZ#vyiSg^QmKuKjoZM?D#!P4X_eu?!OLd(Ggo{pK`)~pVL~TlmL&e|liQhl;NV7m zcktLvj}nZcpTjSyR0vGYH%bQpQ+GA+X7Q@qdpQ$0I;r$cMEI%qsf~h_Um$ud7Y(bC z-5>MqrcnIi)W}CDb=`eEBint<3)=N_aLgg}udny{0F=h!(kjeB>gmwOO=)^6aVJ|) zIfEka1-<jlf1}>8MBj!%T>YvfGoBNMcNUK<6PVM(y|k z^$pgHnNqQ96altxbbNr~arY#X7K;7msQ2_E&Uu^l#xaAmw4!QDNx%kS;jr5y{^8DW zw)K?XbtBd7q8QTLOG*fP7MF9jbUfwW!PJ>tnt_{J^Yg}_8G8&5f1aOcaB?K{VDC7P zhQmCzfFz2DU<`C%4AJ6iRl^M0vko3N6m{o3Bn%X@>l-rRfCPj}(=*RMAVwgZ<;+wC zp`r$x+dDO~A<`UFy6hOX-8Mv~_w(nE>D}MyMnHta-?81k{FWw){92qV`Q_2xSi)7?Er9w zRqA?-)?HKi;&SVnS)t&~&F%yZ=_*>RuH79GF4PVz6|CK^;avSi4S_R>;OaP3oHNqukqyZ-Gavl4=x|m|a(zsEC0Jg9Vi`Yf}2jQcW6TOTNbF z_S37-E|3?@Xy^b@D5tyIC<%n6M}-~qq%RM6OQtmqLqN)7Z%lOBv?;GDrQydpDWzED zdw&W1G-?{tF>n7IfYSAw!Qj%bPkTn@yR#&@W(H1oRUd6AU0=?y5kAbvZSNzE8oeG} ziL;c%g3(bt-y83uKalT`_u+RL)BBr^<#|O#FdpSgWO$|gzb$}SGfHpPnM%|MBHx;O z>~p=S{(Vf#7r{GhZ{qLr?qbYpgoEGAht8qJai)77j@>txg@9_>_q=eb1GC@8A2##k zOA@6V3AYs?WBYel`C5iA8k1?&GwB&QMMbRb=RSU>2g`2VdA@{!@<)6#xjbq(%k_cdz&_)2{uN&UxD7cy_h{y{2sS}XDlMWie4hd^RXSM@~0e^ z>otTk=&QBwW#fTom`+VEJbdr|64xenn1Nb!r|&Im z4(BgF$8rp7n>QSh96np|6+xlPhn(3%i7#V-XicGlDQCRJ*N;`*g@7AftJ~!mrab}G zDyhU3dPYG+wZJbNeD1`QG?2a(1FCs*bMG-WiNq0|lCygNsoa_srdS1%1HMGCTW&}3IPj~Z!xeUETB(R-)1~ah?D@6J9&V&02 z>89a!2*7-_cB$*z{ckt@qPk5l<38TMKl5S51eNz(6XMdac6`ehRLj73dse=yNl_fT zZUke6TyDg9uH`np?n-G{&*PW`0h;KIG&!yAlSf+AAXOAB>OkU(5qZ3Q$Mv0u8zq!I zxhTEXjtkm!$06wy)y*dSJ>zX??suaKGEA6yU0(d6Uan$-x+)vmfdg%AkRHGG>0QBZ z_?~EwAUG0*sn$Msq0b^gQIxDJLi#VlgX(8Whwqa z3kYae0_Zn<#&oRg6-VKs9nt*=$PqisfjWeuY#U~m1vF&&xDb*Sy#3Q2e8fMJ(mJNB zniS`$4@*f^5g@?-31INLCJij?85TM=>C!r0dpGPZ;`4THP*lA60Z)p``8Y&kqa8!f z7XmzdCvBcdhXEcAD!}s}5+mg(l({DydbeC1&+9vT*a+b!EH7B^kaPz9#fsCcszT=t zhts)gF3LIc>I5ubBrZ$nHfUe)leC(51Zl4XVlFlU-3L-X$V zwsif=Z9o)*^-tK8xbP`9e%|yJrafYW>|7*5?eXlRQQ(J)cLvYAur)lE)Dh=UPG`BD zlvKJk%2M5YE|73sSUrCv4!%XC{zxN80|Rt_Q;rh&!oLN+@sxeuqQPt691Yq$q;ZPm()MqW`NVxVyLpS zD{M-NG;T~5F%i>fL6V8GOv$)_S9Bqz7E^w+?<#-r)uoqb{+uk zu!QENFYi8v!LTE`jI*uOuXfTH;n32Txg3IcR_$dGkd4NUY=?IFog%!aiT`dP=iY4X ztWpiLcC8u=8uhL3sS{1?Fzw6>eTCDjd?0Q{EH6n-OELbe?=wAS>Z{O&&oR_7RE_?V zeZOc|*S#0+-zhnpC)%P?8Yt%ZbE1DvBd2LPS1e;FUH}u=RsIg=JJ@^eLK>{nhGlu| z&@Z%%W#pQwI}t6{;5Ch(N~WPGv}^eWitiy14AKWn$BF&NX_!h>NwQ^n|Azn@-tnXT zsY9-odIKAekid@wxgUP0sQf(siHG`#edT=mgs3?9lo&cF#B-rk=Z5K6c^^y6S#i=c zvSJPj9JUuZkqL6*qAs+YfLd``7k_Ft8$|5#dQ>3j`WbC?;rHL-ZZ`;eO}S!S=y%x7 zz?=(wrykI2Lg#`38diPgrtW5W4Z)LO%dTW2zkv8Y7sYouwMIqKcUqm& z?(!k%M8JcKBg2r9aW=Qk&`4^$S+*Ao9)$yfIi^Q}*oJ4H|2FZ9j-6%h{`j-nF_#lq zv(bmKFaJ}ckBWzbBlIAd>^37A1;9qasE(lJz`@@6wro?1w@j+95w2nuURYEEt*7aX zWKOW3thT#wnv|JY1RhG8jt9r-hyuK3p^9U|LLSaAcclLpg>y;jQ`@=#0p4QhCW6X9 zsqW*4{ERPyNnp#sQ$hP!D3t}GTMx(BrWdAwNVJTlvzA#^u^wIuXB>@g_7LtUeaeO3 z@%di7ek7uzfiRKl+ZF?4sl5wrI>wHX6gNJc3;&laf*(n)^Bl`oCRfJBykTolaUY%7 z(8latgB_Fv-F4r6DZ)K!6YMw3l~zg*HWh z#>~4w;fI_DH$A}qUxKvgh7-DI-{GsI!4Pi@BOPg|bsMMVazD|}_5T5N1|aH4 zU1g3>GwPrP?P;Q~IX?>&<^0bfgJ05}TffG@!OJEkNyVL^f~hNNlOz8ZamhLaz6*n9 zSzrUVYcd8JzMK=CZ%dWzzkHbgyk;4*oF7%Un2ktyyXTE6c&t2o=TjE<%)cgrpg8-TOZWx?y7?!SgcE`v`nN16kew z>!U(@CW*)l{^#U_8)isI|2uI0`+6n%zZgOy$m?PM3(pix+zf|;^1r_s7AX*&{{KGr z|1T7}XasaPnYQlrz#Ag%@fxAh5vr> zt{BR}CRdSF1j7s#qL;vLy7=?t7^Zq&E%m?)> z_bti{8$1c5o#msrx?j9pie6V__O*2*U0C_?$&k;IT9TvDJu?(HfgwOI=ns|hp>!#XI zc1AbMvC}EQKqs%*56jdC))02RpWb=hFBUg2HTJHqD_^+F1`+qd%iWaFNVn) zAp;0j%1t!3M`Dt6H6h8)N5IU1(V4k^<>OFB>`)5vU=6{Y= zij4{QvBPulQMu)z7ncWH%wZi^7e@&#t2B4;#(KLa#`wbgWk5-@9r zXD%KZD~oV39FgRG2vi+3W3TdnqSmK@zhsaD1se~L_eypT4PJVUou6+xBL;@zs|#i$ z^>~~I73n)#ZS_1};M?uH==i7lES43hC?9TH{7;kg-7eQM|AEaE@{qjM0(&pcw0r${ z_7BjUmNe42__egOA~M;mNQ45}f(QOl9WUhYxWooZKF|pEUUsZZfPzeHUN`D^p0Y*) zWN2_^yJh?ugDynDe5A@s8t&KK#?!SXs7_o`(#ue2Z>>)VJQQk1;fgBwy-wXH>|&Oz zf|ju)EOw0WSbOXy-|8_$c1Irj=6goMH9o8mHdT_vAr`@fWq@W|!qo=YJ6bWBJ2$m@ z$Z!FXuDEjX9NCQV7`;MH=buVQ-57#`(nv!ibZAo5b1Cvu33B}4aB--(0eB#Wa@5%5 zAoYSBdW)5CAc#=h5ARgK?T<)EH~m=>o> zIo!Y{U1!~pBq7ghetN@hbf6Fy@uzNvZ(6#R@!sG_?KN0^eNho8nN<7_Ac(Bf{oWLsQsNE1G!NFe^lX&9b>64|T(54WP)cjgGyiZnc zH+dnQyjo2sEA=}+1_wp;eajqcN3o3jBnF33QBXQr>(+z{?+?=Va-I=9Ffa+c zX#B4Ux#M}kWU#iOH%P{ct6fGiOt5p4f&Do8*3&L4YUj@=hXRMU?|4G_u@(}gUhhQ< zPG=%wxTR1|gx=vp@xGJ_YK2WxzxqC5=wc@CR#P%pwGG2^hPf#W-C9|ajC4W*zdrZ^ zbh}`}I21E}Z*Y>*5v(K-g~doBI6nF7x9u7&99O+Ktq+h<5!Uf{EBrNilKj_Vf+09f zvgWS}%Lz=sjM3b_0Vn54}h?OFbhFfXXV0o9BdA_XEq8_=j+$5;H$``_a)e zPz*+-FTgs!Uxyz;>%8wJB^lyHYDibSAozicC-!*bnEyFKy7BzPlb7!oE4d!Ss?&Ge zszIlB&MeP`G`e-^GzdcCXqD~b9>m}FDPv&;Q&P@sd~G`?iq2BEbe z`1LsF@yz(2vm#LunzwvN=LO(Uk`=cis6v&)(6Sh^QSRGO5FtuwuMQ1gXN zgE>P8o04{gO$#_9mD|BdRy0-P4IBdMFh)wLw*(8Cmxq5fet&5hZkhP#rK(bb{sule<%u(ude z9*|i}YWK=!l^E%A-@kp%ZBBKGOky?$S_k5?B$a$S`R1oDdH`OI+03pv91xB*%?oni z>oJsz7C0JQD{;r}EDwW?KX7A8u*=Rs&QDCKR&ub*S?6y&BfK3kx zcdt%Eg;0C@lm}o&JHVCY^g0zY%(2|Z!UK$+?P3~b27+(u?pi#-Z;`F96B?<#JhRba zfm`0cA3EyF@K_3>ufDwLy;7LP`%_P}o30Bdd(ZXd%^i6PNSm9=-@CJUJhI}(Uizs2 zed5Di=<)=l<`p;;8YWx%vH+SooU5v%@RhPMM0cbJ+{qDn%yXjEttaM7CzVxHqJVyB z@Et$4%C!glwb^o|d`OTWH9GA@?w8G`ISdq(pxYY#AHTE+CAS`BYI`NUMVDkmM-c`m zwAXbUyfDeU8i@jERROPj^dX*xtF?4PXcuhTA2kE3woF7!hG9VU__kA^fWj`|{hX@Z zCU|o@>S@}zco&&fnbwT|(4M)`Dg$fUEHGm@sH|HI5(i5#b`TN~4`Kn(n?t$1hL9li zwjj^X{AoeyW1;kLfRocF&-FMn0g6DRYDU>KtTSsuyU^1Tqg{C4BkTACL)x{~v=_nZ%)-vU-66D)XO z%DbI%lWA6rHl?l4>2-0f(lF90!p7z@+YIA}Juu&69Sl)@6~DXlE&?v~TD1SIBTSTr zo}hF?ilI=^l9??gX1MRihf<{*Y?o{?c={_LRkW3@WrTNqV4E!ejK1C->^gDlZb~{k zvq;9_MtMIRSC4}wj1`|V;(M%uA0B&1X&wB)LYXjpig+rPpc@_Lb#u z7kD<&Zo|Pvt2cJMCkUWddfFA z+oD3#sv83IQa9K7qhX=j2n01Hc$}c$@`c_F6+XQ60(ngBn_#$=*8e`iV4`hjG=Xo} z=1kyCq97#K^$7P^N^Wa@_}{y^cWJp4v68FVYg&l=cYBrcG9o4I4HaIftRnBdu#7dU zBJG8Q(JiqA1b3&z{5Cc*OEnRT=u5T^g~pRo2}yo=!oQbwq$ImuW(pL=Kwu7}LRgxqxg^r;jLl=R;qKwbCEafk8HRuqDj)Ps|>|0a|bj`Z^T2KJWy!>Lj0{E^Qt z^WsR8okk-EA~FK8FN!{VLI{uHT)3}^?0ggFTM+3Rq=)WY@Z(1`tND$F?2BX8VeWS& zSBcF$W#NcwZ$1+fMMuZMrt7r8PPm#*#FZV_P$l>=FHF6o3FpXnHXMkCEMK}RsWPdm zSdA>pZjHKZ7={zeep!U7^`kYSl?+|G3%=9kl;+r!$~R*OnW{tLJbaxxp1uU1odCoP zOaEbH9{<-Q>Mlza7pmQ;p+imd zcNP)|T;O1k&~hBtlCARX&8?>6Rff5L8|+(p<y(t!bOKcojqP&jr<0JLUc z(AU$ysd|TqRDy%LXJD~12uZ&F(lG3lG zoiYBU{s=uh9tOVw}kBj)sDFVP@iJOT% zWS?>$9hd6t@$Xlwd2O~J{C#$>ViaF|W95--zXC zb6KvphyrB3uV~bJZ!c~tTpGCcn&f6Ys6zR8i{pMFU(d(9b73(pfu@-_7#4uDz@{C7 z3)KxFmi~CVJCE5kggudeAFh>VPJw=GsQ861+T||vRA01@-8?7S|98R4IwAZe)rrjz zrX)|9`t5Swb@Svf!FYYGW_{7T+G1UKj8#H{n7%kQU{0bx(+K?Jnx8v`bu4pexWwaX zz*zIjS_TjmxqluFnZ6LlVIj4fo@>y^x)P6HT2ieJYUJX@t}7W6Z|)ut#mG&!)Zkaa7R*P7a|4rj+glyB+g&1!opt@yn&J zb(g7Dc-P<8bJ)p0Q0sED_J#zOkf;ZiV@Z_eK0bi@ZiX7tE|zf2Z1R>4wA*l)wPvBtaH zxy~{gXHu<5J$djW|IDPzg2$u44uqO{oO_p_^_}&I%)n`q-iAg~(SAsGcDAuCeHDKp z#GP(c@#tp;Y*>7l@wiru})`sn7MLb;NdR$Ni=e6o`3F!&>C&{L%nY zF-B!{c|@nxT`k)p41?FEtdy7BT@ml)57ADR!0kN+S(PLkb1y@xzyngYNOEDH5NSoSe$7o@Z)`7QT zG${Qhd|r>ho-M3>_T#Q`fWxm3Hp~~TWe2H! zMJB9(Iv1ECsbC)_TDn0=isG4tRIHzg*a5VNGErg)r?sc}z1nddrrg-QyTg4G5b0l@ zQDnF=aEN2ZuT&dk@RSsk6Q5i?+W6n`M`R1tZ;g9JN&u|lH&6^nPXxhbh5|h0hBDM3 zQM@&*mxbikiJuOSGX8>u6c}(5&yUWq3wTs<)px!#4?TAaYuD{QgZwbQ)1F!g6oVZ- zT_oCwfQ_oGuua!|2n!9_4vb7+e&Gu3yTcqq13PMzip$+qa&=w8=f#VqUM_IY;y*l| z4Y`%dCW5eOpXPbcv`>ncKj(;H!S~mesfe1XBEl7Pgfx}f=Wlv;4D^dIv^`3#%{F@Y z_TkCjZ_)2RV*5}i{ZlFJH-myjN1CW7%=LF_PzV&&HmSN;)H(SUviiR zfiksG7y>XzvtjFalsON>YSK;}AK%w0A-t!d#^}nFd0yzYA(-=jy#IO~pGd4LWWojZ zLT@$P;IYnLbzaHXi@OK)TUPRN%`DubGYdda0rJlXdw8+)NR5k(I6th(YE$N&?X z-?AwhS&fzbVH#ac#*7TZ1T8tiTa8vVx&m+ICSg>PULawr`l zo-698yA{3x4H!+Qx>&AVVbToQ1)!m#`uotfr|{c2{@|DQodhWruUKuy)vFU)hyWc3 z^(z$~zg~ohj0$U^1=rKzbXVm1L}D}|OTF*6Y$9f06xGQX+LTmfq#vT!Y(8DY=;Ev$ zNaJ)+F2b}ifc30~eC|;`;knhHFaP>SuWK6Fc2NGXPoIsozyT*@Ix$Lyim(t+@1$(T(r(54ro=m_|Iihk8Cz{C_TGKK+zE~guoCz_8G-!T_;ToEeC%oY zqaF}!b28!3rQ8u<#}PD)(1VsTl3PEql-&$UQUlD>&#M}1!a`hC?$V&s9>t1X)ql*C zPJ~{PymJ3U$>l-}bZ9Odysm&nDtZA)b*U3e!~}?THLI?Yu8@tj{DVO)T3U>H;o@N& zrwZBL%oU8L_@w{<=fEU0P-!vL@*B>J7<8nV!dbSYv|(pHb|)(|Y}EQoIOBjY@uksR zGNMUC{5mAkI{3YNg})+l*5X(befP~f-u5i%2h{a*L>mOHep0nqhOZ9iqu zhx5ScxO9-IVRYK~@O(2lOTmGYtjMc7^9iYL=(GQM(^*h1T=+|S_Q68RghY4rN`<_k z-dn4j*mEZ9Lh;)Bmn!5o?|5L*x&dJxV-Tek`oF~$2rmw4GWGhE$Ca~jgV`8jiy%80 zWtna6*vsuL^i!3tRIBwI=upH8ycqC-POW8z8$a;FIWnOhmgr`dM9dfe@c6icj(xV; z}dX3df={EfMhbpPLfJe(O`_zG-ngWnQGmfM2m{%xe=+Kn4=)$S)k2`$^-(_Ag zQ4OS8kC3Y7GlZIV%CRr=LBPw$pgC=yTmEG z#S)eGX#}$WI(@c^$KNB~tJBe&HT&BsXX}e&UdOIphGKUWY>W`UC)J<4rgG6J zM&}wWVl6>tV~(Hm%toM88oEQNPFHVQ(Eo?LxBhBt>%NC?ad&qq?oiylNOAW-ad&ru zTZZ?7M^EhNy zH%311f;8?m%(XjDF@kczX$AlzVj4u@P%c}3b2$Qk`S6FgUAd~SBe=S}F7V`Dpky#+ z0h06+RY`l3M}&g$kVmG-I?hVyJ+Plw$(I`wVe>-dhzRXb7yJIGex69|R{Evo3(wGO zN(?enMINFy2+NceVw%;jYdG65bjUHT3efsikfA&&Z=!<|i9&97HGRl)dobS6SKk(a z5_Lp~ChgeL%j2xvu(Xn9_piO`bbCtr$!xvd)9394({+Rz(LO1n%CN=!XvXqzz9OT8 zW?(ytveXn|JR>=8qk8!DYf4I!dGEEbj+I`WIi1+U=SVRMY2r-1y2?s4c?x2q#P5N9 z?}}tx#)BxnAB{eKHCflt1Q7&QEE2M8&&D4HS1As^*^ia|d~lZYDSPd#ZNx#I=Ig>9 z1D}mENg0@vef`$bzpxivDAh6X4ZGxnPSz3m^bgPX1`M+0s&|#=HZ{dfF>#+>!S1NS z+sw~|oh6laat}hPdVyv)07Q%6(5scm+x$33W^A`qm&e_9(Z%5$M39T`+s6IjrV+fg z^2^64xyHn#p+!6Fw@b)%)7KbFGD0JM180i}?)UPtAle^|EP_sH*OqjSX|E*^_(5MyB;AIh~TI!NMCib$|r87R956QKDsiH90-o z_yydK_t`fWTyVKLLlU`5M3ZWWps5ZdXwAX4N*#;@RN(wYn66Wx*5vOCgne^RxA4#` zd|U?|gS)Uv&oyAGU`zH?@CY(a>PW4tyI5^67HoxJ#XxSohwjGi1~s~jDRVo&qV%p zYDoZE>X8ysI}E5I#Z@>3ZvSEFX~k(vbd!nHr4w*@_qM-%V5&XwLyP`&oJCH*P1+iq z7*~HZ=m_OYPIFz2lISKbCD^O0=jh_M*oWOIx-2`~vw&lw;ZO~RfE}W3N@sS#4{0{p zpXb}~3ntJ>pP1m~#ZT??UKbTF(1E!x3NgKIehgjr)rq2IocsDPiE5XZ$~pvSZU?>p_N3&dW1-ZX42@7w;VrK`U;5V{5XCVHt@Oe<8$@!+M@=zX9E%AHvv~FNaM{I ze?cwAX}c+-;dbU_0OX~N;nE4;d};%ELtKpYteJhisQ!CkMAbr|Ej(d_M_}{S=b6J zm7pTmz;Rvt3AWoq@I8T)Jj!O04t0qBEKW)6;~;HjmK~rUSBH2{^jOS=_+rHeP_>XP znr8TZmQrSBy8jdL5~@vt)RkPV0}j|J+q~&%3+^U5caK`hSFfMO4R#E4h-z-NzvO!4 z&jCB>Dw3)SFo?SxOT6$a>G<^LvsN6#~m3;s4@A@CsfH?%D^) z$@U+WVaf(_nhyfS#FOIUX6GsI5HZl``gb6KLCT>$YRHtzHu5zvWnX!i)2RAUyzm5- zg)lmpC8a!k1e%#nR5dhc$fmzDGOPvoxLQ5>=o)?yD- z%K4hI4kLr|DXE`B5ci(vM7mXPsEvklqddU5A6XvcXr9&~R28L^mX?0%$Qb?(SSs$+ zsiiMZxYe*%Q73yVon1epX;z{(c7GNa(=b#00U#?OOH8Az9j5SI^VTvBz4Q_(leW-f zL^XZIfv=ELn1;NR@5shV6NRt=*Qx}mTy4|&J7I*N8Yk<-#A zK?QA*LQ=MEkCB75?Cu?X2QfYi%ho*uDPqM7dHRpUbs8LaZ2I4NpUNeO`p?)0GZ-zy zNPcw#iy#OidamNBeN{XBtpFTT*9@@IBK%?!}%>NhC3zyQUI!H z(*E7*~oq8l=&m#sk)p>27uD}_V& zeHkx$PMA$|O;rJiQ`kR#I3t3QJ42J4XA>?Ac>F@h;y!DJ^u%$&p&xqv$_CqJ)vx`j zI({XdcX_EC?%`e4?zAYA2C}twZi~_F)vpIjy)45>%Vjz}?L!G5FAjZ)8mIn%{knCl z22Cd))25JC z$$-W1qblzqKbAg=`3q6G&a1QG@ycK_-03P()_+2qaJw~8+ttnk{^I)H9y;g`s`M<9 z7Yn;jPgU*IND0Vd+p`z`It-vwTE_z^%GFW2a zhqzh+s~SNZvh9^(ZGB{&NqD_ldQt6Qb)shEb0K#GlcS_^F*#3DTP3c|z%bjgGr?lyoRvTI=d0`pA%@~pEQQhC1HbF0kkA;{J}lK_%9 zkAIiglPpoPCFm!!2~3&^n#*Gpa(?(Q@KlSGb+(W_wBXH80-|#Lgy zD-*Do7p6{OrG*S2K^hW2K#lY%Mydn%1eG~iTO+hy5wS3>uqrSBZe?g8 zUsfxM!IH4(V}fv$2HHx0)kg;kM8gQ)t-zdzVX%-b4GXP9Zh&LcF`5>Y(cP==z4_2L zA;|UM5rZAXUGlyLWQ`|Ud=D2-=Z$6&U6J;NLmk!DuZMLWW@Y)P_6_RpH%*^s*7S%Owy>!=oAwxdaxb%4 z^Bz;(A4)BBWqr*ZFbk<#0xjHsNp>k)k$b6`e6RdwsbW0C#Vtl$XKOq1YZ=&CsIgSZ zcT8M+KWS-`G7WDm)VjDa9+b37s5xc-Go7|S*f zDmFf}8}D-0AQ9`lj{h(psXlOjt7Zt(H#Vqwdw7n;CcDekuXWT93tLT8Ntr`-&^NRv(KvBP4TB>vM)+Ev+!(5&6n? zt0dUsr1|V{t&PoLTV1c^p24`iN>+mvg@x=e@EOa48*DcAr({IomxQvMzwuDtK^yA- z{X@{+4sFqqVg*|}jBU^{fJb4co!7=RJz9HnQsOEWUeCEkLMMppD~>sK8dlPHj>w?? zr|8CSfEtg&{&N{uU%{2K_kCo!@og1eKa9u2XUQVx7KjCIGsOh1Mrdn=`7!Zjk6Y|0 zPuR9cm`5Zvlm(O(moL2&;mZ<8fJ2;oUU9 ze&E)3td)_YEsZ`ewW@HNK!|Mc7qTdCIOuobas9L%u~{T2<P&7k^VSi3vyu$1{`n}9dzX5JgjtLn4vm_PiN1Jlx zd9SFz{F@O{3$PELvMPl-omsa3w5CToXy2>2d{T&fg_7$khO@##ka@KB^SMJYL=c5- z#S;(nztaKGvm5d&MuJ+5TZn|-JyWGxuNdx)J&Ljdm$X{H3!%D@%)==!;*RYr7PgZl zz^Pefn23M?p+r@!ho2=-N^gE56{hd|U5o21L5a-04uehOkI6#ZuP*24xL-0-;%K9C z66bCvM%J5=*@Qeo1zFMlvs}Y!#a(-uv7_~oA8$U^t~f-iC`-1okyQzKMbe3o36kp2 z6j`Fae?N4>iO{f&(mgep00H5Gh$A_}~nsC?0`ab~+jSeiOifcH-A^{PAE~Hx*J6rW z;XDp~u*NYMR+`WLaxW>myH-Cip;Q|=S-kj&M&eN~WSueTXcFkj{K&jFtS*l(Au9`< zblmVg5bgRkfGJ-3_Dh!hE%2x$qloM3W_EJtCqsUpW6P((?!vle*}$C(lDD|KYG*wK z%ikkPF4wS*BqYyYyKCoND*o+2PfwpP)3e_;u&CI!sE?q zEWHZr4zpA>*l?2v1@Hv>v=flQVH&zUFgYv=5h(!wh7zn6%JGl}qVh{tLq7+~0exPxy%inbSh<4k0L2NQ%uYqnaceNgn z9I()<7-wf7R*B1dLe<9WjyO6dHX?=^RnfH<2rErInwsO>ppOk`C@3$-TGe5fH1d5n zI-4jlR{fIPWluUfHhMXBv-rhhjW{|nUgL=mq)`Pt*1*;iZkE-{-d{4bAwOShqt&T0 z2z+m#n4>H*fvhG)$gfAR4z=qK(6RafEN6O-$iR$~$~Ix)OoACCO2kv`|bj zABKX>oAW@V?uUKD5`m+*N2|f;xT{HV7B2t0#htxN4)o=Xr&!zBQj6PTUV-1q;q#*1 zYW^f8#l;16oc?zZ#XeWs!a1_vN#butVP~r?(&d!<6EFCSrop%qf(OcLZeyRY?%0w< z{$$?C5Qzm4A)pE9=(p_F)_~NW7Yr{LhaO%8UhgHBNblE5T6CbzG;C7R@KU*pjjqde z@6C(r0|`cZIO0|4!n>7E(Wc2Pq}?7Lm1S&AEu>=N#;$0t97u8}+=&Q%!N$h!`wOAU zk~1m``}>`9HLJ9(I=0SR-Cqk~O523oxKXJ%| zww3y(GKu&c7$Y%6KYi6Xr~M}7@9vOH>P(j8wBBCGCAnzkr>ORY(_zUrsHNxtM&Z*Z zNu32Jr2bbl@MjMXJbLBUCWVNXtG1^X$mWOTgBfT~x*A{X&l*0Qq(H4r{WhA_K6iAi z1e8VZUdzgd9`d3iF)) zdZHE)B2ec-K3pjwO%yB?_q#idIe@Rh*)0f@z`e?|6b1JZx znsUoaOo5m;6%HyWz%uTjXf)MR|4iNByu7)(>eO-q89p@THtXejTvx-nFRZLoMrL&X z8!}cHHbh0F7+04X3)CDXotw*7`sWv1+RV^V3>cJw+-^%lTC5qRvwnqLZXi-uQ<0_# zZb#Qf_L&3j!=wW<;QaNuMjO0)wOdj5vh1PVJWWhB!us)FSR3t08n~HT%p4M{>AyU7 z-Kg=ZE14BoZ*8idB*)yVRS(^qnhdVMlu90_jRyl8NR|RS(F3=Tv2-?hTU#a?T1cx3 z>1fmdCWL%cqGcA!09RlrDXI_cM_cbl#1#8J+>Gb55%gsI{CsWXu+b?S6;)i;G6V&E z2Hsxz*Sd1Cg(MbgHVby~epb|UN1JqEgo<}R9+R&59;~;-2=vCYD^74;Q2jzjE!12U9b^Z{i;^N|+`(4DHojCa;_%{9g=Q3O``$W|VPZn!*pZt^{XV1?fAM6*eIV@7Gbw9xH z+(_EVv`Cy;JzdL+Sv1YRb3O!P@PcK_?N1Bu_-8~BeIRj|V)uGI0#O`B_Z3g>C~cHM z_gvlgJ4&KST!I&Uh?JF&OAkTD?MHhmdI5LeY7Nkhu(=^l~?dZ%;WExK|qHpZ%&2Qg(whh|5tWR9_QvfutGMUBd5pVcY%}2wtBREk4H>D(1T{$!URkoQLz7rB^f$bjY8a( z0D<#sVkIlhInurq%HJ}x+HimVWD>ZY>w9e5@})TKk&eu%mM%5%Kcj;j1W*LOKs`5l zCZ;S3HLAF{xo2)0rmlVUNI~Ooq461JkIIgdp=QH%p$9LPo4YxKPfAIM)s`P??IR?> z&F>Z&^W5jvp@!@GKPu+$6@Sz@a$bi{>ns}cW5`o1Q%;IPVA5G1P%)x36Y3~hACFlY z`{baU&)@=u45ZpdN9?&fj9WDhCjv~F$N}}#vMxj#8iz+v@1I14s?`CCRbqRd+@*F8 zF;>fmV}ANm6no&Gculi7g~+iZ3E6W#J!LHhfo%`Lx*{6}0!RH=a`+DQqw>l{_i9vT zIB0~bhBspWBeE^^MG>Ce>3(Z(AbA6MzU3+(Gj!F|bH2$ypsaTd>f{)7x#GuhT6dR+eMr|ux3irgK*mV6R+;Io&u zxK)y2GCdjrl_uB#Qejxd^Pw8ys-6SbTrl6^=9|llvosb)2^$h&MUlK|EHsUpMP)(Z z9vT|*+vYYOr1JxjGLB~nT8_H=JnZQj*l3%-6GVu5}Y zyUjB(b9|0JvU(z3B2Xf{&Q=hLCANa(6Fc!tgC3ep?yvZ@V!IypR}F|IEs?i<_#RW= zf&Y37yqT6Stm}>CV950ddtJ@v54(C$V8}hZ`+gA*s z)snb8k4b&*mJd?@N~^@jlPmQ>Aw9_R2kCsn$H%V#zJQ>-Dwrmg8nQAl4cDWr@;F5j z%SBMXd)M8{Nm}o1DuKsx%W9K-89Zg;oA+j5&#e^=h~H1D$f71o-30{hM&^ z>#@;zpL{SqClwnDhWS>T9Sxh#>=TFb{8-&Kwx6$|S>gQH!}(c2dip}8oFVDk9o~=3 z&tKdZ3uWU{zZSOXz&WnB<0pyU6{{HOnV9e}F{jOIAq3pcvyyqJ5z=*%ht_hsR~-O) zJLR8SY7Qu$dQmw#i&GI5>?Twf!|qvXl!rtiYe^Dj<}1P%o${zZ*2JG!F9`FaCdJ=q zVCa?}HhVXHkV_`-X;NK{u3x9P#sN^O>E9amj(<{@Rv%@~-1}Cd*AHD-yJvm?{>2G`OHptT( zDWbJe;7U9tENzL6=$7q*RUYsAswwg?N-Cfh5&d#;upRZyh1LyxV(zq;MkhR}eIdTs zhqhZ;grWWTRmymg39^)II9eoA8WQmVNR`TxzuNinUJ)=vbnM^S3h0!z!qur+QPK`+LkJOn?&=9^w1>L81$VLYi^JefHY&yGf zDI2n?$W=5uSOMx4l0{&qmm3zR7@QOEC+2YoQ5cAw7ss&(FTkVd3C?5s+~T0$gVNbG1j0*n$p2ft#9?03x>Ik*zR`%~rtBU+C3IK=6UWiY z#v-o9*m>E1Js;Sv$kF&9_=Hx~+#Mv%LP9vU3pOn}zwkZ32AN50+wKesr)lgAkPrY2 z2+CB0jq_PRTS^>wiA*RAofBQ62p7AJwwm^Oe;Ccw3&^>4U@VV1W?njgsD$=_2WTXk z30yxUY@#zQN*>tE_1U@lA^yq3u)&uc&pbcikF991)#u`qNv1g-bt-T#bUhUSd8Ggm z{WPmWYR|W>C^jNBizfc$n4&l3?HgqxD>D$i&q(9s-fO^)^LAZ-81*CK|&bL)()LSD(5G2bw&qI8yoXXnrub|1giJ)EN$*$U3iAh0Erox2lk18q) z{Ty$18G2t7%T>i5B%nVG5dmI)!ZO3y>$~bCHLStjrtg7qRpVAGC+iyC{db4pi!RJY z>lh9WZs)MvH}rsn47JC24k=>r>p90Y@24CA1(s)D(VIvluLP`-B|a!}lJ$e~ldC`W zrHQfYkU&+0)#m3{#Bj3%SlH?&AJx`o&Xp5r3NQ^W{j*=)ad)9e7)C`#^ubmY&iv>r z#ZshVcSDm?H9q`Az4@i@!3RY)=4}p!9*MWC92;pL2Ug~e9AIa9IM(#5joz-t){M9d z=!3YX=sYSw0~4qirRmSycszwno4JJ>zmu?@}2BY9ywjsn|$Ns(4P$^LKhQq%u z2%@yzsBm)rp`J?kf(h-~4LI6?T%rtZ=%MLZ1hkT~+jamal0(V5I}cEPScU94G)c(F zLUZa3DY}*Nxjk+wcaC>ABPBwClS17X&!W_J=U68Vvqd#{T&nhXxoLE9ts7Q;Zd?e0 ztUGjlDuAl%Y#=aSFHL4%zQ$=;P4KZo5BlkRdyRS&p$xd(utULKFwYlxz<7b&963|t zmDhs&=?P1rHC(R$J4GA8!Y8415%f3=pnT-RRMny;QnlM{Zpp>+_p&^V16S*bXCqYH zgIsTwrb}#gH72Ur(e8i;alh@(9tl+DYqFc8StX9oT}nyQB)=S0gwM3#P^&^ZbsNXs zzBse~UUn|mf@bct0k4rYlHmw;@4%X%z9*l4#PplDS{03#R!!gkn%GXB$Fj7+Bd7Jfa>n?)b9>;e_Rt?U5LG`x!mV;HS>nx5# zbs1=dR%P(j3}q!}jEGxuJ08W&*{SPxKUrkiZnreM+M5LnDL-X6@alB7dy6MD5SZ>X z$+st{lKc3zK5`P}W2l+SQAy~px4e524$uv;X#{uT%ev{l`Hp)`zi`(+3CV;~9sudI z2W_4z55k-J&>N!g105b_`=!u)@QDao?0m{u3?RsygKhPd zL-Zi`;V#tpM$1Qyair)Y>(Iy!(K{2F7yM&H3S)qtdA2eVCxK@9j&Np>5mDg+jvXf& zO>+|M~u<=yac40#GH=_VfdD#LocjaFq2zZ%^qIX1WT15TVU+IERp2lj? z3|2e0yY>qYp?mC1dY&1;K@_xgQQ^q+mwLemJO!fy@}PTwkjgqwYUII~EWPN*fZQ^E z4@$bST)x2r$ne3i*As4Km}I9k2{g;M?-H;k^QxV~1y0>AF9wo`v|4TEi1#qxfOUK5 zBK^6#0y>XYnyiM1Y3bV^mylkFUU#0B<h6{W2fp0KiAH9nNTGv%}?FZz- z=CeHK==hq(_Cw2r!fufH45@T7Bzm8Gj@L}K`&_VX;e|zZC+YbRv(Gcef4b5h4ExKk)TbV+l6#G^F7J1UxFHDNS4z7CejJF+Ihxc{<*znXSoF9lf~p z5|2;_t}#S$(bt)pm&p560wlZrRY}g4un!rR{z#UMa_i*@vWQyp=mx+nWjl;iQ4y*0 zLKVhchgUTCb`g;?d`nz6j+cjY&37NZdA5>P5|mQH*3^eJ^4bMTR+fy|MwQcGHCX-$ zEguQyT#1v8i z?rA$~jww%ATl@BsE{N61)d`cMBHu+eV45QgB1Cj|BYNQP6vc$e@{f17z~SwN5p1cf zWPO>)v^Is)R4=L)J9qXEw)mn*wgEf&pDA#_fiiHm(sWgE|7+yq8zjIk@oME!uKfPn zbwbeja#>*C(lc}y)r>;mq{JH7fYxtKK);dXzQgGv;V|l{hfQ2lM;yicE7{szf#j!- z8l;=+mNApj z@lu)aD@q}Bq(!#+Rwm)GiZaY}1J#Zl>if|$S-I5?z2ZHSl3yFJvfrMuo9h#6@%E13 zgW5Fk^ek|&=9$SC^lqyO&>{_~((tpmt{55XY){aV7C_d*G8OI)A2SI<72(>MXNH3I zM(2f)vDRZnTL9ejC=XgRF00I#z%E^vso2rVDI-QG;-GCP(MAP;dS=Rxr>?0PdCub# z3Eh0iy-6ni1w~q`t6;TQmGeZVYnqBdoNEc9*YEEOq5NkgyeO3={aL@E_|5L}vsQY| z`5iZB51~F*xGbeG0><|B4UgFbk@^WsNq$q+jN{(Klc(#KHX|~^Cgs`@xabD!;F^Y1 zp7U=+CMbR8j7`tTx_KaR1i7BQXGs8x? zg9i*5;NfF~HWf8D3HI?a`3dVlGr8fm;-~Osb07~5j*3#N2F4)cJ9@OeJ&fBY&XOEX zfW8AyfOBk^rf5u(Qq$H*b6*>KWZ3qnUZ5hBRelRQg=ERO6&5*);WQu<#(F&%A$bcR z_Sw&}z7 zxcd+hIf8>oKjy`%m0ws~c58(3uO~S2aAiPJ&*2eA{{D`&St2-+wf>0twv=v zY%%EqGo0-c#>R4bpL6)RdL4qa z0W9&5&#degI)Q1g=B2jnjog*Jy5zU*oaQS|YmwZETlW{u9Wq{8az zNx?5rvSvV#bA&vRV^5DH#A<)hZ2U0{9`&}1l>7H@5_}YxAuN^5%LziL>OpUphjzKJ zCul5y8IAC=aSC23kTSfV4WO6O0u#DxFD~V3haGC{h#6XTsIAx_<=HfrN9U&7rU_k&r;T) zNj~B3cd>cy$vEQ%u{QCxd)XvL_dC{R;4zJrp?Wc-yqB}thL-LK?wR^5NZ(pME||cx z1ewOy*26SmjmY-UJ{}^PW%;SSXQb|`E&t2+c$+-q8$tyeS(g3~Bm1blMyECh&LN$_ z@dr?n5Mtg~cLY9>9_+W0R5V~HzZMCnFn^Wzps84dnVASR8yOxMQ!$ClyFRz@?qgY= zU^t-h@czXw>CD^aqx$hFc-8XvptP@XArh6=a%&I!zYObIILAH=nE0H@CHTQEl<%9{ z4n|M6qnQ+N($6*o@v}X!+K$8@j>9<4{dLeKaFElWW?)e2F5`0LC~-2|1<{!ou!e_+ zrIky~WAc=QXm#r$Z+|Z<)ru1>1OHUw=&B^>Y_Mzf;r<-S+t)_5OY?P}C+ug11RWf% zA+(-G6k_cU8Ku2@xBpP^B&3veUUNxe3mgIdeC{b4@;>T`Niws2E5&@Nr|L*fB4bC6O%=lYZxVcvJ5{K;Y?= zr%5W6?trnF*u|mt1BLxCPfSJM<+gN_*;vrg_snfqee+rO=Xqd{*aV-sp?dG*Nll5< zkcOkh-$nfbzMcSB1Jus{PcfiJ9I_VtCOr@5FyYEdIP&BQjgS$=&o`xF2mYp)uj^1i zvP3OV%HM=oE%fPn(*1TbZ(jMBX6m7bUFwLZ8_AOFsiUWp;7;_8jn*0#*)l;b|L=_d zZwEsr*WL&oAGg3K&dyHad%@Kh@^qgFekEB05H37vMnBmi3DdOV48P#K`Fkn*YFZjc zgBUa3Rcrt|u!5Boc*pH=v|_@RSE#0@7g2uraj^W1+xsGtiH3w+*t;(=w{69kugkIC zZ%eCfj7O_bTNw_aWupZJuKyC=fHe~{gyLP^UiO{Ctmu&Wt#a|v}CLLb63tK#&``y(YI9;~>a+DN1$U$xF9auvc-^D^>ZIBs)KZ$ZTg=RhT z3ORbUhI zgTdsuKlUn+enSmJANaa1m6eqTkLN2qal}w|HtL!(jQQj^aIzfE8)qX=PCz@+j{QR$ z(b$BoJW9A$VrBRlijhj}#1(`ktPBUJ%%kUB-t|KH_8z&O%xKW;Dy^SQp2czLz~`*H zIzbAj3vXmz*EGg#Yv(f0pMH12km1-X@M2QV~%bD6;}EEXMfi(Pp1tWHq;R>$$`n#7^kX};-+2COsk2G zKJ(g(hkoaj!6MT6(1v^HM4c26y~5dt-X1;uQ4HaU4R@X^YEbYXr$*^mzly*S-f~8* zxyV}uE)s?FIR>9qF0oS&6?IbVDc*@E9boZCe*(TNhZ_&7;h1$75ihD8c(9!-k6U}% zdG;M+<7e(Wl)Mevzn^prFc2UO@&s=^_B+Td#%kmcNsGudief5&AWTPv|p%896SQ|tVNN% z64X|gFo00-1=Q7Ei{+)QT zFpYNn2A$jfN(zincZobA`3p6K@E>l;(~s};C{2(M@UU#F%y;B;qM^qi#ntQFXea_% znwmxlS@q?{9-wt+p%Sjf5mqG*DDdg-I8*bsKVspdftf3V z{PLkGhLyNb)C09Nq~A*xNec%& z{dhFsVTp3#w`;`tDeF%$0a@1NSE|{@fCZn#Nw8Sn~p6QN7ppbkMPUrzxCakX?_||A!V>>2vf$i?kSu+4nm{S%3 z!4|V$yFhQ0xSCg6^&hCuJmqi1;=%BC28@i7I(J4wVLfArxB)zqp7`_Si;y!)8q&sj z58mizfIIWwtO?`ucP9E9t<)4h@_wKlbf_n{gi1Lo6nPSKTUusxE0pfm!t2urJo5wj~)xU_yTTSt@e8k3sFpoMzNv_qGxj1qxm_rT;0lD1u&OCbjb|afPaLlCEhWwq}{i zEJ4tI*mj%d_aW;~jxmn`*yGQpg#QP?bY0Y}n}Aq`T)KsK>nv{W{~hOLMI)o4o{Av{p)oOyx!v^ z!p+4h`OjZpJt-nkECokay0P&`W3#8*5a%zJ>g@T+kbg~o_gC#wyEO9P+-+L!eEUpE zKqCG(ql69I^Kz%utAIqx(zrkMRS?=QTv?%e_9lXaoo}~n2BAV9C*VWmL;kjEWeB&| zX^GI6LMY?Q#muGGkA|o*{&zS(LNj~Ump1b+)y-Iz?o{ureiQD~@Np^lV>LRhqUg92 z_0tYa*K0$yxafBNx>p9N1gmw+IEgw(DLFZ0mUMxi-pFl$=#p3%%JJ{VL0Z>;GhOaXF?{I4 zBtLtw&OD(@S)O}kqIiM0#ZjxnVDJc*u*h)}ey7T$;-wW>fbUjH5)d= z*tE1ZRp=D$_G)6`66*ef1&EjHyhnONjz6%<`ee1azlm0Y#P?YiiK6|M`*-ZN=-bn# zpiq1aHA7olo6u*VVk8tRG~epAphgPYLT6#+^ranB8Xg=p>kYB^n;1tX5RKD^s${Mt z(KU`wXQN$9>Z_k6l+$PK1#-_otCA>C=_MnGv^w)Mdx{h{<71%yN%GF#fyNvc7m_Um z4!blR@G%_z&T~W}ij{e&vBb}rm+7l2_IQX(hgCWEQ!5J-xV)^t`U2gQ=Im({C9%F? zD0^jQ>1$*7Jm1?Niyp*7A7ZLiaLb(r4kd*_s>?|2;;oq|d*ZtZfS^JLTF3vJy(gt9 zm-^qUFe1GPp$RC;jgc1c3^^n%$iW z>UH^{LrH!yP?=|YkGoLr{rzs%$mj|X+F`Z_1ViaD_xsuUkKUsGcT=nC*q0N+7u2-0 z!7u`=LEOdziJ1&F6!{#rK=upy|vl(CZ6trUepd%Br6}5Ki;9yus!b13# z=-}B9hZ?J9RE>v(K{aU-I`UiQx$)FHH8ZF7$Jw?Qw5<=L(RNL9zWhGVE~l;CL2>Le)Wsr zv?B2mRm~)JiJJk%{Ti!GNZuzE{fiC{Gr5&O9P<}ljp&Hf_j=5VShn0nn%N&@pfbe$ z*NEkYZW-{MvCHo-@`am#z$?=~bCam9FXI<>>sABgyUBTY7q9&8SRxOzQsgRXS|*{1 z$3l}Q>*)MwB1TP;x9lm#MzQk2dLgRm)r0A4FoO}RF3L}Qt(I!RWYbPbG<(@;CoZF7 z7e_t$g1eu|vZhh^1Mfr$oR>pwvhl4cXYes|`98j#b-nDpJZ%j%sP+x#1bF!0)1@*e zm?(PSEhx9*Ab-L3%gz>mqey~UenZeGLKGOtp`rPowHzT4os={HB+N@HFK47%tEs#* z*3sdEdYKr8noTv?>$2*|9h|Lt7dWo+MaRVrEY)SScg@+amdzgZ0~B>mr$By7UQqQK zlzsplj%UPv-CHyb>Sw9xj9u?&NdEdQK4MAlcUpQOO(mKyews^qD;6n5_(#L{%(OF?O!rc7o3*KWwF zsmlSsxb{=f@`Q2g?ul_`odm$uP2H(qrRmlgU`!x@Tk)Q6)hNX?pYv&Dn_Lq;o zWdNDYJl@0>Mf83J)3=D{dhQozX6C#XORj~}i6MTA$#C)V!`7F3+S`XScJ{uPhTtKn z4H4Mjw!=Eeq`2iM^;vs-shF0+v(Za6=_KC zMMOjj0*8l&n2X#$wOP)V{<2x9BqrfO4DgJ^e`6hBYgrG;cJ4w)4SIsM*xk(P^tS6W zFDIMX^cwBZb;=z9@b5%vN3MIGt1AT7 zMD5v`iLCnr^96~v(>edMeCH5zg}rA+Ly38;%)yDdLU@3o*kDfQ4VcVd0E0d?%IDW7 zN@(n{P!)L*Uj!L3Y2Ib=>rxR8dLMOhf8V zeTmZ53QG-O@G#D0<){o`I^E^_BZ!!FsS&-$VX5%VDFrKve}eM(PR3_@adTVaEo&|~ z-`KDD$y?sKv2SzL8z5^%uwm4Rmy{nA*8CdWV-^0I2SQRs7gv7^L|d^b`P(Jxur?f$ zQQ7NLVs=@q)bM${^*3u5d2mNXIZ@3^vrI4qypSu<=!x31C=K72`j%TPO|CfiTJw5O z8c^?%_Ikc%vfeoJpZy%v9jzrdvpo>CeNxji^mGwiAZ`H!LfH=3(EcWTfB)S^beq$< z-`}$56=9I?^@k5u7UNn)>h`r|Cy+)QktV`vPrhl+$=R#s5IA0)ax#Ui{? zv6@DUgKDYYhH+4eRfs0>1bN4wZJT|GLb`XWeET##<#=9ExVgfOeWji!wVqEpc!UIf zR&`Xoyu^uxQt##Ew_o@-paP)a?dG4jbu|E_Ucp&0^@F1+nCA}K3AF>fqt`qX1S#46 zHs^`*J40ryk17gG&3lCHEp(Kxx0rq+f9jt$vw%bAJsIaCKU^uIS{(Q8#HcF!&D7L% zLfeS~)DY1wmf?BQ{)B+}e9Z5W|GkGvmOFprcTSAspolp=bug}?W@1wCr_y59pJrVC zI668C#U;$}P@$wCFf`c@hi(nLejIRa63p1u#Nrt4K{?^6Rxyf9TQk)VE6)`D=IK2T z^;oM?R2hSQb%njKpTNpahrwZ)-r`gge0WQn^vtlEg(H`CR>i*Lq(6#?D~)#5_(*LX z+|#UlB(AooZc1_4=imoc=Z9(1o-= zZH8Kd36pi7GjslR0E9<<4G0VVUc8QkhgO zhU)hY{~v2_8I@(%b$?4qcMF1aNh94QB_$x8(jeX44IRP3@tf;3R()#%dQ@1){6m3;#c+a9ok)~V z%tVIW-SKRl{s@=f=_B~c|FB~2w}Add&;}~g?U0az<86}bs!PXihk1FHcPGouewNpw z$`<*YhI(K}y{Q_AH`&O)ah$gRjapf~_4MQHr$uKkXA<4yYk0gbD;1^hrnq9B8ecHD z9L@NA^ux3+Ey1(v3DL8R0T~hhb&}uuPh;^qnt_s(8Ucsw-F>#j@aMFT{cA=>02EBL zolT!|v{A3N|7J|(Vy>?Ny4+O%HCQ<7U+z!yYUG}l6czCe-F0mEo{Hamnc+(2Gv&le zNTg-sCoZUB$)}W>x zLr&inj=ti7PME>Qa&ZAMLr@Ps&1n#HK%S*>GOtX4%1oc5f;qz4wEG9%K@0=n9SGN` zgrPI1)i;`SWF(K??IQ`ct}SZnw##N2j;BSDoHtJ0c(2udz=rHx>=%?$ExkK1b#d*U zH5#4dLD@fdR}cPnVYY%|6tf!;#q-y7_s&hz{B+`8$Zjk4ZiGSf-w(B5l&%n^x7F?Z z^mb+y1s$}Sr(_is;#B%Tl zF>N~hJ*hi%$kkCqV!38^JH$3aM|lIlEF&H#m=#R4JrmW)0S8(vgoht^8=00}*R|M7 zt@~_4lH#{k^#MkLbq#p=#y8G89xL=RwcTAS-BsUwJuvYuEoIxaH?WW7}-y&LN9|8a9VYv}VEtTNv| zdXY6doj^9#2>QCz6IkMa84AxDQplpGrdy#Sy|KB8N%BRk7)vT5JlyG0@x2GYCEsr6&42W{Bf`R&k}Qo(XXov z@FU{!>{vAkS=Iw{$2eI>+N?w3#qaGl^Ld3jO$R?2$$o*dN@TgP8b|p=JP(imdI9G0 z*Qcj4Cz_9W?|X`udG|Z8$ti3{>0oT9-|JB*&^dp(apYWS-*x=&x{Yud@oURsLF6}| z%i$0IzvokW)Q#HmRNvF;zWJt7>O`%t4i-W~T63UHYNXqS6nS5&@TT*o`|ZKxkW)-w z8K~a?uU+j8`cE1zu?RJ5r<|S~EIwxwV+xuMsRx~sI1WyQaFLjqVNC4TL3J8U>K#2T6avYh4-JJqD5}28KCIwYK8OtKnL@dGfnLcODp92cVe{e@XC19Aeof4Y-LC- z>{c24J_l$Laqvp9si?MW7Z}!Q8G?H>!sd1nepcapzWSmvmm6E>l&1VjglYoO zRP+bmZevkhZ!~*{8Uxikr;^pS(*?`_J;Zp$_(3!5hkGUw=a-2v%nvGf$=M08^7-!& zklFYC1P_GU=YKBp)u6*ajFxF^M8!qjzsALNF89sOf#kFjJLmJ$GB6lKq5t0AqTuDk zbc5sB=i?g~9L(lGv{j7y@)|I>VVkf8h{|C~fcjo0zJSj~JG0x(s| zkbO}2h z{AD$`Oh;p`$%|${mZ1*1vsW8#JXT63RP2icr~P-A?t*v(I&<@VAQ12k^{tr*`~92p zXugV}<;5arLT=F;1rLIFRh4XII);rdYpIAx$*ikADaG(m|8MrS(xH78v%GUt9XeM? z`L6w9y7Gxv!TJfIe?k%F66`yPdzIsBY`Z^j{ab6n$NGxsgIX9kuyO_9$!YVn-rCN+ zp36uH1H(T$I1x@Hq;N%Dwc>h??sfZ|syrz=1T0K!5OYsPbJ2t;tchq69bb3 zv2-5R!oax_#$C$fTb^z+t=v7z2uG zYT<#&W*1hgXr-Li&{#RuLXJfET`dn2Sx-H?sWGTven}DNOHJlyXPArq| z#MgY)CYzERHsjDO4(HWcbOck!<7#xo3k@==Na6PJi?2gJNC|(of}XKij{bgz6xb(D zCV5o(h6{*m|1Fkdb7tRV0>9;m>Npt;2BY3M9aqv04Zat5g_RkUt(^c@Kr~}qV_{<| ztQ_(&@^_fS8%7woxDiJw8n!$cygtwZujHulX9_AMWbC2Ia}397Ou5Q*Zn zRu4F>m9jpOQGLiG|bmvWSR^&I9n;E_616llbwuhDV#jNsGshwNax6MvsKsEguC_9 zcT}B)2FcHI9A|^{21qcP;+IHo|W1lLm(=ww^8k3~JkX1H{ z(=n#gGSEpnYanXYSwZ6Qn3Bsli(qn^l;tmuWD0CX(WTsOE@vQjsx1Vsxm${aQ=o+YJfyX;CIm?!v$& ziI%z4QL?LcH zfpHd}@502#Eq0*Hqk|J=zYJHIdHgM&&mS5lo~rytJUC?U+gB>%Em{?SAEhRkd>IHv z1?(*gcf5UPMI33W4t3)YQ*uJOjf)yNCnp}*lLvI~iECQWr}oj1^H8@BoQu33HL33W z870eDxh`w{zwiI2RDp9!gQ}~(d{I$Z zJ1@|Qh_}uny0+G2uG)x3lbXh0xp^AARTB30{%F=_30ReZUdU%i;RX$h)1_EJK|Qwg z2CL@&k7Yv!vj&*B`!?Gwq0!Nj<`O}-D=1pxIBW|p!pXOM9j(L?xGe^sWI|=~f9U)7 zc6~EcNsTvrGZYy}ng1g+T-08)bs=Vp6JcZblq7|D+ z91_4=FJfo`-Sq))E@A+Klr*Y>a8HKuMIJRZ88t7`JSYuJjI+83D6*m9vOl&N7r&;| z5d}%)SIu=PDyx-Xv!)JFQ_>pyPEhMl&Xk*F&Jf3*o`$N0M7 zfCCeeho|Y80WZ&g3R@S*`gf_mS}&q1q}R1F8OLipr-y*^ki!@w{$2GO4#^?2oLcL} zml}Kxxz?rIp;3q-!yEq7Wo7p=gky4u;YV6|5Ql?Avy^0Cf?#x&1*alWI}O4an}x`; zZ-$N*t7wdAg%DB1G~5KHc)A{84Y#H%sVYrIv&rTtWfq*h0VK?7JF{5`1sdN4i{r^0 zTwAlVL`Q%}&ikE_-G!|;j%rzTCu4|VC|XquU*q&b+1}aVC*o0j5QyxiumX*uDwVgK zj9=BY)oMEoSlIXdSvQ@&iJs;G+6h>o%_hnO1GHzw4j6!kRGn~dCvVzLNEhai0TZU_ z>F>DFwfaSB(IP`Ith{hdW--9Jg71y#P|7;#jY@lSvkeTtSm#Z}r+m1!Vu>1!Sc#cigAy!9kl3&0@WsEbJ&h+3X`7 z75+#W?=d|#8V45eaKHn_q3gPCe0ajKZE92H5dX$?0-Q7%X#4)QvIOo$*9cU9(uyb* z!~HgLpyP3H_bJ0;*E!48tGJ&#@1XhLQ;BA2%Jhc=L*jI@oSMmMLqtdlQ6s5g+LA4hPOOe18Ut=V#aiCC{mg19rW98x0i|g$5m5GCM@9Z$!#+Mf6h` z?OR3(T?4Y5=~G^(i z;k@-bM@pj=azB_?B)01l-T6>(7@lY&l{#iE^Cnk6LUrSmnubS z`AL4#bo5%3MJEmCsvtn$T&u}w47#2uL?j1be*2J{-f%M%86B-WGo|H}Y@)-l zZHZYjNpOOjpaOKNUmqzDqLRU30|+7no(qcNn!~&*kg`S`KIcRKZYzn1#Nw*p_t|oE zm;(d!RSwr*tVTy9U0u01jB;afNF(NoY^`j$l~ih>osP6drfw28IGHTME|eBo@Ueo$0FEnGV-^qQqkc*@AbST zO4S(0a(6n-(pI1@e^uzTuzc>{WUeHpn-F3;w`6ULjY;2e8U~I=F@X6`usu$`bOAQS(xmMG|mu2YK|M9D%f$`=3 z-23$f%RVyJ>Vh95upfY$Em3~vr$basOdsZZ;^&!m{<-E9jbjiWU~fzd5^)~-+-9WS z0Fm+JiA`U08PZ+rBsAyt7N3#}j|00(5Xd2vXO_vggo#qFv@D1!!( zJJ0w4hKRX%(NZ9jXAVp4@w5r z?JZEM@O>`v&Pq>@WFH}@I6jf;*y-un4Kjc5gQ;(T4<_kW=ZEu3v zzCVStx}_;TYl&LayB-%nF`8{UN+LKq>GAk?Egh zk6{^^D{9x3!gsWNV^Lfy;lNZE0-^&xW~_cVK1r@R1b_B33pB&0ql}uhKM-k%3y;SU zbeg#pp{<1y)kt_RPz17k&VIp9Uv+wnn!?{rmbaxQVBl89;{YrL2k*Cagoz%onRpMHD2I(YH;2=@5`eRftEwq2+DH~4oM zE^a~sSrKx#1COck@xNDk^@Pq_kGWQoqrpyZf5%Ejro^2IWolHmITv0g`#So|*sNYh z;R$dOGNuCMVADd}DCr6);FW-8fE2=gSk-RPp6uVOuk}g5Lye4qL3Xss(T$YvO1aM4 zLe+Xv@$T0~PshQPF-i*%V)fc9Okej>5JZ}eI?YCXyl(6m8SZxAV#vi7)91l=uO#E& zQ5f+8r)Ka6Cg;1VKQH4I=Uz!dTNp_&h_|7@L^w(HEwND%sF@svgdo^9c z`lC5N>qT~@uXV_HaWKYPxCk+|ML}2Y@i_S1R)`<5J>d*+AeX#Mx2N(vk#(p_>!gupjWM)6RuWLdbQf0YRcKV`@MW(XD|6XWA4@g|j85 z0Bc3ZqscV9_hiHhlTP!l;GhJ~31QGWLj{4>5f{!BZI#{AQYL!Jbm^zf>b^{s>j%@i zHSZTW>+-1q6XV_!;GvzXhPCJZT?fIZq(Vm z9?K$@b@Cve<}G`JuApUr38<~=VzrxA{WR5to_PoKz=in1OA0Y0%hOJ{2lWu)b>!6} zooH}&e`H9e9ny9fR-N{)(HR!{r0a$XKEjFwX6-TiQ+~@C7x#1^7Z%VY+xj(-P&)Na zyVNMDxXSQprQSLOi`?ep^|?K4_wQfVyWYb+SSK(>#!Ws*3dG3Tt!`RW0U4&p?RSE8 zWA`$o0R|FFt7RIiB~1pU`+BiZ88qE$x^BiLShps{MtT~X>Fsx4>c99f)ki%N4m`|h zMg9%xQo+PNqrb5kJglU3S4#AR=FN%v`d0#AGV z;dPAHqBV9rR+%URWTC;P63&W=*mU$!q^$$ztBV@TQD0M?Sjd%yL9_1YNxBVc`hdTlMwuDFqO#G0pH(^zZ#tTp3mdC&c{;C#6F7fT9O-(!%vCy^_NY&} z6;C%>d?Ym1MYmJg@uXW4lnyGlM3f)CC2fHh=1`lgtfks!iurxo>3OIA;ouzl=5maX z_t#@0Cy}5DaPH*XIRmdWc&cu(qnp48Qn>i_JcFzA0vpNndi5#0{rYIp)T}eC>vpdC z)8^Di1(7OSo$l4|XLz_p>2c;(05U@~k$e_gy(_ zrDX#LHHxv>H7T&inssU~Dq5WoSN;*AhQ{H2o?Lv+nm)`Z<{#t%{EK-)YT&p-nq7g_}3I&dG6O zU{6#8zwdVJWk=q;lX-X9G@N`2Q9yQ~wH>!VX>-}@U}twR7YTj3@>IOr1ckTz8Kglv z(^>#-ZPzY1Z+vdeE4=m5h`AMg>ba~5-qwcW2 z+KQV0oRf^Or;ZReYAOA@gF_lRx?jM^MpL)*avkRUYLRB|#7(C)>E*`){!&~79O&bY zCz6Jq7-+B?&d)avjf^aD*43u9JGI*g>npuV*{$ENeqwRpAl=s%2Dk(Y^&&HZ2B%3qkI9c) zsg@P94}M+Y1|N!EkzVfxvEir9YCF`)<4E6pZQqP;v7Obq&H>1$FAVT-uF-TW*qTB` z2!^X0?Pj>{7vnS-w8TU>1LkDj8)5I4uhYVPOW-!h>sbE6!Mr5aI&$e8V!uz1hzCY5 zi<8%4zC%E6gSRltAiJaomBE0|`f&TYWQ7ySX6|-!vN|I*hr$0qUMk@C0 zemt5>=K{Yar0o?714H?q6{#Q}Q_G?9bvnuZyIIacfc9{>T`CsO%@*dq+Kpm!Io2-c z;5+N5D0v7L{e#RbXQySrgZ~V5@LItsNhzyhDryCeGv;`#3)F_S;qz?Ozo0q(IMYva z@UUXHL^LXwNz<2ldZN#IB@sl6+jO5M6WF|Vo-qBU$n1B`MIiRo{WgGQ%#6|>$M`qV zbY8?+FV^qnIiwqb&jhN0hU5+^!NqD-|GBlR4f(;?u(X?r{MWPX@H@j4`-R3O@j)T3 zX69R+X1VL2#V;*Q3(YihJ1513XyfN3J5V-M&;rEHM*|Z`RSS_c5J81k`-Jkj!3G*T zw`^111hoGt7Zx@%KRg8$(m3nnC3N465(fzH6g?RpF>&aodj9b;3^}f%rrfhY9LCxh zYtVAJ*c(HHud|5C`(tLcTKk#^++U?rl$q33Lp~w->HKX{uW^G9XGm9+F;{1##@RMD zTHKBTTOj1`F4khwN}S}~!)7Vpd|~TsYP!*Clo7;>N3o13z82wN$uRpNlylpXbyV(csygFGYVW#9Kv$qd5a&rTWw#?q|Pf_QTR&i8sp- z4W<8W%0$_dv_R+x#D-?X(dK58f~wh?42{+?PpN=p>%sGi!gX)Edw(xgQKe0m>bnEBM>X zcLFzSZPT#dfHsjH>e899$dz7ZS3m@i8iw0^$#Alp(2<56%NZCMr?Wnei$cYs>oqrc zAWgSk4KfjJp0^6#tcfw=e7rezMBeWHR*_VTHJ-qQQ^dV-Qfz$fIBL`~{))%rs*D#D zh#YVk!7fkmS@ZKKu~x{3))8|$Q>{EWn_bZse}xydH@Rx>Gtxs@p51y3K9G@e;Wyf@ zF$5sITic@^E{Lhwjcv(~sl7Kj2g7ZI$F#U-mK6a9i2$^pDbDOyt*eKt!7S~DJp->g zkWDh(o*w9DucYI?RGRpiEM0=8LL>LJWk49mFQ9VLIdagH;~rJq&FKmXv=_R!YsNz?6#7R9Z3X<|Y~0lxXdea7E(HKzf(+_YBF zK5YRZ{{h7Y8fot3#mj8y7zfG(xJ;^Eb@{KEawzER+bRmZQ7t8@X`BMhD5d+~sATuI zQXhtk9Z93Z!YWM6jrdl*t|II)%YPL16$d}WK6z?O2Xo*&50bTh zmnwXxKxP;bC8g-%hJHmstpD$&6hYdq&zAFj@evl#4 zm-Ljw*@&;g#U+6_(22hfqF|&VDW6pSn%9nu&faOv9FW_JlaN2)Uyg%29EUy5(}tQu zZp{m!5TlliMp>5N!yrf+3JTzgET#Z!#N*N3?-H##F{qKFQAhlMMj;zD8hJxIYBZG9 zA>45{*r%_~y(crR&cbmUiGBSuDc`|nfdz-x`HxrIo#Oe1Ny8QnN6duDH^g- zwM^-2(r=C_=f){pqQO~{$|kfDkGGb^c#Tcj1tGy)D-oR~tM}!MsIAxSOCHzt3ZFmc zS>oF@$Fn8IKu1D>m=-Lx*1vZ)^*Ukoc{dh(NJA@A(fuziZtwgU#KrcR|4EA_%9x+*tY)`4)d5Gd!r7 zfWs^st>FfQ43!2A5XiudRzJ6}Nw!OF^o6tp%Eg~m;_2wm7=N=z9@fq3&PEJ^NXIhG zT>?lF!s)vm<)VTX7W^B>;mRn*g_v+LU2L(CU1MRCd?EsC-Zz>6pn29GOV&G6m~)3YAAzdb}n-?N0I+q366gKt1R{@-#;n) zs0k=5qY%Z+4xGcAL;b95`(M5T5znyD(Qzj?zd+C!?wa1TQ{OydyJ{T`znaq%%xfbX zaA1qAbLI&@>e&y=duwsJE`=r=$T$NXXA#smC&f5qvy>9B zWmyl&u0^?$fwxj)H_Rmm+!_QI#PDb|}spw%IPT@eQ4=11APN@M;lbc%9f^Y0dvmywQI1am7G0-lj6Bc(Akl31oYzFN z6GPTw%~319Y_E;E^wuCL=}t#ewSxpKF9w5xN>yv-_4pTG z^J{KIQv=J+pjbdfQ7~?*Xm}xhtlv7E{YF@w)|>M)3sOBuEosmzqzcDMlS7tsJwVxGwj12Wy zX%VlW!oSL8gtKdZwabu4nA=&FN_alaN*bNqJ!S``k@(2z4q)(T@(T3%3039`-${Fo zX8c@jGt4U7iK_J2Dm@82yQfm&U_XI(7)tjzp1);}W~IK*^@mja9E8+LiwSjKzeAn( zxiUc|9&%?^gwDvl>Z@xRvn6JMVi-m{j_EqoDKXk9g_oy#D}$&X%~Jfbs+ybM{a`~l1PyXDuCL%;>I*T*f5NSHx=;KLbRy-Qsh7S^k z+OUUcbwc^H*}XpuoXOd`a&X{f;;h)aExwcUu#yaa#EQ+~=v$}8cizU!Q4L{g{NnjQ z{ilTaUUjxO1}i@JU5RRGqGss%dn4HqQ5Qz)om|;B%N?|NwopcmA3Y|&S~oVp>Iwc* z8EhXCyw*vRZJyjayKR_!Xeiv8OS`%GQS;TKTRhNfs?k^qDac4uo}gs_-vQmVZ`yrR zF+Hp|6f`jO~k-O+)CL(*WFFodNqFWK>Yo8V~m385S#*H=WA8k_w1 zb+6O(j1aVto~QyDJqTn{3KLF})ntH2eYIP|CP#an3o($RW4AqD011vII;O=ehHO04 zlb=nj^%VW|f8zndFk~j7;{*2?KCu4|X*mtK!p z^uA^{*%EV7W&?sU(9$@B1LvRh_`8WHJSNrd7GJsg2-rXjxU;|O*77>O_}*YlKCvB$ zZ4zG`)~do7%3kA8?R(iV{G_D|6I=V~1$~R^!nozodDa43m}L z#H)eT#a`DkYC17Bj+w@~SO@?`wYrPR5*iHY6cKb7W2Gvxkv@H5F~E%DS3=0gGPpWC zsgqdl$FahYA$oN>_?B@C*#{TZzo*}D_?x?*aKk60-nY{~L-HznMuSnOEBn;%@AzIW z28Z)1M6TL*3Yky9a^Pr(J_9}kQU|i;e|9+ zzPXCx;^KGSVh!pxW{|=(%kyoI+ZfZdkF@8(*UXB$cnWY`fLfP>E#*cp8F@J80fQaL zI(Sp?LF*#tXVOLx?kj)48S7@ZiSS{$sbHeYYeUZXJA?GBr)mwMidDHr$pSey83t&6 z$k;x*`?y@jE!&FMwO58&jPzr&@91P(=In=2x{)TiWI}pSb_{l3ES|;)J&yTjW8#Us zu5#Bu-WY{l$z``RSC*ha(k;ETYq-+S!FyVy7ibhgB0pr*^*iZV8XW99ifyxnG2dvH z>urjlY#r!+@+ez`lLzgm8k@}Ub8@h^pSz>M_Bapd!ak&VHiyHryS#D@Zgv%wAiZ;0 ztp5ddL=(SL3Dt&4fF!{jeLgDm-t@whwCKYPJHnRR_sY!m&MM{^)&KK8y|E`J5dTS) z{qUo+zk%;-%BRqGX$_kV9f_LC0iX~aRa!7_-S7NP_lqAzY zC2qd3TB(JKRYOMGTS44PppwB^6pTEDE{nB;Qa*R%Y?4oBt8JxpV!yHNcqEwJb>2(k$iFYTK9(P z9B{~k0?Ir+-lE3v_%18wDzw)D;WSqX!)Xl`P(QFATPpaWGjG_1Cye>HxD-s~uGQXP zm>^xhS8Y;eXKMZ9`FccHBuEvJpV3H??b~|5y4752F%Gm$w`IkIdN3VwN{``3q(HNu3@p$Mr>t3^<*3XO`ML0=)b%#MhPnsCE=mfGXPB4>l44s!=vI7@XEf;g9}c~c7!i;bVs(`9lvoEm3e^PdVnATv5}pTH!5 zvD=yWJCUyuCQRQ$O^q@26fq3HQR;Fr#$+N>3G#zsZ2qf`;_^20rpD`)yUSGo2XDV~ zpl7%-go`Q6OjQO~0b|J&fsC#fZFDGeNv@CgsOJI%tZ9d(&nk#`u?P%W$uru-`13$$ zA;$8{PLSA`ze?)5hH3r4kv;aqHcU~}I~avWBL-qVxiTe#pt;d{jXm(NCaAIO=Vd<- zzq53XzVjGD;+{7W{xXvQ@u=wQA3g)9|O+k)SRSq&5o*7bYFK2sSq)(X&;sI z_>+84(V|p$DsX%c9q1p*s>a5~Hm1ljau4>L_D^Zya*0SLPeuqa9qy+uJseK1n%QYk)vOw2v) z;g^aLhqXCYAd#xfoxG-q9oW4to?ncGwynq_K@S(GS+($%*F8%1Q$&hS@liUON=YZ) zGXLu*J|7O{v>+0su`$~&@U(t4Ue1Iyf+escqe(N19b{C31i!g#ww257;hymttWsuo zZ-G37U#tc5JLfgng$OP^P%t%jvcSv8u$S?pGMyHmkS0`44=i2z?9kAG2;%gwyObyi>F*kjV zua_hoV;flLEBghyc8aO1j7xt%>mNaHm*X@fhvO_Onl!b{=rB$RBJG&e!nq!|!x@++ zf339|xoIG$t~zx34A6;9LuaQ&({MzK$!-@Z;gjL0XJzKMHh$&1oHCFJn*`9MBu1@* z$_%G+fx9#zuw8vQEnj+J=zY3jP(tcFBZ`3CYggTOfRxv!p&WTM9Kv$a5<8u&*a?Q( zadv<)zWZu-s52IT9^5yO+ zh4Gv1?BVF6E_b*{HWZ}_URPu>;yY%n{Z@?x*Jcm4bL4Gvo38pkrmIFof4{fRyp)|` z4G_St!gQy;A)mVwQBRFR)(=LpWgVc@Jeakaf)J{x5v-6oiL9p_Ni%1}QZUbK?#`QL zjbC4!4fdH)?KRrXmi(=XyYe)YK%p<46B5Av_Nd>~0AxIh8ohnHZiS|!#|z48s=N;0 zGh=A^Yiw955@e9C=&rK(j+58e>5RNUOM>?oKw?Dnum}6yMJr*iJiK>g|6(Iux(x@8 z($a@&@SXv&z)ZLxQeZl|8J&q>$oU8#5h|SQ?`6+(YfXLWe=t9F%E5i*3|SE(Mb{PW z+2ngoJGxU|ak@6d$Y2Yx?c$NBX7cX!$l`MZ!H!7wdxY`~l{NTO&pOUz?9D{2FDmDo z0s9Zm%k3zYkU}yzMZu(^d-Rt`lNZ6fN44x1H8G+bcbs=OQC!iL9}SMApHG))D*7Sr zQDw|mW};h)Sv07BQD`pif7hiujKJ}ZcB_8Ufn4v!cvV**<(G?Uz=X(HkEZL-|MTVJ zR)7siv>-d(n$0rm$_oQyAwR020=$6Xi>_fqNC&c=SI#$)C6oGc_M4N|p<=tOa;4 z)XvtXagokBisTnO`Xi5g6dgWr_g~U#MDRHuE^fTph}ATbKez{KwYnFlV`A3~21mCR zi|lkH_|xg>6O)stdY$kuM}t_#b2@sy&{~6QNz%c=c0lHr>#4>XY8H0?S(?KJxfi`g z)%PTD`kM2N1a4rra1k(1#DtdVx}l^K;J#S@+I@V!*-2Ih`3{tT;@IVe0q7h5_Kw=O z%Ibw%zrjwU3$XMLcUrBU*DO=rkJLI1o*@6gy>l=~=m64jG2tL6`yLM3=X$@Cd0!i^ zy4p?#s!ILHCqY--0n_8@;TpD^z-pp^^&TM`?=k{_|&nXG%JaC24ru8(nr4|2<7+(o=$Wp>~ zRWG%1Sb8(n-ZFWoaQPoy_fw$nZqDMDQH`_@OQ6N^OuQQS>~DqrF;p-arykKk%Qdm+ zf-?TDGw2@Jz>4ACUm0Z{fMAXCzz90Q8rQo3(O*CaQXr;gMp*L7LzU?gM{&OQEk%E_ z#fp$%9CvgiTZ-S0tKVG-UcQMkBNTxj1Yyv;8IeTf7@FH;t|Q=3}ea;(i=xwLj5eei>8y zG6G*+UF}Y?p?;abKZXC?Q~8h9_mOx=UBd-4j>~9iLFmuMLpZYQy$6O7oc?NwQDnQ{vBFx2D_{wkH1?xm+Vek0|}bRpNRnQd{eU@DG>}> zUk*`;Y|$ff1`EXRNQ((}Bi;$2LK_=zHGihVWp}Cuoj#;iwaRi$vG^zj8|iMpHK;cR zSfJkWxIXbcszmsjW_siCG`ZOpKY6Px7$r>x{+u!?qGj~UEmNn#R8Urn;xs?yehgjV z?SLxfif2In>?X~Mm6Q9mh<${&Q@n{9Kx`=tDph8xIbV;R{_z7@ge0Pq`XG_$QXFK2 zkhTn3B0@7V_Put=8Hs!te}5t}cg=DiutKDwIEF-naL4zI)=6juf~5#PrSvgwgSj97 zC73#z<@*nA%~m*=-E~sSJRBs4lsHT0r5(oz4Xet$XvPQG6x_9?HSd-R+R(pYZ(!n@ zOE`XRbRG|{QeTTi2$8maAHh*qH8n6M%~xjxqD*J-%XuAx#~hP|p17>xvW=B-5a3CG zbDPIx=teHYa%|wU@WC56^+d#TRV5KKSLc(J@{^d@mj6;l7x@5~h6oVsPaT-Np6tK5 zbL(LGkv_i~Q1|LBC&PxJAqM_yI8$SuwQ%9&U$CXh)X7sW3C6|)qWU5-X=qYkW}z5) zFNGaNu>uQVWD8keCVa_@47l7nW9IN8CntBp>ZvxWoci(vBt^pJ=3&l@d1-uY823Sz z2&gdSKA@!wlIQL95O$IAId1#MqtUejXfdQwt-0R41K2fWTSu7>|`vIH2-51d4m8&mie!1 z4tr(@&fB*vS%F{B{g++^+yej;&_BgbBTZdQ^cWw z(=$gCN$P_Q$}3&#h4Lg;`*GVf)Wy*vDKb8jy-&T@9U1`V4L5>C`6*!Xi~Jb{u*_ujRHU zVciY@cYg*GqKYdk=Li-qE%8smi-lxDVyZ1?nGP8@`&Nst>+CkE4=pp@Ey4w_JWjk` z{PQ#*d*m{(23cd3s}KbA2FRyMu_|WB`xkI&&nn+LB%~COz3}NodUviG2KLDl2&!)% zK;Fuq7E}S={f!9bcC>*5ig)ke0IWsj$kuc$-6E+TwPu3MxP>BY5#fV9K_$$mF8%cysk3_n)wl_;}Ab&goYv*M|sI2*THvP z28U1X{j}*|6bBhv&!YFN#h-nBo1;QW`Tz@HHeHf1YCSiCv-?r`TeXJ^C$s@j<=$@n zfn0;g*KB9J~HpNeB#5yGbm zGa>~pfRvvE+P81Jz#8LaL=P}A1IkqGH(xTu$D8xfj`(i|e9=7HW{1elj(d?N!^+iG z^K4#^qPW3WoqzuIzNAubgpK_)NWc6_R=5dLEq;QOk)Xn?O#f$V_r!!U5Zg;?X#?t? zT=MYrr8KBxL4bhZ34()exqy~4u(g#RBvlauCHKDd41fc?{ciKjxrxonDugXH;XZDJ z8sPPSIPYBtp6+IO-|}SoJQ5N+t9MwevQj?+iQyEUX>Uq{**G*!x-GF})GJ8Y)cCuK zFuX$$EC^X%;<8ymNgEE9&){7L{f6qSTl`7^aAWk5@by2W{U=VzH3J#{asToDq$6q1 z=;?BHb)Sn$llwnRx_1kWBZ~TWAb912#)6NCy1IJZ2}neW0UAj3Qnm76p!7Qy(?WUe zPCvrE>3GC+@*(?Z)2s4X<>OT8BPk+6HZi$ae8jA*c7bhq*ilx70xpgLV3Z=igIA?# zy*pE0Y7sEbeK98Zu732_uO1+13IcWpY0|hA=pl34)1F+%ETs5V@6rK^@zPJs9gB)# zKki{XffTerQiw{=Qz>76&1p3Gl&kro2I31^HOxnI**yR1)#R+SA6~4^AY&1M#1@AiP&-f{lf0a)2MPxPKl| zXG@9@nM5LRt2~r?nSm!sSNq)`CMXf;Bgey$6$m1pgNxR{3;sL?9BXng&G>3_y0PkX z)(a9%G;H1vUeOh%Mek0Es6@dhbK);fZZH=DKk!k;cdl=|2}_-$~? zgWF>S9^*vyH9r$vCMX-kAW5R8UBP2g@aMX%{!*jmGh@}luTmjPx0$y$5Yc5uO1a+x z1}N;J@N#G=QHi;QS7oWOe(#)bGZxhg;8K8?B>#pL_xGeBJKdg87dT)wsU$;JgX1R( zl@37T(1yOwx`(jCvc0sVNUj!@ znE$W5Da#(2>*M9=cUM1xQHh+A2SD4nb53w!xZVm9hbrPl-m84{7kIjt-EYyV0;0$M zeyR7PnF6)s!FMf3^?a{Bd;fE=%#mU!1i}RVC$`0UdkB3w!d(-ovhB+K_2LKQiiWyq zM8`p=csiB zSAKU@c0XJZ2vHHomOXu>;3Ks1uEZASwQ zWOH=oj{nn&$H|1~4fuu!0+}*)!;<~Sx=qj`I%v9`fmYsPkPV{mImn1Tb+Wxb0Hu;X zg&+B3YA)P+EOb5;Cj&Jh?IWLb6NXJ=?)UJl$LSjD|GF45l=YM*ui|=8&egP-B@-Hk zeKOT2bW}@rYz+=7_-7GK!#uVE|Hf5ncF0ROi9}tF1z&54gCjs>sH?jICCT9=%b%)L z=??+BiRUgCe`g%Po9(-3COxd%s?b9ms_HW*&wnmP1bHa=7w~Bfg9xGOI7Z z@N|c@@}Azmh}+}1sc^jDgXM!8NMaO7q{H#3;o3~leF4f%^wkmjMaN#b19+tm6mc?< z+n`b81^6wg_N;TXivtb^sfy^ka_O#4f)g1|;{KhEl+ zY||>z&z|PPNQRB|>Rn`9!KP76S-m~{+_Fii}&;302eHZebuY%XQLzZ+#yGW|c5LkJJ$nMeV3I-`uGbAN)g{jufu`*TYbmy~ILOiYZ;c_{uFZ9(sT zc%XEGg`O~|W*cq&HkOuCG%$F$PN5e_0~|qQZ-MY2mwxWRI~QwD!vJea5~ndI)TWNj zZc;-Raj<_pZSjLUt!#hJUtHfOjTVp4JRQFA-K?dUUaqJ!hBoC zj+S~4jOVP;t^IxHg4+o)&VGC*ZAGMa{@snDavVx|G~}l;Eo#zszbGYre!K++yM6b2bJ>b-{$$$YN7na5 zL}&uZ$jNo@70)s&nRkA~4}C<-^A~gjL}`5`VsNKF7V7ZA{fd>xOFJv0`WE={oz8@s z@zvN)=xtRr(UtTB&PNS=NKwJ14^rzOSYSK`ApYt{l4Ty_+IY6+#z($UPSt{)c*wCD z2iPzU6;)Ml(LX`GGRO%S@9-%?zpgH&fT@U&zec5lUzE#refeWefB#X z4!AGKSs#5itv9xhW-91bdcpe{X51Ca7Wa|XI|OGA%YQqgTD9~)?ihxtfpxg?ywL4p zJ$|qKr!^~qPLf4>RT^z08UDx>I;K|)`1pHbFPRoMHwd0ATo`X-c^mTK-?>8bIx11; zAi6Y$nzAc2#@Q1`4B#60*W_|f%*{rR`KivEh7ho7#m*lIA_-AgP1vh1zW@DLNI=fc zGX@v_wx16a0y!)=&_Q@xU>G|&37KW;U(Bh5@1;(Q@)z*WpKtvtu55>w9TDBwUD{S8 zWO@PGvRC{Q-O{p9t76Q*oC^9pDAoyCVGN+<$Df>_iparO-ksHy0VrV(|BU@P?cur`-`C7cS6hD-73BmkbJv!|=-(r^ znonb-bY`PbNEOy+8IFgm&h3QA|ZA9}e(tQ{6Qsl!{T3b{wCiWi4Lv*=+ z2Cj5{3?M zUzW5qSU~YdhPT1E{Z1ch;u>r-S8n>PfJAFVt_?{{-}iTGI}EiY&jg zHJY=X$Vj5$kWb(FKHhh^CvT8Dhwi1eCLmyq`0HoP;0aeO-J&39gxZRP@_5QD5pWMj z0*jtIxj!@J5&PbNeyb;BcEhwEtXSre^lo{_fAFyG-3LZgr#I{nKEL05CaM8u0}wKu zBxmT44f9jPu4A%3`JW3&XHW_4dDGIgOF_pPNEE+PN#kf>m6M+CtK^pK(Q{sQ7~5e9 zYKijpPX)z2(diluKn9wIQOO0Ff%?UvxMGrb-xu2oP|nj@!QSg5-XByf$(=J~biAUu zUTMampBzJP2E!pftNU-zj+xPPtXx`!!&QF(i$N{5tOc&d4$}Vr7Fl*d5^Vz(B%#9Y zK5WRwz!;T{p=P{&`7AE>>v*d-jgXKV+YwqT0Et)QHo7eD?pSqp1sKAs__YOeE--lk zciX7@Zt+>V1HsVmmt1^Sh>~>v+pf0?14TerEq5cqZg#j+$AnmP8vY_6NySyW3V1Dg zt)v=itJhBL1FlW~iz}VieHD?}Y?Ys*|EEg)cB-3mD}X^(2SdVckJ13!l}n>4Fn4(^ z>2P~C?Y4DK-t9HzE4w`vgEj%!ZX|0=Yb?<=bc=d*w=o=@Xik-tmSO;#ozX3XK#YZA z6BS36?_7_N;OtOzu%@Oade9?SNd-4Uu(Qv(4jp;!w)(tP(eeZitR?`ocb)MH#p!QK zb~>OjaD?kUZ7B{JkT$kO9j>YKqXoVRzmu_Zq&Mw#6zE~>1_$9%Fzq+$mOCzWX`XqX z9j=A2!9Aa{;U5N%;GhN8w+59JEk}+uSuj8?Bpa(B+0{z4p8IOA^Hz~%#_o4h+*`B! zp1Z#l_+6@RrKe7QwfUKVS`6pv$UpGa&|N?QJmmJeuao9zh8C*2v!N5FMgOSsOe%LZr`41h?7}?iFtJR>@;aE z`sVf1OP)Wp`<;#PA6af?VgUZoGlnwI;&%a#GYcNhA?LN3b9vOmiivU1u1yMbH28ri zyCfA;van`50x$+l{(}}~zxxZm9ZM%D*$&XKAb{d*%{K8W{=rA#qFp|rsG9&6$nrmZ zTYLzn{j=-$3rrMAcY#P2J*9b6NiKUQu>`*52U33)P{mmv==D2Vj)MixJX$p4{7?#pd8IQ42 z5Qtph0|6)z^m9l74gT_T%@=z>ZLyyW*awSvUjdhhTfw0YJCljxNNvAOfI<<=ESj9` zRvh|e%roEtD)~b&Z0V-mr=B7$KsW6m3h-~c2Po?RPw4OnJD(D0Y3q8<2Zr(6Pka7d zUN(WgoI98S9Pjmut*Ex#JY>`)UiI7~_fQguER=M|O4fd^WbPA?sq#skf&qNj+ou`O zu?UslXODUuhwknYRBpbOds9eP)G(zMAM>AE$I6%maOv32!otFcq)03wXzrk;5BmK1 zRnwJAUmXT22()Z`{eZkcy7W`7ftFODDPGmTL)a<;XrnR)28{LY5WKQ7elmJ^w&eDD zGQfvMx8x9CJ3_mc+5i-!x#AvZdv9|tc1P!3`DcPRcIBC0dqTEsHgg|#11vp?;WrSd zmuUig_>8%xIJ~yY_EHnsxc1#gK*t=fIpfv>YNzFs@U7rG89{^Q71q3OyLlRhcW5V@ z{cr({r1~v8`wo|lNO1Oxfg}eq^NKrFsZ_`11oyv%m`q94fd}gZRM>;=3^ROvYAN>4 z(LiKSK8Q@h#Kc5&J@;OjX{X9Vqw|Kjt>*K6o2|0%b|Kk{W-nN6Kbh+kvLOYl5qMq^b%_2ehz5`8e zCJeh2<3WLog-$Srf>?87ks0v(1CZLfy6;J)&S?Rx{{Sf2U;?Fgz-gpKH`%CaZy8T^ zxu8BsCIz}}jOHyq{x6e$YwL7ao_(vy|H4}-`IwrT`|S4VsTUBY{!(9k1Ms^4RVo+* z1S!PcaTWExEC(#MaX62;?nG(s~_ zFvfDWQ(i8R%D%gjwzBT-A!e8_RnxwfLt5aJCV?{c_7*epUZZlG*>FM|ulCEL=0Vcp z?BKIer1|(JiFjcNJ(s!~&1N@1ewnn2^s*k>=;mMC8aZVOFEizJgQ^@jgtETD^Krws@iui zZqHThl&6A}QWF9p~wc*e5zuf*E3Zxt5b-+?T?9I0txYFa6wU`#`Y(vfYILMv0G+ z^P^KjOiaP{ss71cXWHS#`wt(q584;Jm3AdC%~tx98ZXZtou97UvLpTg$ash}9&4$4 zM~w3y(A-ZKL{s|NBo44E7@ZgkS{q_S0(bZy;30esaa0AAse2OpzZPjlwiVE-3t@if zxM+JvRdj*!!hb2w^yuWQ#7XS7b+H%;8o!XTxqzU+@Z;Jla|E=HwZ~j)K~`LEul99S zFu%CSJa)H3RO~I5;CsV}gCJ1Fd&dH7oLf9uso1Y$xY_lDDBfQ<0IS3(ioK_z7>N?6 zOh;sOxUlmwERZma67up))&($&Y>PF`ABEzN1GbV@!!755sT@__LZc=e3fAd0LHSRF z!$2GZhmiU_JNU~RfDRk-MgkLiJ$%vD&gub~*17#u1w#12V3y*D>=8~=E^%;pI6>9L zk>~kd&Y{2e@n#@km#u|NfmVjS5X;E zmO}=6{69GKjc_}+-Bw7Y+HVwa-$9&8T%s$x4ED8jOG`_uptGGj_*<4xf%~?>{Qg`c z(ydkL65TrPr=FB z8Chq*5#~SA^@MKm0o7e|ghd zzCe7UUvfxBHpio(aY-2IBtlcccS#RAnItn0g7FYY_ zUI@~n>Gabcb8q$NfLFz{A~LwphQ3>Bjb%s(Z({9UD1-gLRxIerTH)ek@lvUoaSubR z;C$g*Ac06#Sq1p=eQI5M|fdX$~pegjttV-6L4^ZezPZ=X+bMQcLCrmVMYGLF}z zjo~DS!mF~#}QYyW+wzfl9V}2L@D$!hD_|er!MGBVSO0c&r z6j2dc8=uZG70IVga`$!5`q{|jkde?cowgrj(MSJ=ILeHiH=0k)z@6Dnl_j$Ot1~dFV~;>6+iwg2fdLcXD_=F=hFy0f1j5>5nz9HA&GXfjdnWC; zyP!@LW}HzKFq)`uUpL@)4uoJ9%e#x!BGxTNURR`*Z&#MMF&lj2HmKDhOasbAuKFT% z&;Q=t0>y>Vh|$Q%!;h2UgwsIGMw{0WE!1JhpN{b?W4;L~sTMItIIXo{jOb*}s1zwW ziD8{7!cO_8jG;XO&BhLDBMcESZ}z`9(zekdwBlGiq8ok0smarFZtXX_Nl}?X$LAh5 z%52JPusP?mV`#7V2bibjZLcZgVZkXXW&x)%ZW7b-`#Ocet{*_>&l-S)#Ky7b{NsI3 zxMKqVzo|o!bFdFnK0*A|8n5~>C7l0;Jb#|Mt=Z}Wu^QYGlL}y)hB-TzQ)`_d_c}@Q z5A%B{ zq+ii&DJfd1MbDDOAlD`1c{`D5495vJSkJhJT`=Qx5fTUAe5Qex`TR8>eWH`7fX3@= zZRPNEP(L`{SEh9b2+QQUrxnDS5;_6%k>EzyP0r`zBy4Gooj&21T-bV?M4(^Tu!!;? zIB4sd5j`*3S5o^rMXS8*?#-h0s#eoibz^`QFQmfkh~(;nYCPRHQs?{gIyHDw>Sl;( zEG9k`9Rh-^L@~KsQ8KX`c>Xv@6FVY?z~SEO{1^Idd(R(`QZV$TOq7I%#0NbpT1)fY zZ$^n!t{;ekBJ?|u)3{x+Ci1uX7){lhLcdnU$&jI1f%n)7{B7>j^v{uqVsOae8r33x zoQp&ah#mV6BFZ2u_MG!iYWDC)+W^C>>(H>u$2e} zj=mw=5;c^n?Dy)0g9s*n4ceCzGCS0&M5fqjnwOM@NA0kqha!09efUS?mvD{R>lV!Z%S*_~6S#zMKh z8n2*LsH3~+;rr15c2PBgrNE`i-xM6Y@Gq;wp_z+JM}iNgpihcR;#1GL+}k-iG%D4dU_1K znJXDRjqV}*)`t^f-Av+r27p`m$-UTP_~QeYCTR%hj+qA44eWiPF@r4Zx~1-`fpAKP z)%~@#XvGaCnyz4(ToFow^?O<=m^b)?U%Vycm4I^dS*&CG-|6=QQT#vE5AO3If)8jW zaNEZEh>gv8w29y>VX<1qgY#})i$75!Mn$X-$vL~`&KyS*H9?N(BH)PgVM6sZkUAjd*U{~Xo(-l~BEr@q8URR#pB%R*S z!Xbmt{ik;GB5KYFDiOWnkQ=*{@@!SWPA$zesEhEr>J$P2GkRRgwA2cPx9LcG1wyiD zc_+cGHa@2<(8%iW`Fzv7;IHInKh$d7pr~-?y%kQ*$j0k8FB=mTo)G}FvUv0To`r}O z9RR<31rrw{`lPFMU3;?ClnRl~<0A>1cQ*J*`$|Rpd>l)F57TCv-=XUImF|IDoFi2+ zfX$;QKuG}O+qZ8T5x7|ozQptDi9ZLKNz`2b%!s2hGFXfCb3($-rS0AysY4X7lQ$gZ z7(XkY9L6@i)5IMdjESLJY3WqdQW9RlGh%eJ`SUs5ELLRq@%_Z=u3yi!BbwN^KKF_m zsM0uZhjoQDL71VzgR`#6_u)+U;k0QCQ(lArlzHs_PLQrA1C(RU!&}>t#jIA<<&#S5 zeOh)~pJn{?fF@v4g;uV+YRJu9rcIyn@RRY_dP_1n6o2TL(ZIu9`EyLPFv>Lgaeapc zr8m21MUgK@Fi}AZTj<@pu|6*l)X{PsaMZeot&6`30v~aZ(JgrpHSIRmG%4dCt?f=g z;?n?o3j_lvSG>lAKOC-8c{6b9?$=bm9`Z}ka&ZtXc`16NaY>6Jt%l)XhLiz?7@O8# z+O~q&Iu1J&$KB|6gp0(luI0cb8b&ZQTRbX3LZv&7|=drDHExzhra8H|dRL@xF{y}bi%CA>%<7}JZ;&wZ;lK2tf#w}>8FjpS!F^ByMg z&0knBRBTD4WfIHDcfbz7RN~qGfPoif1nv@gVwY@+HHqC*XJK^NrDFiXYfXe0?#M zkLG0Va+@eQYih%>^{DZouB`+gh`9w)83z@Hz8=mc7qj}?=tbx_VWz!)Y+iWsJ@96w z+n3RLX_GcNy@u8L-dcN}6p1~vsG~S6dx!Lquu-A+ksC?Xf>KY-WzNra0$Pl*Bwvm4yRO6+|50#+|1|snc zZAN|>IvsO&=q?n}O^li9a=bj=47VV5;%?0#x_Qi)^?2Ong7w4DBi%wr>Y{+*@8sYS zv6Cl>R-PMxR87o_M(9#0SN6&02m|Z0FOD`26Q*T*P4g~wDR|UjndR|2jBfSaKCBl4 zGUUGG%q^W~Gz$7<eaKL2zB#~70BvrQ-O-iuMkL4p%VRXYjR>@h+d*}bkHqq z_Tw+=Ds+X|??GCZ-z*@o>ZcX;DM?GroN5kv!u)|%y|+2;-&&#mC2fJCDn-ZkL3=no z2+Z?#V7VxfU6Bv8cEf59=-*B_{5V!!lsG3`oW;KdS@|%z%=x+^1a)DjoZr`KnRLcT z(IMnGn?1imirA%t@xd?)togn$Lp)9x(`f){bB(IXIm-cQ4I8s(XS6A#J+Lfj_Fmxn2doJEWgj_!fOelq_p$}4aD442xcV- z;U;KLFm!*flCsS4P(aq(@B6r(-p9m{sf2DuMI7vioQMjxo_M8%v1+>*kQpwv;TJK2 z=u!Gk@T8Uj27_68t?@T5z5=?^a4d>v15F~a2Y>^%rL4&7qFZX{SI0iI{yg%)R>=`) z9V`fz+>9yXCm#WmOU6ST#OSFH>!17J=gFGsfn<<1@TOO#w%uBMMTgp^qkw8?1gp(A z9lBzR0AHO<{~QK;S=j`?Xo};<$9~W@!R{IIon|?j1>hpNPO~6siT{Sxhn3=uRb$hH zlnKKrXI^bily%y(ppeBv>#JnUOJ&((Rim^C+gDqqa)d<9u_1+cY8N6LXCk1ii055A zS#Fj*w`ef*1Q~eklKR8b8O6mP)GZ{u^)axGI?qJ zxQ8Ws1v-Og8AhmV$4gw;9DDejnB#tc#BU7$BKOW518=a}lr>bU`)yY9hYP3?p_82# zA!`XALB*J(W1L-B-qWaz-1)`^fQfqEXOp1_`%;Eqf%4|vT+P>I2G;0QHfVLTv6E=~ zx|Z`-9s*nriQMDbU+Q_AbH#9C3`TH5R6-&BU29wPN{O_eBd8IHv&K{5)D-oN<$6Ik zXo4$)>6}W5-s2tlo|7y1FuY%<&0iqoS;a51Cw@|j10}et6x&fa1LreJJSu)aP+hf^ z7V+FXHb-rqJN=Vcw+zG0R-+FCH8`Y_Wl5z^Wp0OU`pl}Gyk<7NGK)G34GqUQ_NcEy zDd;`RBIR=7o2>?n>Vt*5@G0+3pP@6LuY`9|ZA>!d!SH|ypf3!vkfZM3SABAPep zUweDwNyX-PrIkaS6lrx);*GQwP+L*8+`+rqA$N6tU~p0Ma^%jx!%AC@wQ$kFa~6jZ zPv>T`46)&}FRS@1e4l&lW*dd(=lIOwW^6RPmopc1MY275Dgpw>8jp;E`8WYr1h?VsH9@qx(CB?;M7H>=`Q%1a*hXX0UZlwR)sP~C>5R4+}b*`<%<*N+cp`8R-vb4)lxB^=}T?1TkqkC{Jg?{?17XvUKD%A#<%tj2*|Nswnx zBaDwsa-u6m8A%apdv^re4*Se zWGeneDa<~(vbMrtezq<66=>ee)FXrB&N_^d>YJ}+7jW7q*+)(dG$l$7LeEDb6?+i;GO;HgL+%69?Oxq%{mk*(-1 z1iNFI3JQ?tLZ-C}ZF&*4?2pmpIlP^GnlE7f8X_bgHC*U&JHisb-G%OUnd-Mq}1rhT1J4b-5gbI`0|Ji*dy z0kW@=k40ekH_c~TZYH{t=U|dmrLlMCm@W12>UbNgqqux~@nmP(FWE|5Rx!_ku#zfj z&u>rYM$}U$7Hcf>C~2E%Jtq;IcFu4@`Wj1YIhJ>tWE53S5w$;mVw*m?G4wREtcq5# zETq~sxzBwC?t-X;U#W{Jh0%F0_gU?L#rWHhYqrIp!Bo0j%J*^cs$dw>>Mjd~92)ojP{B$EMhrJ45Gna*u}6E+0yU@^~x`bJI>& z+ch+Z+myh1le*aw(m=tXC3<$dLw{<Bcga%w$x%FL%cXKm6rQv!LiqNkuUz3u7a8nfv2)um4!1vN zO}z7`ZD(o|vp7umM@QeB)Y*XQw7;-`z-G{W{T<<^t;HfXQ&bJrV8uoIY>o110%B#_ zrhM(TonfyQg~^XljtbDtEgJw^%v8~CU@UHpf*yKdcSaDO^ZNbrB{!3iYt-d^5 z5=KYj@1`GwQlk!P5Xpdo+0o>Vnw8X#DV=YZR5gE{*6MDbir815*wID2-SKm%K>0Ug zQ?1k&iyi6CMpvf!6o0U&kkw_;Fl}-eEp8GRI5@Yts%`c}-W21bUR7;ZbXyek$p0Fe zWf$HdZ##KQZqald+NiP69QHS^D+W56wTwJkSzjS7e%G=+<^^=qTWM11RtRGau*BYz zExhRC`DWX`Ze;#;7lTcWqSH-C^Ew#ZzFoZ`QX~?MeV++(TU1@T_3O4|lcpJ-E zQUfz-Uv!o(fa;tagUIY^#{<0#4is6@ahzUfiR)P&w1Qd(yBu*}lFt zDy_yEF;z3S!eegN?7s2Uk|s{wf+=yMzI+xVS$JlBTUeK-hg-k8HiD%=ry?SKEhK#T z%zMyi&i%&amIF-PW7;WaL&4rKl7`o)aIDEbO20&XrBfxjD1pIYI+wxzq&%6Yi&JH1 zwu#Fg17SovK+vOmvX{E!s||_?ZW}g^j^Bm&MvHugOtZ5qB0TkBu#+FmGa5dlWEF&W z^tJu`gpi_I5-xxc<+Qk_Tl_A;t=m3K$W_Gt+?R3G*RNdh#C9<`>L_-+a&4n{&(x#Z z_Co)iDUG9WiJy39hGFA`cNL*SgQ;DWfYDLDqTxNab=N?v^3bFitLo4Us;P3a)^Sv6 z1Y!pUt7temya;V5@Y!oGag2&ziz2i+nQ(edY_cKXV47|Rt8OT9rC}-O zC2*YeJ>a&#tyv&6=2_)UsQ&iXBVE%00$Dv(a;_xHC>1VgOJdn6b7AZi4VM`y3-LJ! zQ}WH(dLI47N%)UGLw8?YHIXSp7-62RaBOcfY<~7FwuXCisa>=E41+~c-QE|3@1SPw zRj-3TgNRJW%xSNT&PE3R(TU|sqG#h`A7+5~&UyTXkU7M)@P^ewEcS!y4+gFS5ph2| zrTkN;L~N&YJ&mV2f@r6h#taTJbYY0>Z;ETGp?56kNxO?T+ zK^?+xa!XLK43UwMvEbQoHC_Z2e|DdkeA8DvInM(*W#}&^PO@oWo+e9Uz}Lbg<6@|t zdj2r2;GdC@mM1J!sN7<0V*1K`RX@P^Sfs1oYh|f^IdW=P%vr7InR)szA_>`9^%5k2K!J(sGTpqY@;mk97EIetNUA?Wo+t?{s?zq3|`-`Dh%ep%}m_S>x z+h}838o<2Fiw(`X3uT*q%`@*C0hQ4ebot<8^gkZ$A9oyUsa%}TtfDcRx^gibK$?2B z`my=%Z6WZn|`Cay+_wWA&l;T@3Ii%27D? zT^x?2G(>jaCTPoall2$%eUGC8OEU6rEm*|PCd%sJ)mXl2zI*kH#P3pDJerWK&roZK zP>cKy#!Nt4IQk?iNh3L$m6zvcofn&kMTDfJbmE_kWxB~N-qiEUN^7H?2FDQE-x#jA zGFa%t*+#nIlIdJ&ZuKZ6wgvBS74Ku0Q8R6lc(;pgE$b&7Ie`jB%sy)hM+vLa#IA(a z|J>*UcVeMKDZ&Va!Myoh&vaYi%*(q%0Ri?h@6hMOz_^tGCAnU1U$tfca#whd`24@{`I+)((-~A9MxrB(e*|E6MduvKiOSl`CfDND0$gt z=ASoY)Y&3J@J@Y=LS&w_zkZ26Bw%}~YOuB{l8tx{saY~cg%zkGL`bQSRn8e#j^2+k z6GnDJg;t)Pfx(SMCTD^#%(`mbo9%j6JuVBTfg_)Qz*qYzs;(skMpljMA7+!P9q z`n61EX6Cw9`|B5AHn{#*#6Aq3Kzaz+vgz);VRO%|MY^y3nv08<&uow-L7#E;!Qs=@ zm%^yF{{D}H8dI0%X5HMkC)c>dP~2U-Ezhm;H1a78(3c1x$z+rHK!5wT`edW6yb(`H z>xd>c>7|MlJu|aQD=zw6=`MKW-XE10#%;5uLQGB12ju;QCo|(=Pp#+~6s1nkhhW@) z_OAbJN9Trup^L#$#5{uoSNVk*WDBS`>?o#0xS-vt z{!(I;9Qwe%dSrv*`e$~N~qsp=)7x z(ANu~xc79G*pmFM0Vr7*8=&H{AJZHSh3uq}D;o6u&A$&@AcFinkf>tQ*eWUcl;q|$k;18($1yY}wJ{j=K7KtU zl4(-&GZRz%zM0vdT2Af5M|?VJmw~*NzDqg7#m95kS2mUeZ_0DlA*0S1rAOJ*pWENZ zr_#Rvc7h16=vZ2E?&2{NuzTN_^utGp`HPYk`oaO~AHaq0C)n@`?*AcU!7l(6Bj`Fk zZA$+y$Jr67#Ns6sfz67gr1Rr{W{OoT@4JT|-DR;Ju)i4(*PHZ!r3)e$wThQE()58X zxTu=b&N~9aE`qo50u%9^r})?_e$oe@5G&Z|i-{hA+j~cBQHtY9hUIeB6z}n8=4bdr zcv*eAqk|$Ya@p;8{bgMDrzAq^Ns0osE_MnjrAG$ZHh-CfQ1Alxr338iv8MtF6$Ek= zWx0>LV{h@Uw`V-z8GDuaDJ}t#Hw;zFbAKc)TL1k#{H|WW$KLX(>vx~6pMHZs>lKH6 zC&I4c*%yU#kMa&!w!uJ~;J#RCOD?X*vXH;!pH<6uCndQ?+N<0zD|Q}RYuBYn^rP<^ z<68t-2CgQjS+BCnC+ZF>8P~%Na%I@E9=?g0bh}Kh+*{%($?1ML$`^9JQ%@gtBP#Vk z=mGKl?1~K95KLJ*^eNKSbKm#B?OJl4PDhT|vI5!2l4gU;7Fbrt?mHQ&k5c5h|)^tf7GRr+NbZVOqe<*MA?X|tel0xq52L{hPh_z|&USaP#q0KFe$)hHNGlx0e; zjZcG8E^k(0}EKK#!$<$8zg(LBPpA0>yHT^1I{&Th!9DaLFXU977Rwk1{V)D4@-+Ye From 05b83cbc6ea0ff2049be7f95489329fbbe76fb3d Mon Sep 17 00:00:00 2001 From: micdan5 Date: Thu, 16 Apr 2026 14:58:00 +0200 Subject: [PATCH 024/356] Tidy gaming based on new style guide (#326) Relates to #325 Closes #330 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/326 Reviewed-by: JesseBot Co-authored-by: micdan5 Co-committed-by: micdan5 --- README.md | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 21a97fa..f10575d 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,10 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [JavaScript And TypeScript](#javascript-and-typescript) * [Python](#python) * [Rust](#rust) - * [Game Engines](#game-engines) + * [Gaming](#gaming) + * [Game engines](#game-engines) + * [Game managers](#game-managers) + * [Emulators](#emulators) * [Language and Localization](#language-and-localization) * [Messaging](#messaging) * [Package Managers](#package-managers) @@ -73,7 +76,6 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Static Site Generators](#static-site-generators) * [Services and Utilities](#services-and-utilities) * [File Storage](#file-storage) - * [Game Managers](#game-managers) * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) @@ -560,13 +562,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro > Also, there is an advisory database of Rust slopware crates, which you can use in tools like > [cargo-deny](https://embarkstudios.github.io/cargo-deny): . -## Game Engines - -| Name | Alternative(s) | Evidence | -|---|---|---| -| [UPBGE 0.5](https://upbge.org) | UPBGE 0.36.1 seems to be slop-free | [0.5 release notes state the use of AI in plain language](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations) | -| [Godot Engine](https://godotengine.org/) | [Pandemonium Engine](https://pandemoniumengine.org/) | [Allows LLM contributions](https://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions) (also see [this comment](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | - ## Language and Localization | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -615,6 +610,28 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro > * [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. +## Gaming +### Game engines + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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) | +| [Godot Engine](https://godotengine.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://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | +| [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/) | +| [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), [4](https://github.com/4ian/GDevelop/pull/8509/commits/a8d0f1298aaf921f643f00fbe8d9175d89d363a3), [5](https://github.com/4ian/GDevelop/pull/8509/commits/e2a2fb04bc072b3ef2d66b380f64600248f8de91)) | [Pandemonium Engine] | + +### Game managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) + +### Emulators + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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) | + ## Git Servers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -664,11 +681,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Nextcloud](https://nextcloud.com/) | [seafile](https://github.com/haiwen/seafile) for file storage and syncing only (not a complete worksuite replacement) | [✨ Nextcloud Assistant](https://nextcloud.com/assistant/) (can be disabled)
Nextcloud Desktop has [AGENTS.md](https://github.com/nextcloud/desktop/blob/master/AGENTS.md) | | [SeaweedFS](https://seaweedfs.com/) | [Garage] for S3 api + [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | Using [Gemini and coderabbitai in PRs](https://github.com/seaweedfs/seaweedfs/pull/7996). | -### Game Managers -| Name | Alternative(s) | Evidence | -|---|---|---| -| [Lutris](https://github.com/lutris/lutris) | [Bottles](https://github.com/bottlesdevs/Bottles) | Issue ["is lutris slop now"](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573) & Discussion ["is lutris slop now"](https://github.com/lutris/lutris/discussions/6530) | - ### Social Media This is for both social media websites and apps. @@ -983,6 +995,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [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/ [QEMU]: https://www.qemu.org [Rio Terminal]: https://github.com/raphamorim/rio [Servo]: https://servo.org/ From 12c1bb4160eb0ff7cb4cd60831da58d0e6ab5600 Mon Sep 17 00:00:00 2001 From: tranzystorekk Date: Thu, 16 Apr 2026 16:32:18 +0200 Subject: [PATCH 025/356] fix Wordpress typo (parenthesis in wrong place) (#397) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/397 Reviewed-by: JesseBot Co-authored-by: tranzystorekk Co-committed-by: tranzystorekk --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f10575d..7dbafbd 100644 --- a/README.md +++ b/README.md @@ -647,7 +647,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | | [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
([![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) [1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | ### Static Site Generators From f11ec66c958f54df55d2ee8599322511662d29e1 Mon Sep 17 00:00:00 2001 From: jessebot Date: Thu, 16 Apr 2026 16:54:43 +0200 Subject: [PATCH 026/356] Add template to contact projects about their AI usage (#192) A starting attempt at writing up a template for others to use to contact their favorite projects to ask them to implement a No AI Policy. This is incredibly bare bones right now, but I am 10000% open to feedback and suggestions. Please feel free to open a PR! The idea is that each section can be added or removed depending on what angle you think the maintainers would be most amenable to. - closes #116 This PR also cleans up some of the code of conduct and contributing doc. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/192 Co-authored by: @cloudymax Co-authored by: @Pixelo789 Co-authored-by: jessebot Co-committed-by: jessebot --- CODE_OF_CONDUCT.md | 10 ++++-- CONTRIBUTING.md | 7 +++- NO_AI_REQUEST_TEMPLATE.md | 69 +++++++++++++++++++++++++++++++++++++++ README.md | 8 +++-- 4 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 NO_AI_REQUEST_TEMPLATE.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 0431b21..4d977dd 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -65,8 +65,14 @@ We're going to do a 2 strike rule here with an optional warning. You are out on - Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on 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. -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 reddit type atmosphere here and won't tolerate it. Please consider your words before you hit send. +This repo is specifically meant for identifying LLM usage in other projects, and coordinating on alternatives. You can also come here to ask others to please help you in chatting with another repo maintainer to sway them away from AI usage. But you need to do all of it *with kindness*. We have no interest in a rage feedback atmosphere here and won't tolerate it. Please consider your words before you hit send. ## Accessibility -Please provide alt text description for any images you post. This is so that users that are blind or low vision know what is being posted as their screenreaders can read it aloud. This is also useful for people who speak other languages so that they can translate any text from the screenshot and understand context. If you don't provide alt text after being asked to, we will count that as a warning, and if you still fail to do so, it will be a strike. We make exceptions if you yourself have a disability preventing you from doing so. Please just kindly ask that someone else provide alt text for you, and when they do, please update your image's alt text. (You do not need to disclose your disability. It is fine to just ask others to provide alt text for you for ANY reason.) \ No newline at end of file +### Alt Text + +Please provide alt text descriptions for any images you post. This is so that users that are blind or low vision know what is being posted as their screenreaders can read it aloud. This is also useful for people who speak other languages so that they can translate any text from the screenshot and understand context. If you don't provide alt text after being asked to, we will count that as a warning, and if you still fail to do so, it will be a strike. We make exceptions if you yourself have a disability preventing you from doing so. Please kindly ask that someone else provide alt text for you, and when they do, please update your image's alt text. (*You do not need to disclose your disability.* It is fine to ask others to provide alt text for you for ANY reason.) + +### Code blocks + +Please use syntax highlighting when posting code blocks. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 37391bd..33ad2f0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,6 @@ +> [!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*! + # Contributing Pull Requests 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)). @@ -50,7 +53,9 @@ Any project here may be removed as long as the following become true, *even if p 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. -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, but keeps a permissive AI policy. Updates are always welcome. +When submitting a project for removal, please include a link to the evidence that they have created a "No genAI" policy. You can also submit PRs to update if a project stops using something like [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/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 diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..69a1930 --- /dev/null +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -0,0 +1,69 @@ +# Reaching Out to a Project + +Below you'll find a basic template you can use to reach out to a project in order to politely ask them to consider creating a No AI Policy. + +Before you proceed, read our [Tips for Success](#tips-for-success). + +Would you like to improve this template or add additional sections? Please feel free to submit a PR to do so and we'll discuss it :) + +## Template + +```markdown +Hello, + +I'd like to talk about your AI policy. Below are some reasons why using AI can be harmful: + +## Environmental Impact + +To start learning a bit more, you can check out the Wikipedia page on the [environmental impact of artificial intelligence](https://en.wikipedia.org/wiki/Environmental_impact_of_artificial_intelligence#Individual_level). Here's some more specific sources: + +- [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/) + +## Effect on Hardware Prices + +The demand for construction and outfitting of new data-centers to host AI/LLM compute capacity has overwhelmed global supply and production of multiple hardware components. Memory, Storage, and GPUs have seen massive increases in price for both consumer and enterprise models, upwards of 400% in some cases. + +The lack of supply has led large system-builders to purchase production capacity from OEMs well in advance of delivery, leading some manufacturers to end consumer-oriented product lines in favor of enterprise capacity. + +The downstream effects for consumers is that nearly all electronic devices which contain memory and storage will see their prices rise and availability decline. Those who already own existing electronics and computer hardware components may also find themselves unable to have their devices repaired or replaced under warranty. + +- [The RAM shortage is coming for everything you care about](https://www.theverge.com/tech/880812/ramageddon-ram-shortage-memory-crisis-price-2026-phones-laptops) + +- [Western Digital is already sold out of hard drives for all of 2026 — chief says some long-term agreements for 2027 and 2028 already in place](https://www.tomshardware.com/pc-components/hdds/western-digital-is-already-sold-out-of-hard-drives-for-all-of-2026-chief-says-some-long-term-agreements-for-2027-and-2028-already-in-place) + +- [The 2026 storage crisis: Why AI data centers are hoarding every hard drive on the market](https://www.howtogeek.com/dont-count-on-hdds-to-save-you-from-rising-storage-costs/) + +This has resulted in pricing historically marginalized individuals, who are more likely to have less financial resources, out of learning about computers at home and shrinking the diversity of the computing and programming industry. + +## Ties to the War Industry + +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). + +## 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: +``` + +## Tips for Success + +- Personalize the template a bit before sending it: + - Add how long you've been using the software. + - Add what the project means to you. +- Add the name of the project in the opening +- Add your name at the bottom. +- Be nice! *We cannot stress this enough*: Be Kind! + - Do not shame or threaten the project you are reaching out to, especially not with this list. +- You may not want to include every section, depending on the culture surrounding the project you are contacting. Use your best judgement. diff --git a/README.md b/README.md index 7dbafbd..6f51848 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,9 @@ The intention of this list is to raise awareness of AI/LLM usage in popular open For more information on why we think this list matters, please see [Why not LLMs?](#why-not-llms). -To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). +Want to *add*, *update*, or *remove* a project listed below? Check out our [**Contributing Doc**](./CONTRIBUTING.md). -> [!Note] -> This is a fork of a repo by the same name maintained by the @gen-ai-transparency org on Codeberg. If they make their repo available again, we will contribute back. +See a project on here that you love, and wish wasn't on here? Check out our [**No AI Request Template**](./NO_AI_REQUEST_TEMPLATE.md) * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) @@ -228,6 +227,9 @@ This is a section for repos that are similar to this one either because they are - [forge.starlightnet.work/Team/No-AI/](https://forge.starlightnet.work/Team/No-AI/) which is the repo for this [no-AI list](https://noai.starlightnet.work/list.html) that lists projects that have explicitly pledged not to use AI or have an explicit policy to not use AI. - [slop-free-index](https://codeberg.org/brib/slopfree-software-index) is a list of software that has taken steps to reject AI in its development processes. +> [!Note] +> This is a fork of a repo by the same name maintained by the @gen-ai-transparency org on Codeberg. If they make their repo available again, we will contribute back. + # Tainted Software > [!Warning] From be2e9b0bbdff897dd5a5f1b59b50a13d3e8c398e Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Thu, 16 Apr 2026 16:56:09 +0200 Subject: [PATCH 027/356] Add shell alternatives and reorganize section (#395) Bosh is included, because it descends from the original bourne shell. The others should be uncontroversial. I have seen the plan9port pull request, but there's 9base, as well as several forks and reimplementations of rc itself. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/395 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6f51848..016944f 100644 --- a/README.md +++ b/README.md @@ -289,13 +289,28 @@ This is a section for repos that are similar to this one either because they are ## Command-Line Shells -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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)) | [`dash`] | -| [`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)) | [`elvish` shell][Elvish] | -| [PowerShell](https://github.com/PowerShell/PowerShell) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`yash`](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | [`dash`] | +| 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)) | +| [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) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | +| [`xonsh`](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | +| [`yash`](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | + +> [!NOTE] +> #### Alternative Bourne Shell Implementations +> * [`dash`](http://gondor.apana.org.au/~herbert/dash/) +> * [`bash`](https://www.gnu.org/software/bash/) +> * [`oksh`](https://github.com/ibara/oksh) +> * [Busybox](https://busybox.net/) `ash` +> * [Schilytools](https://codeberg.org/schilytools/schilytools) `bosh` + +> [!NOTE] +> #### Alternative Shell Languages +> * [`elvish`][Elvish] +> * [`fish`](https://fishshell.com/) +> * [`rc`](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) +> * [`execline`](https://www.skarnet.org/software/execline/) ### Addons and Prompts From 26da1df61691387db74bc226fd79f562a8bc06cd Mon Sep 17 00:00:00 2001 From: tjk Date: Thu, 16 Apr 2026 18:37:26 +0200 Subject: [PATCH 028/356] Add tar as alternative for rsync (#229) Drew DeVault wrote a [blog post](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) about using tar in place of rsync, and he linked to this repo, so I thought it'd be fun and useful to link to his explanation in our alternatives column. Co-authored-by: Tom Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/229 Reviewed-by: JesseBot Co-authored-by: tjk Co-committed-by: tjk --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 016944f..ff41630 100644 --- a/README.md +++ b/README.md @@ -405,7 +405,7 @@ This is a section for repos that are similar to this one either because they are | [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | | [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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | -| [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client | +| [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client, or [tar](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) | | [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/) | > [!NOTE] From f5024f874d18f3a22720ccacc0e5c7be31b97878 Mon Sep 17 00:00:00 2001 From: lejun Date: Thu, 16 Apr 2026 13:44:21 +0200 Subject: [PATCH 029/356] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff41630..5162a00 100644 --- a/README.md +++ b/README.md @@ -689,6 +689,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), a Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), a Calibre hard-fork from before AI features | | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | +| [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || ### File Storage From 5aabde063d7592c4dd4e09bbb4e4909c2f9c16c4 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Wed, 15 Apr 2026 23:37:46 +0000 Subject: [PATCH 030/356] Add explainshell dot com --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5162a00..618642b 100644 --- a/README.md +++ b/README.md @@ -690,6 +690,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), a Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), a Calibre hard-fork from before AI features | | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || +| [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) | ### File Storage From 9f5508f205564a777276d550aace25b3b401e6a6 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Thu, 16 Apr 2026 22:23:31 +0200 Subject: [PATCH 031/356] Add new research as stolen training data evidence (#400) I'm open to relocating this to another section in case Stolen Training Data is not the right place for it. The reasoning behind choosing this section is that all the others do not, AFAICS, fit this research: 'Legal Cases and Law Problems' is not exactly the case here because while there's a copyright violation argument that can be made AFAIK this research was not used in any court case at this point in time, 'License Problems' is the same thing, up until now this research hasn't been used anywhere related to licensing. It does provide evidence though that LLMs do, in fact, steal and store copyrighted data. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/400 Reviewed-by: JesseBot Co-authored-by: Fabio Henrique Co-committed-by: Fabio Henrique --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 618642b..b5a7b89 100644 --- a/README.md +++ b/README.md @@ -852,6 +852,7 @@ AI companies use data from across the web for training their models, most often * 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. 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. From 15889e7a9e55a24bcf16312715fe47f55878db98 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 17 Apr 2026 08:12:04 +0200 Subject: [PATCH 032/356] Add uv, ruff, and ty (#403) Part of #375 I put the "astral got acquired by 'Open' 'AI'" as "AI Sponsored", because it's harder to be more sponsored than "got acquired". Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/403 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index b5a7b89..573362a 100644 --- a/README.md +++ b/README.md @@ -558,7 +558,10 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | +| [ruff](https://docs.astral.sh/ruff/) | [![Request for Help](./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/ruff/blob/bd3150f4e2cdf9278cf329ef12c875a4d30bf601/AGENTS.md), [3](https://github.com/astral-sh/ruff/commit/3ffc8b93d61ae91e2b6daf61c740e7df52448a50))
[![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) | | [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [pytermgui](https://github.com/bczsalba/pytermgui) | +| [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) | ### Rust From 5b5d826ead373afb527c788de27b30c3dce19475 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 08:32:14 +0200 Subject: [PATCH 033/356] move accessibility and programming languages sections to be a bit more in line --- README.md | 95 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 573362a..b9d37a0 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Request for Help](#request-for-help) * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) + * [Accessibility Tools](#accessibility-tools) * [Audio](#audio) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) @@ -47,13 +48,12 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Terminal Multiplexers](#terminal-multiplexers) * [Version Control](#version-control) * [Document Viewers](#document-viewers) - * [Programming Languages](#programming-languages) * [Editors](#editors) * [Note Software Alternatives](#note-software-alternatives) * [Alternative TUI Code Editors](#alternative-tui-code-editors) - * [Accessibility Tools](#accessibility-tools) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Service Monitoring](#service-monitoring) + * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) * [C](#c) * [C++](#c-1) @@ -235,6 +235,13 @@ This is a section for repos that are similar to this one either because they are > [!Warning] > We've recently added a "Last Untainted Version or Commit ID" section to our below tables. This is meant for tech savvy individuals to be able to fork the project and continue maintaining it without the use of AI. Choosing to install an older version of software could expose you to to security risks over time. Only do this if you are able to accept such risks. +## Accessibility Tools + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [![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/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/) (note: heavily outdated and very bad from a modern standpoint), [flite](http://cmuflite.org/) | +| [Nametag](https://github.com/mattogodoy/nametag) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | + ## Audio | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) @@ -443,6 +450,44 @@ 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) | ![Vibecoded](./badges/vibecoded.svg) ([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) | +|---|:---:|---|---| +| [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 | +| [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 | +| [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 | +| [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 | +| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | +| [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 (emacs, etc.) | + +> [!Note] +> ### Note Software Alternatives +> - [Zettlr](https://www.zettlr.com/) (Markdown-based) + +> [!NOTE] +> ### Alternative TUI Code Editors +> * [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) + +## Microcontroller Tools and Libraries + +| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | +|---|:---:|---|---| +| [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) | +| [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) | + +## Service Monitoring + +| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | +|---|:---:|---|---| +| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Programming Languages | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -470,50 +515,6 @@ This is a section for repos that are similar to this one either because they are > * [Java] - memory safe, object-oriented, VM-based programming language: [AI-generated code not accepted](https://openjdk.org/legal/ai) > * [Zig] - general-purpose, compiled, system programming language: [Strict No LLM / No AI Policy](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy) -## Editors - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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 | -| [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 | -| [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 | -| [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 | -| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | -| [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 (emacs, etc.) | - -> [!Note] -> ### Note Software Alternatives -> - [Zettlr](https://www.zettlr.com/) (Markdown-based) - -> [!NOTE] -> ### Alternative TUI Code Editors -> * [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) - -## Accessibility Tools - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [![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/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/) (note: heavily outdated and very bad from a modern standpoint), [flite](http://cmuflite.org/) | -| [Nametag](https://github.com/mattogodoy/nametag) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | - -## Microcontroller Tools and Libraries - -| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | -|---|:---:|---|---| -| [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) | -| [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) | - -## Service Monitoring - -| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | -|---|:---:|---|---| -| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Programming Language-Specific Tooling @@ -635,7 +636,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [UPBGE 0.5](https://upbge.org/) | [`0.36.1`](https://github.com/UPBGE/upbge/releases/tag/v0.36.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [UPBGE 0.5](https://upbge.org/) | [`0.36.1`](https://github.com/UPBGE/upbge/releases/tag/v0.36.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/UPBGE/upbge/wiki/Release-notes-version-0.50#b-implementation-technique-and-limitations)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | | [Godot Engine](https://godotengine.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://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | | [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/) | | [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), [4](https://github.com/4ian/GDevelop/pull/8509/commits/a8d0f1298aaf921f643f00fbe8d9175d89d363a3), [5](https://github.com/4ian/GDevelop/pull/8509/commits/e2a2fb04bc072b3ef2d66b380f64600248f8de91)) | [Pandemonium Engine] | From 7f278dc7fb17bc809cafa72e9cbb49655a3e2910 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 09:09:12 +0200 Subject: [PATCH 034/356] alphabetize sections a bit more - move terminal emulators down a bit - move blogging software up a bit change 'healthy and safety' to 'health and safety' (how did I miss that for so long haha) --- README.md | 110 +++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index b9d37a0..ee02663 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,9 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Tainted Software](#tainted-software) * [Accessibility Tools](#accessibility-tools) * [Audio](#audio) + * [Blogging Software](#blogging-software) + * [Content Management Systems](#content-management-systems) + * [Static Site Generators](#static-site-generators) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) * [Mobile Browsers](#mobile-browsers) @@ -42,7 +45,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Image Manipulation](#image-manipulation) * [Photography](#photography) * [Video](#video) - * [Terminal Emulators](#terminal-emulators) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) * [Terminal Multiplexers](#terminal-multiplexers) @@ -70,9 +72,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Package Managers](#package-managers) * [Password Management](#password-management) * [Git Servers](#git-servers) - * [Blogging Software](#blogging-software) - * [Content Management Systems](#content-management-systems) - * [Static Site Generators](#static-site-generators) * [Services and Utilities](#services-and-utilities) * [File Storage](#file-storage) * [Social Media](#social-media) @@ -83,6 +82,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [System Services and Daemons](#system-services-and-daemons) * [Bootloaders](#bootloaders) * [Operating Systems](#operating-systems) + * [Terminal Emulators](#terminal-emulators) * [Virtualization](#virtualization) * [Alternatives](#virtualization-alternatives) * [VPN Software](#vpn-software) @@ -98,7 +98,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Poor Code Quality](#poor-code-quality) * [Deskilling](#deskilling) * [Infosec risks](#infosec-risks) - * [Healthy and Safety](#healthy-and-safety) + * [Health and Safety](#health-and-safety) * [Ties to the War Industrial Complex](#ties-to-the-war-industrial-complex) * [Effects on Policing](#effects-on-policing) * [Maintainer Fatigue](#maintainer-fatigue) @@ -253,6 +253,33 @@ This is a section for repos that are similar to this one either because they are 1: Status as a *replacement* may be debatable. +## Blogging Software + +### Content Management Systems + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | +| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | +| [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | + +### Static Site Generators + +| 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)) | +| [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)) | + +> [!Note] +> #### Static site generators alternatives +> * [Bridgetown](https://www.bridgetownrb.com) +> * [BSSG](https://bssg.dragas.net/) +> * [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) +> * [Zine](https://zine-ssg.io) + ## Browsers ### Desktop Browsers @@ -378,28 +405,6 @@ This is a section for repos that are similar to this one either because they are | [PipePipe](https://pipepipe.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/InfinityLoop1308/PipePipeClient/blob/dev/CLAUDE.md)) | [LibreTube] | | [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] | -## Terminal Emulators - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| -| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | -| [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | -| [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | - -> [!NOTE] -> #### Alternative terminal emulators -> * [Alacritty] or the [Alacritty fork with sixel] -> * [Contour Terminal] -> * [COSMIC terminal] -> * [Deepin Terminal] -> * [foot] -> * [GNOME Terminal] -> * [Konsole] -> * [MATE Terminal] -> * [Rio Terminal] -> * [xfce4-terminal] -> * [XTerm] - ## Developer Tools | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -660,33 +665,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [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)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | | [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/)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | -## Blogging Software - -### Content Management Systems - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | -| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | -| [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | - -### Static Site Generators - -| 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)) | -| [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)) | - -> [!Note] -> #### Static site generators alternatives -> * [Bridgetown](https://www.bridgetownrb.com) -> * [BSSG](https://bssg.dragas.net/) -> * [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) -> * [Zine](https://zine-ssg.io) - ## Services and Utilities | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -793,6 +771,28 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +## Terminal Emulators + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | +| [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | +| [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | + +> [!NOTE] +> #### Alternative terminal emulators +> * [Alacritty] or the [Alacritty fork with sixel] +> * [Contour Terminal] +> * [COSMIC terminal] +> * [Deepin Terminal] +> * [foot] +> * [GNOME Terminal] +> * [Konsole] +> * [MATE Terminal] +> * [Rio Terminal] +> * [xfce4-terminal] +> * [XTerm] + ## Virtualization | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -907,7 +907,7 @@ This also often results in massive security holes. * [In a study evaluating over 500k code samples, LLM-generated code was found to contain more high-risk security vulnerabilities than human-generated code](https://arxiv.org/abs/2508.21634) * [LLMs make up package names, making them vulnerable to incorporating malicious code in "slopsquatting" attacks](https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/) ([Arxiv study](https://arxiv.org/abs/2406.10279)) -## Healthy and Safety +## Health and Safety There's been a number of high profile incidents that have resulted in endangerment or death. Here's some examples: From 8667137acc8edc31065943a171b1798727619143 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 09:23:48 +0200 Subject: [PATCH 035/356] Tidy bootloaders based on #325 --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ee02663..b52bc18 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) + * [Bootloaders](#bootloaders) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) * [Mobile Browsers](#mobile-browsers) @@ -80,7 +81,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Unified Push Distributors](#unified-push-distributors) * [Budgeting](#budgeting) * [System Services and Daemons](#system-services-and-daemons) - * [Bootloaders](#bootloaders) * [Operating Systems](#operating-systems) * [Terminal Emulators](#terminal-emulators) * [Virtualization](#virtualization) @@ -280,6 +280,12 @@ This is a section for repos that are similar to this one either because they are > * [Haunt](https://dthompson.us/projects/haunt.html) > * [Zine](https://zine-ssg.io) +## Bootloaders + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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/) | + ## Browsers ### Desktop Browsers @@ -742,11 +748,6 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | [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)| | [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)| -## Bootloaders -| Name | Alternative(s) | Evidence | -|---|---|---| -| [Limine](https://github.com/Limine-Bootloader/Limine) | [Hyper](https://github.com/UltraOS/Hyper), [GRUB](https://www.gnu.org/software/grub/) | This entry was added by the creator and main maintainer of Limine. Limine does not ban code authored by LLMs or anyone/anything else, as long as it's reviewed by a human. The author has used LLMs (Claude Code) numerous times for many commits. | - ## Operating Systems | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 59cc07f2f49d640022140aca1b6c505a0392f26f Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 09:40:29 +0200 Subject: [PATCH 036/356] tidy search engines based on new style guide, add alternatives, and move service monitoring (#408) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tidy search engines based on new style guide and work in #325 - This also moves both search engines and service monitoring down a bit to be closer to my end goal of alphabetizing everything 🙏 - add marginalia as search engine alternative Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/408 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b52bc18..326e173 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Cheat sheets and documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) - * [Search Engines](#search-engines) * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Computer Graphics](#computer-graphics) @@ -55,7 +54,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Note Software Alternatives](#note-software-alternatives) * [Alternative TUI Code Editors](#alternative-tui-code-editors) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) - * [Service Monitoring](#service-monitoring) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) * [C](#c) @@ -73,6 +71,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Package Managers](#package-managers) * [Password Management](#password-management) * [Git Servers](#git-servers) + * [Search Engines](#search-engines) + * [Service Monitoring](#service-monitoring) * [Services and Utilities](#services-and-utilities) * [File Storage](#file-storage) * [Social Media](#social-media) @@ -361,12 +361,6 @@ This is a section for repos that are similar to this one either because they are | [`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) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -## Search Engines - -| Name | Alternatives | Evidence | Notes | -|---------|----------------------------------------------------------|--------------------------------------------------------------------------------------------|-------| -| Searxng | [LibreY](https://github.com/Ahwxorg/librey/) | [Copilot used](https://github.com/searxng/searxng/issues?q=copilot) in reviews | Note: maintainers experimenting with and open to adding AI results, see [1](https://github.com/searxng/searxng/issues/2273), [2](https://github.com/searxng/searxng/issues/2008), [3](https://github.com/searxng/searxng/issues/2163) - ## Mapping | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -492,13 +486,6 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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) | -## Service Monitoring - -| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | -|---|:---:|---|---| -| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - ## Programming Languages | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -671,6 +658,19 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [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)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | | [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/)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | +## Search Engines + +| 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) | + +## Service Monitoring + +| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | +|---|:---:|---|---| +| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Services and Utilities | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From a3bc64b583cad12c1f726a958cbd81cb2ec52f06 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 10:01:28 +0200 Subject: [PATCH 037/356] tidy file storage and add minio note --- README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 326e173..e811cf6 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Editors](#editors) * [Note Software Alternatives](#note-software-alternatives) * [Alternative TUI Code Editors](#alternative-tui-code-editors) + * [File Storage](#file-storage) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) @@ -74,7 +75,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Services and Utilities](#services-and-utilities) - * [File Storage](#file-storage) * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) @@ -479,6 +479,17 @@ This is a section for repos that are similar to this one either because they are > * [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) +### File Storage + +| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | +|---|:---:|---|---| +| [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)) | [Garage] | +| [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/)) | [seafile](https://github.com/haiwen/seafile) for file storage and syncing only (not a complete worksuite replacement) | +| [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)) | [Garage] for S3 api + [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | + +> [!NOTE] +> MinIO no longer maintains open source software so the entry is just for their old FOSS presence. + ## Microcontroller Tools and Libraries | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | @@ -680,14 +691,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || | [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) | -### File Storage - -| Name | Alternative(s) | Evidence | -|---|---|---| -| [MinIO](https://www.min.io/) | [Garage] | Advertises AI as their primary focus on their website. | -| [Nextcloud](https://nextcloud.com/) | [seafile](https://github.com/haiwen/seafile) for file storage and syncing only (not a complete worksuite replacement) | [✨ Nextcloud Assistant](https://nextcloud.com/assistant/) (can be disabled)
Nextcloud Desktop has [AGENTS.md](https://github.com/nextcloud/desktop/blob/master/AGENTS.md) | -| [SeaweedFS](https://seaweedfs.com/) | [Garage] for S3 api + [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | Using [Gemini and coderabbitai in PRs](https://github.com/seaweedfs/seaweedfs/pull/7996). | - ### Social Media This is for both social media websites and apps. From 29438da7f5af85ef06f091d848c465e6e71986e3 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 10:09:45 +0200 Subject: [PATCH 038/356] create new terminal section for both emulators and multiplexers (#410) This just makes it easier to find both, and starts the process of getting rid of the "developer tools" section which is a bit too broad. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/410 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index e811cf6..a93de63 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Video](#video) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) - * [Terminal Multiplexers](#terminal-multiplexers) * [Version Control](#version-control) * [Document Viewers](#document-viewers) * [Editors](#editors) @@ -82,7 +81,9 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Budgeting](#budgeting) * [System Services and Daemons](#system-services-and-daemons) * [Operating Systems](#operating-systems) - * [Terminal Emulators](#terminal-emulators) + * [Terminal](#terminal) + * [Terminal Emulators](#terminal-emulators) + * [Terminal Multiplexers](#terminal-multiplexers) * [Virtualization](#virtualization) * [Alternatives](#virtualization-alternatives) * [VPN Software](#vpn-software) @@ -436,12 +437,6 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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) | -### Terminal Multiplexers -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | -| [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | [dvtm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | - ### Version Control | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| @@ -775,7 +770,9 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) -## Terminal Emulators +## Terminal + +### Terminal Emulators | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| @@ -797,6 +794,12 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors > * [xfce4-terminal] > * [XTerm] +### Terminal Multiplexers +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | +| [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | [dvtm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | + ## Virtualization | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 90204cc9d6500f03cb65e8f52a956e3ca17923a6 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 10:21:41 +0200 Subject: [PATCH 039/356] even more alphabetizing, almost done (#411) closer and closer to a properly alphabetized list for easily finding stuff Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/411 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 235 +++++++++++++++++++++++++++--------------------------- 1 file changed, 118 insertions(+), 117 deletions(-) diff --git a/README.md b/README.md index a93de63..c29600b 100644 --- a/README.md +++ b/README.md @@ -39,8 +39,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Cheat sheets and documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) - * [Mapping](#mapping) - * [Alternatives](#mapping-alternatives) * [Computer Graphics](#computer-graphics) * [Image Manipulation](#image-manipulation) * [Photography](#photography) @@ -53,7 +51,18 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Note Software Alternatives](#note-software-alternatives) * [Alternative TUI Code Editors](#alternative-tui-code-editors) * [File Storage](#file-storage) + * [Gaming](#gaming) + * [Game engines](#game-engines) + * [Game managers](#game-managers) + * [Emulators](#emulators) + * [Language and Localization](#language-and-localization) + * [Operating Systems](#operating-systems) + * [Mapping](#mapping) + * [Alternatives](#mapping-alternatives) + * [Messaging](#messaging) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) + * [Package Managers](#package-managers) + * [Password Management](#password-management) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) * [C](#c) @@ -62,14 +71,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [JavaScript And TypeScript](#javascript-and-typescript) * [Python](#python) * [Rust](#rust) - * [Gaming](#gaming) - * [Game engines](#game-engines) - * [Game managers](#game-managers) - * [Emulators](#emulators) - * [Language and Localization](#language-and-localization) - * [Messaging](#messaging) - * [Package Managers](#package-managers) - * [Password Management](#password-management) * [Git Servers](#git-servers) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) @@ -80,7 +81,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Unified Push Distributors](#unified-push-distributors) * [Budgeting](#budgeting) * [System Services and Daemons](#system-services-and-daemons) - * [Operating Systems](#operating-systems) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) @@ -362,19 +362,6 @@ This is a section for repos that are similar to this one either because they are | [`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) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -## Mapping - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| -| [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | -| [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | -| [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | - -> [!Note] -> #### Mapping Alternatives -> * [Navit](https://github.com/navit-gps/navit) for car navigation -> * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. - ## Computer Graphics ### Image Manipulation @@ -485,6 +472,88 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. +## Gaming +### Game engines + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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) | +| [Godot Engine](https://godotengine.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://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | +| [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/) | +| [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), [4](https://github.com/4ian/GDevelop/pull/8509/commits/a8d0f1298aaf921f643f00fbe8d9175d89d363a3), [5](https://github.com/4ian/GDevelop/pull/8509/commits/e2a2fb04bc072b3ef2d66b380f64600248f8de91)) | [Pandemonium Engine] | + +### Game managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) + +### Emulators + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | + +## Language and Localization + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Weblate](https://weblate.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/WeblateOrg/weblate/blob/main/AGENTS.md), [2](https://github.com/WeblateOrg/weblate/commit/aad714d7a3eb728b1800a8874586a27a7253e177), [3](https://github.com/WeblateOrg/weblate/commit/23d1e3e41c394da62dcf69da2dbb3119bacbc75f)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +## Operating Systems + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | +| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | +| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [The original MS-DOS source code](https://github.com/microsoft/MS-DOS) is under the Expat/MIT license | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) - kernel for GNU Hurd | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | +| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | +| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | +| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | +| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | +| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | +| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +> [!NOTE] +> #### Alternative operating systems +> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. +> * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) +> * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) +> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. +> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) +> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) + +## Mapping + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | +| [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | +| [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | + +> [!Note] +> #### Mapping Alternatives +> * [Navit](https://github.com/navit-gps/navit) for car navigation +> * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. + +## Messaging + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Converse.js](https://conversejs.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | +| [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| +| [Psi](https://psi-im.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | +| [Telegram](https://telegram.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| +| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | +| [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)) | +| [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | +| [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) + +> [!Note] +> ### Messaging alternatives +> - [matrix] + ## Microcontroller Tools and Libraries | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | @@ -492,6 +561,31 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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) | +## Package Managers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [brew](https://github.com/Homebrew/brew) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Homebrew/brew/blob/main/AGENTS.md)) | Build packages from source | +| [macports](https://github.com/macports/macports-ports) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/macports/macports-ports/pull/28628)) | Build packages from source | +| [PiKISS](https://github.com/jmcerrejon/PiKISS) | [![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/jmcerrejon/PiKISS/pull/240)) | Use system repositories provided by your distro or manual installation of software | + +## Password Management + +| 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) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://app.aliasvault.net/img/avatar.webp)) | +| [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | +| [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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)) | + +> [!Note] +> ### Password manager alternatives +> * [vaultwarden] (server) / [rbw](https://github.com/doy/rbw) (client) +> * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. +> * [KeePassXC 2.7.9](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) was released before the statement, and was awarded 3 year security Visa by the French National Cybersecurity Agency ([ANSSI](https://cyber.gouv.fr/)) for a First-level Security Certification (CSPN), valid in France and Germany, under report No. ANSSI-CSPN-2025/16 ([archive.org](https://web.archive.org/web/20251128131437/https://cyber.gouv.fr/produits-certifies/keepassxc-version-279), [certificate](https://messervices.cyber.gouv.fr/visas/ANSSI-CSPN-2025-16-certificat.pdf)). +> * [KeePassChi](https://codeberg.org/keepasschi/keepasschi): A fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051). +> * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. +> * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. + ## Programming Languages | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -587,75 +681,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro > Also, there is an advisory database of Rust slopware crates, which you can use in tools like > [cargo-deny](https://embarkstudios.github.io/cargo-deny): . -## Language and Localization - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Weblate](https://weblate.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/WeblateOrg/weblate/blob/main/AGENTS.md), [2](https://github.com/WeblateOrg/weblate/commit/aad714d7a3eb728b1800a8874586a27a7253e177), [3](https://github.com/WeblateOrg/weblate/commit/23d1e3e41c394da62dcf69da2dbb3119bacbc75f)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - -## Messaging - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| -| [Converse.js](https://conversejs.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | -| [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| -| [Psi](https://psi-im.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | -| [Telegram](https://telegram.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| -| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | -| [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)) | -| [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | -| [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) - -> [!Note] -> ### Messaging alternatives -> - [matrix] - -## Package Managers - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [brew](https://github.com/Homebrew/brew) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Homebrew/brew/blob/main/AGENTS.md)) | Build packages from source | -| [macports](https://github.com/macports/macports-ports) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/macports/macports-ports/pull/28628)) | Build packages from source | -| [PiKISS](https://github.com/jmcerrejon/PiKISS) | [![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/jmcerrejon/PiKISS/pull/240)) | Use system repositories provided by your distro or manual installation of software | - -## Password Management - -| 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) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://app.aliasvault.net/img/avatar.webp)) | -| [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | -| [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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)) | - -> [!Note] -> ### Password manager alternatives -> * [vaultwarden] (server) / [rbw](https://github.com/doy/rbw) (client) -> * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. -> * [KeePassXC 2.7.9](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) was released before the statement, and was awarded 3 year security Visa by the French National Cybersecurity Agency ([ANSSI](https://cyber.gouv.fr/)) for a First-level Security Certification (CSPN), valid in France and Germany, under report No. ANSSI-CSPN-2025/16 ([archive.org](https://web.archive.org/web/20251128131437/https://cyber.gouv.fr/produits-certifies/keepassxc-version-279), [certificate](https://messervices.cyber.gouv.fr/visas/ANSSI-CSPN-2025-16-certificat.pdf)). -> * [KeePassChi](https://codeberg.org/keepasschi/keepasschi): A fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051). -> * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. -> * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. - -## Gaming -### Game engines - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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) | -| [Godot Engine](https://godotengine.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://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | -| [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/) | -| [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), [4](https://github.com/4ian/GDevelop/pull/8509/commits/a8d0f1298aaf921f643f00fbe8d9175d89d363a3), [5](https://github.com/4ian/GDevelop/pull/8509/commits/e2a2fb04bc072b3ef2d66b380f64600248f8de91)) | [Pandemonium Engine] | - -### Game managers - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) - -### Emulators - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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) | ## Git Servers @@ -746,30 +771,6 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | [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)| | [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)| -## Operating Systems - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | -| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | -| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [The original MS-DOS source code](https://github.com/microsoft/MS-DOS) is under the Expat/MIT license | -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) - kernel for GNU Hurd | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | -| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | -| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | -| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | -| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | -| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | -| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - -> [!NOTE] -> #### Alternative operating systems -> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. -> * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) -> * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) -> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. -> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) -> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) - ## Terminal ### Terminal Emulators From c29bfbed127ac036d29628faf5cffa9cdce5fc7a Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 10:30:23 +0200 Subject: [PATCH 040/356] refactor social media and version control sections --- README.md | 111 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 57 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index c29600b..7b4da01 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [AI Code Reviews](#ai-code-reviews) * [Gen AI 'Art'](#gen-ai-art) * [AI Sponsored](#ai-sponsored) - * [AI Databroker Usage](#ai-data-broker-usage) + * [AI Databroker Usage](#ai-databroker-usage) * [AI In Issue Tracker](#ai-in-issue-tracker) * [Request for Help](#request-for-help) * [Sibling Repos](#sibling-repos) @@ -45,7 +45,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Video](#video) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) - * [Version Control](#version-control) * [Document Viewers](#document-viewers) * [Editors](#editors) * [Note Software Alternatives](#note-software-alternatives) @@ -71,23 +70,23 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [JavaScript And TypeScript](#javascript-and-typescript) * [Python](#python) * [Rust](#rust) - * [Git Servers](#git-servers) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Services and Utilities](#services-and-utilities) - * [Social Media](#social-media) - * [Servers](#servers) - * [Clients](#clients) * [Unified Push Distributors](#unified-push-distributors) * [Budgeting](#budgeting) + * [Social Media](#social-media) + * [Servers](#servers) + * [Clients](#clients) * [System Services and Daemons](#system-services-and-daemons) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) + * [Version Control](#version-control) + * [Version Control Servers](#version-control-servers) + * [Version Control Clients and Tooling](#version-control-clients-and-tooling) * [Virtualization](#virtualization) - * [Alternatives](#virtualization-alternatives) * [VPN Software](#vpn-software) - * [VPN Software Alternatives](#vpn-software-alternatives) * [Window Managers](#window-managers) * [Why not LLMs?](#why-not-llms) * [Legal Ramifications](#legal-ramifications) @@ -424,13 +423,6 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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) | -### Version Control -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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)) | [Game of Trees] | -| [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)) | [Game of Trees] | -| [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), [4](https://github.com/jj-vcs/jj/pull/8571)) | [Game of Trees] | - ## Document Viewers | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -461,7 +453,7 @@ This is a section for repos that are similar to this one either because they are > * [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) -### File Storage +## File Storage | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| @@ -473,6 +465,7 @@ This is a section for repos that are similar to this one either because they are > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. ## Gaming + ### Game engines | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -533,7 +526,7 @@ This is a section for repos that are similar to this one either because they are | [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | > [!Note] -> #### Mapping Alternatives +> ### Mapping Alternatives > * [Navit](https://github.com/navit-gps/navit) for car navigation > * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. @@ -681,14 +674,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro > Also, there is an advisory database of Rust slopware crates, which you can use in tools like > [cargo-deny](https://embarkstudios.github.io/cargo-deny): . - -## Git Servers - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | -| [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/)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | - ## Search Engines | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -711,35 +696,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || | [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) | -### Social Media - -This is for both social media websites and apps. - -#### Servers - -| 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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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 | -| [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | -| [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - -> [!Note] -> ##### Generic social media server alternatives -> * [GoToSocial] -> * [Wafrn](https://codeberg.org/wafrn/wafrn/) supports both ActivityPub and ATproto -> * [snac2](https://codeberg.org/grunfink/snac2) -> * [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 for iOS](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) (an iOS fediverse app in beta), [wafrn-rn] | -| [Bluesky Social App](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078) | [![Request for Help](./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))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [2](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a), [3](https://github.com/bluesky-social/social-app/commit/1782a65174cbd22f01936f529f954e7a491b3fac)) | [wafrn-rn] | - ### Unified Push Distributors | Name | Alternative(s) | Evidence | |---|---|---| @@ -760,6 +716,35 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors | [hledger (v2.x)](https://hledger.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hledger.org/AI.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Social Media + +This is for both social media websites and apps. + +### Servers + +| 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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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 | +| [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | +| [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +> [!Note] +> #### Generic social media server alternatives +> * [GoToSocial] +> * [Wafrn](https://codeberg.org/wafrn/wafrn/) supports both ActivityPub and ATproto +> * [snac2](https://codeberg.org/grunfink/snac2) +> * [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 for iOS](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) (an iOS fediverse app in beta), [wafrn-rn] | +| [Bluesky Social App](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078) | [![Request for Help](./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))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [2](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a), [3](https://github.com/bluesky-social/social-app/commit/1782a65174cbd22f01936f529f954e7a491b3fac)) | [wafrn-rn] | + ## System Services and Daemons | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -796,11 +781,29 @@ list of unified push distributors at: https://unifiedpush.org/users/distributors > * [XTerm] ### Terminal Multiplexers + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | | [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | [dvtm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | +## Version Control + +### Version Control Servers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | +| [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/)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | + +### Version Control Clients and Tooling + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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)) | [Game of Trees] | +| [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)) | [Game of Trees] | +| [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), [4](https://github.com/jj-vcs/jj/pull/8571)) | [Game of Trees] | + ## Virtualization | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 810ad439e48b07a8cd04c47bd6b7d72bdd01b47b Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 11:00:01 +0200 Subject: [PATCH 041/356] tidy budgeting and unified push (#413) - change `Budgeting` to `Accounting and Budgeting` and move it to it's own section - thanks to @lejun in #260 for their budgeting updates - moves `Unfiied Push Distributors` to their own section Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/413 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 63 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 7b4da01..c64249b 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) * [Accessibility Tools](#accessibility-tools) + * [Accounting and Budgeting](#accounting-and-budgeting) + * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) * [Audio](#audio) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) @@ -73,8 +75,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Services and Utilities](#services-and-utilities) - * [Unified Push Distributors](#unified-push-distributors) - * [Budgeting](#budgeting) * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) @@ -82,6 +82,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) + * [Unified Push Distributors](#unified-push-distributors) + * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) * [Version Control Servers](#version-control-servers) * [Version Control Clients and Tooling](#version-control-clients-and-tooling) @@ -242,6 +244,25 @@ This is a section for repos that are similar to this one either because they are | [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [![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/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/) (note: heavily outdated and very bad from a modern standpoint), [flite](http://cmuflite.org/) | | [Nametag](https://github.com/mattogodoy/nametag) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | +## Accounting and Budgeting + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Actual](https://actualbudget.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://opencollective.com/actual/expenses/277324), [2](https://github.com/actualbudget/actual/blob/master/AGENTS.md)) | +| [beancount](https://github.com/beancount/beancount) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://groups.google.com/g/beancount/c/_7udAMlfLAg/m/o6PazGuoAAAJ), [2](https://groups.google.com/g/beancount/c/cz8Xwnb7BLE/m/LSA3rTfMAgAJ)) | +| [Firefly III](https://firefly-iii.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/firefly-iii/firefly-iii/blob/main/agents.md)) | +| [hledger (v2.x)](https://hledger.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hledger.org/AI.html)) | +| [KMyMoney](https://kmymoney.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://invent.kde.org/office/kmymoney/-/issues/49#note_1331389)) | +| [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | +| [ODoo](https://www.odoo.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.odoo.com/documentation/19.0/applications/productivity/ai.html)) | + +> [!Note] +> #### Accounting and Budgeting Alternatives +> These might be worth reaching out to ask for a No AI Policy, but currently don't have LLM usage: +> - [Eqonomize] +> - [Grisbi] +> - [HomeBank] + ## Audio | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) @@ -249,7 +270,7 @@ This is a section for repos that are similar to this one either because they are | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md) | [Ardour](https://ardour.org/)1 | | [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) | -| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) [(2)](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude)
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) [(2)](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude)
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | 1: Status as a *replacement* may be debatable. @@ -696,26 +717,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || | [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) | -### Unified Push Distributors -| Name | Alternative(s) | Evidence | -|---|---|---| -| [ntfy-sh](https://ntfy.sh/) | see below | [v2.18.0 is "14,997 added lines of code \[...\] written by Cursor and Claude"](https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0) ([archive](https://web.archive.org/web/20260308142510/https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0)) | - -list of unified push distributors at: https://unifiedpush.org/users/distributors: -- Sunup -- NextPush (see entry for NextCloud on taintedness) -- Conversations (XMPP client) or one of the forks - -### Budgeting - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Actual](https://actualbudget.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://opencollective.com/actual/expenses/277324), [2](https://github.com/actualbudget/actual/blob/master/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [beancount](https://github.com/beancount/beancount) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://groups.google.com/g/beancount/c/_7udAMlfLAg/m/o6PazGuoAAAJ), [2](https://groups.google.com/g/beancount/c/cz8Xwnb7BLE/m/LSA3rTfMAgAJ)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Firefly III](https://firefly-iii.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/firefly-iii/firefly-iii/blob/main/agents.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [hledger (v2.x)](https://hledger.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hledger.org/AI.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [ledger-cli](https://ledger-cli.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://www.newartisans.com/2026/02/my-claude-code-toolkit/), [2](https://github.com/ledger/ledger/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - ## Social Media This is for both social media websites and apps. @@ -787,6 +788,19 @@ This is for both social media websites and apps. | [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | | [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | [dvtm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | +## Unified Push Distributors + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [ntfy-sh](https://ntfy.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0), [2](https://web.archive.org/web/20260308142510/https://github.com/binwiederhier/ntfy/releases/tag/v2.18.0)) | + +> [!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 + ## Version Control ### Version Control Servers @@ -1010,6 +1024,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [`dash`]: http://gondor.apana.org.au/~herbert/dash/ [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal [Elvish]: https://elv.sh +[Eqonomize]: https://eqonomize.github.io/ [emacs]: https://www.gnu.org/software/emacs/ [Epiphany]: https://apps.gnome.org/Epiphany [EVi]: https://codeberg.org/NerdNextDoor/evi @@ -1017,9 +1032,11 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [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 [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial +[HomeBank]: https://www.gethomebank.org/ [`iocraft`]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java From 7d87a43aabdad0b5bb71fed6d9139540de3d653b Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 11:15:11 +0200 Subject: [PATCH 042/356] refactor audio software (#414) This takes somafm_tui and moves it into a new section under Audio called `Music Players` and then also creates special sub-sections for `Standalone Digitial Mixer` and `Digital Audio Workstations`, so we can be more specific for musical artists aiming to make ethical decisions. This also gets us one step closer to getting rid of the "Services and Utilities" section. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/414 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c64249b..9474e7a 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Accounting and Budgeting](#accounting-and-budgeting) * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) * [Audio](#audio) + * [Digital Audio Workstations](#digital-audio-workstations) + * [Standalone Digital Mixer](#standalone-digital-mixer) + * [Music Players](#music-players) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) @@ -265,15 +268,28 @@ This is a section for repos that are similar to this one either because they are ## Audio +### Digital Audio Workstations + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md) | [Ardour](https://ardour.org/)1 | -| [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) | -| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) [(2)](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude)
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | 1: Status as a *replacement* may be debatable. +### 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) +|---|:---:|---|---| +| [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | +| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) [(2)](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude)
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Blogging Software ### Content Management Systems @@ -710,10 +726,11 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro ## Services and Utilities +This is currently a dumping ground, but we aim to get rid of this section for more fine tuned sections. + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), a Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), a Calibre hard-fork from before AI features | -| [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || | [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) | From 2b90b2fdd343c508f5e9720a3e2c7c6e06cf9672 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 11:25:26 +0200 Subject: [PATCH 043/356] tidy the books and library softare section and get rid of services and utilities once and for all (#415) - moves `explainshell` into the `Developer Tools` which is also a dumping ground, but we'll tackle that section in another PR - moves `Calibre` and `Zotero` into a new section called `Books and Library Software`, because I *think* this fits? Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/415 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 9474e7a..9892345 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) + * [Books and Library Software](#books-and-library-software) * [Bootloaders](#bootloaders) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) @@ -77,7 +78,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Rust](#rust) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) - * [Services and Utilities](#services-and-utilities) * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) @@ -317,6 +317,13 @@ This is a section for repos that are similar to this one either because they are > * [Haunt](https://dthompson.us/projects/haunt.html) > * [Zine](https://zine-ssg.io) +## Books and Library software + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), a Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), a Calibre hard-fork from before AI features | +| [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) | + ## Bootloaders | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -443,6 +450,7 @@ 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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | | [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client, or [tar](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) | | [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/) | +| [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) | > [!NOTE] > #### On task runners and `make(1)` implementations: @@ -456,6 +464,7 @@ This is a section for repos that are similar to this one either because they are > | [Jam](https://swarm.workshop.perforce.com/projects/perforce_software-jam/) | OSS rewrite by Perforce| ### Compiler Tools And Related + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [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) | @@ -724,16 +733,6 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -## Services and Utilities - -This is currently a dumping ground, but we aim to get rid of this section for more fine tuned sections. - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), a Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), a Calibre hard-fork from before AI features | -| [Zotero](https://www.zotero.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zotero/zotero/blob/main/CLAUDE.md)) || -| [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) | - ## Social Media This is for both social media websites and apps. From 824dc5834ae1b41d63b66c0a3b464123b43741a4 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 12:29:06 +0200 Subject: [PATCH 044/356] refactor email section and add fairmail, k-9 mail, and giggity (#416) - closes #203 - closes #303 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/416 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9892345..c73bd0e 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,6 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) * [Mobile Browsers](#mobile-browsers) - * [E-Mail Clients](#e-mail-clients) * [Cheat sheets and documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) @@ -55,6 +54,10 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [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) + * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Storage](#file-storage) * [Gaming](#gaming) * [Game engines](#game-engines) @@ -358,12 +361,6 @@ This is a section for repos that are similar to this one either because they are > #### Mobile Browser Alternatives > * [IronFox] For Android, while not officially related to LibreWolf, some of the same developers work on it. -### E-Mail Clients - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---------|--------------|----------|-------| -| NeoMutt | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neomutt/neomutt/pull/4737)) | [mutt](http://mutt.org) | - ## Cheat sheets and documentation | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -499,6 +496,27 @@ This is a section for repos that are similar to this one either because they are > * [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 + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---------|--------------|----------|-------| +| [NeoMutt](https://github.com/neomutt/neomutt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neomutt/neomutt/pull/4737)) | [mutt](http://mutt.org) | + +### E-Mail Mobile Clients + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---------|--------------|----------|-------| +| [FairEmail](https://github.com/M66B/FairEmail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/M66B/FairEmail/blob/master/FAQ.md#faq190)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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) | + +### Calendar Mobile Clients + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---------|--------------|----------|-------| +| [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 Storage | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | From 07f25f94cb68b3644c671de4c69344ed16577514 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 12:34:45 +0200 Subject: [PATCH 045/356] Add `vips` as an Alternative for `ImageMagick` (#417) - adds vips based on @mkljczk feedback - closes #246 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/417 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c73bd0e..b56b6b6 100644 --- a/README.md +++ b/README.md @@ -408,7 +408,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) | |---|:---:|---|---| -| [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/) | +| [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | | [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] From e0ae23fb1c3db5ec76e20e4ec09bf745f9a52fb5 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 12:42:39 +0200 Subject: [PATCH 046/356] - Add `frog`, `blog-wiki`, and `static-blog` as an Alternative for `static site generators` (#418) closes #140 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/418 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b56b6b6..072e7ca 100644 --- a/README.md +++ b/README.md @@ -316,9 +316,13 @@ This is a section for repos that are similar to this one either because they are > #### 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) +> * [org-blog-wiki](https://orgmode.org/worg/org-blog-wiki.html ) (list by org devs - for emacs, no markdown) +> * [org-static-blog](https://github.com/bastibe/org-static-blog) (for emacs users, no markdown) > * [Zine](https://zine-ssg.io) +> We haven't vetted these, but you *may* also find luck browsing [Jamestack's Static Site Generator List](https://jamstack.org/generators/). ## Books and Library software From 75b7e394e4dc1c108ec02460959e116a1c2009a6 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 12:50:45 +0200 Subject: [PATCH 047/356] Add `Forward Email` (#419) - closes #227 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/419 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 072e7ca..03ed897 100644 --- a/README.md +++ b/README.md @@ -506,6 +506,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) | |---------|--------------|----------|-------| +| [Forward Email](https://github.com/forwardemail/mail.forwardemail.net/blob/main/AGENTS.md) | [`v0.9.1`](https://github.com/forwardemail/mail.forwardemail.net/releases/tag/v0.9.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/forwardemail/mail.forwardemail.net/blob/main/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [NeoMutt](https://github.com/neomutt/neomutt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neomutt/neomutt/pull/4737)) | [mutt](http://mutt.org) | ### E-Mail Mobile Clients From 5a6709ee5fed79dbc362a56c6b9b66107a2bd34c Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 12:55:52 +0200 Subject: [PATCH 048/356] make some notes on doing this publicly (#420) - closes #249 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/420 Co-authored-by: jessebot Co-committed-by: jessebot --- NO_AI_REQUEST_TEMPLATE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index 69a1930..5185aaa 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -59,6 +59,9 @@ Thank you and kind regards :pray: ## Tips for Success +- Do this in the public forum, issue tracker, discussions, etc. + - Avoid using direct messages (otherwise you'd need to share screenshots of your direct message which could cause friction) + - Avoid using places like discord servers unless that is the ONLY place a project does Issue Triage - Personalize the template a bit before sending it: - Add how long you've been using the software. - Add what the project means to you. From f79ca9ea92aee9013a49f35904c77cf8797957c2 Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Fri, 17 Apr 2026 13:16:10 +0200 Subject: [PATCH 049/356] Expand Version Control Section (#398) This reformats the version control table and adds a few more distributed version control systems as alternatives. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/398 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 03ed897..3ae6a4f 100644 --- a/README.md +++ b/README.md @@ -851,11 +851,18 @@ This is for both social media websites and apps. ### Version Control Clients and Tooling -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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)) | [Game of Trees] | -| [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)) | [Game of Trees] | -| [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), [4](https://github.com/jj-vcs/jj/pull/8571)) | [Game of Trees] | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | +| [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), [4](https://github.com/jj-vcs/jj/pull/8571)) | +| [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) ## Virtualization From 1b90eb5e9242de7b674c0ed0d568fe422f96997a Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 13:32:24 +0200 Subject: [PATCH 050/356] clean up IceCubesApp alternatives column (#422) makes the column a little less wide and therefore prettier :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/422 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ae6a4f..cf5a9da 100644 --- a/README.md +++ b/README.md @@ -782,7 +782,7 @@ This is for both social media websites and apps. ### Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [IceCubesApp for iOS](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) (an iOS fediverse app in beta), [wafrn-rn] | +| [IceCubesApp for iOS](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 fediverse app in beta),
[wafrn-rn] | | [Bluesky Social App](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078) | [![Request for Help](./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))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [2](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a), [3](https://github.com/bluesky-social/social-app/commit/1782a65174cbd22f01936f529f954e7a491b3fac)) | [wafrn-rn] | ## System Services and Daemons From 8e20669840c8835947b9355743e435b3d39bf0ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Bar=C4=87?= Date: Fri, 17 Apr 2026 13:08:20 +0200 Subject: [PATCH 051/356] add Bazel, Buck2 and SCons with evidence MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maciej Barć --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index cf5a9da..4074f73 100644 --- a/README.md +++ b/README.md @@ -442,10 +442,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 | Alternative(s) | |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | +| [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)) | A Make implementation | +| [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))| A Make implementation | | [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)) | Just use `cargo test` | | [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) | | [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)) | A Make implementation | | [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 | +| [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)) | A Make implementation | | [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | | [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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | From c5acf830d8457028858ba80eb9fe451df2a300c1 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 13:45:13 +0200 Subject: [PATCH 052/356] add `heroic` (#423) closes #225 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/423 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4074f73..3480c4d 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [File Storage](#file-storage) * [Gaming](#gaming) * [Game engines](#game-engines) - * [Game managers](#game-managers) + * [Game managers and Launchers](#game-managers-and-launchers) * [Emulators](#emulators) * [Language and Localization](#language-and-localization) * [Operating Systems](#operating-systems) @@ -547,10 +547,11 @@ This is a section for repos that are similar to this one either because they are | [GZDoom](https://github.com/zdoom/gzdoom) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2)) | [UZDoom](https://github.com/UZDoom/UZDoom), [Chocolate Doom](https://www.chocolate-doom.org/) | | [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), [4](https://github.com/4ian/GDevelop/pull/8509/commits/a8d0f1298aaf921f643f00fbe8d9175d89d363a3), [5](https://github.com/4ian/GDevelop/pull/8509/commits/e2a2fb04bc072b3ef2d66b380f64600248f8de91)) | [Pandemonium Engine] | -### Game managers +### 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://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) ### Emulators From a84f0b1497de3eb340697e6c3b14811d86e66cbb Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 13:54:32 +0200 Subject: [PATCH 053/356] add umu launcher (#424) closes #224 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/424 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3480c4d..48146e4 100644 --- a/README.md +++ b/README.md @@ -552,7 +552,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) | |---|:---:|---|---| | [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | [`2.20.1`](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.20.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/5373)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help)| -| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) +| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | +| [umu](https://github.com/Open-Wine-Components/umu-launcher) | [`1.3.0`](https://github.com/Open-Wine-Components/umu-launcher/releases/tag/1.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Wine-Components/umu-launcher/commit/424ffbf63c64107b87d948a7bbbea64d419bce4d), [2](https://github.com/Open-Wine-Components/umu-launcher/commit/12eb390fee3821fa3260ea856006e39ed85b26ae)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ### Emulators From 27452943b7ec7ca251c41655e2804ee9a1e0dd7a Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 14:04:18 +0200 Subject: [PATCH 054/356] stop recommending seafile and start recommending copyparty (#425) closes #112 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/425 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 48146e4..0b1cd28 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 | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [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)) | [Garage] | -| [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/)) | [seafile](https://github.com/haiwen/seafile) for file storage and syncing only (not a complete worksuite replacement) | +| [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/)) | [CopyParty](https://github.com/9001/copyparty) | | [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)) | [Garage] for S3 api + [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | > [!NOTE] From 7225eb1dd25781ca932c665dba6147cb9c86ab77 Mon Sep 17 00:00:00 2001 From: dz4k Date: Fri, 17 Apr 2026 01:23:12 +0200 Subject: [PATCH 055/356] Add mise-en-place --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0b1cd28..fdb1b38 100644 --- a/README.md +++ b/README.md @@ -455,6 +455,7 @@ This is a section for repos that are similar to this one either because they are | [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client, or [tar](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) | | [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/) | | [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) | +| [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/jdx/mise/tree/main/.cursor))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](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/)? > [!NOTE] > #### On task runners and `make(1)` implementations: From 7eff327b89df10d463a2f0d80a7da3ddc16a36b4 Mon Sep 17 00:00:00 2001 From: dz4k Date: Fri, 17 Apr 2026 13:44:46 +0200 Subject: [PATCH 056/356] Remove "Vibecoded" tag from Mise --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fdb1b38..1bf5ccf 100644 --- a/README.md +++ b/README.md @@ -455,7 +455,7 @@ This is a section for repos that are similar to this one either because they are | [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client, or [tar](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) | | [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/) | | [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) | -| [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/jdx/mise/tree/main/.cursor))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](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/)? +| [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/)? > [!NOTE] > #### On task runners and `make(1)` implementations: From 8b9f7f04d310a64d0edf4ec51a5e0a09c477a26e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deniz=20Ak=C5=9Fim=C5=9Fek?= Date: Fri, 17 Apr 2026 15:04:32 +0300 Subject: [PATCH 057/356] Fix up Markdown formatting around mise-en-place --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1bf5ccf..5473d3b 100644 --- a/README.md +++ b/README.md @@ -455,7 +455,7 @@ This is a section for repos that are similar to this one either because they are | [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client, or [tar](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) | | [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/) | | [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) | -| [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/)? +| [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/)? | > [!NOTE] > #### On task runners and `make(1)` implementations: From a09700aaaa99547996e347e8a4dbd6bbb843fde0 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 14:17:59 +0200 Subject: [PATCH 058/356] add as an alternative to (#426) closes #236 also does a bit of tidying of the rest of the table Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/426 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5473d3b..b2bb24b 100644 --- a/README.md +++ b/README.md @@ -444,7 +444,7 @@ This is a section for repos that are similar to this one either because they are | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | | [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)) | A Make implementation | | [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))| A Make implementation | -| [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)) | Just use `cargo test` | +| [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` | | [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) | | [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)) | A Make implementation | | [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 | @@ -452,10 +452,10 @@ This is a section for repos that are similar to this one either because they are | [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | | [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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | -| [rsync](https://rsync.samba.org/) | version ≤3.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)) | version ≤3.4.1, `scp` or a FTP client, or [tar](https://drewdevault.com/2026/03/28/2026-03-28-rsync-without-rsync.html) | +| [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/2026/03/28/2026-03-28-rsync-without-rsync.html) | | [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/) | | [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) | -| [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/)? | +| [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/)? | > [!NOTE] > #### On task runners and `make(1)` implementations: From 97fd7351e1a06e94774314dde14d809e9690c215 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 14:25:51 +0200 Subject: [PATCH 059/356] try to fix the OS table so it's less squished (#427) it was making the tainted column too squished Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/427 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b2bb24b..2fa5e7d 100644 --- a/README.md +++ b/README.md @@ -574,8 +574,8 @@ 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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | | [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | -| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [The original MS-DOS source code](https://github.com/microsoft/MS-DOS) is under the Expat/MIT license | -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) - kernel for GNU Hurd | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | +| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | | [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | From ee2f62eef4d9719603d0635c63360548ae69fbc7 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 14:41:07 +0200 Subject: [PATCH 060/356] add bun (#428) Note: Bun is owned by Anthropic, but we don't have a 'acquired by AI company' badge yet open to future PRs to add alternatives closes #143 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/428 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2fa5e7d..ad68b65 100644 --- a/README.md +++ b/README.md @@ -710,8 +710,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) | | --- |:---:| --- | --- | | [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | -| [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), [1](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [2](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Using native GUIs, such as [GTK](https://gtk.org), instead of making a web site | -| [nvm](https://github.com/nvm-sh/nvm) | before [July 2025](https://github.com/nvm-sh/nvm/pull/3609)? [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![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) | +| [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 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) | +| [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), [1](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [2](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | +| [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) | | [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | | [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | From 3926dbc8cf954bf508bcd5f31331d8127ccedb3f Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 14:53:37 +0200 Subject: [PATCH 061/356] add pytermgui (#429) closes #193 Honestly broke my heart. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/429 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ad68b65..21bd331 100644 --- a/README.md +++ b/README.md @@ -725,9 +725,10 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | | JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| +| [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | | [ruff](https://docs.astral.sh/ruff/) | [![Request for Help](./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/ruff/blob/bd3150f4e2cdf9278cf329ef12c875a4d30bf601/AGENTS.md), [3](https://github.com/astral-sh/ruff/commit/3ffc8b93d61ae91e2b6daf61c740e7df52448a50))
[![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) | -| [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [pytermgui](https://github.com/bczsalba/pytermgui) | +| [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | From a7d5ad52af61df76f14dcc4e179e13302efa7a75 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 15:26:39 +0200 Subject: [PATCH 062/356] add godbolt (#430) closes #375 originally noted by @ethanuppal in #163 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/430 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 21bd331..1b0641c 100644 --- a/README.md +++ b/README.md @@ -472,6 +472,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) | |---|:---:|---|---| +| [`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) | ## Document Viewers From 98554a01474bd1e68852e3bf78b4fbd56bd4eca4 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 15:42:49 +0200 Subject: [PATCH 063/356] replace more vibecoded badges with permissive ai policy (#431) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/431 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 1b0641c..f7e0197 100644 --- a/README.md +++ b/README.md @@ -344,8 +344,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 | |---|:---:|---| | Chromium/Blink engine | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.claude), [2](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.gemini), [3](https://github.com/chromium/chromium/tree/aab503953a7f271aad675ef8a38f3108d9c2a0f0/.agents)) | -| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | -| [Ladybird](https://github.com/LadybirdBrowser/ladybird) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://ladybird.org/posts/adopting-rust/)) | +| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | +| [Ladybird](https://github.com/LadybirdBrowser/ladybird) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://ladybird.org/posts/adopting-rust/)) | | [WebKit](https://webkit.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WebKit/WebKit/tree/57438b0e69831fedd7851825b33b09a0917c9b74/.codex), [2](https://github.com/WebKit/WebKit/tree/57438b0e69831fedd7851825b33b09a0917c9b74/.gemini), [3](https://github.com/WebKit/WebKit/commit/94ffd831d1e5df97d5b8a7c5cbe8baa162670482)) | | [Zen](https://github.com/zen-browser/desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zen-browser/desktop/issues/7742#issuecomment-3062859362), [2](https://github.com/zen-browser/desktop/pull/12826))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.zen-browser.app/user-manual/shortcuts#other-features:~:text=Toggle%20AI%20Chatbot%20Sidebar)) | @@ -359,7 +359,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 | |---|:---:|---| -| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | +| Firefox | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mozilla-firefox/firefox/commit/71cc24b6a400dbd434e4df37087960d94b764791), [2](https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://web.archive.org/web/20260316170257/https://alextheward.com/blog/mozilla_is_now_an_ai_company)) | > [!Note] > #### Mobile Browser Alternatives @@ -412,7 +412,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) | |---|:---:|---|---| -| [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | +| [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | | [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] @@ -428,12 +428,12 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | -| [gstreamer](https://gstreamer.freedesktop.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e4d7f95b0c8ea4b1e23d6660317968f8033ae3a9)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | +| [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) | | [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) | -| [Kodi](https://kodi.tv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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) | +| [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) | | [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 the (now archived) [Qt-based client](https://github.com/jellyfin-archive/jellyfin-desktop-qt/) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/jellyfin/jellyfin-desktop/commit/7c3ae05aa63b9155203daf15a2ec4f52c319c6e6))
[![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) | +| [Jellyfin Desktop](https://github.com/jellyfin/jellyfin-desktop) | Use the (now 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://github.com/jellyfin/jellyfin-desktop/commit/7c3ae05aa63b9155203daf15a2ec4f52c319c6e6))
[![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) | | [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] | | [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] | @@ -479,7 +479,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) | |---|:---:|---|---| -| [Sumatra PDF](https://www.sumatrapdfreader.org/) | [`v3.5.2`](https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/3.5.2rel) | ![Vibecoded](./badges/vibecoded.svg) ([1](https://github.com/sumatrapdfreader/sumatrapdf/commit/aad9f76790d2f44894d73e28620eac41aeb5eb5c))| [Xournal++](https://xournalpp.github.io/) | +| [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 @@ -573,15 +573,15 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | +| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | | [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | -| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | +| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | | [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | -| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | -| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | +| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | +| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | -| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | -| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | +| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | +| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | | [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!NOTE] @@ -644,7 +644,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) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://app.aliasvault.net/img/avatar.webp)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | -| [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | > [!Note] > ### Password manager alternatives @@ -729,7 +729,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | | [ruff](https://docs.astral.sh/ruff/) | [![Request for Help](./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/ruff/blob/bd3150f4e2cdf9278cf329ef12c875a4d30bf601/AGENTS.md), [3](https://github.com/astral-sh/ruff/commit/3ffc8b93d61ae91e2b6daf61c740e7df52448a50))
[![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) | -| [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | @@ -773,11 +773,11 @@ 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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([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 | +| [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 | +| [`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 | -| [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | +| [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | | [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!Note] @@ -792,7 +792,7 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [IceCubesApp for iOS](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 fediverse app in beta),
[wafrn-rn] | -| [Bluesky Social App](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078) | [![Request for Help](./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))
[![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [2](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a), [3](https://github.com/bluesky-social/social-app/commit/1782a65174cbd22f01936f529f954e7a491b3fac)) | [wafrn-rn] | +| [Bluesky Social App](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078) | [![Request for Help](./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] | ## System Services and Daemons @@ -877,7 +877,7 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | +| [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | | [VirtualBox](https://www.virtualbox.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/VirtualBox/virtualbox/blob/main/AGENTS.md)) | > [!NOTE] From 14fc81bbcdb56b1aef72b0548799c7227e468ecc Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 16:31:58 +0200 Subject: [PATCH 064/356] make it more clear that you should open a PR if you have evidence (#434) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/434 Co-authored-by: jessebot Co-committed-by: jessebot --- .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 b89c550..c4a7c6e 100644 --- a/.forgejo/issue_template/discussion.yaml +++ b/.forgejo/issue_template/discussion.yaml @@ -15,8 +15,8 @@ body: label: Discussion Topic description: | Please let us know what you'd like to discuss. - Remember that if you already have concrete evidence, you can just open a PR. You don't need to create an Issue. - This is not a place to ask advice on using your own LLMs. + Remember that if you already have concrete evidence, you should just open a PR. Pleae don't create an Issue. + This is also not a place to ask advice on using your own LLMs. - type: checkboxes id: terms attributes: From a82109b427a38f17e1ac97fe46983873abb80f6e Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 16:36:25 +0200 Subject: [PATCH 065/356] add that you should open a PR to the Issue description (#435) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/435 Co-authored-by: jessebot Co-committed-by: jessebot --- .forgejo/issue_template/discussion.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/issue_template/discussion.yaml b/.forgejo/issue_template/discussion.yaml index c4a7c6e..79c38e6 100644 --- a/.forgejo/issue_template/discussion.yaml +++ b/.forgejo/issue_template/discussion.yaml @@ -1,5 +1,5 @@ name: Discussion -about: Open a discussion topic for the community +about: Open a discussion topic for the community. Please don't use this to say "add software". Open a Pull Request if you want to do that. title: '[Discussion]: ' ref: 'main' labels: From b71371f97ea4ca6b45820a2f3c52b8630008658f Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 17:03:53 +0200 Subject: [PATCH 066/356] light up bun like a christmas tree (#437) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/437 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7e0197..8cb6272 100644 --- a/README.md +++ b/README.md @@ -711,7 +711,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) | | --- |:---:| --- | --- | | [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | -| [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 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) | [![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) | | [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), [1](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [2](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | | [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) | | [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | From 31d3ea4e2150ad7b17af7248ade0f9e296c41960 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 17:14:33 +0200 Subject: [PATCH 067/356] clean up facet because it made the table look bad (#438) Also removes serde due to the (note: tainted by its Palantir-defending author) because we don't want to recommend stuff that is authored by pro-defense industry individuals. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/438 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8cb6272..472b493 100644 --- a/README.md +++ b/README.md @@ -739,8 +739,8 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [`c2rust`](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [`egui`](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [imgui](https://github.com/imgui-rs/imgui-rs), [relm](https://github.com/antoyo/relm), [iced](https://github.com/iced-rs/iced) | -| [`facet`](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely before it got rebranded to `facet-rs` | [![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)) | [`serde`](https://serde.rs) (note: [tainted by its Palantir-defending author](https://archive.ph/fe9g5)), [`nanoserde`](https://github.com/not-fl3/nanoserde)
If possible avoid all-in-one libraries for deserialization and avoid macros that slow things down. | -| [`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)) | [`iocraft`] (<=0.7.17), [`cursive`], [`console`] | +| [`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)
If possible avoid all-in-one libraries for deserialization,
and avoid macros that slow things down. | +| [`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)) | [`iocraft`] (<=0.7.17),
[`cursive`],
[`console`] | | [`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)) | [`cursive`] and [`console`] | | [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 | | [`wgpu`](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [`vulcano`](https://github.com/vulkano-rs/vulkano), [`ash`](https://github.com/ash-rs/ash), [`glow`](https://github.com/grovesnl/glow) | From c85156ed663b2763c266fb14c74335a52fc58374 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 17:25:32 +0200 Subject: [PATCH 068/356] update aliasvault to permissive ai policy (#439) closes #226 (They removed their AI logo but came out firm in defense of AI as morals are not important to the project) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/439 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 472b493..ba897d2 100644 --- a/README.md +++ b/README.md @@ -642,7 +642,7 @@ This is a section for repos that are similar to this one either because they are | 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) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ([1](https://app.aliasvault.net/img/avatar.webp)) | +| [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | | [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | From 7d402570a2a4e8e9bd7ff0992ade3a9cd6795e95 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 17 Apr 2026 18:04:52 +0200 Subject: [PATCH 069/356] Add kubevirt and cloud-hypervisor (#441) From my best-effort checking it seems both projects started accepting (or at least people started documenting) AI contributions in mid/late 2025. I picked versions release versions slightly before that point to be on the safe side but there is always the possibility something went in that wasn't disclosed. Cloud-Hypervisor is a bit tricky to ping-down because their guidance tells people to run the AI PR reviews locally and not include the output in the PR discussion. Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/441 Reviewed-by: JesseBot Co-authored-by: Max Co-committed-by: Max --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ba897d2..e1e7f81 100644 --- a/README.md +++ b/README.md @@ -878,6 +878,8 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | +|[Cloud-Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor/)| [`v47.0`](https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v47.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#aillm-assistance--generated-code)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#code-review) | +| [Kubevirt](https://kubevirt.io/) | [`v1.5.0`](https://github.com/kubevirt/kubevirt/releases/tag/v1.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/kubevirt/community/blob/main/ai-contribution-policy.md)
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) [(1)](https://github.com/kubevirt/kubevirt/issues/17003#issuecomment-3990607938)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/kubevirt/kubevirt/pull/17522#pullrequestreview-4128078747) | | [VirtualBox](https://www.virtualbox.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/VirtualBox/virtualbox/blob/main/AGENTS.md)) | > [!NOTE] From 4693156bf2914b9fea06c209dd44c56036d54198 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 20:32:23 +0200 Subject: [PATCH 070/356] add content warning info (#443) The following information within this link may be disturbing due to mentions of war and death of children, but it is related to Anthropic's Claude code so we will include it. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/443 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e1e7f81..d30ffff 100644 --- a/README.md +++ b/README.md @@ -1020,6 +1020,7 @@ Due to the nature of LLMs being only kind of as good as the data they are traine - [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) From dc79ac542102a9363ad91394ec889a391f4192c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Fri, 17 Apr 2026 20:34:12 +0200 Subject: [PATCH 071/356] Add Modrinth (#401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added Modrinth to the list since they have an AGENTS.md, CLAUDE.md and .claude in their repo that doesn't appear to be poisoned in any way. I also added a new category for "Mod managers", which I am unsure about. I don't know if it's the best fit for Modrinth necessarily (since it's a game launcher for modded Minecraft instances, a mod repository for the game, and a server host) but none of the others really fit either. It felt like the least bad option. I do not know of any alternative to Modrinth, especially not as a mod repository for Minecraft. The only other Minecraft mod repository really is Curseforge, which is proprietary and not really recommendable anyway. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/401 Reviewed-by: JesseBot Co-authored-by: Chloé Chagnon Co-committed-by: Chloé Chagnon --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index d30ffff..cdeeb5b 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Gaming](#gaming) * [Game engines](#game-engines) * [Game managers and Launchers](#game-managers-and-launchers) + * [Mod managers](#mod-managers) * [Emulators](#emulators) * [Language and Localization](#language-and-localization) * [Operating Systems](#operating-systems) @@ -557,6 +558,12 @@ This is a section for repos that are similar to this one either because they are | [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | | [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 + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Modrinth](https://modrinth.com/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/modrinth/code/blob/main/CLAUDE.md), [2](https://github.com/modrinth/code/tree/main/.claude/skills)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | + ### Emulators | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 2e6c070f6278c05aaa0daeb0b8f827363671b1c4 Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Fri, 17 Apr 2026 20:35:38 +0200 Subject: [PATCH 072/356] Add libinput and sort system services section (#442) - Closes #207 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/442 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cdeeb5b..149509e 100644 --- a/README.md +++ b/README.md @@ -806,11 +806,12 @@ This is for both social media websites and apps. | 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 | +| [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)| | [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)| -| [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)| ## Terminal From 7542f4836a82b66b012959cb6c8d44c67597d599 Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Fri, 17 Apr 2026 21:28:20 +0200 Subject: [PATCH 073/356] Spin out Build Systems from Developer Tools; reorganize both (#440) Should this section in any way refer to the later NixOS entry? Nix is often brought up as an alternative to other Cloud Build Systems. I'm also pretty sure Golly should go into a games or toys section, if there was one. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/440 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 65 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 149509e..e56a2ba 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [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) * [Desktop Browsers](#desktop-browsers) * [Mobile Browsers](#mobile-browsers) @@ -338,6 +339,37 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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 | +| [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 | +| [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 | +| [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 ### Desktop Browsers @@ -389,7 +421,7 @@ This is a section for repos that are similar to this one either because they are > * [`bash`](https://www.gnu.org/software/bash/) > * [`oksh`](https://github.com/ibara/oksh) > * [Busybox](https://busybox.net/) `ash` -> * [Schilytools](https://codeberg.org/schilytools/schilytools) `bosh` +> * [Schilytools] `bosh` > [!NOTE] > #### Alternative Shell Languages @@ -443,31 +475,14 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | -| [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)) | A Make implementation | -| [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))| A Make implementation | -| [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` | -| [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) | -| [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)) | A Make implementation | -| [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 | -| [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)) | A Make implementation | -| [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)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [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) | | [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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | -| [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/2026/03/28/2026-03-28-rsync-without-rsync.html) | -| [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/) | | [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) | -| [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/)? | - -> [!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| +| [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 | +| [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` | +| [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/) | +| [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/2026/03/28/2026-03-28-rsync-without-rsync.html) | +| [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 @@ -1083,6 +1098,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Alacritty]: https://alacritty.org/ [Alacritty fork with sixel]: https://github.com/ayosec/alacritty [Clojure]: https://clojure.org +[Cloud Shake]: https://shakebuild.com/cloud [`console`]: https://github.com/console-rs/console [Contour Terminal]: https://github.com/contour-terminal/contour [COSMIC Terminal]: https://github.com/pop-os/cosmic-term @@ -1117,6 +1133,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [QEMU]: https://www.qemu.org [Rio Terminal]: https://github.com/raphamorim/rio [Servo]: https://servo.org/ +[Schilytools]: https://codeberg.org/schilytools/schilytools [Showtime]: https://apps.gnome.org/Showtime/ [SMPlayer]: https://www.smplayer.info/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden From 7f7503a3d947c0e818c92608e65ae92a18ea5376 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 21:49:45 +0200 Subject: [PATCH 074/356] add link on how to create a pull request on codeberg (#445) remove our other contact info. please can find that easily. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/445 Co-authored-by: jessebot Co-committed-by: jessebot --- .forgejo/issue_template/config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.forgejo/issue_template/config.yaml b/.forgejo/issue_template/config.yaml index 658992e..ae308a3 100644 --- a/.forgejo/issue_template/config.yaml +++ b/.forgejo/issue_template/config.yaml @@ -2,6 +2,6 @@ blank_issues_enabled: false contact_links: - - name: Small Hack - url: https://codeberg.org/small-hack - about: Visit our org's homepage + - name: How to Create a Pull Request + url: https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/ + about: Learn more about how to create a pull request on codeberg <3 From 3b8d82cc401c37cc85926089be04fd6e63997a3f Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 21:52:42 +0200 Subject: [PATCH 075/356] add our contributing docs to the links (#446) links, links forever! Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/446 Co-authored-by: jessebot Co-committed-by: jessebot --- .forgejo/issue_template/config.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.forgejo/issue_template/config.yaml b/.forgejo/issue_template/config.yaml index ae308a3..c855a06 100644 --- a/.forgejo/issue_template/config.yaml +++ b/.forgejo/issue_template/config.yaml @@ -2,6 +2,9 @@ blank_issues_enabled: false contact_links: + - name: Our Contributing Doc + url: https://codeberg.org/small-hack/open-slopware/src/branch/main/CONTRIBUTING.md + about: Read this to learn how you can contribute to this project ✨ - name: How to Create a Pull Request url: https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/ - about: Learn more about how to create a pull request on codeberg <3 + about: Learn more about how to create a pull request on codeberg 🩵 From 55cab84449d87d229a158175526c5e989f7c2889 Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 17 Apr 2026 22:00:55 +0200 Subject: [PATCH 076/356] Add a link on how to open a PR (#447) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/447 Co-authored-by: jessebot Co-committed-by: jessebot --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 33ad2f0..c166a05 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,6 +27,9 @@ Other tips for keeping the repo tidy and making sure we don't duplicate efforts: ``` - If the software is already reported in an open issue and as an open PR leave a comment in the PR with the new or updated evidence(s). +> [!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 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: From 8c3813ee4ef9b5113a13d749814759dfaafa052a Mon Sep 17 00:00:00 2001 From: micdan5 Date: Sat, 18 Apr 2026 09:24:27 +0200 Subject: [PATCH 077/356] Add Anki & AnkiDroid (#247) I found no alternatives for AnkiDroid. :( BTW, since there's no learning index on the TOC I added that up as you can see. :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/247 Reviewed-by: JesseBot Co-authored-by: micdan5 Co-committed-by: micdan5 --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index e56a2ba..502a615 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mod managers](#mod-managers) * [Emulators](#emulators) * [Language and Localization](#language-and-localization) + * [Learning](#learning) + * [Anki desktop alternatives](#anki-desktop-alternatives) * [Operating Systems](#operating-systems) * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) @@ -591,6 +593,17 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Weblate](https://weblate.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/WeblateOrg/weblate/blob/main/AGENTS.md), [2](https://github.com/WeblateOrg/weblate/commit/aad714d7a3eb728b1800a8874586a27a7253e177), [3](https://github.com/WeblateOrg/weblate/commit/23d1e3e41c394da62dcf69da2dbb3119bacbc75f)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Learning +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Anki](https://apps.ankiweb.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/ankitects/anki/tree/main/.cursor/rules), [2](https://github.com/ankitects/anki/blob/main/CLAUDE.md)) | +| [AnkiDroid](https://github.com/ankidroid/Anki-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/ankidroid/Anki-Android/blob/main/AI_POLICY.md#disclosure)) | + +> [!Note] +> #### **Anki desktop alternatives** +> - [Mnemosyne](https://mnemosyne-proj.org/): Project is written in Python, which is tainted. See [Programming languages](#programming-languages) +> - [Scholarsome](https://scholarsome.com/): Last commit was 2 years ago. Self-hosted. + ## Operating Systems | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 714d23406bb47511daa71f54e4bfc5b8cce6b517 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Sat, 18 Apr 2026 09:25:35 +0200 Subject: [PATCH 078/356] Add Ente Locker (#322) I don't see any apparent AI usage by [Syncthing](https://github.com/syncthing/syncthing), so its listed as an alternative. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/322 Reviewed-by: JesseBot Co-authored-by: micdan5 Co-committed-by: micdan5 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 502a615..8d9442f 100644 --- a/README.md +++ b/README.md @@ -549,6 +549,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) | |---|:---:|---|---| +| [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)) | [Syncthing](https://syncthing.net/) (for file syncing) | | [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)) | [Garage] | | [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/)) | [CopyParty](https://github.com/9001/copyparty) | | [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)) | [Garage] for S3 api + [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | From 0a185e12b467cea1a09967eea765945f8cdb56fb Mon Sep 17 00:00:00 2001 From: jessebot Date: Sat, 18 Apr 2026 11:07:47 +0200 Subject: [PATCH 079/356] doing a general tidy of all the tables for typos, language, and formatting based on our style guide (#453) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - adds breaks or notes in situations where the table may be too wide causing smaller screen widths to have the "evidence" column become too small and hard to read - limits each project to only 3 pieces of evidence per tag (otherwise this will be harder to maintain) - remove subjective language around what is outdated - fix issues where parentheses were inside links - adds missing commas and periods - removes trailing blank space - the bluesky app link was wrong, and for some reason linked to misskey? Fixed to be correct link - fixed centering of tables that I created 🤦 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/453 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 71 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 8d9442f..e7a341a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ For more information on why we think this list matters, please see [Why not LLMs Want to *add*, *update*, or *remove* a project listed below? Check out our [**Contributing Doc**](./CONTRIBUTING.md). -See a project on here that you love, and wish wasn't on here? Check out our [**No AI Request Template**](./NO_AI_REQUEST_TEMPLATE.md) +See a project on here that you love, and wish wasn't on here? Check out our [**No AI Request Template**](./NO_AI_REQUEST_TEMPLATE.md). * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) @@ -38,7 +38,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [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) + * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) * [Mobile Browsers](#mobile-browsers) @@ -96,6 +96,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) * [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) * [VPN Software](#vpn-software) @@ -245,15 +246,18 @@ This is a section for repos that are similar to this one either because they are # Tainted Software > [!Warning] -> We've recently added a "Last Untainted Version or Commit ID" section to our below tables. This is meant for tech savvy individuals to be able to fork the project and continue maintaining it without the use of AI. Choosing to install an older version of software could expose you to to security risks over time. Only do this if you are able to accept such risks. +> We've recently added a "Last Untainted Version or Commit ID" column to our below tables. This is meant for tech savvy individuals to be able to fork the project and continue maintaining it without the use of AI. Choosing to install an older version of software could expose you to to security risks over time. Only do this if you are able to accept such risks. ## Accessibility Tools | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [![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/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/) (note: heavily outdated and very bad from a modern standpoint), [flite](http://cmuflite.org/) | +| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [![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/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/)1, [flite](http://cmuflite.org/) | | [Nametag](https://github.com/mattogodoy/nametag) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | +> [!Note] +> 1 espeak may be considered heavily outdated and very bad from a modern standpoint. + ## Accounting and Budgeting | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -279,8 +283,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) |---|:---:|---|---| -| [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md) | [DPF](https://github.com/DISTRHO/DPF) | -| [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md) | [Ardour](https://ardour.org/)1 | +| [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | +| [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [Ardour](https://ardour.org/)1 | 1: Status as a *replacement* may be debatable. @@ -288,14 +292,14 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| -| [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) | +| [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) |---|:---:|---|---| | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | -| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md) [(2)](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude)
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Blogging Software @@ -332,7 +336,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) | |---|:---:|---|---| -| [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), a Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), a Calibre hard-fork from before AI features | +| [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | | [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) | ## Bootloaders @@ -468,7 +472,7 @@ This is a section for repos that are similar to this one either because they are | [mpv](https://github.com/mpv-player/mpv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md#ai-assisted-contributions)) | [MPlayer](https://mplayerhq.hu/)
[Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | | [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) | | [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 the (now 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://github.com/jellyfin/jellyfin-desktop/commit/7c3ae05aa63b9155203daf15a2ec4f52c319c6e6))
[![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) | +| [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://github.com/jellyfin/jellyfin-desktop/commit/7c3ae05aa63b9155203daf15a2ec4f52c319c6e6))
[![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) | | [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] | | [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] | @@ -528,21 +532,21 @@ This is a section for repos that are similar to this one either because they are ### E-Mail Desktop Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---------|--------------|----------|-------| +|---------|:--------------:|----------|-------| | [Forward Email](https://github.com/forwardemail/mail.forwardemail.net/blob/main/AGENTS.md) | [`v0.9.1`](https://github.com/forwardemail/mail.forwardemail.net/releases/tag/v0.9.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/forwardemail/mail.forwardemail.net/blob/main/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [NeoMutt](https://github.com/neomutt/neomutt) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neomutt/neomutt/pull/4737)) | [mutt](http://mutt.org) | ### E-Mail Mobile Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---------|--------------|----------|-------| +|---------|:--------------:|----------|-------| | [FairEmail](https://github.com/M66B/FairEmail) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/M66B/FairEmail/blob/master/FAQ.md#faq190)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | ### Calendar Mobile Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---------|--------------|----------|-------| +|---------|:--------------:|----------|-------| | [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 Storage @@ -552,7 +556,7 @@ This is a section for repos that are similar to this one either because they are | [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)) | [Syncthing](https://syncthing.net/) (for file syncing) | | [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)) | [Garage] | | [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/)) | [CopyParty](https://github.com/9001/copyparty) | -| [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)) | [Garage] for S3 api + [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | +| [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)) | [Garage] for S3 api
[JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | > [!NOTE] > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. @@ -566,7 +570,7 @@ This is a section for repos that are similar to this one either because they are | [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) | | [Godot Engine](https://godotengine.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://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | | [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/) | -| [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), [4](https://github.com/4ian/GDevelop/pull/8509/commits/a8d0f1298aaf921f643f00fbe8d9175d89d363a3), [5](https://github.com/4ian/GDevelop/pull/8509/commits/e2a2fb04bc072b3ef2d66b380f64600248f8de91)) | [Pandemonium Engine] | +| [GDevelop](https://gdevelop.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gdevelop.io/), [2](https://github.com/4ian/GDevelop/commit/6ec16045d140a9d55721f71620e128d4969c5fe6), [3](https://github.com/4ian/GDevelop/pull/8509/commits/74409a280cd248ee4d54523b23f5c1507d6380af)) | [Pandemonium Engine] | ### Game managers and Launchers @@ -580,7 +584,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Modrinth](https://modrinth.com/) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/modrinth/code/blob/main/CLAUDE.md), [2](https://github.com/modrinth/code/tree/main/.claude/skills)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [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 @@ -672,7 +676,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [brew](https://github.com/Homebrew/brew) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Homebrew/brew/blob/main/AGENTS.md)) | Build packages from source | | [macports](https://github.com/macports/macports-ports) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/macports/macports-ports/pull/28628)) | Build packages from source | -| [PiKISS](https://github.com/jmcerrejon/PiKISS) | [![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/jmcerrejon/PiKISS/pull/240)) | Use system repositories provided by your distro or manual installation of software | +| [PiKISS](https://github.com/jmcerrejon/PiKISS) | [![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/jmcerrejon/PiKISS/pull/240)) | System repositories provided by your distro,
manual installation of software | ## Password Management @@ -763,7 +767,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | +| [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` (Python Standard Lib)](https://docs.python.org/3/library/urllib.request.html) | | [ruff](https://docs.astral.sh/ruff/) | [![Request for Help](./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/ruff/blob/bd3150f4e2cdf9278cf329ef12c875a4d30bf601/AGENTS.md), [3](https://github.com/astral-sh/ruff/commit/3ffc8b93d61ae91e2b6daf61c740e7df52448a50))
[![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) | | [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | @@ -775,7 +779,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [`c2rust`](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [`egui`](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [imgui](https://github.com/imgui-rs/imgui-rs), [relm](https://github.com/antoyo/relm), [iced](https://github.com/iced-rs/iced) | -| [`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)
If possible avoid all-in-one libraries for deserialization,
and avoid macros that slow things down. | +| [`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. | | [`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)) | [`iocraft`] (<=0.7.17),
[`cursive`],
[`console`] | | [`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)) | [`cursive`] and [`console`] | | [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 | @@ -787,6 +791,8 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro > > Also, there is an advisory database of Rust slopware crates, which you can use in tools like > [cargo-deny](https://embarkstudios.github.io/cargo-deny): . +> +> On facet: If possible avoid all-in-one libraries for deserialization, and avoid macros that slow things down. ## Search Engines @@ -827,19 +833,19 @@ This is for both social media websites and apps. ### Clients | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [IceCubesApp for iOS](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 fediverse app in beta),
[wafrn-rn] | -| [Bluesky Social App](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078) | [![Request for Help](./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] | +| [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] | ## System Services and Daemons | 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 | +| [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 | | [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)| | [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/) | +| [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)| ## Terminal @@ -890,17 +896,22 @@ This is for both social media websites and apps. ### Version Control Servers -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [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)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | -| [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/)) | [Forgejo](https://codeberg.org/forgejo/forgejo) (self-hosted) or [Codeberg](https://codeberg.org/) (hosted) | +| 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 | |---|:---:|---| | [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)) | -| [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), [4](https://github.com/jj-vcs/jj/pull/8571)) | +| [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)) | > [!Note] @@ -915,8 +926,8 @@ This is for both social media websites and apps. | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Botspot Virtual Machine](https://github.com/Botspot/bvm) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Botspot/bvm?tab=readme-ov-file#ask-me-anything)) | -|[Cloud-Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor/)| [`v47.0`](https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v47.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#aillm-assistance--generated-code)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#code-review) | -| [Kubevirt](https://kubevirt.io/) | [`v1.5.0`](https://github.com/kubevirt/kubevirt/releases/tag/v1.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) [(1)](https://github.com/kubevirt/community/blob/main/ai-contribution-policy.md)
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) [(1)](https://github.com/kubevirt/kubevirt/issues/17003#issuecomment-3990607938)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) [(1)](https://github.com/kubevirt/kubevirt/pull/17522#pullrequestreview-4128078747) | +|[Cloud-Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor/)| [`v47.0`](https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v47.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#aillm-assistance--generated-code))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/ea2df946f63d6662cae3a93ef3299d397a543a10/CONTRIBUTING.md#code-review)) | +| [Kubevirt](https://kubevirt.io/) | [`v1.5.0`](https://github.com/kubevirt/kubevirt/releases/tag/v1.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kubevirt/community/blob/main/ai-contribution-policy.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/kubevirt/kubevirt/issues/17003#issuecomment-3990607938))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/kubevirt/kubevirt/pull/17522#pullrequestreview-4128078747)) | | [VirtualBox](https://www.virtualbox.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/VirtualBox/virtualbox/blob/main/AGENTS.md)) | > [!NOTE] From ddec57854bb3ff205a95ce828f4daf486f739b56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 18 Apr 2026 11:17:59 +0200 Subject: [PATCH 080/356] document starship claude support, list alternative (#454) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Starship now has Claude support. Added shmonad as an alternative. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/454 Reviewed-by: JesseBot Co-authored-by: Léana 江 Co-committed-by: Léana 江 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e7a341a..308f122 100644 --- a/README.md +++ b/README.md @@ -443,7 +443,7 @@ This is a section for repos that are similar to this one either because they are | [`oh-my-posh`](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [`oh-my-bash`](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [`ohmyzsh`](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | ## Computer Graphics From abaf6625507f2e4e0afc6af30bbe7f1cb7b2881c Mon Sep 17 00:00:00 2001 From: matu6968 Date: Sat, 18 Apr 2026 13:05:16 +0200 Subject: [PATCH 081/356] Add Silo (MinIO fork) and RustFS as tainted (#457) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/457 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 308f122..6691dea 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [E-mail Mobile Clients](#e-mail-mobile-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Storage](#file-storage) + * [File Storage Alternatives](#file-storage-alternatives) * [Gaming](#gaming) * [Game engines](#game-engines) * [Game managers and Launchers](#game-managers-and-launchers) @@ -551,14 +552,23 @@ This is a section for repos that are similar to this one either because they are ## File Storage -| Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | -|---|:---:|---|---| -| [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)) | [Syncthing](https://syncthing.net/) (for file syncing) | -| [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)) | [Garage] | -| [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/)) | [CopyParty](https://github.com/9001/copyparty) | -| [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)) | [Garage] for S3 api
[JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver
[Rook/Ceph](https://rook.io/) | - +| 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)) | +| [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/)) | +| [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)) | +| [Silo](https://silo.pigsty.io/) | [`3252d5b`](https://github.com/pgsty/minio/commit/3252d5b7f349e0ea41987761e4487972ea977e15) | [![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))| > [!NOTE] +> ### File Storage Alternatives +> * [Garage] for S3 compatibility +> * [Syncthing](https://syncthing.net/) for file syncing +> * [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver +> * [CopyParty](https://github.com/9001/copyparty) for general file sharing +> * [Rook/Ceph](https://rook.io/) +> +> For MinIO: > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. ## Gaming From a4076da490a800c7ae31fdbbf128b7448c1e09ae Mon Sep 17 00:00:00 2001 From: matu6968 Date: Sat, 18 Apr 2026 13:09:21 +0200 Subject: [PATCH 082/356] Add Fluxer as tainted, fix up a few other sections within Messaging column (#405) closes #307 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/405 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6691dea..afa8705 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) + * [Messaging Alternatives](#messaging-alternatives) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Package Managers](#package-managers) * [Password Management](#password-management) @@ -660,17 +661,18 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Converse.js](https://conversejs.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | -| [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| -| [Psi](https://psi-im.org/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | -| [Telegram](https://telegram.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| -| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | -| [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)) | | [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | -| [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) +| [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | +| [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) +| [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)) | +| [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| +| [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | +| [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | +| [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| +| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] -> ### Messaging alternatives +> ### Messaging Alternatives > - [matrix] ## Microcontroller Tools and Libraries From cb3aa55f00b981118f9e9ee6804f330d0e9c58fe Mon Sep 17 00:00:00 2001 From: matu6968 Date: Sat, 18 Apr 2026 13:31:35 +0200 Subject: [PATCH 083/356] fixup Silo entry to indicate that no commits are untainted (#458) just realized that Silo is tainted because the commit i referenced from eariler still contained commits from Claude from below, this fixes PR #457 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/458 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afa8705..71aaa74 100644 --- a/README.md +++ b/README.md @@ -560,7 +560,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/)) | | [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)) | -| [Silo](https://silo.pigsty.io/) | [`3252d5b`](https://github.com/pgsty/minio/commit/3252d5b7f349e0ea41987761e4487972ea977e15) | [![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))| > [!NOTE] > ### File Storage Alternatives > * [Garage] for S3 compatibility From 3984c544efea8e5302c84f95a06f2ca475de604d Mon Sep 17 00:00:00 2001 From: jessebot Date: Sat, 18 Apr 2026 14:05:40 +0200 Subject: [PATCH 084/356] start on a new issue template for people to call for collaborators (#452) closes #444 Please feel free to make suggestions here! :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/452 Co-authored-by: jessebot Co-committed-by: jessebot --- .../issue_template/collaborate-with-me.yaml | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .forgejo/issue_template/collaborate-with-me.yaml diff --git a/.forgejo/issue_template/collaborate-with-me.yaml b/.forgejo/issue_template/collaborate-with-me.yaml new file mode 100644 index 0000000..9663707 --- /dev/null +++ b/.forgejo/issue_template/collaborate-with-me.yaml @@ -0,0 +1,55 @@ +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' +labels: + - call-for-collaborators +body: + - type: markdown + attributes: + value: | + Thanks for helping to make the world a bit more AI free 💙 + The idea here is to request help with forking or rewriting a currently tainted project. + + - type: input + id: project + attributes: + label: What's the name of the project? + description: | + What is the name or idea behind the project you want to start/have started? + + - type: input + id: link + attributes: + label: Link + description: | + Provide a link to the new repo you've created (this can be a fork or a fresh rewrite). + + - type: input + id: language + attributes: + label: Programming Lanaguage + description: | + What programming language will this be primarily written in? + + - type: textarea + id: additional-info + attributes: + label: Additional Info + description: | + Tell us what the project is about. Is it a fork? Is it a fresh rewrite? Which project on the tainted list would it be an alternative to? What do you intend to do with it? Do you need maintainers? Collaborators? Reviewers? Contributors? Documentation writers? How can we help? :) + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct and Rules for Collaboration + description: By submitting this issue, you agree to follow our [Code of Conduct](https://codeberg.org/small-hack/open-slopware/src/branch/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow this project's Code of Conduct + required: true + - label: The project I want to collaborate on has a No AI policy banning any and all AI usage + required: true + - label: The project I want to collaborate on is free and open source. + required: true + - label: The project I want to collaborate on has an explicit code of conduct banning bigotry. + required: true From 9d55165ee065a62392201d11199aed81d354d448 Mon Sep 17 00:00:00 2001 From: Andre601 Date: Sat, 18 Apr 2026 16:04:31 +0200 Subject: [PATCH 085/356] Update cURL (#463) There's no sufficient evidence for cURL to be confirmed to be sponsored by AI software/companies. The only proof is a quote within a GitHub App with no further links showing that the app's owner is sponsoring cURL or similar. - closes #462 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/463 Reviewed-by: JesseBot Co-authored-by: Andre601 Co-committed-by: Andre601 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71aaa74..e197295 100644 --- a/README.md +++ b/README.md @@ -483,7 +483,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) | |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | -| [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))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/apps/aisle-research-bot))
[![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/) | +| [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | From d419e244edd83341df69dc4aa1c1b62daacebea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Bar=C4=87?= Date: Sat, 18 Apr 2026 19:07:05 +0200 Subject: [PATCH 086/356] misc tweaks: correct GNU Emacs name; add last known untainted version of PowerShell (#465) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/465 Reviewed-by: JesseBot Co-authored-by: Maciej Barć Co-committed-by: Maciej Barć --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e197295..b4f7fc0 100644 --- a/README.md +++ b/README.md @@ -329,8 +329,8 @@ This is a section for repos that are similar to this one either because they are > * [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) -> * [org-blog-wiki](https://orgmode.org/worg/org-blog-wiki.html ) (list by org devs - for emacs, no markdown) -> * [org-static-blog](https://github.com/bastibe/org-static-blog) (for emacs users, no markdown) +> * [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) > We haven't vetted these, but you *may* also find luck browsing [Jamestack's Static Site Generator List](https://jamstack.org/generators/). @@ -419,7 +419,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [`nushell`](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | | [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | -| [PowerShell](https://github.com/PowerShell/PowerShell) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![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)) | +| [PowerShell](https://github.com/PowerShell/PowerShell) | [`7.5.4`](https://github.com/PowerShell/PowerShell/releases/tag/v7.5.4/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | | [`xonsh`](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | | [`yash`](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | @@ -516,7 +516,7 @@ This is a section for repos that are similar to this one either because they are | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | | [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | -| [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 (emacs, etc.) | +| [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 @@ -524,7 +524,7 @@ This is a section for repos that are similar to this one either because they are > [!NOTE] > ### Alternative TUI Code Editors -> * [emacs] +> * [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) @@ -776,7 +776,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | -| JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | +| JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` (Python Standard Lib)](https://docs.python.org/3/library/urllib.request.html) | @@ -1144,7 +1144,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal [Elvish]: https://elv.sh [Eqonomize]: https://eqonomize.github.io/ -[emacs]: https://www.gnu.org/software/emacs/ +[GNU Emacs]: https://www.gnu.org/software/emacs/ [Epiphany]: https://apps.gnome.org/Epiphany [EVi]: https://codeberg.org/NerdNextDoor/evi [ffplay]: https://ffmpeg.org/ffplay.html From 9428bc8430f843a94a49e60249b0dde337720c69 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Sat, 18 Apr 2026 20:19:01 +0200 Subject: [PATCH 087/356] Add new research as deskilling evidence (#448) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/448 Reviewed-by: JesseBot Co-authored-by: Fabio Henrique Co-committed-by: Fabio Henrique --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b4f7fc0..a45465b 100644 --- a/README.md +++ b/README.md @@ -1039,6 +1039,7 @@ There is increasing evidence to show that LLMs negatively impact developers' cod * [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". ### Infosec risks From 9430a29e422c91d9f6dfb630aa3dcbb944091580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 19 Apr 2026 08:28:35 +0200 Subject: [PATCH 088/356] Document anubis and iocaine (#456) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I added a new section to accomodate anubis and iocaine. Let me know if it's better to organise it in a different way and I'll rebase :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/456 Reviewed-by: JesseBot Co-authored-by: Léana 江 Co-committed-by: Léana 江 --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index a45465b..efac713 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,9 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Learning](#learning) * [Anki desktop alternatives](#anki-desktop-alternatives) * [Operating Systems](#operating-systems) + * [Networking](#networking) + * [Networking security tools](#networking-security-tools) + * [Networking security tool alternatives](#networking-security-tool-alternatives) * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) @@ -644,6 +647,18 @@ This is a section for repos that are similar to this one either because they are > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +## Networking + +### Networking security tools +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Anubis](https://anubis.techaro.lol) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TecharoHQ/anubis/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TecharoHQ/anubis/pull/321), [2](https://github.com/TecharoHQ/anubis/pull/749)) | + +> [!NOTE] +> #### Networking security tool alternatives +> * [iocaine](https://iocaine.madhouse-project.org) +> * [go-away](https://git.gammaspectra.live/git/go-away) + ## Mapping | Name | Last Untainted Version or Commit ID | Tags and Evidence | From b9da94b615419dfc4c306672daf39f4e3bae87a8 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 19 Apr 2026 09:14:41 +0200 Subject: [PATCH 089/356] Add Jmonkey java game engine (#461) Adds the Jmonkey Java-based game engine and also alphabetizes the game-engine section. Also adds a last-clean release for Godot. The methodology was to find the fist PR that can be determined to contain AI, then going 1 release backwards from that date to be safe. In this case the first AI commits seem to be from copilot in September of 2025 - so we take the last stable release before then which was late 2024. Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/461 Reviewed-by: JesseBot Co-authored-by: Max Co-committed-by: Max --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index efac713..0436bca 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 | [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)) | | [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/)) | -| [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))| +| [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)) | | [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))| > [!NOTE] @@ -581,10 +581,11 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [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) | -| [Godot Engine](https://godotengine.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://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | -| [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/) | +| [Godot Engine](https://godotengine.org/) | [`4.3-stable`](https://github.com/godotengine/godot/releases/tag/4.3-stable) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#ai-assisted-contributions), [2](https://github.com/godotengine/godot/pull/112471#issuecomment-4047941693)) | [Pandemonium Engine] | | [GDevelop](https://gdevelop.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gdevelop.io/), [2](https://github.com/4ian/GDevelop/commit/6ec16045d140a9d55721f71620e128d4969c5fe6), [3](https://github.com/4ian/GDevelop/pull/8509/commits/74409a280cd248ee4d54523b23f5c1507d6380af)) | [Pandemonium Engine] | +| [GZDoom](https://github.com/zdoom/gzdoom) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ZDoom/gzdoom/commit/584af500736b0317e42824f39285ed3d954fc4e2)) | [UZDoom](https://github.com/UZDoom/UZDoom), [Chocolate Doom](https://www.chocolate-doom.org/) | +| [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) | +| [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) | ### Game managers and Launchers From 690d12d9a19f349edc5fed8764da058a6c0e85a6 Mon Sep 17 00:00:00 2001 From: Adronia Date: Sun, 19 Apr 2026 10:05:03 +0200 Subject: [PATCH 090/356] Adds Ox as tainted (#470) Good day. Kindly adding in ox as a text editor with "ai"/llm functionalities (https://github.com/curlpipe/ox/pull/190) Have a great day Adronia Co-authored-by: Adronia Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/470 Reviewed-by: JesseBot Co-authored-by: Adronia Co-committed-by: Adronia --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0436bca..f0d5fea 100644 --- a/README.md +++ b/README.md @@ -516,6 +516,7 @@ This is a section for repos that are similar to this one either because they are | [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 | | [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 | | [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 | +| [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 | | [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | | [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | From 9faf474265dc405b89d3a716001b02570de2d3ca Mon Sep 17 00:00:00 2001 From: matu6968 Date: Sun, 19 Apr 2026 10:10:52 +0200 Subject: [PATCH 091/356] Add Superfile as tainted with a seperate File Managers section (#466) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/466 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index f0d5fea..b11f507 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [E-mail Desktop Clients](#e-mail-desktop-clients) * [E-mail Mobile Clients](#e-mail-mobile-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) + * [File Managers](#file-managers) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) * [Gaming](#gaming) @@ -555,6 +556,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 Managers + +| 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--))| [vifm](https://vifm.info/), [lf](https://github.com/gokcehan/lf), [Midnight Commander](https://midnight-commander.org/) | + ## File Storage | Name | Last Untainted Version or Commit ID | Tags and Evidence | From f8d44843ef2b54a4bcee3aa11723e4af65b24a1f Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 19 Apr 2026 11:39:47 +0200 Subject: [PATCH 092/356] tidy package managers section to have an alternatives section (#471) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/471 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b11f507..c513475 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Messaging Alternatives](#messaging-alternatives) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Package Managers](#package-managers) + * [Package Manager Alternatives](#package-manager-alternatives) * [Password Management](#password-management) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) @@ -708,11 +709,15 @@ This is a section for repos that are similar to this one either because they are ## Package Managers -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [brew](https://github.com/Homebrew/brew) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Homebrew/brew/blob/main/AGENTS.md)) | Build packages from source | -| [macports](https://github.com/macports/macports-ports) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/macports/macports-ports/pull/28628)) | Build packages from source | -| [PiKISS](https://github.com/jmcerrejon/PiKISS) | [![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/jmcerrejon/PiKISS/pull/240)) | System repositories provided by your distro,
manual installation of software | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [brew](https://github.com/Homebrew/brew) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Homebrew/brew/blob/main/AGENTS.md)) | +| [macports](https://github.com/macports/macports-ports) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/macports/macports-ports/pull/28628)) | +| [PiKISS](https://github.com/jmcerrejon/PiKISS) | [![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/jmcerrejon/PiKISS/pull/240)) | + +> [!Note] +> ### Package Manager Alternatives +> For more operating systems, there are is 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. If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. ## Password Management @@ -723,7 +728,7 @@ This is a section for repos that are similar to this one either because they are | [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | > [!Note] -> ### Password manager alternatives +> ### Password Manager Alternatives > * [vaultwarden] (server) / [rbw](https://github.com/doy/rbw) (client) > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. > * [KeePassXC 2.7.9](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) was released before the statement, and was awarded 3 year security Visa by the French National Cybersecurity Agency ([ANSSI](https://cyber.gouv.fr/)) for a First-level Security Certification (CSPN), valid in France and Germany, under report No. ANSSI-CSPN-2025/16 ([archive.org](https://web.archive.org/web/20251128131437/https://cyber.gouv.fr/produits-certifies/keepassxc-version-279), [certificate](https://messervices.cyber.gouv.fr/visas/ANSSI-CSPN-2025-16-certificat.pdf)). From 1540fae8ed33527299b2878be5ab2f8fe59c9e05 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 07:49:42 +0200 Subject: [PATCH 093/356] Change last untainted version of Powershell (#484) Did a somewhat in-depth search and found [PR 19325](https://github.com/PowerShell/PowerShell/pull/19325) which first shows up in `v7.4.0-preview.3`. Note that last stable tag is v7.3.4. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/484 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c513475..c0949e5 100644 --- a/README.md +++ b/README.md @@ -424,7 +424,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [`nushell`](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | | [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | -| [PowerShell](https://github.com/PowerShell/PowerShell) | [`7.5.4`](https://github.com/PowerShell/PowerShell/releases/tag/v7.5.4/) | [![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)) | +| [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | | [`xonsh`](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | | [`yash`](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | From 4122dbd5e5bca92dabd419dbc937fd5065fe9ae8 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 07:50:35 +0200 Subject: [PATCH 094/356] Fix typo in SSG alternatives (#483) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/483 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c0949e5..a238b23 100644 --- a/README.md +++ b/README.md @@ -337,7 +337,8 @@ This is a section for repos that are similar to this one either because they are > * [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) -> We haven't vetted these, but you *may* also find luck browsing [Jamestack's Static Site Generator List](https://jamstack.org/generators/). +> +> We haven't vetted these, but you *may* also find luck browsing [Jamstack's Static Site Generator List](https://jamstack.org/generators/). ## Books and Library software From 3dba3ef8ce6f31d32822cb966b168327a91e35ff Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 07:52:18 +0200 Subject: [PATCH 095/356] Add ESLint and Typebox and fix Electron numbering (#480) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/480 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a238b23..6e3a162 100644 --- a/README.md +++ b/README.md @@ -792,12 +792,14 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | +| [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) | -| [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), [1](https://github.com/electron/electron/commit/3295d0d4b05bf338427e5f98374dda206b83651f), [2](https://github.com/electron/electron/commit/816e5964fb574585840ec82f7b1e3e99b3f93785)) | Use native GUIs, such as [GTK](https://gtk.org) | +| [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) | | [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) | -| [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | -| [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)) | [TypeBox](https://github.com/sinclairzx81/typebox) (in grey area) | +| [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) | +| [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) | ### Python From 44e09e6c8ecf0552eef6478659e5cb850c07fd2c Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 07:53:21 +0200 Subject: [PATCH 096/356] Add Janet and Dart (#474) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/474 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6e3a162..43c1ba7 100644 --- a/README.md +++ b/README.md @@ -742,6 +742,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) | |---|:---:|---|---| | [.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 | +| [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 | +| [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | | [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | | [mruby](https://github.com/mruby/mruby/releases/tag/3.3.0) | [`v3.3.0`](https://github.com/mruby/mruby/releases/tag/3.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mruby/mruby/commit/b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mruby/mruby/pull/6482), [2](https://github.com/mruby/mruby/pull/6572)) | See below | From 9e035a0107cd9953a5770ebb8101af204256dbfc Mon Sep 17 00:00:00 2001 From: axaloteDev Date: Mon, 20 Apr 2026 07:54:31 +0200 Subject: [PATCH 097/356] Add Memos as tainted and flatnotes as alternative (#467) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/467 Reviewed-by: JesseBot Co-authored-by: axaloteDev Co-committed-by: axaloteDev --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 43c1ba7..9e476f5 100644 --- a/README.md +++ b/README.md @@ -518,6 +518,7 @@ This is a section for repos that are similar to this one either because they are | [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 | | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | +| [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | | [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 | @@ -527,6 +528,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > ### Note Software Alternatives +> - [flatnotes](https://github.com/dullage/flatnotes) (Markdown-based) > - [Zettlr](https://www.zettlr.com/) (Markdown-based) > [!NOTE] From 9579bda679f02f7ea7e4c76bb31cb99c1f813a38 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 07:56:06 +0200 Subject: [PATCH 098/356] Add Flutter (#477) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/477 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 9e476f5..e920e8c 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [C](#c) * [C++](#c-1) * [CSS](#css) + * [Dart](#dart) * [JavaScript And TypeScript](#javascript-and-typescript) * [Python](#python) * [Rust](#rust) @@ -792,6 +793,14 @@ This is a section for repos that are similar to this one either because they are | --- |:---:| --- | --- | | [`tailwindcss`](https://github.com/tailwindlabs/tailwindcss) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tailwindlabs/tailwindcss/commit/9ded4a23de06fb7e8cdc34a3bdf9318e7e8d2bbc))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://tailwindcss.com/sponsor)) | [`twind`](https://github.com/tw-in-js/twind) | +### Dart + +Note that Dart is itself tainted; see [the Programming Languages section](#programming-languages). + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [Flutter](https://flutter.dev/) | [`985576d`](https://github.com/flutter/flutter/commit/985576dbfdff5e9321941d9f66cb33baed337346) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.flutter.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.agents), [2](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.gemini), [3](https://github.com/flutter/flutter/pull/145170#discussion_r1525328287))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/flutter/flutter/pull/172910), [2](https://github.com/flutter/flutter/pull/172978), [3](https://github.com/flutter/flutter/pull/185164)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### JavaScript And TypeScript | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From bc479dffdbd5610d3f3e8b889de0190529298152 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 07:58:53 +0200 Subject: [PATCH 099/356] Add Fladder and clean up videos section (#481) * Added Fladder * Alphabetized the section, because I became aware of that standard after I did the section * Update Jellyfin Desktop evidence, since that had two "Permissive AI Policy" tags and I found something better to list. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/481 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e920e8c..b6d2564 100644 --- a/README.md +++ b/README.md @@ -476,14 +476,15 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [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://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | +| [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) | -| [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) | -| [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) | | [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://github.com/jellyfin/jellyfin-desktop/commit/7c3ae05aa63b9155203daf15a2ec4f52c319c6e6))
[![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) | -| [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] | +| [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) | | [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://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | ## Developer Tools From 795884b1a205e6b91c402105e221e8400cfc29e2 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 20 Apr 2026 13:28:24 +0200 Subject: [PATCH 100/356] Add Connectbot and MTKClient and update tar+ssh URL (#486) * Added Connectbot and MTKClient * Drew DeVault recently updated his blog, meaning the URL listed is now a redirect; this has been replaced with the target URL. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/486 Reviewed-by: JesseBot Co-authored-by: Pixelo789 Co-committed-by: Pixelo789 --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6d2564..2948c8c 100644 --- a/README.md +++ b/README.md @@ -491,13 +491,15 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | +| [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | +| [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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` | | [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/) | -| [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/2026/03/28/2026-03-28-rsync-without-rsync.html) | +| [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/) | | [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 From a9489905b1a9f7475a06482707b5807b1c5f144e Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Mon, 20 Apr 2026 17:10:30 +0200 Subject: [PATCH 101/356] Add Lem Editor (#487) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/487 Reviewed-by: JesseBot Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2948c8c..99a9b63 100644 --- a/README.md +++ b/README.md @@ -521,6 +521,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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 | +| [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 | | [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 | From 4f1cb9ffa3f700fd36bd0811a5ead401e830854c Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 20 Apr 2026 17:14:15 +0200 Subject: [PATCH 102/356] note linuxdaw.org as a place to browse FOSS Linux DAWs (#485) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/485 Co-authored-by: jessebot Co-committed-by: jessebot --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 99a9b63..de11599 100644 --- a/README.md +++ b/README.md @@ -294,7 +294,10 @@ This is a section for repos that are similar to this one either because they are | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [Ardour](https://ardour.org/)1 | -1: Status as a *replacement* may be debatable. +> [!Note] +> 1: Status as a *replacement* may be debatable. +> +> You may also consider browsing the DAWs available on [linuxdaw.org](https://linuxdaw.org/?p=f&l=o). ### Standalone Digital Mixer From 99c952a8e4e3d56ec8c8a6ca0451d27c07b97c71 Mon Sep 17 00:00:00 2001 From: PeculiarDemon Date: Tue, 21 Apr 2026 08:45:44 +0200 Subject: [PATCH 103/356] Add last untainted versions for the Accessibility Tools section (#488) Given the number of "Requests for Help" and pull requests for new entries, I decided to fulfill some of them. I started with the Accessibility Tools section because it was the first one These are the earliest instances of AI usage I found: * [espeak-ng](https://github.com/espeak-ng/espeak-ng): [Copilot review](https://github.com/espeak-ng/espeak-ng/pull/2256) - even though it was automatic, no effort to ignore it or stop future instances was taken. Furthermore, they became more frequent later on * [nametag](https://github.com/mattogodoy/nametag): [Claude commit](https://github.com/mattogodoy/nametag/commit/b85028841450aec33ee03f15894e73a0c5b59dda) - the latest version is of the same day but does not contain this commit Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/488 Reviewed-by: JesseBot Co-authored-by: PeculiarDemon Co-committed-by: PeculiarDemon --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de11599..52cf32a 100644 --- a/README.md +++ b/README.md @@ -260,8 +260,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) | |---|:---:|---|---| -| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [![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/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/)1, [flite](http://cmuflite.org/) | -| [Nametag](https://github.com/mattogodoy/nametag) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | +| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [v1.52](https://github.com/espeak-ng/espeak-ng/releases/tag/1.52.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/)1, [flite](http://cmuflite.org/) | +| [Nametag](https://github.com/mattogodoy/nametag) | [v0.17.0](https://github.com/mattogodoy/nametag/releases/tag/v0.17.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | > [!Note] > 1 espeak may be considered heavily outdated and very bad from a modern standpoint. From 1d96bc48c85e11b24655d21068db3bf3474df2c5 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Tue, 21 Apr 2026 08:51:55 +0200 Subject: [PATCH 104/356] Add tainted Go libraries (#489) It seems like unfortunately Go libraries have also started to allow AI slop (including the ones i like like purego for FFI) so basically it means i have to use alternatives if i want to avoid slop Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/489 Reviewed-by: JesseBot Co-authored-by: matu6968 Co-committed-by: matu6968 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 52cf32a..74f8b38 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [C++](#c-1) * [CSS](#css) * [Dart](#dart) + * [Go](#go) * [JavaScript And TypeScript](#javascript-and-typescript) * [Python](#python) * [Rust](#rust) @@ -808,6 +809,16 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | --- |:---:| --- | --- | | [Flutter](https://flutter.dev/) | [`985576d`](https://github.com/flutter/flutter/commit/985576dbfdff5e9321941d9f66cb33baed337346) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.flutter.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.agents), [2](https://github.com/flutter/flutter/tree/2844af6a713467da39a34658fb889a61a953cb67/.gemini), [3](https://github.com/flutter/flutter/pull/145170#discussion_r1525328287))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/flutter/flutter/pull/172910), [2](https://github.com/flutter/flutter/pull/172978), [3](https://github.com/flutter/flutter/pull/185164)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Go + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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) | +| [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) | + ### JavaScript And TypeScript | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 9f8221c07e07251e86de51f41cc264eed92dd096 Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Tue, 21 Apr 2026 19:11:48 +0200 Subject: [PATCH 105/356] Add plan9port into new System Utilities section (#421) - Closes #264 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/421 Reviewed-by: Max Co-authored-by: perditionecessaria Co-committed-by: perditionecessaria --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 74f8b38..14b7746 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) + * [System Base](#system-base) * [System Services and Daemons](#system-services-and-daemons) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) @@ -911,6 +912,14 @@ This is for both social media websites and apps. | [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] | +## System Base + +This section is strictly for software implementing a core set of UNIX-like utilities and/or directly interfacing with several kernel subsystems. Think potential replacements for coreutils and util-linux. + +| 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)) | [9base](https://tools.suckless.org/9base/) | + ## System Services and Daemons | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 356912024d8bd0e98d1edfd55a72a775762a743d Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 22 Apr 2026 18:15:11 +0200 Subject: [PATCH 106/356] Add KOReader (#482) They have admitted to using deepfaked "art" for release images and other locations, and their codebase contains LLM-generated code. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/482 Reviewed-by: JesseBot --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 14b7746..48c8121 100644 --- a/README.md +++ b/README.md @@ -346,11 +346,12 @@ This is a section for repos that are similar to this one either because they are > > We haven't vetted these, but you *may* also find luck browsing [Jamstack's Static Site Generator List](https://jamstack.org/generators/). -## Books and Library software +## Books and Library Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [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)) | [BookLore](https://booklore.org/)
[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) | ## Bootloaders From 23479ea7a509b7a3ecd4a0109773144162734c0c Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Wed, 22 Apr 2026 18:18:00 +0200 Subject: [PATCH 107/356] Add mill (#495) - author and several maintainers make use of genAI tooling - agents.md and claude.md in repo - copilot and claude in commits Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/495 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48c8121..55c53c3 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ This is a section for repos that are similar to this one either because they are | [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | | [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 | | [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 | | [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 | From 4da53a90ad082e532b74b475360fd3a4a4a04542 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Wed, 22 Apr 2026 19:54:14 +0200 Subject: [PATCH 108/356] Add sbt (#496) - agents.md in repo and contribution guidelines allow AI Maybe debateable because they require human in the loop for AI but only because "most drivers of AI are just not good enough" (e_e) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/496 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55c53c3..968da51 100644 --- a/README.md +++ b/README.md @@ -370,6 +370,7 @@ This is a section for repos that are similar to this one either because they are | [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 | | [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] From 3df1f1570be77ae0e5fcbd9b2d587b7728fc077a Mon Sep 17 00:00:00 2001 From: Leon Henrik Plickat Date: Wed, 22 Apr 2026 19:57:06 +0200 Subject: [PATCH 109/356] add darktable (#354) * darktable has AI features, but these are not genAI so I decided that the AI functionality tag isn't warranted * I guess one could use gimp as an alternative? But I doubt it's a good one, so I decided not to list it for now Guess with photography I have another passion that is being destroyed by AI :( Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/354 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 968da51..6a07c25 100644 --- a/README.md +++ b/README.md @@ -479,6 +479,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [RapidRAW](https://github.com/CyberTimon/RapidRAW/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CyberTimon/RapidRAW/blob/main/README.md#rapidraw)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [RawTherapee](https://github.com/RawTherapee/RawTherapee/) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RawTherapee/RawTherapee/commit/c4b04007107a426dd7011002e8085aa6f398ab60))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RawTherapee/RawTherapee/pull/7518#pullrequestreview-3348449593), [2](https://github.com/RawTherapee/RawTherapee/pull/7435#pullrequestreview-3059697445), [3](https://github.com/RawTherapee/RawTherapee/pull/7378#pullrequestreview-2969042638)) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | +| [darktable](https://github.com/darktable-org/darktable/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/darktable-org/darktable/pull/20706), [2](https://github.com/darktable-org/darktable/pull/20575), [3](https://github.com/darktable-org/darktable/pull/20556), [4](https://github.com/darktable-org/darktable/pull/20506)) | | ### Video From 2a8779a565705e97139c018879c327e2ff3a0803 Mon Sep 17 00:00:00 2001 From: Allen123456hello Date: Wed, 22 Apr 2026 19:58:34 +0200 Subject: [PATCH 110/356] Fix typo (#500) Fix a typo (Ruby's version) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/500 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a07c25..c7cf24b 100644 --- a/README.md +++ b/README.md @@ -767,7 +767,7 @@ This is a section for repos that are similar to this one either because they are | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | -| [Ruby](https://www.ruby-lang.org) | [`v.3.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 | +| [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | | [Scala](https://scala-lang.org/) | [`v3.3.6-RC1`](https://github.com/scala/scala3/releases/tag/3.3.6-RC1) | [![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)) | See below | | [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 | | [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 | From 39516c324dbbf20868aa4c50d1c60d4ecdbfca97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siarhiej=20Sacho=C5=ADski?= Date: Tue, 21 Apr 2026 10:29:24 +0000 Subject: [PATCH 111/356] Add Gentoo Linux as an Alternative for Operating systems --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c7cf24b..9aa3fd8 100644 --- a/README.md +++ b/README.md @@ -673,6 +673,7 @@ This is a section for repos that are similar to this one either because they are > * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +> * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) ## Networking From 7478ebcfa5ff52d6bd0f6f8de084eb2241f6540e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siarhiej=20Sacho=C5=ADski?= Date: Tue, 21 Apr 2026 17:24:05 +0000 Subject: [PATCH 112/356] Update Gentoo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add explicit indication of the Linux kernel compromise, and mentioning that Gentoo's USE flags can be used to disable optional AI‑tainted dependencies. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9aa3fd8..1cd30f5 100644 --- a/README.md +++ b/README.md @@ -673,7 +673,7 @@ This is a section for repos that are similar to this one either because they are > * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) -> * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) +> * [Gentoo Linux](https://www.gentoo.org/) **is a compromise** since it uses the Linux kernel; however, Gentoo has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) and its USE flags can be useful for disabling optional ai-tainted dependencies. ## Networking From 7a664435dfc08d97af82a3d8567e8fdb9f983559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siarhiej=20Sacho=C5=ADski?= Date: Wed, 22 Apr 2026 06:44:14 +0000 Subject: [PATCH 113/356] Update Operating Systems category - Linux distributions that explicitly banned LLM/GenAI contributions are placed in a separate alternatives subsection. - Removed mention of Gentoo's USE flags because it felt like unnecessary pressure. Add Elementary and Chimera Linux Distributions as Alternatives - Closes #433 Co-authored-by: reece146 --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1cd30f5..efeddab 100644 --- a/README.md +++ b/README.md @@ -673,7 +673,10 @@ This is a section for repos that are similar to this one either because they are > * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) -> * [Gentoo Linux](https://www.gentoo.org/) **is a compromise** since it uses the Linux kernel; however, Gentoo has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) and its USE flags can be useful for disabling optional ai-tainted dependencies. +> ##### Linux kernel-based distributions that explicitly ban LLM/GenAI contributions. +> * [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) ## Networking From 2867af784e18e49ed3f50a67107917ca1b82485e Mon Sep 17 00:00:00 2001 From: storablecerox977 Date: Wed, 22 Apr 2026 20:09:00 +0200 Subject: [PATCH 114/356] Add AntennaPod and Podcast Aggregator category (#499) [AntennaPod](https://antennapod.org) includes [AGENTS.md](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md) and [CLAUDE.md](https://github.com/AntennaPod/AntennaPod/blob/develop/CLAUDE.md), commit [d8623ec](https://github.com/AntennaPod/AntennaPod/commit/d8623ecf097879014a8468cf4f3f6f46edc11c31) and [9a4a50a](https://github.com/AntennaPod/AntennaPod/commit/9a4a50ad7a66cf359de97d131daae26e3c2fc16f) contain "Initial prototype, Claude" in the description. there's also an ongoing [proposal](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417) to change the donation expenses policy to allow funding genAI subscriptions for devs. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/499 Reviewed-by: JesseBot --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index efeddab..4234a00 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Digital Audio Workstations](#digital-audio-workstations) * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) + * [Podcast Aggregators](#podcast-aggregators) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) @@ -314,6 +315,12 @@ This is a section for repos that are similar to this one either because they are | [somafm_tui](https://github.com/zsh-ncursed/somafm_tui) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zsh-ncursed/somafm_tui/commit/bd176678d3f6b4f63603c331fb4481356068e78e), [2](https://github.com/zsh-ncursed/somafm_tui/commit/11c9e9e934aa0d6fe4a1f572eed2ba252aac064b)) | [soma-player](https://github.com/mpuccini/soma-play) | | [SimpMusic](https://github.com/maxrave-dev/SimpMusic) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/CLAUDE.md), [2](https://github.com/maxrave-dev/SimpMusic/tree/d57617bd26ab29261f83654dfaf8063b4eb51d0f/.claude))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/maxrave-dev/SimpMusic/blob/d57617bd26ab29261f83654dfaf8063b4eb51d0f/README.md?plain=1#L30)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +### Podcast Aggregators + +| 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) | + ## Blogging Software ### Content Management Systems From 2a578a17a6580c3d3defc7692bfca0f34acb9104 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Wed, 22 Apr 2026 20:44:56 +0200 Subject: [PATCH 115/356] Add Haskell (welcomes AI contributions) (#504) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/504 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4234a00..4bd1e42 100644 --- a/README.md +++ b/README.md @@ -770,6 +770,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 | | [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 | +| [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)) | [SML](https://www.smlnj.org/)?, [OCaml](https://ocaml.org/)? | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | | [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | From feb4c0f2f7d40447aa6bd2e19276a6d5f0b031b0 Mon Sep 17 00:00:00 2001 From: hellfire103 Date: Wed, 22 Apr 2026 21:00:19 +0200 Subject: [PATCH 116/356] Add pkgsrc (#491) pkgsrc is a package manager that supports Linux, BSD, illumos, and macOS, and I would assume is covered by NetBSD's [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/491 Reviewed-by: JesseBot --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4bd1e42..7b21636 100644 --- a/README.md +++ b/README.md @@ -745,7 +745,11 @@ This is a section for repos that are similar to this one either because they are > [!Note] > ### Package Manager Alternatives -> For more operating systems, there are is 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. If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. +> For more operating systems, there are is 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: +> +> * [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. +> +> If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. ## Password Management From 44b680ce2eb61dc82e79d7742b4cc20a720ae290 Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 22 Apr 2026 21:14:18 +0200 Subject: [PATCH 117/356] =?UTF-8?q?I=20forgot=20how=20l-m-n-o-p=20worked?= =?UTF-8?q?=20in=20English=20=F0=9F=A4=A6=20(#505)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This should be the end of the alphabetizing of the headers though!! (the tables themselves are a different story 😓) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/505 --- README.md | 92 +++++++++++++++++++++++++++---------------------------- STYLE.md | 5 +-- 2 files changed, 49 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 7b21636..44a6308 100644 --- a/README.md +++ b/README.md @@ -71,15 +71,15 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Language and Localization](#language-and-localization) * [Learning](#learning) * [Anki desktop alternatives](#anki-desktop-alternatives) - * [Operating Systems](#operating-systems) - * [Networking](#networking) - * [Networking security tools](#networking-security-tools) - * [Networking security tool alternatives](#networking-security-tool-alternatives) * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) * [Messaging Alternatives](#messaging-alternatives) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) + * [Networking](#networking) + * [Networking security tools](#networking-security-tools) + * [Networking security tool alternatives](#networking-security-tool-alternatives) + * [Operating Systems](#operating-systems) * [Package Managers](#package-managers) * [Package Manager Alternatives](#package-manager-alternatives) * [Password Management](#password-management) @@ -374,7 +374,7 @@ This is a section for repos that are similar to this one either because they are | [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | | [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 | +| [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 | | [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 | @@ -657,46 +657,6 @@ This is a section for repos that are similar to this one either because they are > - [Mnemosyne](https://mnemosyne-proj.org/): Project is written in Python, which is tainted. See [Programming languages](#programming-languages) > - [Scholarsome](https://scholarsome.com/): Last commit was 2 years ago. Self-hosted. -## Operating Systems - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | -| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | -| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | -| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | -| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | -| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | -| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | -| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | -| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | - -> [!NOTE] -> #### Alternative operating systems -> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. -> * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) -> * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) -> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. -> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) -> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) -> ##### Linux kernel-based distributions that explicitly ban LLM/GenAI contributions. -> * [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) - -## Networking - -### Networking security tools -| Name | Last Untainted Version or Commit ID | Tags and Evidence | -|---|:---:|---| -| [Anubis](https://anubis.techaro.lol) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TecharoHQ/anubis/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TecharoHQ/anubis/pull/321), [2](https://github.com/TecharoHQ/anubis/pull/749)) | - -> [!NOTE] -> #### Networking security tool alternatives -> * [iocaine](https://iocaine.madhouse-project.org) -> * [go-away](https://git.gammaspectra.live/git/go-away) - ## Mapping | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -735,6 +695,46 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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) | +## Networking + +### Networking security tools +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Anubis](https://anubis.techaro.lol) | none | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TecharoHQ/anubis/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TecharoHQ/anubis/pull/321), [2](https://github.com/TecharoHQ/anubis/pull/749)) | + +> [!NOTE] +> #### Networking security tool alternatives +> * [iocaine](https://iocaine.madhouse-project.org) +> * [go-away](https://git.gammaspectra.live/git/go-away) + +## Operating Systems + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | +| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | +| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | +| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | +| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | +| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | +| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | +| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | +| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +> [!NOTE] +> #### Alternative operating systems +> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. +> * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) +> * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) +> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. +> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) +> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +> ##### Linux kernel-based distributions that explicitly ban LLM/GenAI contributions. +> * [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) + ## Package Managers | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -745,7 +745,7 @@ This is a section for repos that are similar to this one either because they are > [!Note] > ### Package Manager Alternatives -> For more operating systems, there are is 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 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: > > * [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. > diff --git a/STYLE.md b/STYLE.md index 4e526ea..030aeb4 100644 --- a/STYLE.md +++ b/STYLE.md @@ -1,6 +1,6 @@ # Style Guide -This is a guide for how to structure the markdown tables and headings of the main README.md of this repo. +This is a guide for how to structure the markdown tables and headings of the main README.md of this repo. Please be sure to organize the categories alphabetically to save people time in finding things within the list. * [Tainted Software](#tainted-software) * [Category](#category) @@ -12,11 +12,12 @@ Be sure to put things in the correct category and always update the above TOC (t ## Category -Make sure to format your table like below: +Make sure to format your table like below (note that it is alphabetized by software name): | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [formallyCoolSoftware](https://linktocoolsoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) *or* [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [coolSlopFreeProject] | +| [formallyOKSoftware](https://linktofinesoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) *or* [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [alrightSlopFreeProject] | **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): From f075762f48b91b378d7e60c141e0c4eacf47d875 Mon Sep 17 00:00:00 2001 From: Johnathan Stevers Date: Thu, 23 Apr 2026 10:43:10 +0200 Subject: [PATCH 118/356] Add Kakoune (#506) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/506 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 44a6308..eb4141a 100644 --- a/README.md +++ b/README.md @@ -537,6 +537,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [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 | From 64debae34427c3bde5b1d131afcb07ea06359dec Mon Sep 17 00:00:00 2001 From: perditionecessaria Date: Thu, 23 Apr 2026 10:44:33 +0200 Subject: [PATCH 119/356] Add uutils (#508) This is the WIP coreutils rewrite in Rust, that recently sparked a controversy, because it was picked up by Canonical for internal Ubuntu releases. In addition to the visible Claude commits, there is good reason to believe, the lead developer is using it locally. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/508 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb4141a..d97ba03 100644 --- a/README.md +++ b/README.md @@ -940,6 +940,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 | 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)) | [9base](https://tools.suckless.org/9base/) | +| [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)) | GNU coreutils, [Busybox](https://busybox.net/), [sbase](https://git.suckless.org/sbase/file/README.html) | ## System Services and Daemons From 4f8a5233c172e54587fd591b805f130ce0f635aa Mon Sep 17 00:00:00 2001 From: Lily Gruman Date: Fri, 24 Apr 2026 10:14:06 +0200 Subject: [PATCH 120/356] Add Gradle and Maven (#479) In light of the news around Rust's policy, I was exploring the alternatives, and when I went to Java, I discovered that the two build systems I'm aware of for it are both tainted. For Maven, all I found was commits from Claude, so I noted the last release before the oldest one to come up in a search. If anyone finds slop from before that, that should be reevaluated. For Gradle, there is talk in the issues about cooperating with slop agents, so I considered including the `AI Functionality` label as well, but those issues are all still open (or closed without indication of action to resolve), and regardless I'm not sure if designing a build system to function better alongside LLMs counts. Let me know if this should go in the compiler tools section instead of the language-specific tools. In the mean time, I guess I'll be looking into how one might operate `javac` directly... Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/479 Reviewed-by: Max --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index d97ba03..2dbc393 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [CSS](#css) * [Dart](#dart) * [Go](#go) + * [Java](#java) * [JavaScript And TypeScript](#javascript-and-typescript) * [Python](#python) * [Rust](#rust) @@ -841,6 +842,13 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | +### Java + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [Gradle](https://github.com/gradle/gradle) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gradle/gradle/blob/master/AI_POLICY.md)) | [Apache Ant] | +| [Maven](https://github.com/apache/maven) | [3.9.12](https://github.com/apache/maven/tree/maven-3.9.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/apache/maven/pull/11632)) | [Apache Ant] | + ### JavaScript And TypeScript | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -1229,6 +1237,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Alacritty]: https://alacritty.org/ [Alacritty fork with sixel]: https://github.com/ayosec/alacritty +[Apache Ant]: https://ant.apache.org [Clojure]: https://clojure.org [Cloud Shake]: https://shakebuild.com/cloud [`console`]: https://github.com/console-rs/console From 21e8b119d8fa411b1d7760ed08a987f08eea5df5 Mon Sep 17 00:00:00 2001 From: Allen123456hello Date: Fri, 24 Apr 2026 12:35:58 +0200 Subject: [PATCH 121/356] Add HyperbolaBSD and Hyperbola GNU/Linux-libre as alternatives (#509) Add HyperbolaBSD and Hyperbola GNU/Linux-libre as alternatives Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/509 Reviewed-by: JesseBot --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2dbc393..6084ee3 100644 --- a/README.md +++ b/README.md @@ -732,10 +732,12 @@ This is a section for repos that are similar to this one either because they are > * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. > * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) > * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +> * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > ##### Linux kernel-based distributions that explicitly ban LLM/GenAI contributions. > * [Chimera Linux](https://chimera-linux.org/) has [banned LLMs](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing) > * [elementary OS](https://elementary.io/) has [banned LLMs](https://docs.elementary.io/contributor-guide/development/generative-ai-policy) > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) +> * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) ## Package Managers From 933451e37833cbe72545a6e5eefd009f19de25dc Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 24 Apr 2026 12:37:25 +0200 Subject: [PATCH 122/356] Add Penlight (#511) I'm thinking about forking penlight, but that'll come later. This hits harder because Lua is great, and it's become my refuge from the grifters. Before, I thought "well, if you're gonna vibecode, might as well vibecode Rust or something less niche". I guess they're coming for anything and everything you care about :(. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/511 Reviewed-by: JesseBot --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 6084ee3..73017c4 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Go](#go) * [Java](#java) * [JavaScript And TypeScript](#javascript-and-typescript) + * [Lua](#lua) * [Python](#python) * [Rust](#rust) * [Search Engines](#search-engines) @@ -864,6 +865,12 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [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) | | [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 + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight) | + ### Python Note that Python is itself tainted; see [the Programming Languages section](#programming-languages). From 39e2f17fc8d52acc33d99667ae322e954b95bcb1 Mon Sep 17 00:00:00 2001 From: JaecadeJnight Date: Fri, 24 Apr 2026 12:47:46 +0200 Subject: [PATCH 123/356] added quotes around "art" (#503) it is important to not call AI "art" art Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/503 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73017c4..7cc2ee8 100644 --- a/README.md +++ b/README.md @@ -204,7 +204,7 @@ AI "Art" is being used in a project. This is typically for banners, avatars, pro Evidence can be: -- link to the place where the AI art is used +- link to the place where the AI "art" is used ### AI Sponsored From 34e74007b1365c8a767e08e5afe33506209ceb67 Mon Sep 17 00:00:00 2001 From: ud2 Date: Fri, 24 Apr 2026 13:12:14 +0200 Subject: [PATCH 124/356] Add Deno (#492) Very disappointed to see [nearly every recent commit being AI-generated](https://github.com/denoland/deno/commits/main?until=2026-04-21). [`9b2b1c4`](https://github.com/denoland/deno/commit/9b2b1c41f53faeff8c8707bec3ed23d02661601c) is the very first AI-generated commit I found, but would appreciate more eyes on this. [miracatbot](https://github.com/miracatbot) looks like their in-house AI code review bot. Deno is advertised as a zero-configuration, secure-by-default TypeScript toolchain. I don't think there's anything else like that, unfortunately. @kgf because you [mentioned you too have findings](https://codeberg.org/small-hack/open-slopware/issues/143#issuecomment-13230462), I wonder if you have anything to add? Also, I won't open a PR for Node.js because, having used Deno exclusively for years, I'm rather unfamiliar with that project. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/492 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7cc2ee8..ca2cdfd 100644 --- a/README.md +++ b/README.md @@ -858,6 +858,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | --- |:---:| --- | --- | | [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) | +| [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) | | [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 a3c84226ffdf8497452dfb485692112a79a46c1b Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 24 Apr 2026 13:46:44 +0200 Subject: [PATCH 125/356] Add Love as a possible alternative for 2D and some 3D game development (#515) As used by the hit-game Balatro Should be suitable for quite a few use-cases where more powerful features offered by Godot/Unity aren't utilized. I think the biggest issue most people will have is that it doesn't compile for WebGL at the moment. Strong anti-ai policy: https://github.com/love2d/love/commit/147d39251c2618852c026f8cadf95f0ffd6a746f Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/515 Reviewed-by: JesseBot --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index ca2cdfd..b0ece25 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [File Storage Alternatives](#file-storage-alternatives) * [Gaming](#gaming) * [Game engines](#game-engines) + * [Alternative game engines](#alternative-game-engines) * [Game managers and Launchers](#game-managers-and-launchers) * [Mod managers](#mod-managers) * [Emulators](#emulators) @@ -623,6 +624,10 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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] +> #### 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 | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 24719c5ae905172a9edcb62541019286af694f5c Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 24 Apr 2026 13:49:40 +0200 Subject: [PATCH 126/356] make it clear that we don't want people reaching out offline without consent (#514) We shouldn't have to add this, but after it happening a few times, we need to be explicit. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/514 Reviewed-by: Max --- CODE_OF_CONDUCT.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 4d977dd..b12ab38 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -65,6 +65,8 @@ We're going to do a 2 strike rule here with an optional warning. You are out on - Do **NOT** use this repo as a witch hunting device in any direction. You may not reach out on 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. + This repo is specifically meant for identifying LLM usage in other projects, and coordinating on alternatives. You can also come here to ask others to please help you in chatting with another repo maintainer to sway them away from AI usage. But you need to do all of it *with kindness*. We have no interest in a rage feedback atmosphere here and won't tolerate it. Please consider your words before you hit send. ## Accessibility From f147e34d2db3f0707d555190f3da9d9a9b3e89ab Mon Sep 17 00:00:00 2001 From: jessebot Date: Fri, 24 Apr 2026 13:52:39 +0200 Subject: [PATCH 127/356] can't spell YAML (#516) dyslexia :'( Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/516 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b0ece25..8fa8ea9 100644 --- a/README.md +++ b/README.md @@ -250,7 +250,7 @@ This means someone is asking for help with research. They would like it if you f This is a section for repos that are similar to this one either because they are also forks of the original upstream, or because they align with our goal of identifying and avoiding AI/LLM usage OR identifying/elevating projects that do NOT use AI/LLMs. These repos are not all maintained by the same people, but we may share some contributors and are generally kind FOSS neighbors. ✨ -- [llm-afflicted-software](https://codeberg.org/ai-alternatives/llm-afflicted-software) offers a similar list to ours here, however in YMAL file format for each category, making it more suitable to consumption via code (for instance writing a CLI, GUI, or TUI tool to consume it). They've also kindly reached out in the past and submitted Issues and PRs (e.g. [#12](https://codeberg.org/small-hack/open-slopware/issues/12), [#22](https://codeberg.org/small-hack/open-slopware/pulls/22)) to help us here. +- [llm-afflicted-software](https://codeberg.org/ai-alternatives/llm-afflicted-software) offers a similar list to ours here, however in YAML file format for each category, making it more suitable to consumption via code (for instance writing a CLI, GUI, or TUI tool to consume it). They've also kindly reached out in the past and submitted Issues and PRs (e.g. [#12](https://codeberg.org/small-hack/open-slopware/issues/12), [#22](https://codeberg.org/small-hack/open-slopware/pulls/22)) to help us here. - [forge.starlightnet.work/Team/No-AI/](https://forge.starlightnet.work/Team/No-AI/) which is the repo for this [no-AI list](https://noai.starlightnet.work/list.html) that lists projects that have explicitly pledged not to use AI or have an explicit policy to not use AI. - [slop-free-index](https://codeberg.org/brib/slopfree-software-index) is a list of software that has taken steps to reject AI in its development processes. From 761d853eced322527b001150e2a69f7240a184b6 Mon Sep 17 00:00:00 2001 From: pancakes Date: Fri, 24 Apr 2026 16:35:19 +0200 Subject: [PATCH 128/356] Add Scalar (#517) This is particularly frustrating as it doesn't appear that there are any alternatives to Scalar that aren't also tainted. Swagger UI has multiple merges recently[1](https://github.com/swagger-api/swagger-ui/pull/10721) that heavily use Claude. At a glance Redoc also seems to either have AI features itself or have them in its sister projects from the same company. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/517 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8fa8ea9..51cb3ef 100644 --- a/README.md +++ b/README.md @@ -519,6 +519,7 @@ This is a section for repos that are similar to this one either because they are | [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` | | [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/) | | [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/) | +| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md)) [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai)) [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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 From 73396a8fce6eb6264ae0720793212abae3e277f3 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 25 Apr 2026 12:04:07 +0200 Subject: [PATCH 129/356] Add Lightpanda (#475) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/475 Reviewed-by: JesseBot --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 51cb3ef..1a73d6c 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Build Systems and Task Runners](#build-systems-and-task-runners) * [Browsers](#browsers) * [Desktop Browsers](#desktop-browsers) + * [Headless Browsers](#headless-browsers) * [Mobile Browsers](#mobile-browsers) * [Cheat sheets and documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) @@ -421,6 +422,14 @@ This is a section for repos that are similar to this one either because they are > * [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/) +### Headless Browsers + +[Headless browsers](https://en.wikipedia.org/wiki/Headless_browser) are browsers, typically for server usage, that don't render web pages for humans to view. + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [Lightpanda](https://lightpanda.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://lightpanda.io/), [2](https://lightpanda.io/docs/open-source/usage#mcp-server))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lightpanda-io/browser/commit/b373fb4a424119c314da7c8a62aa3811c6a4698c), [2](https://github.com/lightpanda-io/browser/commit/1bdf464ef2c228bc53cc2eb52b07a4f56a9f750e), [3](https://github.com/lightpanda-io/browser/commit/fe9b2e672bce8d27457518cfd550c9fb9bbbc75b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Mobile Browsers | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 1fecbca0e23ea110b95e32c981c013c5fed2d61f Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 25 Apr 2026 12:04:57 +0200 Subject: [PATCH 130/356] Add F3D (#494) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/494 Reviewed-by: JesseBot --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 1a73d6c..0808b7c 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Computer Graphics](#computer-graphics) + * [3D Model Viewer](#3d-model-viewer) * [Image Manipulation](#image-manipulation) * [Photography](#photography) * [Video](#video) @@ -483,6 +484,12 @@ This is a section for repos that are similar to this one either because they are ## Computer Graphics +### 3D Model Viewer + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [F3D](https://f3d.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/f3d-app/f3d/blob/f908304004003a7fecadcd0b0f20bb772ba3f512/AI_POLICY.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://f3d.app/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Image Manipulation | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 6d9c0a2bd732d9ecaa84f280731d6883a92d50fb Mon Sep 17 00:00:00 2001 From: johannes Date: Sat, 25 Apr 2026 12:06:58 +0200 Subject: [PATCH 131/356] Expand on Haskells alternatives (#507) I saw Haskell being added and decided to improve on the alternatives. I added Idris, which is essentially non-lazy Haskell. It attempts to basically improve on Haskells mistakes from what I can tell. I saw they ban AI outright, so I added it to the alternatives below. I also added little explanations for how each language is similar to Haskell, since Haskell is a very unique language which you can hardly just find one perfect replacement for... Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/507 Reviewed-by: JesseBot --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0808b7c..b6d0ea6 100644 --- a/README.md +++ b/README.md @@ -801,7 +801,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [.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 | | [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 | -| [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)) | [SML](https://www.smlnj.org/)?, [OCaml](https://ocaml.org/)? | +| [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | | [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | @@ -822,6 +822,7 @@ This is a section for repos that are similar to this one either because they are > Depending on your needs and technical concerns, you may find any number of different alternative languages useful. For example, when considering alternatives to .NET, Java may be an interesting candidate from the perspective of being a similar VM-based framework. > > * [Clojure] - dynamic, compiled, general-purpose programming language: [AI-generated code not accepted](https://clojure.org/dev/contributor_agreement#_no_generated_code) +> * [Idris] - purely functional programming language, similar to Haskell: [Strict No LLM / No AI Policy](https://github.com/idris-lang/Idris2/blob/main/CONTRIBUTING.md#things-we-will-not-accept) > * [Java] - memory safe, object-oriented, VM-based programming language: [AI-generated code not accepted](https://openjdk.org/legal/ai) > * [Zig] - general-purpose, compiled, system programming language: [Strict No LLM / No AI Policy](https://codeberg.org/ziglang/zig#strict-no-llm-no-ai-policy) @@ -1292,6 +1293,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial [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 From 176b3aea3121323682ea9a9a1990c9c8b6883000 Mon Sep 17 00:00:00 2001 From: Fireye Date: Sat, 25 Apr 2026 12:08:51 +0200 Subject: [PATCH 132/356] Add waterfox as a mobile alternative (#518) I noticed that Waterfox was included as a desktop browser alternative, but I've been using their android app for a while, so I figured I'd include it here as well :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/518 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b6d0ea6..5e1f41a 100644 --- a/README.md +++ b/README.md @@ -440,6 +440,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. ## Cheat sheets and documentation From 66e0f0b077bd1a97d59cb87ea24ff8399152743e Mon Sep 17 00:00:00 2001 From: Jeffrey Serio Date: Sat, 25 Apr 2026 18:21:39 +0200 Subject: [PATCH 133/356] Add spaceship-prompt as alternative (#523) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/523 Reviewed-by: JesseBot --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 5e1f41a..fd51869 100644 --- a/README.md +++ b/README.md @@ -483,6 +483,10 @@ This is a section for repos that are similar to this one either because they are | [`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) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | +> [!NOTE] +> #### Alternative Shell Prompts +> * [`spaceship-prompt`](https://spaceship-prompt.sh/) + ## Computer Graphics ### 3D Model Viewer From 9ceec538786d584e98ca34f3edc472b0d9bbbbbe Mon Sep 17 00:00:00 2001 From: cloudymax Date: Sat, 25 Apr 2026 18:22:41 +0200 Subject: [PATCH 134/356] Change MACH to permit code review instead of premissive policy (#522) closes #502 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/522 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd51869..bef0a20 100644 --- a/README.md +++ b/README.md @@ -744,7 +744,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)) | See below | | [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | | [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-02/msg00133.html)) | See below | +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | See below | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | | [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | | [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | From cac1707ff81365e54120e11e46cf419aeed4204c Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 25 Apr 2026 20:44:02 +0200 Subject: [PATCH 135/356] Add Spaceship (#524) I noticed that Spaceship was added, so I checked it out, and my [userscript](https://jacksonchen666.com/ai-instructions-file-detector/) flagged. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/524 Reviewed-by: JesseBot --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index bef0a20..73c5c5d 100644 --- a/README.md +++ b/README.md @@ -481,12 +481,9 @@ This is a section for repos that are similar to this one either because they are | [`oh-my-posh`](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [`oh-my-bash`](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [`ohmyzsh`](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [`spaceship-prompt`](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | -> [!NOTE] -> #### Alternative Shell Prompts -> * [`spaceship-prompt`](https://spaceship-prompt.sh/) - ## Computer Graphics ### 3D Model Viewer From df5bc4dc710e3f350e0f15dfe1ac714917e443c9 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 25 Apr 2026 21:04:04 +0200 Subject: [PATCH 136/356] Add Pandoc (#519) Going through the backlog of `ready-for-pr` issues. Closes #45 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/519 Reviewed-by: JesseBot --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 73c5c5d..d35eadb 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,9 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Video](#video) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) - * [Document Viewers](#document-viewers) + * [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) @@ -547,7 +549,15 @@ This is a section for repos that are similar to this one either because they are | [`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) | -## Document Viewers +## Documents + +### Document Converters + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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 | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| From 6cd0784ba2c69912f1de486aa6d6802b53e454c0 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 26 Apr 2026 12:01:53 +0200 Subject: [PATCH 137/356] Add Vespucci (#530) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/530 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d35eadb..75c30d3 100644 --- a/README.md +++ b/README.md @@ -701,6 +701,7 @@ This is a section for repos that are similar to this one either because they are | [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | | [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | | [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | +| [Vespucci](https://vespucci.io/) | [`c1053f9`](https://github.com/MarcusWolschon/osmeditor4android/commit/c1053f9a8612937b56d0ae5802cfeae35943f911) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MarcusWolschon/osmeditor4android/blob/e6aea69c6f14fad37d1fbb9c09bc7b19d4c4d452/README.md#aillm-generated-contributions)) | > [!Note] > ### Mapping Alternatives From 4360f8327686671f32fba3fd77c29161fcc25837 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 26 Apr 2026 12:04:24 +0200 Subject: [PATCH 138/356] Add goblint (#528) Since this keeps being advertised on [TWIG](https://thisweek.gnome.org/), I figure I'll give in and add this. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/528 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 75c30d3..efbb995 100644 --- a/README.md +++ b/README.md @@ -846,6 +846,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) | |---|:---:|---|---| +| [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) | | [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/) | | [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) | From 6922a7f11f1c3662fd96fd4b7361d7b3cdb64ad6 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 26 Apr 2026 12:09:59 +0200 Subject: [PATCH 139/356] Add Vector and alphabetise Service Monitoring section (#520) Closes #222 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/520 Reviewed-by: JesseBot --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index efbb995..6e179b9 100644 --- a/README.md +++ b/README.md @@ -956,8 +956,9 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| -| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Vector](https://vector.dev/) | [`44562f6`](https://github.com/vectordotdev/vector/commit/44562f6b3b8a1682009f0a34dc9fb61f3e668dbf) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vectordotdev/vector/blob/89e5c343c631e36090d2543106b88685d7a1c908/AGENTS.md), [2](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2), [3](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vectordotdev/vector/pull/22735), [2](https://github.com/vectordotdev/vector/pull/25228), [3](https://github.com/vectordotdev/vector/pull/24706)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Social Media From 9bf3b24e10eccad437dceadb9a1fab70be69de4a Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 12:24:42 +0200 Subject: [PATCH 140/356] add securityops.co as an alternative for search engines (#531) closes #320 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/531 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e179b9..a9e2dae 100644 --- a/README.md +++ b/README.md @@ -950,7 +950,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| 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) | +| 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) | ## Service Monitoring From a2bf727199333482753998a2a993f7afcf35fde3 Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 12:32:38 +0200 Subject: [PATCH 141/356] adds a permits LLM ingestion tag (#472) closes #345 Feel free to suggest improvements! Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/472 --- CONTRIBUTING.md | 1 + README.md | 19 ++++++++++++++++++- STYLE.md | 11 ++++++++--- badges/permits-llm-ingestion.svg | 19 +++++++++++++++++++ 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 badges/permits-llm-ingestion.svg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c166a05..308361f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,6 +41,7 @@ The criteria for being included in this repository are any of following tags. Yo - [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) - [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) +- [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) Alternatives should not contain any slop as defined by our tagging system above. diff --git a/README.md b/README.md index a9e2dae..6d15230 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [AI Sponsored](#ai-sponsored) * [AI Databroker Usage](#ai-databroker-usage) * [AI In Issue Tracker](#ai-in-issue-tracker) + * [Permits LLM Ingestion](#permits-llm-ingestion) * [Request for Help](#request-for-help) * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) @@ -242,7 +243,23 @@ The use of an AI bot/agent for responding to Issues, Discussions, Forums etc rel Evidence can be: -- Link to AI in an Issue, Bug report, Discussion, etc - must be related to the project's bug/issue tracking +- 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](./badges/permits-llm-ingestion.svg) + +Permits the use of AI/LLMs to ingest the project's contents. This can be for "understanding the code better", "finding bugs/security issues/optimizations". This tag is to be used independently for projects that generally reject the use of AI in their code repositories, issue trackers, and sponsorships, but still encourage or permit users to use LLMs to ingest their code base. + +The reason we still find this worthy of a tag is because it: + +- means that the LLM, often provided by a company with very little respect for copyright, will then save a copy of that open source repo for use in it's future outputs. +- still encourages people to use LLMs and carves out a special situation in which they're still OK, but as this repo is against AI/LLMs for more than just "poor code quality" reasons, we still believe this is not a good course of action as it still promotes the use of inherently unethical tooling. + +Evidence can be: + +- 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 diff --git a/STYLE.md b/STYLE.md index 030aeb4..2723d84 100644 --- a/STYLE.md +++ b/STYLE.md @@ -28,6 +28,7 @@ Make sure to format your table like below (note that it is alphabetized by softw - [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) - [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) +- [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) **Don't know what the alternative or last known good version is?** Use this badge in its place: @@ -52,15 +53,19 @@ Here are all the badges for easy copying and pasting: ``` ```markdown -[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) +[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](#gen-ai-art) ``` ```markdown -[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) +[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ``` ```markdown -[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) +[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) +``` + +```markdown +[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](#permits-llm-ingestion) ``` ```markdown diff --git a/badges/permits-llm-ingestion.svg b/badges/permits-llm-ingestion.svg new file mode 100644 index 0000000..810c8a6 --- /dev/null +++ b/badges/permits-llm-ingestion.svg @@ -0,0 +1,19 @@ + + Permits LLM Ingestion + + + + + + + + + + + + + + + Permits LLM Ingestion + + From fdb6bab6f9a28a401112df5d4a4bef0f80117b3c Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 12:54:36 +0200 Subject: [PATCH 142/356] clean up photography table and scalar evidence column and developer tools a tiny bit (#534) - adds requests for help in photography table - alphabetizes photography table - removes fourth piece of evidence for darktable - adds breaks in evidence tags column for scalar Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/534 --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6d15230..b4ecc64 100644 --- a/README.md +++ b/README.md @@ -524,9 +524,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) | |---|:---:|---|---| +| [darktable](https://github.com/darktable-org/darktable/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darktable-org/darktable/pull/20706), [2](https://github.com/darktable-org/darktable/pull/20575), [3](https://github.com/darktable-org/darktable/pull/20556)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [RapidRAW](https://github.com/CyberTimon/RapidRAW/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/CyberTimon/RapidRAW/blob/main/README.md#rapidraw)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [RawTherapee](https://github.com/RawTherapee/RawTherapee/) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RawTherapee/RawTherapee/commit/c4b04007107a426dd7011002e8085aa6f398ab60))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RawTherapee/RawTherapee/pull/7518#pullrequestreview-3348449593), [2](https://github.com/RawTherapee/RawTherapee/pull/7435#pullrequestreview-3059697445), [3](https://github.com/RawTherapee/RawTherapee/pull/7378#pullrequestreview-2969042638)) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | -| [darktable](https://github.com/darktable-org/darktable/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/darktable-org/darktable/pull/20706), [2](https://github.com/darktable-org/darktable/pull/20575), [3](https://github.com/darktable-org/darktable/pull/20556), [4](https://github.com/darktable-org/darktable/pull/20506)) | | +| [RawTherapee](https://github.com/RawTherapee/RawTherapee/) | [`5.12`](https://github.com/RawTherapee/RawTherapee/releases/tag/5.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/RawTherapee/RawTherapee/commit/c4b04007107a426dd7011002e8085aa6f398ab60))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/RawTherapee/RawTherapee/pull/7518#pullrequestreview-3348449593), [2](https://github.com/RawTherapee/RawTherapee/pull/7435#pullrequestreview-3059697445), [3](https://github.com/RawTherapee/RawTherapee/pull/7378#pullrequestreview-2969042638)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Video @@ -554,9 +555,8 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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` | -| [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/) | | [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/) | -| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md)) [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai)) [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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 @@ -915,6 +915,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [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) | +| [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) | | [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) | From e1c32c26071b7aa4d9b77f476dd3524d3035bf9f Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 13:02:44 +0200 Subject: [PATCH 143/356] Note that our primary template is an appeal to ethics (#533) and put out a call for help on filling out other kinds of templates Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/533 --- NO_AI_REQUEST_TEMPLATE.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index 5185aaa..ef1c262 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -1,12 +1,12 @@ # Reaching Out to a Project -Below you'll find a basic template you can use to reach out to a project in order to politely ask them to consider creating a No AI Policy. +Below you'll find a couple of basic templates you can use to reach out to a project in order to politely ask them to consider creating a No AI Policy. We're creating a couple of different templates depending on which angle you think might be most appealing to a given a project. You're also free to combine sections of different templates together to hit many different points in a single post. This is meant to be a starting point, not the final iteration. Before you proceed, read our [Tips for Success](#tips-for-success). -Would you like to improve this template or add additional sections? Please feel free to submit a PR to do so and we'll discuss it :) +Would you like to improve these templates or add additional sections? Please feel free to submit a PR to do so and we'll discuss it :) -## Template +## Appeal to Ethics Template ```markdown Hello, @@ -57,6 +57,14 @@ For a specific policy, I can recommend the following policies for inspiration: Thank you and kind regards :pray: ``` +## Appeal to Code Quality Template + +Feel free to submit a PR to fill this one in. + +## Appeal to Fear of Legal Ramfification Template + +Feel free to submit a PR to fill this one in. + ## Tips for Success - Do this in the public forum, issue tracker, discussions, etc. From 1060bdf59ae376d62a597f3ba65c0e6451cfdd6a Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 26 Apr 2026 13:06:19 +0200 Subject: [PATCH 144/356] Add Black, Pylint, isort, and Trio, and clean up Python section (#526) * Added Black, Pylint, isort, and Trio * Fixed duplicate badges and added more/better evidence for Textual * Linked to JupyterLab Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/526 Reviewed-by: JesseBot --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b4ecc64..77b45a1 100644 --- a/README.md +++ b/README.md @@ -933,13 +933,17 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Black](https://github.com/psf/black) | [`25.9.0`](https://github.com/psf/black/releases/tag/25.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/black/commit/43dbc2f1ccbd74d4eea1c3615fe854961e6a07b7), [2](https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab), [3](https://github.com/psf/black/commit/8ab9719dcbeedccadf5d458d8139df38fcf84285))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/psf/black/pull/4790), [2](https://github.com/psf/black/pull/4804), [3](https://github.com/psf/black/pull/4825)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | -| JupyterLab | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | +| [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| +| [Pylint](https://github.com/pylint-dev/pylint) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pylint-dev/pylint/blob/b080a21ca0005b13e985456537bb8510919a2672/.github/copilot-instructions.md), [2](https://github.com/pylint-dev/pylint/pull/10350), [3](https://github.com/pylint-dev/pylint/pull/10892))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pylint-dev/pylint/pull/10321), [2](https://github.com/pylint-dev/pylint/pull/10322), [3](https://github.com/pylint-dev/pylint/pull/10930)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [pytermgui](https://github.com/bczsalba/pytermgui) | [`v7.7.4`](https://github.com/bczsalba/pytermgui/releases/tag/v7.7.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bczsalba/pytermgui/issues/167)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` (Python Standard Lib)](https://docs.python.org/3/library/urllib.request.html) | | [ruff](https://docs.astral.sh/ruff/) | [![Request for Help](./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/ruff/blob/bd3150f4e2cdf9278cf329ef12c875a4d30bf601/AGENTS.md), [3](https://github.com/astral-sh/ruff/commit/3ffc8b93d61ae91e2b6daf61c740e7df52448a50))
[![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) | -| [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Textual](https://github.com/Textualize/textual) | [`v2.1.2`](https://github.com/Textualize/textual/releases/tag/v2.1.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md), [2](https://github.com/Textualize/textual/commit/fefec041759b6a48f5c675d388e973a22a0f8b3d), [3](https://github.com/Textualize/textual/pull/6218#issuecomment-3512605833))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Textualize/textual/pull/5681), [2](https://github.com/Textualize/textual/pull/5948), [3](https://github.com/Textualize/textual/pull/6202)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Trio](https://github.com/python-trio/trio) | [`v0.28.0`](https://github.com/python-trio/trio/releases/tag/v0.28.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/python-trio/trio/pull/3145#discussion_r1867663598), [2](https://github.com/python-trio/trio/pull/3197#discussion_r2036484486), [3](https://github.com/python-trio/trio/pull/3394)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | From e4124eb63a71c1eca45216b0d48f16ac2cbe39f4 Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 13:12:58 +0200 Subject: [PATCH 145/356] clean up superfile entry to add breaks and alphabetize alternatives (#536) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/536 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 77b45a1..31db19a 100644 --- a/README.md +++ b/README.md @@ -635,7 +635,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--))| [vifm](https://vifm.info/), [lf](https://github.com/gokcehan/lf), [Midnight Commander](https://midnight-commander.org/) | +| [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/) | ## File Storage From e9a03b1e8207ca2e6279217a467da2abb203e07d Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 13:17:31 +0200 Subject: [PATCH 146/356] clean up terminal multiplexer alternatives (#537) cleans up the duplicated alternatives for the temrinal multiplexers Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/537 --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 31db19a..1df5878 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) + * [Terminal Multiplexer Alternatives](#terminal-multiplexers-alternatives) * [Unified Push Distributors](#unified-push-distributors) * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) @@ -1058,10 +1059,16 @@ This section is strictly for software implementing a core set of UNIX-like utili ### Terminal Multiplexers -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | [dtvm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | -| [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | [dvtm](https://www.brain-dump.org/projects/dvtm/), [mtm](https://github.com/deadpixi/mtm), [GNU Screen](https://www.gnu.org/software/screen/) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [tmux](https://github.com/tmux/tmux) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tmux/tmux/wiki/Contributing#use-of-ai)) | +| [zellij](https://zellij.dev/) | [`1411b2d9`](https://github.com/zellij-org/zellij/commit/1411b2d9adf2d08a6e14f3262493ca9e6d26b219) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zellij-org/zellij/commit/0532949bbdcee5116e91807ddb45a85d78a2aafc)) | + +> [!NOTE] +> #### Terminal Multiplexer Alternatives +> - [dvtm](https://www.brain-dump.org/projects/dvtm/) +> - [GNU Screen](https://www.gnu.org/software/screen/) +> - [mtm](https://github.com/deadpixi/mtm) ## Unified Push Distributors From d889360d48353dc44dff62729d7b978d88db10c1 Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 13:22:58 +0200 Subject: [PATCH 147/356] clean up headings and add TOC for templates (#538) This should help keep it tidy and put the important info up front Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/538 --- NO_AI_REQUEST_TEMPLATE.md | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/NO_AI_REQUEST_TEMPLATE.md b/NO_AI_REQUEST_TEMPLATE.md index ef1c262..a361ed6 100644 --- a/NO_AI_REQUEST_TEMPLATE.md +++ b/NO_AI_REQUEST_TEMPLATE.md @@ -6,6 +6,26 @@ Before you proceed, read our [Tips for Success](#tips-for-success). Would you like to improve these templates or add additional sections? Please feel free to submit a PR to do so and we'll discuss it :) +## Tips for Success + +- Do this in the public forum, issue tracker, discussions, etc. + - Avoid using direct messages (otherwise you'd need to share screenshots of your direct message which could cause friction) + - Avoid using places like discord servers unless that is the ONLY place a project does Issue Triage +- Personalize the template a bit before sending it: + - Add how long you've been using the software. + - Add what the project means to you. +- Add the name of the project in the opening +- Add your name at the bottom. +- Be nice! *We cannot stress this enough*: Be Kind! + - Do not shame or threaten the project you are reaching out to, especially not with this list. +- You may not want to include every section, depending on the culture surrounding the project you are contacting. Use your best judgement. + +# Templates + +* [Appeal to Ethics Template](#appeal-to-ethics-template) +* [Appeal to Code Quality Template](#appeal-to-code-quality-template) +* [Appeal to Fear of Legal Ramfification Template](#appeal-to-fear-of-legal-ramfification-template) + ## Appeal to Ethics Template ```markdown @@ -64,17 +84,3 @@ Feel free to submit a PR to fill this one in. ## Appeal to Fear of Legal Ramfification Template Feel free to submit a PR to fill this one in. - -## Tips for Success - -- Do this in the public forum, issue tracker, discussions, etc. - - Avoid using direct messages (otherwise you'd need to share screenshots of your direct message which could cause friction) - - Avoid using places like discord servers unless that is the ONLY place a project does Issue Triage -- Personalize the template a bit before sending it: - - Add how long you've been using the software. - - Add what the project means to you. -- Add the name of the project in the opening -- Add your name at the bottom. -- Be nice! *We cannot stress this enough*: Be Kind! - - Do not shame or threaten the project you are reaching out to, especially not with this list. -- You may not want to include every section, depending on the culture surrounding the project you are contacting. Use your best judgement. From 98a7e50b42462269ea797dc140642566ad8654fb Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 14:31:16 +0200 Subject: [PATCH 148/356] add betaflight and tidy microcontroller section (#539) closes #342 Signed-off-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/539 Reviewed-by: Max --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1df5878..50235ab 100644 --- a/README.md +++ b/README.md @@ -748,7 +748,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) | |---|:---:|---|---| -| [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) | +| [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) | +| [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) | | [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) | ## Networking From 6e8f680620422a23ff8e1e517faee909b373e3cd Mon Sep 17 00:00:00 2001 From: Ember Date: Sun, 26 Apr 2026 17:12:39 +0200 Subject: [PATCH 149/356] add esphome (#541) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/541 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50235ab..9101bbe 100644 --- a/README.md +++ b/README.md @@ -751,6 +751,7 @@ This is a section for repos that are similar to this one either because they are | [betaflight](https://github.com/betaflight/betaflight) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/search?q=repo%3Abetaflight%2Fbetaflight%20Claude&type=commits))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/betaflight/betaflight/blob/master/.coderabbit.yaml)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [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) | | [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) | +| [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) | ## Networking From 7c3ceda98ef87f0c6011f0b6ba228fab53a4c1e2 Mon Sep 17 00:00:00 2001 From: xarvos Date: Sun, 26 Apr 2026 17:17:17 +0200 Subject: [PATCH 150/356] Remove FreeBSD (#535) FreeBSD doesn't have an AI policy yet, and as of present the README [no longer has the part that was interpreted as they did](https://github.com/freebsd/freebsd-src/commit/fba8bd02340f0111a4f81c538718edcc46554794) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/535 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 9101bbe..f60e1fb 100644 --- a/README.md +++ b/README.md @@ -770,7 +770,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) | |---|:---:|---|---| | [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | -| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src?tab=contributing-ov-file#quality-expectations)) | See below | | [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | | [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | See below | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | From f89d68340936532ef82a80da144ce11ed17aa693 Mon Sep 17 00:00:00 2001 From: Jeffrey Serio Date: Sun, 26 Apr 2026 17:18:34 +0200 Subject: [PATCH 151/356] Add zimfw as alternative plugin manager (#525) I also added the text "See Below" for alternatives to oh-my-zsh and starship. I didn't think that warranted a separate PR. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/525 Reviewed-by: JesseBot --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index f60e1fb..4ec09d2 100644 --- a/README.md +++ b/README.md @@ -504,6 +504,10 @@ This is a section for repos that are similar to this one either because they are | [`spaceship-prompt`](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | +> [!NOTE] +> #### Alternative Plugin Managers +> * [`zimfw`](https://github.com/zimfw/zimfw) + ## Computer Graphics ### 3D Model Viewer From cc30fcf38b724704d960a1aabfd98e160b043eff Mon Sep 17 00:00:00 2001 From: Ember Date: Sun, 26 Apr 2026 17:45:10 +0200 Subject: [PATCH 152/356] add WLED (#543) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/543 Reviewed-by: JesseBot --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4ec09d2..6f9891c 100644 --- a/README.md +++ b/README.md @@ -753,9 +753,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) | |---|:---:|---|---| | [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) | -| [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) | | [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) | -| [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) | +| [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) | +| [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) | ## Networking From 2ac0795ee2dabefc29323bb6775e65583a5ca7fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siarhiej=20Sacho=C5=ADski?= Date: Sun, 26 Apr 2026 17:52:42 +0200 Subject: [PATCH 153/356] Update Window Managers category (#498) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add tainted window managers/compositors: - IceWM - MangoWC - Mir - miracle-wm - Add alternative window managers/compositors: - awesome - bspwm - cwm - dwl - dwm - FVWM - Openbox - river - sway - tinywl - vivarium - wmii - XMonad - Move alternatives out of the table column into a note and split them into separate X11 and Wayland subsections. Co-authored-by: JesseBot Co-authored-by: Kirill Primak Co-authored-by: Max Co-authored-by: perditionecessaria Co-authored-by: Siarhiej Sachoŭski Co-authored-by: perditionecessaria Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/498 Reviewed-by: JesseBot --- README.md | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6f9891c..6f4bebc 100644 --- a/README.md +++ b/README.md @@ -1148,10 +1148,32 @@ This section is strictly for software implementing a core set of UNIX-like utili ## Window Managers -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [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)) | [wmii](https://github.com/0intro/wmii), [dwm](https://dwm.suckless.org/), [awesome](http://awesomewm.org/) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Hyprland](https://github.com/hyprwm/Hyprland) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hyprwm/Hyprland/pull/13749)) | +| [i3](https://i3wm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/i3/i3?tab=contributing-ov-file#ai-contribution-policy), [2](https://github.com/i3/i3/issues/6546)) | +| [IceWM](https://ice-wm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Code Reviews](./badges/ai-code-reviews-purple.svg) ([1](https://github.com/ice-wm/icewm/issues/203#issuecomment-3318901550) | +| [MangoWC](https://github.com/mangowm/mango) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/mangowm/mango/pull/728), [2](https://github.com/mangowm/mango/pull/713), [3](https://github.com/mangowm/mango/pull/818)) | +| [Mir](https://github.com/canonical/mir) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/canonical/mir/blob/4978dbc445c906a5675e9c41c1dd59b84a3cbd18/.github/copilot-instructions.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/canonical/mir/pull/4422)) | +| [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)) | + +> [!NOTE] +> ### Window Managers Alternatives +> #### Wayland +> * [dwl](https://codeberg.org/dwl/dwl) +> * [river](https://codeberg.org/river/river) has [Strict No LLM / No AI Policy](https://codeberg.org/river/river#strict-no-llm-no-ai-policy) +> * [sway](https://github.com/swaywm/sway) +> * [tinywl](https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/70d99eefef44f4c0db1923c5dd89cf7059f5e97a/tinywl) is a "minimum viable product" compositor for learning and experimentation (not for everyday use), see [tinywl limitations](https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/70d99eefef44f4c0db1923c5dd89cf7059f5e97a/tinywl/README.md#limitations) +> * [vivarium](https://github.com/inclement/vivarium) +> #### X11 +> * [awesome](http://awesomewm.org/) +> * [bspwm](https://github.com/baskerville/bspwm) +> * [cwm](https://github.com/leahneukirchen/cwm) +> * [dwm](https://dwm.suckless.org/) +> * [FVWM](https://www.fvwm.org/) +> * [Openbox](https://openbox.org/) +> * [wmii](https://github.com/0intro/wmii) +> * [XMonad](https://github.com/xmonad/xmonad) # Why not LLMs? From 36b4ba7dd71fe2394a6a352b981158f181ad60e7 Mon Sep 17 00:00:00 2001 From: Ember Date: Sun, 26 Apr 2026 17:53:40 +0200 Subject: [PATCH 154/356] put last good commit for WLED into code block (#545) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/545 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f4bebc..3e36c73 100644 --- a/README.md +++ b/README.md @@ -756,7 +756,7 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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) | -| [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) | +| [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) | ## Networking From 1222935174839e024caeddc3245524fa4ac9265d Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 17:56:08 +0200 Subject: [PATCH 155/356] remove references to suckless (#544) closes #540 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/544 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3e36c73..e09a563 100644 --- a/README.md +++ b/README.md @@ -1024,8 +1024,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)) | [9base](https://tools.suckless.org/9base/) | -| [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)) | GNU coreutils, [Busybox](https://busybox.net/), [sbase](https://git.suckless.org/sbase/file/README.html) | +| [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 Services and Daemons @@ -1165,11 +1165,11 @@ This section is strictly for software implementing a core set of UNIX-like utili > * [sway](https://github.com/swaywm/sway) > * [tinywl](https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/70d99eefef44f4c0db1923c5dd89cf7059f5e97a/tinywl) is a "minimum viable product" compositor for learning and experimentation (not for everyday use), see [tinywl limitations](https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/70d99eefef44f4c0db1923c5dd89cf7059f5e97a/tinywl/README.md#limitations) > * [vivarium](https://github.com/inclement/vivarium) +> > #### X11 > * [awesome](http://awesomewm.org/) > * [bspwm](https://github.com/baskerville/bspwm) > * [cwm](https://github.com/leahneukirchen/cwm) -> * [dwm](https://dwm.suckless.org/) > * [FVWM](https://www.fvwm.org/) > * [Openbox](https://openbox.org/) > * [wmii](https://github.com/0intro/wmii) From 6e456f058f496edf5f0e2a8845b61f2867abd817 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Sun, 26 Apr 2026 18:41:40 +0200 Subject: [PATCH 156/356] add grafana (#547) - agents and claude.md in the repo - claude in commits already several months ago - includes llm and "agentic ai" functionality Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/547 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e09a563..83126d9 100644 --- a/README.md +++ b/README.md @@ -986,6 +986,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Grafana](https://grafana.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://grafana.com/docs/grafana-cloud/machine-learning/intro/)) [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/grafana/grafana/blob/main/AGENTS.md), [2](https://github.com/grafana/grafana/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vector](https://vector.dev/) | [`44562f6`](https://github.com/vectordotdev/vector/commit/44562f6b3b8a1682009f0a34dc9fb61f3e668dbf) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vectordotdev/vector/blob/89e5c343c631e36090d2543106b88685d7a1c908/AGENTS.md), [2](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2), [3](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vectordotdev/vector/pull/22735), [2](https://github.com/vectordotdev/vector/pull/25228), [3](https://github.com/vectordotdev/vector/pull/24706)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 569b8a7a8f1c13b5685118bf693af4d41f051c55 Mon Sep 17 00:00:00 2001 From: jessebot Date: Sun, 26 Apr 2026 19:51:58 +0200 Subject: [PATCH 157/356] add booklore (#548) Longtime followers of the repo will remember #110 and #121 which go into how booklore was largely vibecoded, and how the core maintainer ended up temporarily closing the repo and seemingly permanently shutting down the associated website. Well, it's back and this time they have an official permissive AI policy. This PR removes it as an alternative and adds it as tainted. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/548 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 83126d9..1ba7fa2 100644 --- a/README.md +++ b/README.md @@ -382,7 +382,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) | |---|:---:|---|---| -| [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)) | [BookLore](https://booklore.org/)
[Clbre](https://github.com/grimthorpe/clbre), Calibre fork without AI
[Arcalibre](https://codeberg.org/rereading/arcalibre), Calibre hard-fork from before AI | +| [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) | From 550f1fea0aa78cf05ce06cceab3e6a6ef50a2d77 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 26 Apr 2026 21:02:46 +0200 Subject: [PATCH 158/356] Add BOINC (#529) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/529 Reviewed-by: JesseBot --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 1ba7fa2..6616a21 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [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) * [Window Managers](#window-managers) * [Why not LLMs?](#why-not-llms) @@ -1135,6 +1136,14 @@ This section is strictly for software implementing a core set of UNIX-like utili > * [virt-manager]: GUI for managing libvirt machines. Needed for VirtualBox feature parity as QEMU [does not provide one of its own](https://wiki.archlinux.org/title/QEMU#Graphical_front-ends_for_QEMU). > * [GNOME Boxes] +## Volunteer Computing + +Volunteer computing is a system in which someone can donate (excess) compute resources to research projects. + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [BOINC](https://boinc.berkeley.edu/) | [`3e5c24b`](https://github.com/BOINC/boinc/commit/3e5c24b6ed0fdf66ae0e7814c9d9ebc994fb3b01) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BOINC/boinc/commit/95cf8aa6c4cfaa5cb2ead01f6161290f0c1fa2ac), [2](https://github.com/BOINC/boinc/commit/efba32432d383732249b6171acdba3799b02da65), [3](https://github.com/BOINC/boinc/commit/ea17911ab1fe8b5b0167c47c46d9d2297d2eb501))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BOINC/boinc/pull/5914), [2](https://github.com/BOINC/boinc/pull/5918), [3](https://github.com/BOINC/boinc/pull/5954)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## VPN Software | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 6c1ad5e2421c84b2234c743b8ce4116d9dfe493a Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 26 Apr 2026 21:05:30 +0200 Subject: [PATCH 159/356] (Re)-add FreeBSD (#550) It was removed due to #535 because there was no longer any evidence. There is now evidence. @jessebot / @cloudymax, please merge and lock this as fast as possible, to avoid a repeat of the OpenBSD thread. To anyone who wants to stir up trouble: ban LLMs, and then we'll talk. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/550 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6616a21..0916e30 100644 --- a/README.md +++ b/README.md @@ -777,6 +777,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) | |---|:---:|---|---| | [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | +| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | See below | | [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | | [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | See below | | [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | From bce1e89f2bb7a84b341e720791048003e87ccd50 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Mon, 27 Apr 2026 08:14:16 +0200 Subject: [PATCH 160/356] Add Lawnchair (#521) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/521 Reviewed-by: JesseBot --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 0916e30..9a8f6f1 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Accessibility Tools](#accessibility-tools) * [Accounting and Budgeting](#accounting-and-budgeting) * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) + * [App Launchers](#app-launchers) + * [Mobile Launchers](#mobile-launchers) * [Audio](#audio) * [Digital Audio Workstations](#digital-audio-workstations) * [Standalone Digital Mixer](#standalone-digital-mixer) @@ -314,6 +316,13 @@ This is a section for repos that are similar to this one either because they are > - [Grisbi] > - [HomeBank] +## App Launchers +### Mobile Launchers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Lawnchair](https://lawnchair.app) | [`14.0.0-beta3`](https://github.com/LawnchairLauncher/lawnchair/releases/tag/v14.0.0-beta3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LawnchairLauncher/lawnchair/pull/6424), [2](https://github.com/LawnchairLauncher/lawnchair/pull/6458))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LawnchairLauncher/lawnchair/pull/6587)) | [Pie Launcher](https://f-droid.org/en/packages/de.markusfisch.android.pielauncher/), [Ion Launcher](https://f-droid.org/en/packages/one.zagura.IonLauncher/) | + ## Audio ### Digital Audio Workstations From 6e4ee036d888925dd47977da048ccb828684dd34 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Mon, 27 Apr 2026 08:15:48 +0200 Subject: [PATCH 161/356] Add Vite (#552) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/552 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a8f6f1..d1a34ac 100644 --- a/README.md +++ b/README.md @@ -938,6 +938,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [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) | | [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) | +| [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) | ### Lua From 17bd5ddf60173f26088de2bda9308acdaae5b6e8 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Mon, 27 Apr 2026 09:16:25 +0200 Subject: [PATCH 162/356] Add Logitune as tainted in the Peripheral Managers section (#473) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/473 Reviewed-by: JesseBot --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index d1a34ac..0a3eb38 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Operating Systems](#operating-systems) * [Package Managers](#package-managers) * [Package Manager Alternatives](#package-manager-alternatives) + * [Peripheral Managers](#peripheral-managers) * [Password Management](#password-management) * [Programming Languages](#programming-languages) * [Programming Language-Specific Tooling](#programming-language-specific-tooling) @@ -827,6 +828,12 @@ This is a section for repos that are similar to this one either because they are > > If you have any other suggestions for package managers with a "No AI" policy, please feel free to open a PR. +## 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 | From edd7aba1a4c7822e59e8a7b45bce6e9b1411c9c1 Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 09:39:35 +0200 Subject: [PATCH 163/356] add desktop shells (#555) relates to #343 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/555 --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 0a3eb38..3df0de2 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Volunteer Computing](#volunteer-computing) * [VPN Software](#vpn-software) * [Window Managers](#window-managers) + * [Desktop Shells](#desktop-shells) * [Why not LLMs?](#why-not-llms) * [Legal Ramifications](#legal-ramifications) * [Legal Cases And Law Problems](#legal-cases-and-law-problems) @@ -1204,6 +1205,15 @@ Volunteer computing is a system in which someone can donate (excess) compute res > * [wmii](https://github.com/0intro/wmii) > * [XMonad](https://github.com/xmonad/xmonad) +### Desktop Shells + +All-in-one solutions for stitching together a desktop. + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [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) | + # Why not LLMs? Could use some help writing this with concrete receipts on environmental, social, political, and economic/labor harms. From 8ee38dd316ddc088bcc99a90a119b664664bd56c Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 09:50:56 +0200 Subject: [PATCH 164/356] add desktop bars sub-section (for waybar) (#556) based on suggestions in #343 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/556 --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 3df0de2..8d3aafa 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Volunteer Computing](#volunteer-computing) * [VPN Software](#vpn-software) * [Window Managers](#window-managers) + * [Desktop Bars](#desktop-bars) * [Desktop Shells](#desktop-shells) * [Why not LLMs?](#why-not-llms) * [Legal Ramifications](#legal-ramifications) @@ -1205,6 +1206,14 @@ Volunteer computing is a system in which someone can donate (excess) compute res > * [wmii](https://github.com/0intro/wmii) > * [XMonad](https://github.com/xmonad/xmonad) +### Desktop Bars + +Little bar on your desktop, kinda like a "start" bar. + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Waybar](https://github.com/Alexays/Waybar) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Alexays/Waybar/pull/4888), [2](https://github.com/Alexays/Waybar/pull/4964)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ### Desktop Shells All-in-one solutions for stitching together a desktop. From 5b5b174e7c574fddf4bf47c1d96282e2d2b1ebba Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 10:11:57 +0200 Subject: [PATCH 165/356] add raylib and SDL (#557) closes #259 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/557 --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8d3aafa..0fdda16 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [File Storage Alternatives](#file-storage-alternatives) * [Gaming](#gaming) * [Game engines](#game-engines) - * [Alternative game engines](#alternative-game-engines) + * [Alternative game engines](#alternative-game-engines) * [Game managers and Launchers](#game-managers-and-launchers) * [Mod managers](#mod-managers) * [Emulators](#emulators) @@ -893,7 +893,9 @@ 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) | +| [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) | | [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) | ### C++ From 4193d7f8929b096682d34e6619a2097f941cbb16 Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 10:26:25 +0200 Subject: [PATCH 166/356] make the links look a bit more real in the style guide (#558) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/558 --- STYLE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/STYLE.md b/STYLE.md index 2723d84..4f3b4f5 100644 --- a/STYLE.md +++ b/STYLE.md @@ -91,3 +91,4 @@ The above "Alternative(s)" column is for software that has a 1:1 parity or is a [alternativeSoftware]: https://verygoodnotslopware.com "alternative software" [coolSlopFreeProject]: https://verygoodnotslopware2.com "another alternative software" +[alrightSlopFreeProject]: https://veryoknotslopware3.com "another extra alternative software" From 592fd42cd8ef033b7d76dd48cdafbcc99635ee93 Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 10:50:21 +0200 Subject: [PATCH 167/356] add more evidence for vlc (#560) closes #527 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/560 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fdda16..cf769f6 100644 --- a/README.md +++ b/README.md @@ -560,7 +560,7 @@ This is a section for repos that are similar to this one either because they are | [mpv](https://github.com/mpv-player/mpv) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mpv-player/mpv/blob/master/DOCS/contribute.md#ai-assisted-contributions)) | [MPlayer](https://mplayerhq.hu/)
[Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | | [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://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s)) | [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) | ## Developer Tools From 46ad806145dd81639fac2aac0378640417d78f39 Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 11:13:31 +0200 Subject: [PATCH 168/356] minor style fixes for code in last untainted (#561) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/561 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cf769f6..ba0841d 100644 --- a/README.md +++ b/README.md @@ -413,10 +413,10 @@ This is a section for repos that are similar to this one either because they are | [Bazel](https://bazel.build/) | [`9.0.2`](https://github.com/bazelbuild/bazel/releases/tag/9.0.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bazelbuild/bazel/blob/15609ba649286bf889bbb670c00e5b899eba525d/AGENTS.md)) | [Cloud Shake] or See Below | | [Buck2](https://buck2.build/) | [`2025-10-15`](https://github.com/facebook/buck2/releases/tag/2025-10-15/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/buck2/blob/f66124e98a6fc56a90d0a160b8988397ba04a2b2/.claude/CLAUDE.md))| [Cloud Shake] or See Below | | [Just](https://just.systems/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://just.systems/man/en/model-context-protocol.html)) | See Below | -| [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 | +| [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 | | [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 | +| [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] From 1bb52fb7c5f61d63f1969947d3f1f416f0a41b3d Mon Sep 17 00:00:00 2001 From: Isak Date: Mon, 27 Apr 2026 12:20:22 +0200 Subject: [PATCH 169/356] Add ocaml (#562) Co-authored-by: Isak Andersson Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/562 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba0841d..eae9a34 100644 --- a/README.md +++ b/README.md @@ -865,6 +865,7 @@ This is a section for repos that are similar to this one either because they are | [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | | [mruby](https://github.com/mruby/mruby/releases/tag/3.3.0) | [`v3.3.0`](https://github.com/mruby/mruby/releases/tag/3.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mruby/mruby/commit/b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mruby/mruby/pull/6482), [2](https://github.com/mruby/mruby/pull/6572)) | See below | | [Nim](https://nim-lang.org/) | [`e2a3063`](https://github.com/nim-lang/Nim/commit/e2a306355ca179aa256a2cee7a0d3a809538c8b9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nim-lang/Nim/pull/24564), [2](https://github.com/nim-lang/Nim/pull/25429), [3](https://github.com/nim-lang/Nim/pull/25439)) | [Ada](https://www.adaic.org/)? | +| [OCaml](https://ocaml.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ocaml/ocaml/blob/trunk/AI.md), [2](https://github.com/ocaml/ocaml/pull/14702#issue-4186687842)) | [SML](https://smlfamily.github.io/) | | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | From 1be4d4379a8f351e9f5b2c5062987fa25898397a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Siarhiej=20Sacho=C5=ADski?= Date: Mon, 27 Apr 2026 12:21:35 +0200 Subject: [PATCH 170/356] Add polybar as an Alternative for Waybar (#564) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/564 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eae9a34..8fff719 100644 --- a/README.md +++ b/README.md @@ -1215,7 +1215,7 @@ Little bar on your desktop, kinda like a "start" bar. | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Waybar](https://github.com/Alexays/Waybar) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Alexays/Waybar/pull/4888), [2](https://github.com/Alexays/Waybar/pull/4964)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Waybar](https://github.com/Alexays/Waybar) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Alexays/Waybar/pull/4888), [2](https://github.com/Alexays/Waybar/pull/4964)) | [polybar](https://github.com/polybar/polybar) | ### Desktop Shells From 7faf45ad7a1cad3d157c003c912bde086510bfb0 Mon Sep 17 00:00:00 2001 From: Christoph Jean-Luc Schneider Date: Mon, 27 Apr 2026 12:23:44 +0200 Subject: [PATCH 171/356] Add watchexec (#563) Add watchexec to the list. Includes last untainted commit and version, and two alternatives. Disclaimer: i am the author of watfs, which i created specifically because watchexec is slopware now. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/563 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8fff719..cc17e6b 100644 --- a/README.md +++ b/README.md @@ -576,6 +576,7 @@ This is a section for repos that are similar to this one either because they are | [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` | | [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/) | | [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | | [Wild](https://github.com/wild-linker/wild) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [2](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [3](https://github.com/wild-linker/wild/pull/912)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Compiler Tools And Related From bfb44759e39f626226f53d4ed4cbc1e4c6588550 Mon Sep 17 00:00:00 2001 From: xarvos Date: Mon, 27 Apr 2026 12:24:42 +0200 Subject: [PATCH 172/356] Add element, gomuks; add messaging alternatives (#553) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/553 Reviewed-by: JesseBot --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cc17e6b..9ff7877 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) - * [Messaging Alternatives](#messaging-alternatives) + * [Messaging Alternatives by protocols](#messaging-alternatives-by-protocols) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Networking](#networking) * [Networking security tools](#networking-security-tools) @@ -751,17 +751,32 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | +| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) +| [Element Web](https://github.com/element-hq/element-web/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-web/commit/68070b2e9788f0e5396f4c9d532b05e146e6ad60)) +| [Element X Android](https://github.com/element-hq/element-x-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-android/blob/develop/AGENTS.md)) +| [Element X iOS](https://github.com/element-hq/element-x-ios/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-ios/blob/develop/AGENTS.md)) | [Fluxer](https://fluxer.app/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260213205023/https://blog.fluxer.app/how-i-built-fluxer-a-discord-like-chat-app/), [2](https://github.com/fluxerapp/fluxer/blob/refactor/CONTRIBUTING.md#4-understand-the-code-you-submit), [3](https://github.com/fluxerapp/fluxer/issues/435)) | +| [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))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | +| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] -> ### Messaging Alternatives +> ### Messaging Alternatives by protocols > - [matrix] +> - [Cinny](https://github.com/cinnyapp/cinny) (web) +> - [nheko](http://nheko.im/) (desktop, Linux phones) +> - [FluffyChat](https://github.com/krille-chan/fluffychat) (cross-platform) +> - [xmpp](https://xmpp.org/) +> - [Conversations](https://conversations.im/) (android) +> - [Kaidan](https://invent.kde.org/network/kaidan) (cross-platform) +> - IRC clients and servers overall don't seem to have AI-committed code +> - [WeeChat](https://github.com/weechat/weechat): Multi-protocol +> - [Signal](https://signal.org/) ## Microcontroller Tools and Libraries From 688cf49dc093d48d2f1dde78f41a96554e89c87f Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 12:36:56 +0200 Subject: [PATCH 173/356] clean up rust section (#565) alphabetize and remove codeblocks for tainted software Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/565 --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 9ff7877..73fb27b 100644 --- a/README.md +++ b/README.md @@ -999,15 +999,15 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [`c2rust`](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`egui`](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [imgui](https://github.com/imgui-rs/imgui-rs), [relm](https://github.com/antoyo/relm), [iced](https://github.com/iced-rs/iced) | -| [`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. | -| [`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)) | [`iocraft`] (<=0.7.17),
[`cursive`],
[`console`] | -| [`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)) | [`cursive`] and [`console`] | +| [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [iced](https://github.com/iced-rs/iced),
[imgui](https://github.com/imgui-rs/imgui-rs),
[relm](https://github.com/antoyo/relm) | +| [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] | +| [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 | -| [`wgpu`](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [`vulcano`](https://github.com/vulkano-rs/vulkano), [`ash`](https://github.com/ash-rs/ash), [`glow`](https://github.com/grovesnl/glow) | -| [`zbus`](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`zerocopy`](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | +| [zbus](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [zerocopy](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!Note] > @@ -1412,10 +1412,10 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Apache Ant]: https://ant.apache.org [Clojure]: https://clojure.org [Cloud Shake]: https://shakebuild.com/cloud -[`console`]: https://github.com/console-rs/console +[console]: https://github.com/console-rs/console [Contour Terminal]: https://github.com/contour-terminal/contour [COSMIC Terminal]: https://github.com/pop-os/cosmic-term -[`cursive`]: https://github.com/gyscos/cursive +[cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal [Elvish]: https://elv.sh @@ -1433,7 +1433,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial [HomeBank]: https://www.gethomebank.org/ [Idris]: https://www.idris-lang.org/ -[`iocraft`]: https://github.com/ccbrown/iocraft +[iocraft]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java [LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ From f7edb68d8c7cc2a991d239873e28c71ad0e2d99b Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 12:38:26 +0200 Subject: [PATCH 174/356] add missing break for grafana evidence (#566) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/566 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73fb27b..b1cc30e 100644 --- a/README.md +++ b/README.md @@ -1027,7 +1027,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| | [Glitchtip](https://gitlab.com/glitchtip/glitchtip-backend) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.com/glitchtip/glitchtip-backend/-/blob/8c94c95d37f76c1d3adfcdc719968c63afd45a24/AI_POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Grafana](https://grafana.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://grafana.com/docs/grafana-cloud/machine-learning/intro/)) [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/grafana/grafana/blob/main/AGENTS.md), [2](https://github.com/grafana/grafana/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Grafana](https://grafana.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://grafana.com/docs/grafana-cloud/machine-learning/intro/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/grafana/grafana/blob/main/AGENTS.md), [2](https://github.com/grafana/grafana/blob/main/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Uptime Kuma](https://github.com/louislam/uptime-kuma) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/louislam/uptime-kuma/pull/6645)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Vector](https://vector.dev/) | [`44562f6`](https://github.com/vectordotdev/vector/commit/44562f6b3b8a1682009f0a34dc9fb61f3e668dbf) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/vectordotdev/vector/blob/89e5c343c631e36090d2543106b88685d7a1c908/AGENTS.md), [2](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2), [3](https://github.com/vectordotdev/vector/commit/93a9771b1824c848c8efdf7166638226f01f42d2))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/vectordotdev/vector/pull/22735), [2](https://github.com/vectordotdev/vector/pull/25228), [3](https://github.com/vectordotdev/vector/pull/24706)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From c7cbc44c8a0d7e038dd655167af70502e3fffd6a Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 27 Apr 2026 12:41:14 +0200 Subject: [PATCH 175/356] clean up accessibility section (#567) add codeblock backticks to the last untainted commit and fix the missing breaks for alternatives. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/567 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b1cc30e..91431f2 100644 --- a/README.md +++ b/README.md @@ -294,8 +294,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) | |---|:---:|---|---| -| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [v1.52](https://github.com/espeak-ng/espeak-ng/releases/tag/1.52.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/)1, [flite](http://cmuflite.org/) | -| [Nametag](https://github.com/mattogodoy/nametag) | [v0.17.0](https://github.com/mattogodoy/nametag/releases/tag/v0.17.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | +| [espeak-ng](https://github.com/espeak-ng/espeak-ng) | [`v1.52`](https://github.com/espeak-ng/espeak-ng/releases/tag/1.52.0) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/espeak-ng/espeak-ng/pull/2328#pullrequestreview-3559773058), [2](https://github.com/espeak-ng/espeak-ng/pull/2302))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/espeak-ng/espeak-ng/commit/a17b335f9f794f9176bd702ceacb09f34bcb1e16), [2](https://github.com/espeak-ng/espeak-ng/commit/00c9e543c7390c228266de5dcac12e5fb2ca98f9)) | [espeak](https://espeak.sourceforge.net/)1,
[flite](http://cmuflite.org/) | +| [Nametag](https://github.com/mattogodoy/nametag) | [`v0.17.0`](https://github.com/mattogodoy/nametag/releases/tag/v0.17.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattogodoy/nametag/pull/126), [2](https://github.com/mattogodoy/nametag/pull/119), [3](https://github.com/mattogodoy/nametag/pull/70)) | [Monica](https://github.com/monicahq/monica) | > [!Note] > 1 espeak may be considered heavily outdated and very bad from a modern standpoint. From 84f50277afd7ae464c90c8c22d26834ed9324ed9 Mon Sep 17 00:00:00 2001 From: Isak Date: Mon, 27 Apr 2026 13:07:17 +0200 Subject: [PATCH 176/356] Add gerbil (#569) Was actually going to list it first in the alternatives when adding racket, since it has so much similarity, but then I found this so ye. Co-authored-by: Isak Andersson Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/569 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91431f2..0f357a3 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 |---|:---:|---|---| | [.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 | | [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 | +| [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/) | | [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | From e51e30f9ce72eb535db6dd9968cb468020d65f71 Mon Sep 17 00:00:00 2001 From: Isak Date: Mon, 27 Apr 2026 13:08:05 +0200 Subject: [PATCH 177/356] Add racket (#568) Co-authored-by: Isak Andersson Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/568 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f357a3..5b5e8ea 100644 --- a/README.md +++ b/README.md @@ -886,6 +886,7 @@ This is a section for repos that are similar to this one either because they are | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | +| [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | | [Scala](https://scala-lang.org/) | [`v3.3.6-RC1`](https://github.com/scala/scala3/releases/tag/3.3.6-RC1) | [![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)) | See below | | [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 7cd88d316318bd72e5d7807def0fd49b08e9da5b Mon Sep 17 00:00:00 2001 From: NormPlum Date: Tue, 28 Apr 2026 15:33:20 +0200 Subject: [PATCH 178/356] Add Drupal (#576) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/576 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5b5e8ea..51e10b4 100644 --- a/README.md +++ b/README.md @@ -365,6 +365,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) | |---|:---:|---|---| +| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | | [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | | [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | From c3410bca0b597d9e8f06858d42c6c8350a324fbf Mon Sep 17 00:00:00 2001 From: Isak Date: Tue, 28 Apr 2026 15:35:38 +0200 Subject: [PATCH 179/356] Add syncthing (#570) Co-authored-by: Isak Andersson Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/570 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 51e10b4..b8f1586 100644 --- a/README.md +++ b/README.md @@ -668,10 +668,10 @@ This is a section for repos that are similar to this one either because they are | [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)) | | [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] > ### File Storage Alternatives > * [Garage] for S3 compatibility -> * [Syncthing](https://syncthing.net/) for file syncing > * [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver > * [CopyParty](https://github.com/9001/copyparty) for general file sharing > * [Rook/Ceph](https://rook.io/) From 7368c1d201b52c8fdc57a85220956c4574e92e0f Mon Sep 17 00:00:00 2001 From: jessebot Date: Tue, 28 Apr 2026 20:19:00 +0200 Subject: [PATCH 180/356] Add blender (#577) Originally submitted by @lilygruman in #175, but we waited a while to see if they would reverse course. They did not and instead doubled down. More info on where to politely disagree with AI sponsorship in #554. Co-authored by: @lilygruman Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/577 Reviewed-by: Max --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b8f1586..4a08fde 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Computer Graphics](#computer-graphics) - * [3D Model Viewer](#3d-model-viewer) + * [3D Tools](#3d-tools) * [Image Manipulation](#image-manipulation) * [Photography](#photography) * [Video](#video) @@ -525,10 +525,11 @@ This is a section for repos that are similar to this one either because they are ## Computer Graphics -### 3D Model Viewer +### 3D Tools | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Blender](https://www.blender.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devtalk.blender.org/t/ai-contributions-policy/44202), [2](https://github.com/blender/blender/commit/336b5d0de12a438614846961b7961bbf35399eb3), [3](https://github.com/blender/blender/commit/79e02e1405a98884cc8fd5505cc54df2c2dc5d21))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/), [2](https://mastodon.social/@Blender/116482997785333001), [3](https://bsky.app/profile/blender.org/post/3mkkuyq3ijs2q)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [F3D](https://f3d.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/f3d-app/f3d/blob/f908304004003a7fecadcd0b0f20bb772ba3f512/AI_POLICY.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://f3d.app/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Image Manipulation From 05e2ee89d68b08aeb363fab700456b994cde90d2 Mon Sep 17 00:00:00 2001 From: Jens Grassel Date: Wed, 29 Apr 2026 08:43:48 +0200 Subject: [PATCH 181/356] fix Scala last untainted version (#575) I did search the commit history and diffed releases and came to the conclusion that the specified 3.3.6-RC1 may have been a typo. As far as I can see it looks untainted up to 3.8.3-RC1 meaning that the current LTS line (3.3) is [so far] not affected. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/575 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a08fde..ee9a8db 100644 --- a/README.md +++ b/README.md @@ -890,7 +890,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 | -| [Scala](https://scala-lang.org/) | [`v3.3.6-RC1`](https://github.com/scala/scala3/releases/tag/3.3.6-RC1) | [![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)) | 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 | | [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 | | [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 | From d9ed0d224a3dbd4c91aed4ec8096b426ca3b6404 Mon Sep 17 00:00:00 2001 From: Ember Date: Wed, 29 Apr 2026 08:48:25 +0200 Subject: [PATCH 182/356] last good version for headscale (#582) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/582 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee9a8db..f3a0d62 100644 --- a/README.md +++ b/README.md @@ -1191,7 +1191,7 @@ Volunteer computing is a system in which someone can donate (excess) compute res | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [Headscale](https://github.com/juanfont/headscale) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/juanfont/headscale/blob/main/AGENTS.md), [2](https://github.com/juanfont/headscale/tree/main/.claude/agents), [3](https://github.com/juanfont/headscale/pull/3050)) | +| [Headscale](https://github.com/juanfont/headscale) | [`474ea23` (`v0.26.1`)](https://github.com/juanfont/headscale/commit/474ea236d0c6d393dbcf7baa98da240ad20c1b66) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/juanfont/headscale/blob/main/AGENTS.md), [2](https://github.com/juanfont/headscale/tree/main/.claude/agents), [3](https://github.com/juanfont/headscale/pull/3050)) | | [netbird](https://netbird.io) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg) ([1](https://netbird.io/privacy)) | | [nebula](https://github.com/slackhq/nebula) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slackhq/nebula/commit/f8587956babc28da162afaba9861c282dc90a90e)) | | [frp](https://github.com/fatedier/frp) | [`0.48.0`](https://github.com/fatedier/frp/tree/v0.48.0?tab=readme-ov-file) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fatedier/frp/commit/6b1be922e155def020e78aa78f4b796b7a530ea4), [2](https://github.com/fatedier/frp/commit/7cfa546b55ee485240c3a713b01a4923ee6b714c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/fatedier/frp/pull/5234), [2](https://github.com/fatedier/frp/pull/5223), [3](https://github.com/fatedier/frp/pull/5209))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/fatedier/frp?tab=readme-ov-file#sponsors)) | From 7e431c5845b23242e0a341ae097846b3c3a145f8 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 29 Apr 2026 09:02:05 +0200 Subject: [PATCH 183/356] Update Blender (#583) Referenced in [#554](https://codeberg.org/small-hack/open-slopware/issues/554#issuecomment-13966214). Added documentation about their MCP server support. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/583 Reviewed-by: JesseBot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3a0d62..5f49445 100644 --- a/README.md +++ b/README.md @@ -529,7 +529,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Blender](https://www.blender.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devtalk.blender.org/t/ai-contributions-policy/44202), [2](https://github.com/blender/blender/commit/336b5d0de12a438614846961b7961bbf35399eb3), [3](https://github.com/blender/blender/commit/79e02e1405a98884cc8fd5505cc54df2c2dc5d21))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/), [2](https://mastodon.social/@Blender/116482997785333001), [3](https://bsky.app/profile/blender.org/post/3mkkuyq3ijs2q)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Blender](https://www.blender.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.blender.org/lab/mcp-server/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devtalk.blender.org/t/ai-contributions-policy/44202), [2](https://github.com/blender/blender/commit/336b5d0de12a438614846961b7961bbf35399eb3), [3](https://github.com/blender/blender/commit/79e02e1405a98884cc8fd5505cc54df2c2dc5d21))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://www.blender.org/press/anthropic-joins-the-blender-development-fund-as-corporate-patron/), [2](https://mastodon.social/@Blender/116482997785333001), [3](https://bsky.app/profile/blender.org/post/3mkkuyq3ijs2q)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [F3D](https://f3d.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/f3d-app/f3d/blob/f908304004003a7fecadcd0b0f20bb772ba3f512/AI_POLICY.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://f3d.app/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ### Image Manipulation From a6fc2ba935941f9c921603059805ece1f4e43eeb Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 29 Apr 2026 12:46:31 +0200 Subject: [PATCH 184/356] Move Rook and Juicefs to tainted, provide alternatives (#584) Both allow copilot reviews. Also added some alternatives that are clean (for now): OpenEBS - block storage k8s-csi-s3 - S3-backed K8S CSI driver (not as fast as Juicefs but it at least enables the same flows) Co-authored-by: cloudymax Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/584 Reviewed-by: JesseBot --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5f49445..1de1880 100644 --- a/README.md +++ b/README.md @@ -664,18 +664,20 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [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))| | [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))| | [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)) | | [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] > ### File Storage Alternatives -> * [Garage] for S3 compatibility -> * [JuiceFS](https://juicefs.com/en/) for the NFS mounts and K8s CSI driver > * [CopyParty](https://github.com/9001/copyparty) for general file sharing -> * [Rook/Ceph](https://rook.io/) +> * [Garage] for S3 compatibility +> * [k8s-csi-s3](https://github.com/yandex-cloud/k8s-csi-s3) S3-backed k8s CSI +> * [OpenEBS](https://github.com/openebs/openebs) for block storage > > For MinIO: > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. From 859abd1f2d386e80a4c0454d3b535304e93004b3 Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 29 Apr 2026 12:50:20 +0200 Subject: [PATCH 185/356] add note that I want to get rid of developer tools section (#586) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/586 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 1de1880..41d56f2 100644 --- a/README.md +++ b/README.md @@ -566,6 +566,9 @@ This is a section for repos that are similar to this one either because they are ## 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) | |---|:---:|---|---| | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | From e325206a544e82645ab5dca5051f231744477e85 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Wed, 29 Apr 2026 12:51:51 +0200 Subject: [PATCH 186/356] Add cmark (#573) Added '(md to html)' beside Markdown.pl because cmark can also handle groff man, LaTeX and others which Markdown.pl does not. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/573 Reviewed-by: JesseBot --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 41d56f2..0be5f8c 100644 --- a/README.md +++ b/README.md @@ -597,6 +597,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) | | [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 c8b49c3c25aa68c3087098fd427a0ffaad91e79d Mon Sep 17 00:00:00 2001 From: micdan5 Date: Wed, 29 Apr 2026 12:55:11 +0200 Subject: [PATCH 187/356] Add LocalSend (#579) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/579 Reviewed-by: JesseBot --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 0be5f8c..cb564ef 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Managers](#file-managers) * [File Storage](#file-storage) + * [File Transferring](#file-transferring) * [File Storage Alternatives](#file-storage-alternatives) * [Gaming](#gaming) * [Game engines](#game-engines) @@ -686,6 +687,11 @@ This is a section for repos that are similar to this one either because they are > For MinIO: > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. +## File Transferring +| 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)) | [PairDrop](https://pairdrop.net/#about), [Sharing](https://github.com/Ammar64/Sharing), [LocalShare](https://github.com/defname/LocalShare) | + ## Gaming ### Game engines From ca62448f42390fd3c18c707e123d15a7ab5c699f Mon Sep 17 00:00:00 2001 From: jessebot Date: Wed, 29 Apr 2026 13:02:36 +0200 Subject: [PATCH 188/356] start emptying out the developer tools section (#587) - adds breaks to LocalSend alternatives - moves rsync to file transfers section - moves nextest to rust libs section - fix a TOC wrong line typo Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/587 --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cb564ef..8fa10c3 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Calendar Mobile Clients](#calendar-mobile-clients) * [File Managers](#file-managers) * [File Storage](#file-storage) - * [File Transferring](#file-transferring) * [File Storage Alternatives](#file-storage-alternatives) + * [File Transferring](#file-transferring) * [Gaming](#gaming) * [Game engines](#game-engines) * [Alternative game engines](#alternative-game-engines) @@ -579,8 +579,6 @@ This is a section for repos that are similar to this one either because they are | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | | [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [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` | -| [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/) | | [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | | [Wild](https://github.com/wild-linker/wild) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [2](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [3](https://github.com/wild-linker/wild/pull/912)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | @@ -688,9 +686,11 @@ This is a section for repos that are similar to this one either because they are > MinIO no longer maintains open source software so the entry is just for their old FOSS presence. ## File Transferring + | 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)) | [PairDrop](https://pairdrop.net/#about), [Sharing](https://github.com/Ammar64/Sharing), [LocalShare](https://github.com/defname/LocalShare) | +| [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) | +| [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/) | ## Gaming @@ -1019,6 +1019,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [iced](https://github.com/iced-rs/iced),
[imgui](https://github.com/imgui-rs/imgui-rs),
[relm](https://github.com/antoyo/relm) | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | +| [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | | [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | From e5f05638a2ed6a0b41a160202ad8aa1b2b346e5d Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 29 Apr 2026 13:24:11 +0200 Subject: [PATCH 189/356] tag me specifically if something goes wrong (#588) This mod account will be taking over the bulk of this repo management going forward to avoid harassment towards individual core maintainers. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/588 --- 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 b12ab38..f18403d 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -34,7 +34,7 @@ Failure to do so will first result in a one time warning and future offenses wil # On handling rude comments in this repo specifically -If you see someone behaving in appropriately, do not feed their behavior. Tag an admin (@jessebot or @cloudymax) instead. They will handle it. +If you see someone behaving in appropriately, do not feed their behavior. Tag @vleermuis-admin instead. They will handle it. ## Strike system From 2bc01a060ef8386763fb5c51717029118a2df75a Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 29 Apr 2026 13:26:37 +0200 Subject: [PATCH 190/356] make it more clear to only provide the commit hash or the version, but not both (#589) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/589 --- STYLE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/STYLE.md b/STYLE.md index 4f3b4f5..1ab3fde 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,8 +16,8 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) *or* [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [coolSlopFreeProject] | -| [formallyOKSoftware](https://linktofinesoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) *or* [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [alrightSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.com) | [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [coolSlopFreeProject] | +| [formallyOKSoftware](https://linktofinesoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [alrightSlopFreeProject] | **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): From 910ce8b278cfa7b175e7f0efc649709844106d88 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 29 Apr 2026 13:28:21 +0200 Subject: [PATCH 191/356] add code backticks to example project in social media section (#590) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/590 --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 308361f..ebbeff6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -82,4 +82,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. From 237a759b9c9d5e1c83584054b7382f0ef54aba1b Mon Sep 17 00:00:00 2001 From: Gus Libens Date: Wed, 29 Apr 2026 17:25:05 +0200 Subject: [PATCH 192/356] Add PieFed as Lemmy alternative (#317) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/317 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fa10c3..fcbff52 100644 --- a/README.md +++ b/README.md @@ -1061,7 +1061,7 @@ This is for both social media websites and apps. | [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 | | [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | -| [Lemmy](https://join-lemmy.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Lemmy](https://join-lemmy.org/) | [PieFed](https://join.piefed.social/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | > [!Note] > #### Generic social media server alternatives From c89c20d59f4548f0519016ecd8f66afb35a34b99 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Wed, 29 Apr 2026 17:29:18 +0200 Subject: [PATCH 193/356] fixing lemmy and piefed entry (#592) Missed the swapped columns on the approval, so fixing it now :) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/592 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcbff52..b9f9973 100644 --- a/README.md +++ b/README.md @@ -1061,7 +1061,7 @@ This is for both social media websites and apps. | [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 | | [Misskey](https://misskey-hub.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/misskey-dev/misskey/commit/2fa6ecc7efaaf9b9d189cdd3a3ebbb9171c86078)) | See below | -| [Lemmy](https://join-lemmy.org/) | [PieFed](https://join.piefed.social/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://join-lemmy.org/docs/code_of_conduct.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [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 From d1240da8eeb3bcb56e5745dfd635e03ab1a03667 Mon Sep 17 00:00:00 2001 From: Christopher Araujo Date: Thu, 30 Apr 2026 08:15:43 +0200 Subject: [PATCH 194/356] Add Notepad++ for Mac (#595) Hello! I wanted to make a small PR to add `Notepad++ for Mac` to the list of editors. I found out about it from a [MacRumors article](https://www.macrumors.com/2026/04/29/notepad-plus-plus-editor-comes-to-mac/) and tried it out. I was curious and had a look at the GitHub repository. Unfortunately, I discovered that majority of the commits have Claude as a contributor. I've added the oldest and newest commits that have Claude as a co-contributor as evidence, as well as listed CotEditor as an alternative. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/595 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9f9973..b3e9931 100644 --- a/README.md +++ b/README.md @@ -616,6 +616,7 @@ This is a section for repos that are similar to this one either because they are | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | +| [Notepad++ for Mac](https://notepad-plus-plus-mac.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | | [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 | | [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 | From f054fb786a34e5df5136a9c219043bcb579e4305 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 30 Apr 2026 11:35:56 +0200 Subject: [PATCH 195/356] Add eza, LSDeluxe, and zoxide (#585) Part of #55. New category: "Filesystem Navigation". Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/585 Reviewed-by: Admin --- README.md | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b3e9931..1403888 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,11 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [E-mail Desktop Clients](#e-mail-desktop-clients) * [E-mail Mobile Clients](#e-mail-mobile-clients) * [Calendar Mobile Clients](#calendar-mobile-clients) - * [File Managers](#file-managers) * [File Storage](#file-storage) * [File Storage Alternatives](#file-storage-alternatives) * [File Transferring](#file-transferring) + * [Filesystem Navigation](#filesystem-navigation) + * [File Managers](#file-managers) * [Gaming](#gaming) * [Game engines](#game-engines) * [Alternative game engines](#alternative-game-engines) @@ -657,12 +658,6 @@ 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 Managers - -| 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/) | - ## File Storage | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -693,6 +688,20 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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 + +| 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) | +| [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)) | + +### File Managers + +| 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/) | + ## Gaming ### Game engines From 0e55c69e7bb9bdba8f90b5c98d6147546adbe78d Mon Sep 17 00:00:00 2001 From: srd424 Date: Thu, 30 Apr 2026 11:40:04 +0200 Subject: [PATCH 196/356] Update zulip (#600) Zulip's latest announcement mentions AI tool use, starts out being strict and critical without announcing a full ban, but then sadly deterioriates into praise and announcing increased tool use, to my mind. I'm not entirely awake and caffeinated, but I think this policy / statement of intent is liberal enough to count as "permissive"? But I'm open to correction! Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/600 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1403888..906a20d 100644 --- a/README.md +++ b/README.md @@ -787,7 +787,7 @@ This is a section for repos that are similar to this one either because they are | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | | [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| -| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | +| [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] > ### Messaging Alternatives by protocols From b6121c0886cf007e7332198f4ce3202b29123b56 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Thu, 30 Apr 2026 11:57:19 +0200 Subject: [PATCH 197/356] Add KISS Launcher (#578) Relates to https://codeberg.org/small-hack/open-slopware/pulls/521#issuecomment-13751882. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/578 Reviewed-by: Admin --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 906a20d..8394568 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) * [App Launchers](#app-launchers) * [Mobile Launchers](#mobile-launchers) + * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) * [Digital Audio Workstations](#digital-audio-workstations) * [Standalone Digital Mixer](#standalone-digital-mixer) @@ -324,9 +325,16 @@ This is a section for repos that are similar to this one either because they are ## App Launchers ### Mobile Launchers -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [Lawnchair](https://lawnchair.app) | [`14.0.0-beta3`](https://github.com/LawnchairLauncher/lawnchair/releases/tag/v14.0.0-beta3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LawnchairLauncher/lawnchair/pull/6424), [2](https://github.com/LawnchairLauncher/lawnchair/pull/6458))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LawnchairLauncher/lawnchair/pull/6587)) | [Pie Launcher](https://f-droid.org/en/packages/de.markusfisch.android.pielauncher/), [Ion Launcher](https://f-droid.org/en/packages/one.zagura.IonLauncher/) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [KISS](https://kisslauncher.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/Neamar/KISS/pull/2280#discussion_r1595740395)) | +| [Lawnchair](https://lawnchair.app) | [`14.0.0-beta3`](https://github.com/LawnchairLauncher/lawnchair/releases/tag/v14.0.0-beta3) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/LawnchairLauncher/lawnchair/pull/6424), [2](https://github.com/LawnchairLauncher/lawnchair/pull/6458))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LawnchairLauncher/lawnchair/pull/6587)) | + +> [!note] +> #### Mobile Launchers Alternatives +> +> - [Ion Launcher](https://f-droid.org/en/packages/one.zagura.IonLauncher/) +> - [Pie Launcher](https://f-droid.org/en/packages/de.markusfisch.android.pielauncher/) ## Audio From 2c1cd2a03b0f4f0c58f65398ff0ebd157ff3595f Mon Sep 17 00:00:00 2001 From: Ember Date: Thu, 30 Apr 2026 16:47:40 +0200 Subject: [PATCH 198/356] add ardour (#599) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/599 Reviewed-by: Admin --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8394568..29905ef 100644 --- a/README.md +++ b/README.md @@ -342,8 +342,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) |---|:---:|---|---| +| [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | -| [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [Ardour](https://ardour.org/)1 | +| [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | > [!Note] > 1: Status as a *replacement* may be debatable. From 87bf98060078a35ec0c86692569a19818540def7 Mon Sep 17 00:00:00 2001 From: Steven Sherry Date: Fri, 1 May 2026 08:13:04 +0200 Subject: [PATCH 199/356] Add Elixir (#593) I was unable to find any definitive evidence of AI in previous commits or PRs with simple search terms, however the lead maintainer has been very pro-generative AI in his online presence in the last few years so I can't be certain that any commits prior to the AI-friendly policy are LLM-free Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/593 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 29905ef..38f208f 100644 --- a/README.md +++ b/README.md @@ -908,6 +908,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [.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 | | [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/) | | [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | From c0a135cac48c54f541577bc988d54ee9cffce630 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Fri, 1 May 2026 08:14:36 +0200 Subject: [PATCH 200/356] Add SSL/TLS libraries (#597) For MbedTLS, currently the last untained version is not set because while there are PR's with AI code review bots, none are yet merged so the codebase is untainted (for now) Also regarding TLS library alternatives, MbedTLS and WolfSSL support embedded and old operating system edge cases while GnuTLS is mostly for the desktop land (Unix/Windows only), but both also work on Unix/Windows as a alternative to those libraries so it's worth noting here Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/597 Reviewed-by: Admin --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 38f208f..84a5617 100644 --- a/README.md +++ b/README.md @@ -946,9 +946,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | [GnuTLS] | +| [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | [GnuTLS] | | [raylib](https://github.com/raysan5/raylib) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/raysan5/raylib/discussions/5712#discussioncomment-16411612)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [*See systemd section*](#system-services-and-daemons) | [basu](https://sr.ht/~emersion/basu/) | | [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] | | [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) | ### C++ @@ -1467,6 +1470,7 @@ 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 0539d974e3be509e587fddd203a1967bee0e64e8 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Fri, 1 May 2026 08:29:39 +0200 Subject: [PATCH 201/356] Add Luanti (#221) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/221 Reviewed-by: JesseBot Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84a5617..d21a36b 100644 --- a/README.md +++ b/README.md @@ -721,6 +721,7 @@ This is a section for repos that are similar to this one either because they are | [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) | | [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 b5249e04f9c3e316731eb6ccb3cc14b93f926bbe Mon Sep 17 00:00:00 2001 From: micdan5 Date: Fri, 1 May 2026 16:18:56 +0200 Subject: [PATCH 202/356] Add FeurStagram (#598) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Well, there are no commits where the AI sloppers _(as I personally refer to AI "assistants")_ are featured so I assume that the entire codebase is tainted with AI-generated code from the very beginning. > For the smali part I get a huge help from Claude Opus and Claude Sonnet :) And yeah, since I am creating a new section for frontends I'm not sure if it's properly implemented. _Edit:_ ![Part of a thread in the Privacy Guides forum where the user "Onscreen5341" saying "I'm unable to make a quality reveiw of the code, but it was written with an LLM from the comment I would guess Claude Opus. The author said he used an LLM, he did not say uso much he used it or if it is completely generated with an LLM." Then the user "micdan" responds with "Would you mind linking the source of it? I may need to add it up to Open Slopware then. 😹 (shrug Kaomoji)". Then" Onscreen5341" responds with "His Discord server in the 'help' channel."](/attachments/41ddcb8e-4b5a-4b7f-b2a3-974e566075b8) I don't have Discord, so I can't check that up. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/598 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d21a36b..3f982ff 100644 --- a/README.md +++ b/README.md @@ -1100,6 +1100,7 @@ This is for both social media websites and apps. |---|:---:|---|---| | [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) | ## System Base From 52e842409dad53e56aba645bbd8affec47a61b26 Mon Sep 17 00:00:00 2001 From: leorjorge Date: Fri, 1 May 2026 16:23:29 +0200 Subject: [PATCH 203/356] add RStudio to editors/IDEs (#604) Hello, this is my first PR here, so please let me know if there are any mistakes. I'm adding RStudio to the list. It is the most widely used IDE for the R language for statistics/data science. Its developer, [Posit](https://posit.co/), has pivoted to AI very hard. I added a minimum set of examples here, but can expand if needed, as their website is covered in hype for AI coding. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/604 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3f982ff..045d024 100644 --- a/README.md +++ b/README.md @@ -629,6 +629,7 @@ This is a section for repos that are similar to this one either because they are | [Notepad++ for Mac](https://notepad-plus-plus-mac.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | | [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](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [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.) | From 4590139fca9bf3291e99dfa85949d90cd2d21fc1 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:28:22 +0200 Subject: [PATCH 204/356] add git for windows as tainted (#612) originally submitted by @0x403 in #237 Co-authored-by: @0x403 Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/612 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 045d024..d13501a 100644 --- a/README.md +++ b/README.md @@ -332,7 +332,7 @@ This is a section for repos that are similar to this one either because they are > [!note] > #### Mobile Launchers Alternatives -> +> > - [Ion Launcher](https://f-droid.org/en/packages/one.zagura.IonLauncher/) > - [Pie Launcher](https://f-droid.org/en/packages/de.markusfisch.android.pielauncher/) @@ -1193,6 +1193,7 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | +| [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | From 4a8112f0c0f9a87146cec149cfba862806e10cbf Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:33:49 +0200 Subject: [PATCH 205/356] add libGDX (#613) - closes #324 - originally submitted by @0x403 in #241 Co-authored-by: @0x403 Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/613 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d13501a..cdad171 100644 --- a/README.md +++ b/README.md @@ -992,6 +992,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [Gradle](https://github.com/gradle/gradle) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gradle/gradle/blob/master/AI_POLICY.md)) | [Apache Ant] | +| [libGDX](https://libgdx.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.gamedev.place/@badlogic/115697365956020092), [2](https://github.com/libgdx/libgdx/commit/3335e7598fb061cadc6472e8f4dffe811d438ab2)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Maven](https://github.com/apache/maven) | [3.9.12](https://github.com/apache/maven/tree/maven-3.9.12) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/apache/maven/pull/11632)) | [Apache Ant] | ### JavaScript And TypeScript From fe791a81cf5f3f35be3300905df2e671b9d7fccd Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:39:00 +0200 Subject: [PATCH 206/356] add BananyBlog (#614) originally added by @lejun in #273 Co-authored-by: @lejun Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/614 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cdad171..053d492 100644 --- a/README.md +++ b/README.md @@ -376,6 +376,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | | [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | From 531ca449a41456240abb69b82461b871eb0796fc Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 11:45:40 +0200 Subject: [PATCH 207/356] add BRouter, GraphHopper, and OSRM (#615) originally submitted by @lejun in #321 Co-authored-by: @lejun Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/615 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 053d492..5be54af 100644 --- a/README.md +++ b/README.md @@ -771,14 +771,18 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| +| [BRouter](https://brouter.de/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jonnybbb/brouter/pull/5)) | | [CoMaps](https://www.comaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/comaps/Governance/src/branch/main/AI_USAGE.md)) | +| [GraphHopper](https://github.com/graphhopper/graphhopper) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/graphhopper/graphhopper/pull/3333)) | | [Organic Maps](https://organicmaps.app/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/organicmaps/organicmaps/blob/master/.github/copilot-instructions.md)) | | [OsmAnd](https://osmand.net/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/osmandapp/OsmAnd/blob/master/AGENTS.md)) | +| [OSRM](https://project-osrm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Project-OSRM/osrm-backend/blob/master/AGENT.md)) | | [Vespucci](https://vespucci.io/) | [`c1053f9`](https://github.com/MarcusWolschon/osmeditor4android/commit/c1053f9a8612937b56d0ae5802cfeae35943f911) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MarcusWolschon/osmeditor4android/blob/e6aea69c6f14fad37d1fbb9c09bc7b19d4c4d452/README.md#aillm-generated-contributions)) | > [!Note] > ### Mapping Alternatives > * [Navit](https://github.com/navit-gps/navit) for car navigation +> * [OpenRouteService](https://openrouteservice.org/) > * [Open Street Map](https://www.openstreetmap.org) provides lists of clients on its [wiki](https://wiki.openstreetmap.org/wiki/Software). For example, other mobile clients can be found on the [Android](https://wiki.openstreetmap.org/wiki/Android) page. ## Messaging From 657e5f0ec8795032e1d9a2a0d36cadc2299c95ef Mon Sep 17 00:00:00 2001 From: Olivia Date: Sat, 2 May 2026 11:50:32 +0200 Subject: [PATCH 208/356] Replace lutris issue link with archive.org (#611) The issue has been deleted, or at least 404s now Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/611 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5be54af..31e0ff6 100644 --- a/README.md +++ b/README.md @@ -735,7 +735,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [Heroic](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) | [`2.20.1`](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v2.20.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/5373)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help)| -| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | +| [Lutris](https://github.com/lutris/lutris) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://web.archive.org/web/20260312043526/https://github.com/lutris/lutris/issues/6506#issuecomment-3976118573), [2](https://github.com/lutris/lutris/discussions/6530)) | [Bottles](https://github.com/bottlesdevs/Bottles) | | [umu](https://github.com/Open-Wine-Components/umu-launcher) | [`1.3.0`](https://github.com/Open-Wine-Components/umu-launcher/releases/tag/1.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Open-Wine-Components/umu-launcher/commit/424ffbf63c64107b87d948a7bbbea64d419bce4d), [2](https://github.com/Open-Wine-Components/umu-launcher/commit/12eb390fee3821fa3260ea856006e39ed85b26ae)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ### Mod managers From 9b17bdc9d92808af2a32fb792778679256a47f22 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 12:07:11 +0200 Subject: [PATCH 209/356] add Dentrite, matrix-rust-sdk; remove signal; update messaging section to split clients and servers (#616) - adds originally authored by @lejun in #399 Still ok with someone doing further work to split organize these sections better and if they'd like, to add a bridges section. Co-authored-by: @lejun Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/616 --- README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 31e0ff6..87eae96 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,8 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mapping](#mapping) * [Alternatives](#mapping-alternatives) * [Messaging](#messaging) - * [Messaging Alternatives by protocols](#messaging-alternatives-by-protocols) + * [Messaging Servers](#messaging-servers) + * [Messaging Clients](#messaging-clients) * [Microcontroller Tools and Libraries](#microcontroller-tools-and-libraries) * [Networking](#networking) * [Networking security tools](#networking-security-tools) @@ -787,11 +788,24 @@ This is a section for repos that are similar to this one either because they are ## Messaging +### Messaging Servers + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | +| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | + +> [!Note] +> #### Messaging Server Alternatives by protocols +> - IRC servers overall don't seem to have AI-committed code + + +### Messaging Clients + | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| | [ArcaneChat](https://arcanechat.me/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://fosstodon.org/@arcanechat/116296135536352968))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://fosstodon.org/@arcanechat/116292382977465468)) | | [Converse.js](https://conversejs.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/conversejs/converse.js/blob/master/AGENTS.md)) | -| [Dendrite](https://github.com/element-hq/dendrite/) | [`v0.14.1`](https://github.com/element-hq/dendrite/commit/40bef6a423d91fff69afb1cfb926d0b1612f38ec) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/dendrite/commit/7f4ba1f6ebeffc709e5be97930122711cb8c9d63)) | [Delta Chat](https://delta.chat/en/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/deltachat/deltachat-android/pull/4249))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/deltachat/deltachat-android/pull/4255), [2](https://github.com/deltachat/deltachat-android/pull/4257), [3](https://github.com/deltachat/deltachat-android/pull/4259)) | [Element Web](https://github.com/element-hq/element-web/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-web/commit/68070b2e9788f0e5396f4c9d532b05e146e6ad60)) | [Element X Android](https://github.com/element-hq/element-x-android/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/element-x-android/blob/develop/AGENTS.md)) @@ -801,22 +815,20 @@ This is a section for repos that are similar to this one either because they are | [Mattermost](https://mattermost.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mattermost/mattermost/commit/e7f021de3683c72faf99fa82427304f3aae5bbf5))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.mattermost.com/administration-guide/configure/agents-admin-guide.html))| | [Psi](https://psi-im.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psi-im/psi/issues/793#issuecomment-2118897607)) | | [Sharkord](https://sharkord.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Sharkord/sharkord/issues/85), [2](https://github.com/Sharkord/sharkord/blob/fd637b6f369b54f2726cd78603b6147d6fe45a29/.gitignore#L2)) | -| [Synapse](https://github.com/element-hq/synapse) | [`b4282b8`](https://github.com/element-hq/synapse/commit/b4282b82d0dbc3ba34954d442a581ad9331e465a) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/element-hq/synapse/commit/539f708f32af4cc01f6d82f1bb0069ff38e93593), [2](https://github.com/element-hq/synapse/commit/f545aa4f33377f2c68aad7032afbe5a395c35cbc), [3](https://github.com/element-hq/synapse/commit/40d699b1d4d7855ffb892723eac90cd34f22aa6f)) | [Telegram](https://telegram.org)| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/telegramdesktop/tdesktop/commit/983bd1a57bfd9a88bb0e17b51103c5e6cf1e3f24))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://telegram.org/blog/ai-editor-mighty-polls-and-more))| | [Zulip](https://zulip.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://blog.zulip.com/2026/04/27/zulip-12-0-released/#ai-tools-are-changing-our-development-process), [2](https://github.com/zulip/zulip/blob/main/.claude/CLAUDE.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/zulip/zulip/pull/32895)) | > [!Note] -> ### Messaging Alternatives by protocols +> #### Messaging Client Alternatives by protocols > - [matrix] > - [Cinny](https://github.com/cinnyapp/cinny) (web) -> - [nheko](http://nheko.im/) (desktop, Linux phones) > - [FluffyChat](https://github.com/krille-chan/fluffychat) (cross-platform) +> - [nheko](http://nheko.im/) (desktop, Linux phones) > - [xmpp](https://xmpp.org/) > - [Conversations](https://conversations.im/) (android) > - [Kaidan](https://invent.kde.org/network/kaidan) (cross-platform) -> - IRC clients and servers overall don't seem to have AI-committed code > - [WeeChat](https://github.com/weechat/weechat): Multi-protocol -> - [Signal](https://signal.org/) +> - IRC clients overall don't seem to have AI-committed code ## Microcontroller Tools and Libraries @@ -1050,6 +1062,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [iced](https://github.com/iced-rs/iced),
[imgui](https://github.com/imgui-rs/imgui-rs),
[relm](https://github.com/antoyo/relm) | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | +| [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162)), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | From 9dd896cf5f4c7854e2b7c1c0abc0565923e76a3e Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 12:19:58 +0200 Subject: [PATCH 210/356] add libresprite (#617) originally added by @0x403 in #254 Co-authored-by: @0x403 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/617 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87eae96..f7945e1 100644 --- a/README.md +++ b/README.md @@ -551,6 +551,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [ImageMagick](https://github.com/ImageMagick/ImageMagick) | [`v7.1.2.16`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.2-16) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ImageMagick/ImageMagick/discussions/8615#discussioncomment-16125182)) | [GraphicsMagick](http://www.graphicsmagick.org/), [vips](https://github.com/libvips/libvips) | | [excalidraw](https://github.com/excalidraw/excalidraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | +| [LibreSprite](https://libresprite.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/LibreSprite/LibreSprite/issues/601#issuecomment-4183562152))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/LibreSprite/LibreSprite/blob/a678ddf8952a8be435bbd90da5071ab83aaf6183/data/scripts/examples/ai.js)) | [Krita](https://krita.org/de/) | | [tldraw](https://github.com/tldraw/tldraw) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/excalidraw/excalidraw/blob/2b0e4c9623e44b3f2f7d02d532f23128e988cb5d/CLAUDE.md)) | [LibreOffice Draw] | | [draw.io](https://github.com/jgraph/drawio-desktop) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jgraph/drawio-desktop/blob/f1bcba4ef7f712a8ffd1efb73f4cbc699b25e998/CLAUDE.md)) | [LibreOffice Draw] From 6dcd1872d3039c356acc6658bdc35b3963b4a325 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sat, 2 May 2026 12:39:27 +0200 Subject: [PATCH 211/356] Refactor Operating Systems section; add Ubuntu (#571) * The operating systems section has been split into BSD-based, GNU/Linux-based, Kernels, and Other OSes * Added Ubuntu Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/571 Reviewed-by: Admin --- README.md | 70 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index f7945e1..8d73342 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,13 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Networking security tools](#networking-security-tools) * [Networking security tool alternatives](#networking-security-tool-alternatives) * [Operating Systems](#operating-systems) + * [BSD-based](#bsd-based) + * [Alternative BSD-based operating systems](#alternative-bsd-based-operating-systems) + * [GNU/Linux-based](#gnu-linux-based) + * [Alternative GNU/Linux-based operating systems](#alternative-gnu-linux-based-operating-systems) + * [Kernels](#kernels) + * [Other](#other-operating-systems) + * [Other alternative operating systems](#other-alternative-operating-systems) * [Package Managers](#package-managers) * [Package Manager Alternatives](#package-manager-alternatives) * [Peripheral Managers](#peripheral-managers) @@ -855,34 +862,59 @@ This is a section for repos that are similar to this one either because they are ## Operating Systems -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | See below | -| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | See below | -| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | -| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | See below | -| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://lwn.net/Articles/1041694/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst)) | See below | -| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | See below | -| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | -| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | See below | -| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | -| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +> [!NOTE] +> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. + +### BSD-based + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [DragonFlyBSD](https://www.dragonflybsd.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitweb.dragonflybsd.org/?p=dragonfly.git;a=commit;h=41fb76421dce54f90c9cfb9f4f7e2993ae795266)) | +| [FreeBSD](https://freebsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/freebsd/freebsd-src/commit/6495dafd58b94a44fc9bc966ef47d6bc6916f5b9), [2](https://github.com/freebsd/freebsd-src/commit/1644e2ffd2640fa3e2c191ceaf048a5fc8399493), [3](https://github.com/freebsd/freebsd-src/commit/e1cff854997884ed9b7251d409d9c9c7a025606d))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/freebsd/freebsd-src/commit/943a05528494b2f4585541089606796476fb229e), [2](https://github.com/freebsd/freebsd-src/commit/25cc459286a02b646751541ccde5a33319471c73), [3](https://github.com/freebsd/freebsd-src/commit/18b7115cba2f698909a4801dc2cc1b04b1f4f210)) | +| [MidnightBSD](http://www.midnightbsd.org/) | [`ed4b0a5`](https://github.com/MidnightBSD/src/commit/ed4b0a5d41d2dcdd89a3795713fd5c8f91c39533) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/MidnightBSD/src/blob/ea6d4e4fb944e0f3a76dd9bfb91d23917a27d24b/AI_POLICY.md), [2](https://github.com/MidnightBSD/src/commit/7c14aa7a887490da483646a84a23d7452d7f719c))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/MidnightBSD/src/pull/262), [2](https://github.com/MidnightBSD/src/pull/302), [3](https://github.com/MidnightBSD/src/pull/302)) | +| [OpenBSD](https://openbsd.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openbsd/src/commit/9c2b8e445a0bdfafdd6148b1760f00aa5429627b), [2](https://github.com/openbsd/src/commit/e9af5eb5a61d189327b553b24d0d31f19c64b63f)) | > [!NOTE] -> #### Alternative operating systems -> Operating systems are a tough ask. No matter what you choose, support will be inferior compared to an operating system with the Linux kernel, so don't feel pressured to switch. +> #### Alternative BSD-based operating systems +> * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) > * [MirBSD](https://mbsd.evolvis.org/) has [banned LLMs](https://mbsd.evolvis.org/permalinks/wlog2021_e20240726.htm#e20240726_wlog2021) > * [NetBSD](https://www.netbsd.org/) has a [somewhat ambiguous policy](https://www.netbsd.org/developers/commit-guidelines.html) -> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. -> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) -> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) -> * [HyperbolaBSD](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) -> ##### Linux kernel-based distributions that explicitly ban LLM/GenAI contributions. + +### GNU/Linux-based + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [NixOS](https://github.com/NixOS/nix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/NixOS/nix/commit/6dddd433f8a40df445257d69f0ec2c3d88d37b21), [2](https://github.com/NixOS/nix/commit/b738af0f5cefaa4fd76d74a981433d608b109d2c), [3](https://github.com/NixOS/nix/commit/5286c0477d77fb919df890324d3a510a199f450e)) | [GNU Guix System](https://guix.gnu.org/) | +| [Ubuntu](https://ubuntu.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://ubuntu.com/ai), [2](https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130)) | See below | + +> [!NOTE] +> #### Alternative GNU/Linux-based operating systems > * [Chimera Linux](https://chimera-linux.org/) has [banned LLMs](https://github.com/chimera-linux/chimera-linux.github.io/blob/4d7dee4c389e7d18f52b35da5b0eb016d17dd03d/community/index.md#contributing) > * [elementary OS](https://elementary.io/) has [banned LLMs](https://docs.elementary.io/contributor-guide/development/generative-ai-policy) > * [Gentoo Linux](https://www.gentoo.org/) has [banned LLMs](https://wiki.gentoo.org/wiki/Project:Council/AI_policy) > * [Hyperbola GNU/Linux-libre](https://www.hyperbola.info/) has [banned LLMs](https://wiki.hyperbola.info/doku.php?id=en:philosophy:reject_machinelearning) +### Kernels + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [GNU Mach](https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00100.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Linux Kernel](https://kernel.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/torvalds/linux/blob/0f00132132937ca01a99feaf8985109a9087c9ff/Documentation/process/coding-assistants.rst), [2](https://lwn.net/Articles/1041694/)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +### Other Operating Systems + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [FreeDOS](http://www.fdos.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/FDOS/country/pull/16))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/FDOS/country/pull/16), [2](https://github.com/FDOS/country/pull/18)) | [MS-DOS source code](https://github.com/microsoft/MS-DOS) (Expat/MIT license) | +| [ReactOS](https://reactos.org/) | [`d4993c6`](https://github.com/reactos/reactos/commit/d4993c67cd8e9bb724ceeb26e0b252273c8184e1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/reactos/reactos/pull/5850#discussion_r1375260272))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/reactos/reactos/pull/8690), [2](https://github.com/reactos/reactos/pull/8704), [3](https://github.com/reactos/reactos/pull/8747)) | [Wine](https://www.winehq.org/) for some use cases | +| [TrueNAS](https://www.truenas.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truenas/truenas_pylibzfs/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +> [!NOTE] +> #### Other alternative operating systems +> * [Haiku](https://www.haiku-os.org/) has [banned LLMs](https://www.haiku-os.org/community/organization/policies/) +> * [illumos](https://illumos.org/) and its distributions remain unaffected as of April 2026. +> * [RedoxOS](https://redox-os.org/) has [banned LLMs](https://gitlab.redox-os.org/redox-os/redox/-/blob/master/CONTRIBUTING.md) + ## Package Managers | Name | Last Untainted Version or Commit ID | Tags and Evidence | From 977941b8f90035cf43abdefb5b66c23f7dc82b23 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 2 May 2026 12:47:15 +0200 Subject: [PATCH 212/356] add vaultwarden, fix keepassxc last untainted version (#618) - closes #275 Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/618 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8d73342..b5cf3a9 100644 --- a/README.md +++ b/README.md @@ -943,13 +943,13 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---| | [AliasVault](https://aliasvault.net) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/aliasvault/aliasvault/issues/1924)) | | [Bitwarden](https://bitwarden.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bitwarden/server/blob/main/.claude/CLAUDE.md)) | -| [KeepassXC](https://keepassxc.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [KeepassXC](https://keepassxc.org/) | [`2.7.9`](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://keepassxc.org/blog/2025-11-09-about-keepassxcs-code-quality-control/), [2](https://github.com/keepassxreboot/keepassxc/pull/12588), [3](https://github.com/keepassxreboot/keepassxc/pull/12314)) | +| [vaultwarden](https://github.com/dani-garcia/vaultwarden) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dani-garcia/vaultwarden/pull/6967#issuecomment-4178703245), [2](https://github.com/dani-garcia/vaultwarden/pull/6279#discussion_r2366146831), [3](https://github.com/dani-garcia/vaultwarden/pull/6202#issuecomment-3679822420)) | > [!Note] > ### Password Manager Alternatives -> * [vaultwarden] (server) / [rbw](https://github.com/doy/rbw) (client) +> * [rbw](https://github.com/doy/rbw) (client) > * [KeePass 2](https://keepass.info/download.html). It is a .NET application, but [Mono](https://keepass.info/help/v2/setup.html#mono) or [Wine](https://keepass.info/help/v2/setup.html#wine) can be used for non-Windows platforms. -> * [KeePassXC 2.7.9](https://github.com/keepassxreboot/keepassxc/releases/tag/2.7.9) was released before the statement, and was awarded 3 year security Visa by the French National Cybersecurity Agency ([ANSSI](https://cyber.gouv.fr/)) for a First-level Security Certification (CSPN), valid in France and Germany, under report No. ANSSI-CSPN-2025/16 ([archive.org](https://web.archive.org/web/20251128131437/https://cyber.gouv.fr/produits-certifies/keepassxc-version-279), [certificate](https://messervices.cyber.gouv.fr/visas/ANSSI-CSPN-2025-16-certificat.pdf)). > * [KeePassChi](https://codeberg.org/keepasschi/keepasschi): A fork of KeePass 2.7.9 [with clear stance against LLMs](https://social.anoxinon.de/@whitequark@treehouse.systems/116403781772180051). > * [Secrets](https://apps.gnome.org/Secrets/) uses the KeePass file format. > * Password managers based on [pass](https://www.passwordstore.org/) or [Himitsu](https://himitsustore.org/) could be interesting. From 48f271eead467f455edb7f0f2256c12959f4548f Mon Sep 17 00:00:00 2001 From: NormPlum Date: Sat, 2 May 2026 14:30:40 +0200 Subject: [PATCH 213/356] Add Backdrop CMS (#621) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/621 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b5cf3a9..2ecd53a 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Backdrop CMS](https://backdropcms.org/) | [`1.33.2`](https://github.com/backdrop/backdrop/releases/tag/1.33.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/backdrop/backdrop-issues/issues/440#issuecomment-4357835721)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | From cfda84cd86094ffa4f91bfc48eade5cc9ace64b5 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 14:38:56 +0200 Subject: [PATCH 214/356] add ethical-tldr as an alternative to tldr (#620) This project is still under heavy development, but is a fork of tldr without AI. See also #619 that calls for collaborators Co-authored-by: jessebot Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/620 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ecd53a..b565f0f 100644 --- a/README.md +++ b/README.md @@ -502,7 +502,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr) (alpha),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) (alpha) | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Command-Line Shells From 01112791534f36b4a980c9e6d6ac7ad4383db4b7 Mon Sep 17 00:00:00 2001 From: fausty Date: Sat, 2 May 2026 16:35:33 +0200 Subject: [PATCH 215/356] Add gotests (#166) Latest release is about AI. Claude is all over the commits. Co-authored-by: jeremiah Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/166 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b565f0f..2a39018 100644 --- a/README.md +++ b/README.md @@ -1035,9 +1035,11 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | +| gotests | [v1.6.0](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | + ### Java | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From cf9ec1665a315b2a1ff2981f507e9dc9807f0f7c Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 16:41:14 +0200 Subject: [PATCH 216/356] clean up of spacing and links for go and cli shell add ons (#622) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/622 --- README.md | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 2a39018..cec02e1 100644 --- a/README.md +++ b/README.md @@ -509,40 +509,40 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [`nushell`](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | +| [nushell](https://www.nushell.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/nushell/nushell/tree/main/crates/nu-mcp))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nushell/nushell/commit/21a54d47a00f09e3710e08ee7624e7b4332dcb27)) | | [Oil Shell](https://magicant.github.io/yash/) | [`dddab4a`](https://github.com/oils-for-unix/oils/commit/dddab4a73c479e3ad4831778dd25729ed89c83d3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/oils-for-unix/oils/commit/c6dbffb30396b4085e8649190e1c178daa67af9a)) | | [PowerShell](https://github.com/PowerShell/PowerShell) | [`v7.4.0-preview.2`](https://github.com/PowerShell/PowerShell/releases/tag/v7.4.0-preview.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PowerShell/PowerShell/tree/25e80cefdb14d0c69eaa976314e31d035aeddd73/.github/agents), [2](https://github.com/PowerShell/PowerShell/commit/1241ad2794cc84c18554e36ce658bfd86781cf8e), [3](https://github.com/PowerShell/PowerShell/pull/27074))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PowerShell/PowerShell/pull/27077)) | -| [`xonsh`](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | -| [`yash`](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | +| [xonsh](https://xon.sh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/xonsh/xonsh/blob/main/CLAUDE.md)) | +| [yash](https://magicant.github.io/yash/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/magicant/yash/pull/217#issue-3699124790)) | > [!NOTE] > #### Alternative Bourne Shell Implementations -> * [`dash`](http://gondor.apana.org.au/~herbert/dash/) -> * [`bash`](https://www.gnu.org/software/bash/) -> * [`oksh`](https://github.com/ibara/oksh) +> * [dash](http://gondor.apana.org.au/~herbert/dash/) +> * [bash](https://www.gnu.org/software/bash/) +> * [oksh](https://github.com/ibara/oksh) > * [Busybox](https://busybox.net/) `ash` > * [Schilytools] `bosh` > [!NOTE] > #### Alternative Shell Languages -> * [`elvish`][Elvish] -> * [`fish`](https://fishshell.com/) -> * [`rc`](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) -> * [`execline`](https://www.skarnet.org/software/execline/) +> * [elvish](https://elv.sh) +> * [fish](https://fishshell.com/) +> * [rc](http://doc.cat-v.org/plan_9/4th_edition/papers/rc) +> * [execline](https://www.skarnet.org/software/execline/) ### Addons and Prompts | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [`oh-my-posh`](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`oh-my-bash`](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`ohmyzsh`](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [`spaceship-prompt`](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers -> * [`zimfw`](https://github.com/zimfw/zimfw) +> * [zimfw](https://github.com/zimfw/zimfw) ## Computer Graphics @@ -1035,11 +1035,10 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ebitengine](https://github.com/hajimehoshi/ebiten) | [`v2.8.7`](https://github.com/hajimehoshi/ebiten/tree/v2.8.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/hajimehoshi/ebiten/commit/f5688eb3e2a664685f3818d671ed3c39b7034c24), [2](https://github.com/hajimehoshi/ebiten/commit/ecbff36e41b127a55c1b396785ad2ccbdc6283a6), [3](https://github.com/hajimehoshi/ebiten/commit/e144fc3fc9adfd9b3552870bb46d29e3b60e578f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/hajimehoshi/ebiten/pull/3437), [2](https://github.com/hajimehoshi/ebiten/pull/3416), [3](https://github.com/hajimehoshi/ebiten/pull/3411)) | [Vuelto](https://github.com/vuelto-org/vuelto), [Engo](https://github.com/EngoEngine/engo) | | [goffi](https://github.com/go-webgpu/goffi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/go-webgpu/goffi/pull/32)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | -| gotests | [v1.6.0](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | +| [gotests](https://github.com/cweill/gotests) | [`v1.6.0`](https://github.com/cweill/gotests/releases/tag/v1.6.0) | ![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) [1](https://github.com/cweill/gotests/releases/tag/v1.9.0) | [nxt_unit](https://github.com/bytedance/nxt_unit) | | [oto](https://github.com/ebitengine/oto) | [`b71107cf`](https://github.com/ebitengine/oto/commit/b71107cf736202d5ce3ee0ad3005e52dcda405ea) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/oto/commit/c7371b45fd922eefc6a1e612baa2733407a6aa59), [2](https://github.com/ebitengine/oto/commit/e3a524c98afb26f8af2ecd59f41262db9862a342))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/oto/pull/277)) | [sio](https://github.com/zikichombo/sio) | | [purego](https://github.com/ebitengine/purego) | [`469dacd`](https://github.com/ebitengine/purego/commit/469dacd313f8a72e784701d5efd2f8f7f95ed66b) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/purego/commit/684058f04464150061697541bfd7424774748ed3), [2](https://github.com/ebitengine/purego/commit/91e14e1f9173e8b82e891513a8b0316d53312ff6))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ebitengine/purego/pull/437), [2](https://github.com/ebitengine/purego/pull/436), [3](https://github.com/ebitengine/purego/pull/435)) | [go-ffi](https://github.com/achille-roussel/go-ffi) | - ### Java | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | @@ -1517,7 +1516,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal -[Elvish]: https://elv.sh [Eqonomize]: https://eqonomize.github.io/ [GNU Emacs]: https://www.gnu.org/software/emacs/ [Epiphany]: https://apps.gnome.org/Epiphany From d0a173a39416bf7da666ced291156ab9cad819fd Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Sat, 2 May 2026 22:20:56 +0200 Subject: [PATCH 217/356] remove alpha state of ethical-tldr as you can now install it and use it as is (#624) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/624 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cec02e1..16c98cf 100644 --- a/README.md +++ b/README.md @@ -502,7 +502,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr) (alpha),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) (alpha) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | ## Command-Line Shells From 1acb04e205a1bd574d3cd71363f5625f5244ac37 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Sun, 3 May 2026 09:32:16 +0200 Subject: [PATCH 218/356] Update VS Code entry (#626) Ideally, I would change "AI Sponsored" to "Advertises AI", but for now, this will (hopefully) do. VS Code recently [made Copilot "co-author" attribution the default](https://github.com/microsoft/vscode/pull/310226), even when Copilot is disabled. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/626 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16c98cf..ed7f451 100644 --- a/README.md +++ b/README.md @@ -642,7 +642,7 @@ This is a section for repos that are similar to this one either because they are | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | | [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | [Lapce](https://lap.dev/lapce/)
[Gram](https://codeberg.org/GramEditor/gram) (fork)
Others (GNU Emacs, etc.) | > [!Note] From df00e269dbd8efebe3f695fc0a82d8f3260d72c8 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Sun, 3 May 2026 20:57:32 +0200 Subject: [PATCH 219/356] Add Amiberry (Amiga emulator) to the tainted list (#631) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/631 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ed7f451..fdfc9a0 100644 --- a/README.md +++ b/README.md @@ -758,6 +758,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [Amiberry](https://amiberry.com/) | [`7.1.1`](https://github.com/BlitterStudio/amiberry/releases/tag/v7.1.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/BlitterStudio/amiberry/pull/1870), [2](https://github.com/BlitterStudio/amiberry/pull/1868), [3](https://github.com/BlitterStudio/amiberry/pull/1866))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/BlitterStudio/amiberry/pull/1818), [2](https://github.com/BlitterStudio/amiberry/pull/1809), [3](https://github.com/BlitterStudio/amiberry/pull/1781)) | [Denise](https://sourceforge.net/projects/deniseemu/) | | [Azahar](https://azahar-emu.org/) | [`2124.3`](https://github.com/azahar-emu/azahar/releases/tag/2124.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/azahar-emu/azahar/blob/master/AI-POLICY.md)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | ## Language and Localization From 6b8eaf12c97e4e0b6cc9a77d00b2dfa0ceed4658 Mon Sep 17 00:00:00 2001 From: cloudskater Date: Sun, 3 May 2026 22:22:42 +0200 Subject: [PATCH 220/356] Add Audacity (and Tenacity as an alternative) (#476) This is my first time trying to make a pull request for literally anything. I copy-pasted from other parts of the file and edited until it looked right, so I hope it all works as intended! Wanted to make it known that Tenacity is confirmed to be anti-AI for copyright reasons as well as ethical. Only the former is mentioned [here](https://codeberg.org/tenacityteam/tenacity/src/branch/main/CONTRIBUTING.md), but [Avery King](https://codeberg.org/generic-pers0n) understands the environmental and ethical issues too (I messaged him personally about the topic). Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/476 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fdfc9a0..7547ec5 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ See a project on here that you love, and wish wasn't on here? Check out our [**N * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) * [Audio](#audio) * [Digital Audio Workstations](#digital-audio-workstations) + * [Digital Audio Editors](#digital-audio-editors) * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) * [Podcast Aggregators](#podcast-aggregators) @@ -350,6 +351,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |---|:---:|---|---| +| [Audacity](https://www.audacityteam.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.audacityteam.org/blog/openvino-mac/))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/audacity/audacity/pull/10296#pullrequestreview-3740189943))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](https://github.com/audacity/audacity/issues/10674#issuecomment-4205681036)) | [Tenacity](https://tenacityaudio.org/) | | [Ardour](https://ardour.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/Ardour/ardour/pull/1060)) | [LMMS](https://lmms.io/)1 | | [HISE](https://github.com/christophhart/HISE) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/christophhart/HISE/blob/59dab9965c5483a61dae01ec667f77aeecbbdb51/AGENTS.md)) | [DPF](https://github.com/DISTRHO/DPF) | | [zrythm](https://www.zrythm.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zrythm/zrythm/blob/master/CLAUDE.md)) | [LMMS](https://lmms.io/)1 | From 3d639f2cbeac6151236834a25b58c234b8fa6a6f Mon Sep 17 00:00:00 2001 From: picatsv Date: Mon, 4 May 2026 12:13:37 +0200 Subject: [PATCH 221/356] add barebox (#634) it's technically lower level than a bootloader but it effectively functions as one since it can load and boot a kernel Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/634 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7547ec5..e1828a5 100644 --- a/README.md +++ b/README.md @@ -428,6 +428,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [barebox](https://github.com/barebox/barebox) | [`fe328bc`](https://github.com/barebox/barebox/commit/fe328bcb8a40e407c7928b6256af4a69aacfab67) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/barebox/barebox/commit/e3078309ff30c88fab260c6dd08f9208802c7c4c)) | [Coreboot](https://review.coreboot.org/coreboot.git),
[EDK2 (UEFI)](https://github.com/tianocore/edk2),
[U-Boot](https://github.com/u-boot/u-boot) | [Limine](https://github.com/Limine-Bootloader/Limine) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://codeberg.org/small-hack/open-slopware/pulls/263#issuecomment-12690237), [2](https://codeberg.org/small-hack/open-slopware/pulls/285#issue-4234860)) | [Hyper](https://github.com/UltraOS/Hyper), [GRUB](https://www.gnu.org/software/grub/) | ## Build Systems and Task Runners From c0cebd337c8cc9536fd89459fba5bd9687496de3 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Mon, 4 May 2026 12:18:57 +0200 Subject: [PATCH 222/356] add how to slop free fork doc (#629) - closes #627 Co-authored-by: @Pixelo789 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/629 --- CODE_OF_CONDUCT.md | 4 + HOW_TO_SLOP_FREE_FORK.md | 217 ++++++++++++++++++++++ README.md | 4 +- {evidence/img => img/evidence}/vscode.png | Bin img/how_to/clone_tldr.png | Bin 0 -> 280308 bytes img/how_to/copy_new_repo_url_codeberg.png | Bin 0 -> 123643 bytes 6 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 HOW_TO_SLOP_FREE_FORK.md rename {evidence/img => img/evidence}/vscode.png (100%) create mode 100644 img/how_to/clone_tldr.png create mode 100644 img/how_to/copy_new_repo_url_codeberg.png diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index f18403d..3198860 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -3,10 +3,12 @@ - No racism. - No xenophobia. - No colorism/featurism. +- No casteism. - No transphobia. - No homophobia/queerphobia. - No sexism. - No albeism. +- No islamophobia, antisemitism, or hatred to anyone based on their religion or lack thereof. - No classism. - No fascism. @@ -67,6 +69,8 @@ We're going to do a 2 strike rule here with an optional warning. You are out on - Please do not reach out to the maintainers or collaborators of this repo anywhere but this repo specifically (unless they have given explicit permission to do so). We do not operate our personal email or fediverse accounts as extensions of this repo and will not take feedback there. We need a proper work life balance. Please respect that. +- No complaining about purity rules, "walking on egg shells", etc. If you can't behave professionally here, then please just kindly exit. + This repo is specifically meant for identifying LLM usage in other projects, and coordinating on alternatives. You can also come here to ask others to please help you in chatting with another repo maintainer to sway them away from AI usage. But you need to do all of it *with kindness*. We have no interest in a rage feedback atmosphere here and won't tolerate it. Please consider your words before you hit send. ## Accessibility diff --git a/HOW_TO_SLOP_FREE_FORK.md b/HOW_TO_SLOP_FREE_FORK.md new file mode 100644 index 0000000..74c49a9 --- /dev/null +++ b/HOW_TO_SLOP_FREE_FORK.md @@ -0,0 +1,217 @@ +# How to create a slop free fork + +So you found out something you love is tainted with slop and now you want to do something about it? + +First off, congrats and thank you! That's a huge step and we're excited for the community you build! 💙 + +## How to fork a repo from a last untainted commit/version + +Should you see a project you'd really like to fork on this list, here's how you would go about that. + +> [!warning] +> Before you fork, make sure to check the licensing! It's important that you understand the license of whatever you fork, and never remove the old LICENSE. Safe to fork licenses include, but are not limited to: MIT, GPL, AGPL, Apache 2.0, CCv4, BSD. You can learn more about licensing in [Codeberg's documentation on licensing](https://docs.codeberg.org/getting-started/licensing/). + +Let's take tldr-pages as an example, as that was something the community recently hard forked into ethical-tldr. Here's how it was done. + +1. Setup a new home for your fork. We recommend using [codeberg.org](https://codeberg.org)! Codeberg has [great docs on setting up your first repo](https://docs.codeberg.org/getting-started/first-repository/). We recommend not adding a `.gitignore`, `LICENSE`, or `README` to start with, because your clone will likely already have those and so you want to make sure you don't run into any git merge conflicts :) Do make sure to note that your repo is a fork of the repo you're forking at first though, just to make sure no one gets confused. + +2. Since we're using tldr as an example, we'll assume the project you want to fork is already in this repo. Go to the table where the software you want to fork is (for instance the [Cheat Sheets and Documentation section](https://codeberg.org/small-hack/open-slopware#cheat-sheets-and-documentation)), which looked like this: + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| --- |:---:| --- | --- | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + +3. Go to the source repo and find the clone URL. In this case, you would go to [tldr-pages](https://github.com/tldr-pages/tldr). Since it's on GitHub, you should see a green button that says "<> Code". Click the green button, then click "HTTPS" and you should be able to copy that URL. + + a screenshot of the https://github.com/tldr-pages/tldr page where someone has clicked the code button. The green code button is circled in orange with an orange arrow pointing to it. The HTTPS tab and the web URL to clone also have an orange square around them with an orange arrow pointing to the url + + > [!tip] + > In the above case, the tldr repo was linked in the first column of the table, but in cases where it's not you can just click the lasted untainted version link and chop off everything after the name of the project, so https://github.com/tldr-pages/tldr/releases/tag/v2.3 becomes https://github.com/tldr-pages/tldr + +4. Open up a terminal and find a directory where you'd like to keep this project. Then clone the repo there. Here is an example where we keep things in the projects directory within your home directory: + + ```bash + # creates a directory called projects in your ~, which is your home directory + mkdir -p ~/Projects + + # change your current directory into the new projects directory + cd ~/Projects + + # clones the repo in your projects directory + git clone https://github.com/tldr-pages/tldr.git + + # changes directory to your recently cloned project (in this example, it's the tldr repo) + cd tldr + ``` + +5. Grab the new location of your new repo :) If you're using codeberg, you want to grab the SSH url for cloning, which you can find just below the repo stats. We've highlighted it and also we show you the button you can click to copy it easily here: + + Screenshot of the top of the page for https://codeberg.org/small-hack/ethical-tldr where we've highlighted the clone url and drawn orange arrows pointing to the word SSH, the URL, and the copy button. They exist just below the repo states, but before the repo's code search bar and repo files + +6. Change the upstream origin of your repo to be your new fork's SSH URL. There are two ways to do this. The first way is to use the `git` command: + + ```bash + git remote set-url origin ssh://git@codeberg.org/small-hack/ethical-tldr.git + ``` + + Another way is to edit the `.git/config` file Use your editor of choice to open the following file: + + ```bash + # We're using neovim here, but you can use any editor you're comfortable with. + # If you're new, nano is always a safe bet as it has tips at the bottom of the screen. + neovim .git/config + ``` + + The file will look like this: + + ```config + [core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + [remote "origin"] + url = https://github.com/tldr-pages/tldr.git + fetch = +refs/heads/*:refs/remotes/origin/* + [branch "main"] + remote = origin + merge = refs/heads/main + ``` + + You want to change your the value of "url" to your new SSH URL. In this case, it would look like this, since the new repo is ethical-tldr: + + ```config + [core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + [remote "origin"] + url = ssh://git@codeberg.org/small-hack/ethical-tldr.git + fetch = +refs/heads/*:refs/remotes/origin/* + [branch "main"] + remote = origin + merge = refs/heads/main + ``` + +7. Here comes the part where you check out the last known untainted commit or version. In this case, the last version of `v2.3`. You can do a hard reset of your fork to that exact version. This drops all the commits after that. To do that, run the following: + + ```bash + # hard reset your branch to the old commit or version + git reset --hard v2.3 + + # force push up your now untainted repo + git push --force + ``` + +8. The initial steps are now done and your new forked repo's history starts at the exact last known good version. Advanced git users can now cherry pick LLM commits out of the repo, but we recommend not doing that unless you're very confident with git. Instead, we think it's best that you create new commits to remove the AI and LLM generated code, because then this also keeps a cleaner history. In your "No AI Policy" or in your README, you can self disclose that the repo contains old commits from an LLM, but that you're working on replacing them or that you will not replace old commits, but all new commits will be done by humans. Either is fine. When it comes to AI Functionality, you'll also want to disclose that immediately and perhaps create an issue that says "Remove AI Functionality" to show users that you intend to remove that. You could also ask for help that that time. + + > [!note] + > Are you an advanced git user? Do you want to add more docs here on how to remove old LLM commits from the forked repo? Feel free to submit a PR and we'll test your instructions to make sure they're safe before merging it :) + +## Tips for a healthy community + +To start off, we recommend you do two things: + +- Create a "Code of Conduct" +- Create a "No AI Policy" + +### Code of Conduct + +This may seem like it's not related to the whole "No AI" thing we're all about, but it's incredibly important to creating safe and healthy communities. There will be people who try to cross lines and it's important that from outset, you both create rules for what is not allowed, and a process for enforcing those rules. We recommend the following be added to a `CODE_OF_CONDUCT.md` at the root level of your repo, immediately (this is straight from our own code of conduct): + +
+ + CODE_OF_CONDUCT.md example + + ```md + # Code of Conduct + + ## No Bigotry + + - No racism. + - No xenophobia. + - No colorism/featurism. + - No casteism. + - No transphobia. + - No homophobia/queerphobia. + - No sexism. + - No albeism. + - No islamophobia, antisemitism, or hatred to anyone based on their religion or lack thereof. + - No classism. + - No fascism. + + ## Strike system + + We're going to do a 2 strike rule here with an optional warning. You are out on your second strike. We are not doing three strikes. + + 1. **warning**: You made a sarcastic or aggressive comment attacking another user here or elsewhere, regardless of which side you are on. You will get a reminder that you need to be kind here and if you need a comment by another user addressed, you must tag an admin. This warning and any warnings after it are *optional* and may be skipped if you are doing something that falls into the [No Bigotry](#no-bigotry) rules, or if you are clearly operating in bad faith. + + 2. **Strike one**: You made a comment that was off-base, slightly rude, but was not egregious enough to be banned, yet. + + 3. **Strike two**: After 1 strike, you behaved the same way again. + + > [WARNING] + > If you are caught being excessively rude here, especially if you're displaying a form of severe bigotry or bringing an inappropriate tone, we reserve the right to ban you from the repo with no strikes and if necessary, we will report you to codeberg.org. + + # Be kind or be gone + + - We don't want drive by sarcastic comments. + + - No references to bodily fluids (vomit, urine, feces), this includes emojis. It's gross and unproductive. + + - We don't want people talking about how they never liked a particular piece of software because they didn't like the features. + + - We don't want anyone personally attacking anyone from this repo or other repos. + + - We will delete off-topic comments that have rude vibes or are encouraging a generally rage-feedback atmosphere. + + - This repo is not a substitute for social media. The maintainers do not have the mental health bandwidth to manage such a community. + + - Please do not reach out to the maintainers or collaborators of this repo anywhere but this repo specifically (unless they have given explicit permission to do so). We do not operate our personal email or fediverse accounts as extensions of this repo and will not take feedback there. We need a proper work life balance. Please respect that. + + - No complaining about purity rules, "walking on egg shells", etc. If you can't behave professionally here, then please just kindly exit. + + ## Accessibility + + ### Alt Text + + Please provide alt text descriptions for any images you post. This is so that users that are blind or low vision know what is being posted as their screenreaders can read it aloud. This is also useful for people who speak other languages so that they can translate any text from the screenshot and understand context. If you don't provide alt text after being asked to, we will count that as a warning, and if you still fail to do so, it will be a strike. We make exceptions if you yourself have a disability preventing you from doing so. Please kindly ask that someone else provide alt text for you, and when they do, please update your image's alt text. (*You do not need to disclose your disability.* It is fine to ask others to provide alt text for you for ANY reason.) + ``` + +
+ +If you do not outline exactly what is and is not allowed, you will get a lot of people saying "I didn't know I couldn't do that" and it will make enforcing your boundaries difficult. People will always disagree with some decisions you and your community make, and they will want to "take it offline", so it's important that you do not allow that, or your personal social media and messaging will become bad for your mental health. If you'd like to set up a social media account/server or a chat server, we recommend keeping it separate from your personal accounts, so that you have an easy way to disconnect at the end of the day or on your weekends. + +### No AI Policy + +This one is obvious in this repo, but in other repos, it's always important to set clear expectations. Failure to do so may cause people to test the boundaries and also land you on this list. We don't say that to be threatening, but our community takes a complete hard line stance on ALL AI/LLM usage. + +Some examples of "No AI Polices" that you can take take a look at for inspiration are: + +- [wafrn's Contributring Doc](https://codeberg.org/wafrn/wafrn/src/branch/main/CONTRIBUTING.md) + +- [Loupe's Use of Generative AI Policy](https://discourse.gnome.org/t/loupe-no-longer-allows-generative-ai-contributions/27327) + +But in general you want to outline the following: + +- No AI or LLM usage is allowed in this repo for contributions in Issues, Pull Requests, or Discussions. This includes bug finding, optimizations, security passes. + - You are not permitted to ingest this repo with AI or LLMs of any kind + - Any AI generated PRs will be rejected. +- We do not accept funding from AI companies. + +Do your best to not leave any wiggle room for anyone testing the waters on using AI in any way, this includes "self hosted LLMs". + +## Advertising your new fork + +We're so happy to hear you created a new slop free fork! You'll probably want some community help though. Here's what you can do to summon the open source community: + +1. Make sure your repo has all the appropriate and relevant topics, so for example, if you've forked the tldr-pages repo, tag the repo with `tldr`, and `cheatsheets`. Topics are managed the main page of your repository, directly under your repo's description. + + +### Adding new collaborators + +Codeberg also has great docs on [how to add new collaborators](https://docs.codeberg.org/collaborating/invite-collaborators/)! + +> [!warning] +> Ensure you trust anyone you give access to your repo. Don't add people as collaborators whom you've never interacted with before! diff --git a/README.md b/README.md index e1828a5..7a9ef9a 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ Want to *add*, *update*, or *remove* a project listed below? Check out our [**Co See a project on here that you love, and wish wasn't on here? Check out our [**No AI Request Template**](./NO_AI_REQUEST_TEMPLATE.md). +Ready to fork a project to introduce a No AI policy? Check out our [**How to Slop Free Fork Guide**](./HOW_TO_SLOP_FREE_FORK.md). + * [Definitions](#definitions) * [Permissive AI Policy](#permissive-ai-policy) * [Vibecode](#vibecode) @@ -645,7 +647,7 @@ This is a section for repos that are similar to this one either because they are | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | | [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./evidence/img/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./img/evidence/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | | [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | [Lapce](https://lap.dev/lapce/)
[Gram](https://codeberg.org/GramEditor/gram) (fork)
Others (GNU Emacs, etc.) | > [!Note] diff --git a/evidence/img/vscode.png b/img/evidence/vscode.png similarity index 100% rename from evidence/img/vscode.png rename to img/evidence/vscode.png diff --git a/img/how_to/clone_tldr.png b/img/how_to/clone_tldr.png new file mode 100644 index 0000000000000000000000000000000000000000..4600d09effc3e949d063cbe8ecd5c4ecb518d42e GIT binary patch literal 280308 zcmd3Nglz`HqARt}Rr6STH-5}jCGz_62-O?@6&46^*Al=>F-TiIO`QGz9 z=X>5i;G65>0*3K+-~0Z>`mMFLpNy0++Eaq35C{ZKROF*91cE#afjmGwc?{mc$eb?# z-;k|DRBRv+^p?A?dy%y0gy7AmwnECbW|oG=x?jwcAx!#Bld{@cb2#RE)Q^qtKCgcY-7y#%)1G#9b5GbVavewf@Y-EnObOYx(U=W# z?H%{i*xg-aiQP)*_WkGU2|L2$pYQ$=i2Ptj_Rp8s^Bio2BEZObAm?PnpvHNjwyWXn$QSbAA>`|C=PWSh6VJbxgS~YierB%GwrUbB~KlWl7I4JTYAIy;~iW2ExwH&dJHSFgNELUV?%i zEVZ<}8lIH&UR5;?dLi`LG=-Z7##2+{x_5ArB8u&hprIZpw;^Hh>2Y>8^=rzOu$X7U znife=|Gz&J_1DKv8loT5*x6P}P5H`_3mGhSFI;$rTF)Vg;R8dXHop$<38U{&T?`>_ zuJT!46P==uK9B!gRrO?qi<^64W#hwpH->EL_NA2-yi9rj{6yj%NnR_P)7MlS(MwCu zi%Uv^22CXMzi-_4^gw=!PC-u}+49|SK=y~IxHy|sE~|xwB=~egXEinWiPLUD*^lSv zf31(`*!AD*8@XFw^p4K#%<;8-#n|ctTPZQQ=1-d$yDt0aSa~*kc>DKuy(R<#M~Q>u>i&H=98R(E=T$KaYvAA}AE_2;mEERy zy*s2k?!3Qi7Ng$4t)jXb8yB}NmKC1h$0ulJhT7lXe^m=5kByB*Fp~c*ZLIs>M%Ync zhD{8OjT9V@Y1ReU!8jr&=XDY>`naei1v#m>Nh$1V*2UxO>ZX(#24lBT#<&hY=~g1f z#>VF6`@eVne$HZgcJd~`)04ce`~IKqUMhb6Zyp}^!F|c;{_DO}OO1uCWyzQ`rNhD# zH7s}JmziTFI61i&NS}T8$;3rE+0NeAs+s76%TX~9vc-K)749!Jp@yeh{$-Agq?_i zcee1JXv!sUnPoYx6@D=;qFec?qN++qoWH%@50MhkG~At-!QU++Ax24`Z(p@ItejOK zc`2o5kY>Yu@tTW^O9o?CU7sb^%F62H%Ob8GhJvlh+GftwnTpMV>dMPH7&0<48@j^y z#qp-&cBB$mZ#q=uZyB0~U|ak527etX2m*_IRB8p|Ses12`S&6llfvE4&MTI-JCMer z__y@w6yl?!k=C^nl*D+u3E6 zCVX5%N(vop?q?7?+A>AZPl?qAQ=DZxV~x3m^_r>QxWCr9UhW@yXvMOgBB_>|m=odr zE&H>X(cJzW)L%=rO*xK@jt+K?oxA#z<*uH(=m@+m#iElXM$8J7R zyw@vmeiab=-K&%deKad9I!LcML$c<)hv%*FKno|`-=3{3eUQPwRy90Wx>*cX6=$+` zV(}KN>fdph%1L!QcNi9qV@Ma7TYT85tE=njQ%wss)cMof%Yiiz^EvvLA?K1bXGftjXF%_urZ-9$$KX4*I@N-tsLOxjSIzd zA5ktS{}GP$r?VZ=+1bn~Z#;}X%vD_x8WlC6y`zn*!yXT6bL)6(E2sP>5i#+(+l-61 z21^&GyrBdo_8|XNC}E})+kbD0*#F%WyGnZveDG}WhihvIC%0v$5AShPr5j7EE+sqj zgYI_b(OC7HPXKPY(~PiAudLtM?Bu`lf4-+%YTW@yC$8WMU^ndHhrfGtS zK|yFvOftN1<}d|=;Q)amNnzUk>3e3ogI`T4=_xFt12pwTysJaE~0dHOVSfApf> z*Pq*j2!9v0$y75E)XF1Mz*%Le;bPUs9V_x(twJMtH0RQT$V+fMXK_riRCTL z@MxVYEXi#JU$^qRkUPUdDu#gea7QE}#Y9|Eayex7cCOZ8_RC;KeNeL^Iy$<`#ksAn z%75P__>JJ6urShqYCo&b}I%5dVhsqm!z_7l{n8Gi9Rl2h@aiII{fsw~L+$V6l1(R|eon1qD7yy^tm z7JSYuTR$+*kRECqDjl!&d!uch*`Gusisj|BWtjRirSLjm7?`r?vg6`)qREO`V--m9 zf`^(?JiU?Q)*D5zUnoqPs@oQfIB@d6ZwE0pHttF|f5d9&)(D=+`)d2`v1$iKB#f=q zKVjrsV|BG-VK^F9wiIM69)JFbaNBNlS=KYm#TVAGNa-rUcjclolU<``-L50St>XPx z&}>i`8XDHbv$uZt8yi!$wy_D619zJi8W4aIjY`_y&?qRreXz8!;SrFF;^ubmxA|xi zZ6SVdiYL<9a+?#8fLj-5ZKLTx8nUFTi(fFmkd%EHbgW~1JQhac7}Lui_eo65A6oGl z&u!cY5m?)#T<}A)_JTb}<}UUc8()n@AMnT}t*wRYr5WONDvYoc+eHf6p`)MZrDYOy zqAA+j<5)=Y7L}Kfb1;T=`{u> z5s`34_T#s|LAsrrA#HDd`Al$0NeSE~$-^UHRJMO)WJH-}SV2jvyF~hy6reN2tG}gn7`MLV zZUft>rf_oIb%%PMISG-(;hZ)DJ`{g*q+n%K%Z-eOwv$sbC;PUc(RQ~#JZc^jkwU{| zefBJ#;U5#0l}wSc5{_7z0avn%!Y+MeNY#3prfkE0)vACDrHO3H#28S z*{^KX)YK;I)*9wsML)wFfBMz!8fjs1v2!)qb!skI&9eS*2CMfA!23rVgV8ltyen>( zrKLL?D+s<*0SN$DOGog8%1q3!9Vd7!p$B@yRViH6RaiJ9P0AKU_aAuTam+jGRyKip zy*=SDcaU2^4Xw{X8CN;xFjP<&A6Iz`J$>lkA;9NVrpTX^{jwQCSTA8%!5T+&?&3IjP>E zVCpN*(vXp9NSdzZvehOJl(zxi-<8g^Ot=A zaw(PxinVTROs7^Ab2{VJ%$Y6*vRb0tf^Ti862)fKMbKqRW$`(tam!B4={<4WHzl#H z0XIzO;%sO{Z@=fZNkiy*lLKy*{|rzB{As6#bsk+^x!7CG_VjE|8qcPXFH)(8M3-~q ztCr6fz;+BLsx8^ZAbNK}{cgG-kw+PBhO87)AN=#@OXt(|&L%B)N_w^+%AK95%Lc)- zOC;5hMC(C%Fyw^(`0-&VtT|7m_TU%0d=9;)WW1_CfyqyFy2NpU@Wy6u6@etSMOIlk z+H%*8HMmkA3$KS}?d8FwN3y82IIC3Un}kH7b`f!wC_-M)fb111rKE!O^rNpG4fJ&B z)Fu2xk=d%Kiu$t`6>c9DnCl{fTLl_sl^GPYwO=M_CLyfzjb>A7;qn=x;gq_DN|}{i zvaTS#UT36PcjlK9_%Imt)?I_&22u^B7ehtT^EIo3TOx*NrZWw?Z#tZ}zHd?z`22+? z(w-L-6inINdV+1JtF3mrnZ0d0lIGV2DFmu)P$ExRiO#t!|Mi;d&Eb~Z)?_td(f552 z0&YY^!~yQ2*}ssnsh~@HuiO$&`CtyaEa*z(Gt<>)(3w*rE*D?$M|_`j^oKs*4|;xw zIPDLQf)rsZFj8x!Bq8y}%r0OzpS0;N9laMC71x2ZTi3da;!e*YWB403Dy8YZEp)Ow ziK6_$7@KlhJ7(DG>^!m4_Ufclnuy!+D}_75!-kO&bW29@hOG<2jHo9=_r803VPcN^ zTTH{Oz(t|G4={8scV%>>1mzWx<~nk+3*|^FDysTwVT=&;t=YB_`gktey?5z1YISDJ z5PN(3qfLRLv*`LPi44RGdpZUl9uy=bSk}j%B~sX*jkArfX0b!?I&YtFNL2PK)5sYZ zP+AmNyrvj&Blyi?tO6#&PeCNz9$Ie9=zc@7p?ypwPFtcqEr^2=!oo0xkn*p8O#oqW zY{nguXBQXuid@FA+|Hqzm5DMx!hf7CH5;q5?WjJ+!2k44`y~j-GDZ6j&W00h2-!*< zDdEG3PDao^Kiq!v1i_>`9XFhoo*o4wlvi|f<2N?W&QmKP5D;*`z#z)Y*B1Ji(>^nk zL@j68sK@ddq$GH*uW2^2psHSa26_kMZKMZl;kQ0ugsp|0>Rv|CZ)G=rJ#PIGVOs#( z{`sYOtOiQ%dWlgqGB7|t-GXyl8M?P;MU;I~mG(~(LV zLONnJBvlvh#4rg69yh>sg-zLHIGnriu;gUV?dEs?Ue&W7bbAVdj3I~clv!45|19tw zH(SYcnpMNSygVU(r>u<9oVOt^CC0s5KQ*NeDK07QAru!CWp?rMPKAXenT;3w1qL2H zoqimt&mQ0YN5rr*O44>0I-jUBH5Ipaa!J|`m&3g)g^&l2(GkPlFTQHI-@rS*Rgr<_ zCvkfwcyMq4!DCyoZVvRGZ@9T`X-RlYSBS9#+rv~XwLrNmlcK&MNONmp%`TkV8Y}_% z(!EJsp2i>-z$SQPr3ypxrn}PinPMeSiFluXZTbEXK%p-&pP3CxV%fZKkpby2SZT`9 z95?}Bjkvvi6nx4k2IVOe?sIMAAq9y<`<%;60+yiz6a`Gs@Lcv=QFSX7uTO`SVz`ep zo|9JB0 zUB-%ZS|%}{*`QEEmEtuF21355xlkF^a*NKJ>nQUtg#I2LF8nUH#1^&J79UVXQ|_S? z^EN1z@C$HYa^l!UV9dhet9RZ1R7o-`dmQqVTaxDqiK|bm?;jnIQSYlG@fwd+*=~DR zSMxwj74x%(HlndGn^XL92}sye<;DH*_)6_ z+}L>6t63YA&fqc3!_L#Y2oVvLV(+RbIy>V8HwJmv z7OYVO?`Kifs9ea&WsdK@D~X5{u@X2u#k8CRQS9sc++?_l-a;}Cve(w6Wonyfy}lr{ zw6p~2ONTYP&`F6(txT8S2f5Aneu)&spTEG+Cx3^J7zks-hnp-D-><1RbAICdG2 zib_h&uxWw>KSx*9OsS6)sF>sBCj=g$vRlqPdFS}?_07#UZ~W5D;D)FJESfQ5wxTazsrl6}DwmSolczAdK6m1&Sa&4s|b^mBTk6qR8FnikoW;A4T zl8;gr3?cj%c-WMhcZIB;QT@*lb$F0Z#D=^C9hG##PlsNTz?vr&O!)&iudH#<|?6?gtf%l$ZV{~2U! zd%Nn`Kgm9RB!d~=-m=E5Td}?pZ#-B=Usne>Fp;^XY`Hw;vcO84`o+0> zousc#1VxPSy05Od-01vuONX*8u1c}bdJlWmc73jqP+u}r40GS?8YazOpU#xJX_8o4 zT9UY4LBX^^xSXsfkz!}$z z{-L&Lz)(sh@;1gP(2l7}orZsHc;}5yDD_c~c8ZS|Fha|FDV}s%#WA4t<7JL!0eo${ zHRPp08-8$iP4(&($ZY%Kv))qkqGK=x9Vu}EZ`#96o|b7<~nP1fOgL%w(glue?#k3Bc#`E}_8^CGFDF@)>X;dSW3!s33pgUVOEJ(I} z0GaJRk4hlwMA=Onz5?o5{5+L^5m-=l{6MHagh600mk|Znq~(4PpTW0R`SLl znw!pcH*Zrd>)n=?m&1~hq-14(KvgT7RDaLaU6RhVMr%7YSm4?sxXz9}F&~d#L*EcYb4l04k!NE}%dr15M35|@FHQe>`^owqB ziex-{&DBP(x?MM$y50F07V?$DY%(H(&@v4?1MuK5?cVzTTfRWL%iJS~M#5WB@<;pEn zc?+{PvXVsIz5%FeqGA$DXYex`6+WF5Klg#qX+XI6}BOxJ|&}~@>!G1WQs@GJFyVU9WnPc8;%288ueuO{1VA( zwf1yzd0Fz)C+F z46OS7W0Q{rC3B(AAisi1Dz&w{^jP{!97w_c^Z|%IozZk;e0KErJ z!X#hT`o6rTpnzW6VV{{^J2wn`+nKrCS*%>ug1mvgPz;OKat-?C`55kU&azXp&EAt# zs*Z;94DV05O}8PFi~_<@Zu^FoPeA@lk6{hNh-%AfbYzqd7XG=oZQ!)rV@0VP=EkVo|@T`52v~ zDaG@0yv{uLxZ?M3d7RsG9x7=f!_gk%ks?)ak*U)@az`hpLCc1hH_B(Z$1!A$DJj2A zXTQ0^><80|!%bWB`}%4;byGPV9PS094i?-W78fZdroog)YLOW@PPYP2Ww_=QEa za$K_y`avViQYoidPX%yMO%=%4LCY+y2*ln-z%6ssW}?@Cio9*2?r#?ffQiERj)YZ(r4d z%i?GW2OR-M*eLeAFPNW~v+0ChvNo0hRw{+D7LIx!E6@q(Sp;qmCm$&h}j8e{L3 zlK_+M#Szx2R}dll-hnvdeWv4#cqkMK55BiGQ5k-Fb*W+s=qbyrS(iokw9L%Kr7ej` zcJq8)(7&ggMyDZnS*-fNPJ6uMIU-q zE`5Pm#PGIW>>gn}fy^n(4>?V*fm$1LxXqF7eQM&LnTeZ{@_Ac8u-CrR8_VV$uS>MAP>CK$s^lBry#wC@2B@2_d`I@$A$eG!X1A<}i@N{*X zWA=5iKFX&cqDEhF##aSnkr985qPGuQN7>>o&Tt5`iAa-eHWjm}mv=2}n9Y>yg8?3x z_-(FaqWcxlK==1fwN^(U{+HX)$$8(ni}GmmG)nxpC+Q@qA7j+Ea6e|!Suz4`5KNW5 zSfFi}nkvE_dUu-4B`+iKa*@l*04QIe`SAlwrP3uETA_$mZ}uF#xiwZ6sV|Nbsa($m zq7@K6#DK{QNvbtg{AS0DfgueECgFF{G^_>#TbVgMe(2UrD%H)sZ$$jIp;~TnmS{uw zi1@5y(gSWEYHL&9`!(yX)&TH}xUG9YNQmzCh5}^7TqDTE#f8g$>&>9R^&bK&>WfNA zO6+Fg;QMocyf{4duFuoB2Hbe2RN|6^S>7@V{?*MSBLxsncpS`h4d+ivF)`D3f4;uo z2jKeCM;kO`ykuBZhMi?|!=?7!IZqwdB*euR52g9pqc%%_5yJ;qJ9asd`tp62oiat_ zNJ%~7k)pHkDO%dp1WxvjXxPaHtd2K1p76k64Fk)}WW@@8x4gXcg^w6o5Qr#%(K%zKg;hk0yvEb#m9XtSAqCUU9$G@H0m-9q>j=um6^1+NvfR-8Px4L%eMw zXl&Wlv7i>jk%=2n3liqyf}OkzBvi;ACq?5>R@H+zu-MdxBM8TV`*!n2L)i zC_gs#%MqL($my~>2N|?pDlHE|u1855r z@$mTgPJ~!NInHjHlDh2?HMiZmzuFgJy0C#f)yf2y68uT)4;bXaYW6U0oENQieATF_ ztAGG2fYW26JbfC&XZqO6Ei11gBI0>Q?IDg~&(LnESn5^+5ujb5)-_g7n3-RN{rqXe zGydZF^HBK?`@U8#PHt6!9>y$}W`eMbEYKlFLKyM+e~5dB(6O7eKk808cdD#5<>uzv z-%FLA+qE>-mXFJjbTyhR;Dgx%j$KL4%xvQ~5)r}Esj9d1iv5(E-rk)4It`ce zQWpH-JMee`yY}0t-=nXuk44Z9JnOemhqlIPpj(w$z9oF|&% zW%=5)L|j7>8O8L=bw!>{3GB4ssn>?vnOgz;^?$14LC9~@ReJ!`#5?z%fR4Wc@CJf< z`Kf9DkG>)%NSWoNtjSmw!&RvT8qkJ*D(&)9e6X8#K5Eiqfg6rW4T!10I(j zu>BFCp>~234q6fzAEK&QLxJ_Gb$GbgUQf5!d%a`BB0M>{ZJ%XCK91e|X~Q_HAmqMtqmGVjajtLT;p!f2@(x>X>Z6NGq2_=f>q=tt1R9$2aoJlN zY6c1lFNfJH(*6Badx+^9Fm+nl*|pXt*d36exW$ElL6x7s4veJxo4o=*fIO9;_+kI} z)ZdJm_E>FyRQSPT)L)_$1ne(x37jpuYhE2NxD?O@fawC;GNx&Nu}#d@ly0YLlPa1p zi*~^VPM{IFAD6;Ry=nJZWrJ7#R663B)=jt=)b-+MxsXNGel&yM^%759UrdDew$
+bO8wksOC0EuwGZe$u)trf9@IyM;HJq(;_3r=Clf-q}v=^Q1 zZZMc3IR%?_m8kl{B4=6Um(4NV0yr(Fll4rMa(i<)xv66Ru!?@|y*%jzjUJ5`I7()w z(+fQjHUjiJw(#w*e(=)Y6f5vMAJ-rC0f`E~j;trKw z8cC_1^DhEnh!!*U!)+z4`w>q@*p}WAzx&{F|K7d#Z!ypt5r~Ybo;Wx>(`ngjb?+48 zB{TE4t}YY-spq@J__(7?ycM?v zG!$}bX83#CoX#%J(}jV-&fKv-TrX-n3iCK>{!^96Zr|Rq%bhEdwwp7aMMXI39L88c z)fIQsJXh-;pX6aO?vTH_rmsHB(=7Ffi7{%tC%>8FSm+WDmTFW1Hx0h|%%kkpvPjhI6he0h8f3Z6`Ik6i3kpVhiCn!LH z&7}u44L|6$O5h6-r8wdqV!L2r!@s|C|fLIRh% zZ|h9ZM)VB~=0?(xX_e@7h4Cjd3AjLW=_3!peugI^t3yT`MZYXzMyH|@`}}zf*owsg z%xHX!+|XZkfd@N+WViANZ4Fr+tlj!U15beawx(+X07bE|u<$`o&-7$>)-*x(1L*Mm z{h7clX}4*C{7qOmnWo$?NJKCqBH~YqCxyckUfVs$&9`r;c$_g{TX;-3hpK``+Gyf?? zjj5QC5gs{X?peUr84I`hFcmX1Gmr-6=H}jQj^v9^TMv$pKO!Y11?~ZFbOJrPNa|t* z+A=fh>)B_T6~`O>K#=MjhBDS3(10n8_wr~^0(M)w-~-v)s!wK(;&dJ=ZZ&iK_z!bm-hs@AH?HH5aqD)@_Ln`(xPBBVt($Z{MOKAqk)C zjLR9Q?Z?Sazf{|w(^65Z!7*>7{VRxGoKBZ(0eU&Gu#gla6IGrN=i#cGlEJ&5;-ePo zPREX$=nN3}v6WBg@#YBA)&QpM_C#XximP;V!SubcVkhkL^VQpHQaUv+XJ@BK0&Sxi zUc4gP656Uhel`lPgak7pA|mh*b$64dTQRcPbPFo5fc^mV**fUjFA-^Ra#q#{hK9IT zSJ$1W!{_Ih51tXqo#4RrMa3oc*B1m-s+}nuWNN6jg$?jx~g-4&>p|$5kcAj64YUM;2Rytoj1mdy*9S3JRo67w&ryGp#!XKYK zd-hRA#%8ey4FCK*j50`eCD^8Jb@<`!^4q*0T@_;s>L5Y&4qAM_-7Q;_zh6DLI#;6L z@lqHiw5$!Pt*wQtXIx*N5{j2n($aQLSd0t~4l=2hZEcycTTVP|s4y*L3shBS-zW|k z>9O8gjwTd`NK{zdKRG!8>NVVak{uFvey)=IbJdL_^UM|k-0x3NP*|hJ!TgtvU*IdKI6qCI|paWz~f35 ze@oBF5<}^W<6SMY=T)}rVz>7mhz;Et+y4DpY64oX<7&_-7xW4b;^uZU<$CMMdool4 zCO$DBsBsoKzR?7aVyqGc*MXUj*yHI>D6=<8`@Bv8ZQBG`?O5U<~n_G!TY&jZDeii$XD9BL!EVB#_rfJ~OD z5-DQVX-jRG2eLQnKpil<3bIh1cANNc*d%{Q^V@`<0 zER$pt90oIZFIomcsHmC>dTTamoX%*iv#nhGa-7=$f{y~V%xFx+i+7#f-OB;J{EKtn zu7O44=g=+A)!XC;m#6p`kA4O+s^x;i08slfGtpVR@v$*&Q?(5sdD;0a%pI;XZatExVosC;J)MG)Mx)mcDKp4vYLd9$*7hqG zu$`Zue-skxFV+{gNN~nxtlO)BipBDupOIgjY_^$~&o&~^2=ADbeBDHDyOm`nO?vif z`yhOtC}6Tm#2?I5Bh|Y+-t9$UtVL~D9n1_@aGaI&l`gU$-|R~v?~I}^bt9%SG@Nm{ zG{5scl#&4!*@b!0hQx92)y*j)o`~Dl_xiGj?`25smGw^5<&KVUg3Zy|=ep|^(>rCP zr2fVmwp$fIA&#TgW^Qhd&t&y-9uu=GhM%~|c6M{TgsPrFS%ys193Uq8@~Ni{JJW3L z3h{v3PVq`<()}E@<5Ic}JdXg8elau@77=+;V&L9doG!k%e@p>7bluGc?cys6B3{Q( zuyw3@Yci0P8>SEy*7~_6zi<%iR@Z185wS+Ne^HkQ>6w|V+tcOv%qDL=kuX|&W|DyI z$-~1VP%b}MNC<8^iVh~_`#`Epqn2aVH2`itM7Ev5brl=nEPom9^1rnt>53g2L%Gp# z8H#}?@In**#b8>{00|`p=m?O!H)Si3BHMmapx{OVj}H{A;f`_?dsqgPzO{)`9@xp& z%2w={j<90)3m`KvGKP4e(BWQ=MwJ-q+-ViUg)?Rsutlfo>!_=9B#mnOOps%!BrJgn zw9#s#mO!PAWjV$H{x+U6^JV!*P3~ZpX)t5A(Z1z3HNvDzsoSZg>qh-0ojA!2?aZjh zw{L#}s&?gJ(&hO|t_lVB0^qg>Qsk(>agOm47%qgGIttzM+qd_tc9F*YED7H{=}n(0 z+?i(l^~LdQ&LaZ}-HBuIV*#NyeZdFr;R!mj{%H@fH@Q$+%7x8*ArLA-xokO>vsl=^ ztySEXGHGTY{<7UyYOx(BTMZp{*xA_$th*9}^d#{$N7Zw%IIg90a`8Z?)2Mk*kFfQ< zb07@$2Lzz@L6j?X@b3zvgc8~ zs#~b$Vt>1wznRR1-HfzbYfh&m!lhL<0^+5=r8y`t@a>{Zsk@k7T<--hO&Gbio|NzyW&%6}bKMr{8AyQbtB^l3g#5%V(jP`%DnPVPeLynIb5n(N{0e z4*`Kk2S~J*_I^Jw9Va9vs#NNDvB|HluC^hOx^`9XO6vkE03a<80LG7)Pt0v@itFf* z-8${edhg1*zDoH5hJ#ltwnsvn^3gFde-bR~^$#Mbzf$~E9&)w1$V}E`l1JK`yFT5& zOb!4x>Zal0NZ3woFSq^G8FZyLzD*EAKz-}Uf07e3J8Nr;?yhbE*}K2~_MP*|4op*+ z`_A|iMR(z8XR4$N{P~h%1`A8n0M}c@SYrbtPB$*R@|}~t*`yev6#r=3aC}{F(fimN zpQ07f5}J_E@&H3X4D3}}+Uv#X-_%J-nh-j*;y(m^G+5X+abTKeI!DB>O_!7M!A|ET z%uoS%uBc>d9PG5-@++Usvd=0ouSWlEGVKjmPnB}Qe0tN-JWvSgK9-qum-N<)m`R|L zkdU~XwEF;29fq+I^2hB{Cy+t*A?Pk@0G*g3k&wR+jz)@8lE zdqc<9;7dz-*se5jfk$t_ku@U{A`d_Y0_{(Gdn0n>yt1;g>ugKcqI#3$L$m7M5bNzL zeum({K-+|bM34wb;EFgm7XioYm!{XMkI_iP0PD}Yx0kv#TaF8Z!8`;%0C~|HkgZDt zn5%`v3PV4H+@Im$eH`84t2hp>zC(2s6psvX4SD%$Ih~h^KG?}pbs2P?e5dfll+~b; zPP%h5AFU0?gBn>-d*i&~!d5-ipzH)X^!x#B;p3O&e4Z2mZX8`kc)-!6izeyHwuurf zL`(t5E5Go}xt$#;Kq3Kl$UC*ic)E%n5`R1MCq$sDbz~$8SJR1DNl6L(yUCY=cAzGb zF#_og24kovFO1tmpjSkkuu)7A+*rIGAK+&bB`0y?$22+?p0rl`)Pz@j!YL(_x{yfS^yswuF78Mz)zkJi(l6}smB(e1zP^EJPF75&ib{C_v*Z|j zf2vANE4NQ3*MWBJ=H>d}a9pV`&ZX0R+ZBHj-t#4*#=HE}U4o4(Jv^34)6z!Eis;H`*UtaeLFJT24+tTt7 zICaDxKEAmyrFS~7oU&T%9?{l#|Necg@=;HBxBlTQA>b^YfR9SLN6!lN_VfgY2snl` z3NofB?bZP;PBt{TcU}-lrBo-@u2U`*SatVjm9+F48XAF|b`Qw@Tf{^n(s%WX56GXj zAEqZdbXj66fM@K^$GD&Dj^|@K1$O=%m`(!;SfhTfGy-$W%bhJ1>*C&g+O6@@@Y~uG z7Ef>VRE_F85AToUXyKuLaVIdA#2rHeX| z<;|{wcLDB72uMsQdU08te?M>}(lVR^`*eRY*T3p@biRsmY2gWnJF*CK7^Xv1iV89_K=WFIH zRTuQp=oq6dMCh>q8oe!(RGOS(d_bclrM;79bo_0F6I0u-U@SZr3)qwg%6D`dYild0 z9blax;3k2cy>WaTAHup!s-{Ij`Fiit5~boQ$JE!43oT+cKi_D}JDX$hmymd~(fDNM zh=b5QEjfDgMKu?gcFFmImv4!UHPqUgk~a5d`>851WjHbnhBPpMQoR>xlT6>ES8P)- z!e`qMDy~wZ;|Ev&(!`kXJY1AvdKw#s2~u5n_MTlsTX zzA79#XaF+l$-yZrI>!?^iz=@jKIi@G1WV;=gGi|I|IAAtKW>CgXu4-p1A$~dLv6PK zf$#=eTZa3=ypzWCM$^w%%@qb$5AXOEpWS*>qQ@^eUq`s}-8=`<#?|F52?x5?^IeI{ z7@wW$PUV6ZxQ8&mA;A7^5izwCQ>tTYwFhK_woz+(``cQh&x z!9Wq_v2t)I59Zadup2pOuy^AcQ?Z|L^1FY~lP%Lm-o-0Cs7h4+<=;Ozt#+(!=kH zG!!7CQ8?oYIfFG<2J7o*Q;B1ek+F4{v2$#^)6ftHPNHKat%ZqA%Kj21OLcXPii5a) z(EQ`_)i~fbm-Yt-V(hobXr}K^lWL!!q85+zBn9asGLx+?Y=;S74I_b5DFEkjmruFj zmX+C$ywh-2K?^(cU-B7mbiYJCutOWJskDjVIGvJmM4N7U zB*40yp$7b3FUg7{p%sX&@!Ej9(X+F(L(dfO^X6VWN9+$73M}+im!8AEsl#zQ>_~Dh zsp7d7QIg#ETd_(*_^-Z_uJ$5nw=Yn*9L*!S@as}~KE_~RX5{7dSWR+Iy8FVWk}9(6 z#36Ayd%v*Q;dZY-+r}`-eO?H-1H64!E0MNxE{+yMf+&o&flmJDtGQY^{wIQ@aH?R! zzgeltZhL23eT1M#P{{2J@iAxIS6dmnuwObMpFZm{e%2M$38_V3h2za;G5ayYTgG5p zwN&tyr-&J$_ww%=y}ihUxZ5tfdueU(%`U z5vrD&hj_Yg)?I|wDV${8$5rBZO-VV2I5urE1B_ZN06xu8L7P^zd)&@01B6jgQK507 z`|srhT>9SLio%wxx$a*{&+UDy4-4Bj@Y_D1<9zd^#68Im}vWAy&Y%1YA~S?8ZW@78LopKv-6Sv$4U-#&#PBa0RlXa}rC_j;);{|JL4 zx9Bj-$_+k8=B{yS`dKCW+v)I=L=wv**=+g9lV)jwFGFk0XB(Z!oQ``he`$TveRo^O z>AuebnE&B2x8~vD7dD2sahC6hAycTRE$IQceZTa@zeM$rk&_p>&+>m^iDcHOw(|@K zpgq}{_RPw(oVgz=@*0oL85M}hPa$K!p`J7$|1swQhcy`)$y|s+r&l{gPe%tq?Ik({ zlECYRijN;x@-UL^w7GdsE|>j-ho`@J6t>^T`_h)AQy3W72H=n?$rNhMw?3Fde~vk9 zC{Ka#T+v<;aE8=lSzeEMMY&#z=`OF3Z?wHp;Ks5 zRIslvl5(~4BOuD%gVcA&dNnqGBBQ6L3SB3DPJ-jVS0wYrx-vQ{>M<>?I36C}N?dI5 z73OFm-^t370nW%v$p7POtoJl*g40#U(BlsMFYK6@>!M;}PtmU` zF_3Pizzo2{$<5U?HFclG#wIO2gN&K^9-Nuk@r+4!*PJhs6qg~P)eFUtZ2)W;TzkeW z=q-)F!Xmb|;jV8M)iRIBh&+v#GTkRJ6O$fPyAJn>e)@+YM?0tI_4D)1B41e2WT_F7 z30W7{^6wysAmUWT`yyguO}<|Q;U>dkK}R0o%-YA8v~X5Ksm0y;8!SpWeA~T-dtLFY zNUObx4?dC&<*A_9Z4L_pA}{#r5aZ(H26fiuIMRysFJ_yJ<^iCW<}|ZeerVMrsBf{A zORSwLpQv)eE}jE_;alSgRF+t-*I0f<&SuMJbq+_&oAd&SxSn?6Fe1S5SqLPa-J%5m#rem7tJDxfU_^PmOHfsLtm;- zSPYYW8dGJ<_Eg=AWS0>n5d9VQ+fO|#9zP9u?w?tXu`!a5!5WJSj%mCwxbvikk+ih5 zG!2jAuj3nwFdBBA`F|u+R#AFqZ_oZii)vLuCUcU`4&u4d@!b;%UHf=L0gv6Rf(b>g zF5bVNTsX_k{o;r^iQhFx@q+^t4h77z&~VQ1ca{Ic-djdhy}ez-n^salx};RPB%~V& z>6C8i?v!psS|lW-OG>1XknZm8ZZ`3(ea?N4`+q;<{rG--&Tx#wKxF^++G|}guQ}&J z0`OqD1N73yko|v}Z}4g|a_6#ugZ_--ja3Ymc1_#xN=}dj>V~g7VVPciKhZ8M21LZ^ zFiXklkbe6%e|)^+^SA0}kVG$IYCSE8Q8@8mvQnf}uKan0u|!1x){in2I2~_x>%vfcSj5PSg=gYl*Vn5OE8fW8taT%q}}+DQoT%v zQtst{FD3Z@Xm0~onK%+3*cJ%OVW`qe##83-F=+AU0X7Z3&t3dltf1cuF5oKUPfwXA zp6*d|`;3SG25mnf2}#??2%bWwcv2)Udt$GFwRKd&xN2^`>1(qB+#Pa76o`>wKpEf+ zzo@DRD)_9QRe~KZ{#i>C93_zywS8m^Qvb2X2L`#WFQ$FN`F8q-j&U^kxliIxYkDoOhrK_ukT8fAd6p%d{mLui#3PHy)sq`nE z9UW98{<;!UhU%%t)<&ot92~jkChLsQBJ=`=`3ELPMO_{1Hzf?y!i-5zs(NWFHR1PA zxxyl&@y!y$6ud4v07EypNAtHg(u05#{#us;OpY_$KZHe5YZ+|UoKD49)i+6sY@}XJp_aF^$p!3+({|h+k*H;aRDz( zF=JyMp5MYW^o|8um8@)uut-CcnhLZVjE=%&S@~JKsr{s8>{|7)^UuS@S>tiLgV6zBCy?n(svO+||k_K=s^W8DwF$(MnGyZ=69;Xe;q6kq3YxsTL=9AfY25ZKWw zoT3{69zsj_C5Hy$IPE6lxJXns;y9e=6ELFv+Yv7nSK;Oy5Lf9iNWc&(PDMyW@@H}6 zsRFqK6$iD7W_AalC1vX$4FPGQvY|S2ux`0#+5tYxhcIxQp8T&hMBPXy(x9TEmpA>m z|AEAMF7llM6q-JRM+nVNo=XnkhJ-qkg}J48h9!W6)PmKRPZzch^t+=VRf#7jMkq_wwq4gu06y=KjDoNxmZ6GRj# za}c`teNNwLW~<&E&Do6Q`JGoz*srl zMBYQKWo3UODr1R?gZl-dB+r_j(HyTAunT#y>PyI2TC%de4sUF{rd(Lv{tRpaF0PQA zcr@^RYzHAZ&0JN0VdDXYW^007a~lx21kHrS#uB`=05FkAN>Iu+p&ay(?~To!pzZuG z=KlY6T~JOu ziJV+sJ5{GBBMwl>BgxATx~G2$0V6q@m$Z~`-%2p0$ooO%Y1mnr+{qM~Qd4An(1{9#OLm3tZ3l!M!0^pxr_l#-KHOS4gKXS$L) zB$_ZBpGg}Y(iKG>T$;v>CWBY{E8(9j?PC!wySfi%Rt|0tirBBVV2-8vf{ z`@AgHb7vaL(1ynS&@caPom0hEC9(4|Kjl%W@FNXvY>)t!J36L(va7~8s;qLZr!Off z2`sXLI$EEdJPn741M$!w;Q93JQT7|IY<>#}zC$7|GV+6E_O32cpo&;EGX9+KEH*b+ z+^|xaIzCm*%<(dI526VD%*_n_Z%{|Os;j8h=y){Pd#2Y`V4r(Flxn3@_K zr{#-18k$$HC^hO-KuI&n9~J)r9b;oBe*Ve-&sJI7 zsI;m*s88&AVD5u{fAdec$Saxr=i!QQZ3u~oL|(?XcT6MBoH7EoE+w@98I=;3UW>da z@DeL3apdB=$aC#9dI~lSB?q^Zj3fQ%D2J+t#g4_h_wO0v40!X5(2D-k((2z7mHqg| z`dyxK3L#0`@bELLxF<7?Z^5A#t|gtBu?yHu*hqwPj3DI02F(RKI|tAi#^FXK;|goQ zw>it8|9|{GDuKQbajH*o-zm}2X`V%Pfq&KrPv}_Nn(P49{$B{|+#QNz!x8lEFziSzX-;m)pD-+&5+xgFm z;J?1U&u1$Dh4=sc-)oe>e@cS?>-&zZ|L=$YXG#9wYW&YygoXY8u^OSUJzT&a|Bi;0 zoh#(~CrTP*WZ3x#7jHMBrQ+iwajYi=gX+J3`-MF}5CcoMpw6(cH_y%ax?KOW2nq`; zFrbS2WKqi+SHREC#wLNm!U9MnZ9Ox1o9t*Q+9}jboEYKKCt=ayolSg{zsN{~wuUmF za_2h^4i7*1@#6=0bx?@Wf%gBMw6ut%TSFRp4SCnu-WH$|{0Sff~_Zqw*~g08`$FL_*= z=6-t~UcvL<$I;@Gh>Pl>be?jxz7=FJxo@y3=b$cli8=w2?%Ps&y63Vz#D;5`;JLk}LEP{5W-okc$&Ctpv~ zqAPGrfZGg4&;6U!cXEAV48|^~Rbj6w_G4AFMrynis_!alShbEoI$_(I%KZH08&y9Q z{TtA(#Kg$AnlU_a99rQ{hI7(79dl1fQQc~YecfX0*c9%BGAh^bFb763fG z(P~mOv1sB2SRM%ogpF1yc+rj!`@?;U{h9i7*`-7k zoN&a=%_LS<#!Ln+b2AfA)Hlyl`2A2;aXz{s+MTe2RBEEv>%=f5GaGGPmj3PUAAZe{ zD8sfJ`4o_2|MU}$VUyj9QfF?r{3xk0-l*68B9nLR{nuXAuRMfR_7z~iO;@@wFzfQa z>Zi))uMm4K1H^6tR6T|5dSIZ za);AvY@KFj%AuKZ8l0z%-rmEF5)7)P>SU1N^+2ePb{Ce!rKTZ30s?GTkG~@X z=(Lu5^l^*0JUsBWEE`&BE8(e{TUgNkrKKmff!~F+4wg{~?oN_nEc#K%5-|B^>Z4U# zEGcR3mx5K((On=^)ffb}DBl$xKiNC>`Us`R#lcAb&R;NugWMb}t#?9T`+V%$mnXnpvO(5a|Mvz@A)Kb8tB!W4e?>-+z zT#JA<^4?(q063(Ap6G+}@*n4ZaAxpto`5N)SYFh#5@r`Yr|)E4HwI_`4$Cb+>O z7oy1+lCCT9#&#B+nYj!&Vzws~a;S3no0*!fu2<#&4YRN%xk#_Ny81S^eFba1-0o~C zNfNXEC%nES!%YRDqS3wa!pQi1`IV8J(1JwV7uuieeAGQacml-z?mwV_N=*9v*?)OC z?Mbr-uA8W+;{Xmzav!$m5vJ(TLfeBt!}9hvV&;dM72PWQ`2_~h479ZlKTB_L6_c}m zQ>NdPT`7RK(63d+YOuUT$m{+L%=fAKABH~Em|=MOoYMKGoCx6eXR`D&PbJulM-s3c z>rK!XIbXsR^598j9@upMgTIXUDW#$p#i#ZS?~OHoHa9gq>vFLp)3lhsMsR*ySFxV^ z`E;sG2j7eUEmbb$0RcJNClvGe{4^jj5f2Qnj)BHO2Oy%*tAjrP5I7~1%g!!b*@-@E z5=4T~(7rTU_?pOz<%xo_(0&g!y!Jk}Z`AmMn9e0dOOrGmQ3(2EO5|X|~0L!_c`KN8bRH4#i?B!sB zSZ7&Do$*GcE<2YJqus^z33X8LBJR4S0+Fh@Q4wL5tE)p>w}7Asn1+fTEe1dK;C}8q zJ51ZPoDRcI;c&}fB?8)F_lJF=!}EKI;t3%BOUj#s4Qfi8j%0RdVq0$hG%D~h#xW;PI zU^E#w7^FfV<^nt!WXSd8xd@oo1HA__NNXVD|Ni^Q{`Rh9bai#N2(_TW;hq>Aaw(IJ zK>odZo9yfiD*9cz7_ztMsrBeCyW>)Imgj`k7IXNAiS%tC z8-Qhdf`-xA6aVTMFlATe--X#%IhLyxPqK1zOK}JZAy3?QS7H?i=+1KL0uVi0<7kmJ zSqn(xUEI?XXc)6`AN?MK%k9Vv9m@zTW#OUL|0Ix3Sw^|nHfHQZT~TRav&}Aw`Fi*K z$()Lo6J=!R7}3K(^*VvW*jeZh|MC~UJ8qTlJ)ZAC+MmHe%#e@}@HrKzml6x!mvGk} zOox}Zq%zJYoOggu>K+9%1b~M+%-vrT`<%&JRb-^)+jjB#j`y{mL$Z`|UV_w$ok0JM zA(_SabV`2>;M5R_;lW)s1~!K~o`HZ|4lyxmP>G<%_X*(Qst^(rKaKBe)F@w76@vO) zQx>Tg$8=G=QOl!kQs>X*bzN616R!Ci_5^H2u@4`JAz79ame&Py-NdF5vT}0hqGDpO zn3j@4s9Igu9ZFH#-ng{6c0S`|?>veQ$vw3>Y+SOx-G6K7SV+fmpy^?gd|v7@hgtBU zl-JVTb1lbqfzA7zFs$?TKr}x$w_r9G_(}m?YR-p?-R;pDhRL!ee_4&PtR57KC)@}S zQa;b;#p-3P+`x+^)6aeI_iLh!JfR0J0nf`Ixt9nK^y@pP0XYFM?7{I(70^yW7an;` z0fPz6W@|e5JEtL0iQGnfaY;#dh_~fr$MScvmB*tNLLtL|EawyY1Fnh5Nqn~QRoEQQ zaMDlD)021dv65KY5)Q7x&9;v_OMXcn3GoG}sDbVi1RNYQ1PC#gB_abuCwmVWZ?lib zhnCF&I0zOwzakkFhy;MEnD+6XtEFNBrsqDs>K1IAYK{Ex5Q3phk&Zy<4RVHR(LP+& zH!EGeFF5h`w@VO!ZbRIwoLwD04p&ez>o>%N$G>dLH+xS=O!(sMTOz>4`*{8UO*w5j zVs)8yUNJigI?7l00|1puvk7{Dnl?z~t*R+fu(mv``9*V8VeIvS(wtf{cA$RhxXbHk z;u-$POw`U;rO63Zqvr)G#D1d}55Qx1QZkhOwbf8-4?_|u*xo(*!p7JqH}$mkrH{pI$=iODh&m@MFtNdw@c#HMHT4rGL(Fa`^Ds2j`08+By3)t1Y(p}Q%PItz&1A)tvy_yS!itwq+;&C_vo$J%C8uVs38iEVQT}Xb+GM$e^Enz}T8hDVibH|w48p}O zXUC#0pK7L(4zR5X@o?HK@a1OXR86Oi`EM?O#MU6iO7cvVQt1ayM*T{hh2P$}wMdEP z2Yjxr#XOyXgFl6*T+tP+$BH#r0PBwUXrcfPL{t+K6IiTH5w!U#IRji@46gsi6=;-` zo3InX#%^FVZLras=nfbrk~0Ab-LBG0%o#!eJaW?fpw$M7K+ExC(Tgj~W%<80Am24O zpBR;Kb%Ur6gUZA8>5*SN3c5eJzdi3-5et3OOZ(~-ES6a1-fL7c%Sd|c#I_9h521h} ziJI}vbEXf~L1}3uK1 zgvakvLm4S2YYM;IPpFu`36(4T_?6(AHrp(Q(u7jkB0D;&e8S3(qxV)eDfOJ5_sIXgpuAb#U7ltDv7 z`;($Xt=2*iEGSgW|8e-(=bY^LEfx8Ecfiu({8QT7y#kQv=nSa-s50`7HL zvWQ3>VxF@b{R>DwJp8fm+RFm{7C|l>%~$~QK8Z{W8$GPr2(}@GRl!ZNy>g1_;BYzM zwkR{vy6>62;Ih+6W>}V3Sm3Lxbi7fHA{4+!Mn>M|HhA`P!%=7K>GxEY>rwgx_z3Z**`9BQ%<(Va!Rsvwq_(t z1i|~QQYB(^a4=GHCL8tCXclN#KQ1=D{mN|@Q@G?4N;X$ld}?-gi~t5``Rc^(<&qe3 z50~1`+rx18w-;hEjz1-ReWRkHDdXNP{$6*{qDeM4oLNO8WVcS}ax4SAdWA>erXxxm zHdcl8$PwX1C*lOVgg@208};SrZ*@BZ2BtRA8V+`5tqe~K>FB1LtX>&q=Tu$|35_&L zp#A#wYxQJJsy$nEuyN@Z8!$)d>;J>AJIj_=q*iRSu{&Y!Q<`I(@1=oas@ouRplKgxAG`VGN&Q?P4&W`yIW>VAE+d{XZYoulJptr zzJLD?E1JPO8Q#9X8YzGD$3ZJ%cn{kOlT8h*H$q}_{sG(D1d!(9eN}%(kAB@w)c&6_jboE0Q6|oVU|%Wwhy*HZd^O zSWSf#7n1<+75RKGQnP054ISN64QBnW#J=Q-+H1SlR#ye8zo-4ibB9uQLAAnq8+igc zDkT5a;3aS$z~h!aDWk3R8Vriq)>V0_2j#4*_=~4lXFEV&8qfu67AT67C>a>gz~;Ia zqR76=GXRN}93)PNzf>%Fwnpq>Jt&ZuLC6IkYd$NHzY)ZI>_yyc^&&097|2mPec)ne0=*szYs z6wP@IwC*IExe*wzV}!l@)+?ikmhR!LvvBd6nD(m}G6~P$t0A)*L){9#fH{0}A4Oq* zd50vO%T8XfZQ=6?l=chJ(bPp=QKQ|`ik9DL*Y5n9fQ=5JJ=UO4t+ZFPge{q_z?^hl_+ zS?E!8EA}*_NtQm*2-NO8o~ty6A;D`ik;%Ut7@h#41qnEhA<@y%_PFUgIALGX(=kBg z20;DFYG))NpBegWjZNgIduZ`u)I)(R!T99`5(JD6+DAsP0YPNC!5jKe7;11Xpgb3iJzN-RAHs4n86x+gt%z{O_Qz6K3(yuK5cOr}^Y+e~6!&wqjn< z>URAva8z>;3V+8f^WXfD5U;8mt?2v~PgzMD&t3Vra#z)Sny-k2NWLl#~}m)F9GJ0ot@33j0v{&waXI{m@ao}dup(YzX)WI%N zZ{pqTPYY$3vRmFcBltye^9(HBA5cvH0gom;0wrp0cB$~*kkP64MNk^je*ru^U_Wq& zgr-(C@p{M6cT5dBO)O;jI4&p5{hV+}ud!o-l&YhGu3VbdOL>0v7$Ys^k&(^EaqcF=X8!u;JSx3)da#>3y7|px}3=5u{)z1!2Fv zq>euP;kxzPh91yT2f+d%WVlXWC|Y>E5#Wp~dp+?EyXQo(GxTaGW9_tN57yr``gkk; z8B>{fh2kHVBWb1MG!8{p$Pkdy5zUrd(k*1|E;#*_$zewh&?lhIi>2<4SsNL9&F^)B zv&Ev<4kXK`{2DIxEwAkWq9@uAlkRkXcCL*00?uFmEUEq!?RIOb(fKeZmRzmhSv9XW z?SU>!d#S=@k8Aq34+`u^c{rm7h#eZNZ88<*aR*mhs)S;8Iy^#PPZ_F^LAAUz25jW4 z%aXs2<2k3_fU~62;(-e`9Wumv@%Q^RZ*~+uaw<%}oL7j`)|$LU{^D2h2Z_Khgs z*nBPa+u7YkR$yV__q}_^>7<}1+X@J&cz|X4xo_k8YMf5(_vtOP`}c(%DnV9ulR(+x z6LIjyiv*BSue3~KZwLGQr08QQY+|T&d+|dOYgUo6Kpz$D&ug>enfc_kp3$z50px+# zUUB5nlPDV8IkG>~qQB;$u5@_fwm%yUwmJxntsUdfRr23=4=furhJ|;AyiapVB;hxC z0+Cp%$nqM`=~j5bOo@%_s0SI41*ac7`E%IT2wTNucDY);qp94@k{b`ufl`qRboEX1 z1TFgcAMm+-2Q6v)D&+Z8vJ(L_ykg0Ag$oojNFb~g7FvJ%kf0H;e2TBCGAQP@oGc1< zA>mrpyY`t7yf(eG*3{OfW-7IZdk+wUYvTpa=zCtLNk+{NAF^H2Y9lFe zSuk9r?)Eb=vOe^c17QLR5BHb#}mTIg#*Ti(+~0SEZ_W|?w(4$6UuV!`aRzP=wN_DK4v zp`n3(0H8C#gi{K%QT8Y8NHwEh(b3T>950B0I8=rN^@Jl-2zDj%zS)tApwfGljSy_ zpj}p|qVHm{5<05Q^@gY_96_&lZ>-+rjJ4hO_OOGa}rCvZ5we(DaregSke zK)(RcyS9M=3|RLDa1_#;EmkAPBzPu9vB3Gj$D33>b4;LtE3UNOyFa$?zuS2QP8}X( z`QRYBm4q8+JsU?YnWenZ`-_OMKxr{Y2G5(#mXwi^5zqtywUM=Y$Yc6tav$4aB+D~0 zG7N}jlO-M?d5-wCLcHgj_{<(}tuoq7?TkMfggrMjdix^ToRWh97ov)=YIk_QwMV}R0)!Ay+TXKR= z^LYKl7(k48pw-!)*~0}^i5NLjF&!BT4da4pCl%L6fuYO$s{sJNMnplOL!RSv5e4cO zHsH)X#6WaOVuEsyFxgA)u9f}+wj`ZB+3je*H^ zP+%Z}UW;!u_|;bZib)9xx#~C{M{~n>zn_An)Fx#9w6vh$b(lC6qt@@|6U7=*Ig-)# zdZAjjy;cq9%+d-9-4S?wCv$g8BQ@IGa$kAiQd1+iu579WG{!IXFP`GFXu;#EsDNhj z1wB0~p#2^fYT@D?9Go1O4EQ&k+dn5HJi&^k2X#K-?fG6PAPX5hY9r$kH$4jekWY)T zoG7N|=O?A4tW&E0i2@*$ppatXC|*6#*(C^EXOMdiGkMw{?}lB{{&WZ1DsD{kITk>ouYF&_H$hQZJ1FKGni6<0;oKZ2)~?W#b^4kCO6N3D?=6F_RfP%P!mPq8BHO zmbE=n^(sR`Vr8+Z0kBI%F%%TM_jba6yifbSCzZ|#Pbqu)5D?MzR}niGd@K!qMempF z7wyj2Or}{Otz)kgo;`O)!@R`2206uhJP!@Vnc7jwFX|-_e;IGMcS!~-*T)l{&)0jQ z7{w8CT8_8EDjeH|hMYO6bf*Or3#atBp8gfTQ3^6XmjECEhQGT%*&a!o$w{0N(k*+X z%0HMX6k9#63X84krL)9U!!Qt#S&HwgLQCvN6Zc;#mfTDAMx<(ss z|2YXsB$&aq0-+0lWUsf54WmybHuMT{%!X1UyWW3&0p_^n`YnT3JY4MT^vC2Ehv|GU z2n$@F5Q)_CSXO&MBH(oa4*>yyqQio%@9_td_R7IpAXorIWMnE3D+D>MvUQ=Cz&V)7 z(|aBR?x9})%UOXk(jTd)j{SP4xRjKz<6~Bk@3NKiWC($7dbY+cc5~qC>P?k7@tn)< zJdxFu9cW*%!NnO4K$n`*XF@1wL<1sb6mTN8NSKm@Ayl9*2V9(D!Ljyv(wy!niO`tz z}X_405oG9q=hu)zi)zco#VQRO21 z-u%MC%I>XMeGSl#6m8&_05m&=Lxar<0wLwMhnNq2`&2moeBrlG)YlrzwuJ>U?OL1A zC6xC-eUdfnx{@tXD;KIWCQHloVyGYKJQdJU5hL9if zy03Y|-R-vD>CfuZH2N zR;Y{wj5CD2z4>RWZxxO0`v7Kjz~>AzmQuBlFf=gLsEmVy^9Fu5;Z5(>oegG848(ssnFaJxGTkxc62MQwz|s;`Utj+l zpPM|jkkIdk=v;m9T>j!zB4A!(yEOUu)9Kd0$|@2gjSH~0u*HzE+Hah;V8l99 z)`-O77dVk@Cc|6P4O{Q$fF$YJ-6a$r^izlgEIPxQi>?zCRx2Q@fJe@@I~r2O>M~^~ z+GNr6pK;nM>fMz!Y%Z>~*#dvdYP(Mec=_ZMzSF1*UHIoLqy>CnG63eRfPgSu;9#5{udya_kD54&B4b3 z*nq3P*J*Wo7aqRMpg9CdqWxgm0KhI-hK3O$dI$&zQKX#2LWAGJ@fb8#2GjY9h-@aJ z$vN;rk(DE|z*}U4fq`+d)}KoF*78l4!nZI0aug!}Jil4!!?A&`^=k5fc}DfY@KcPX zM+nNpY$QYS8HG60;Dh^A*#c~y1Z3X~bH#Mf40a7@!}2ul zs~F?apr>GZiU<|&JjeFO7b}7`dvdMG6kOuY%0_9vc z@c2^QS@1e<{aUj(T&=}XZ99f672BA4Qj&YfA|tjOy~pE2fAzwRX^FRJW|PZKGtKT; zOs}M*WY})mz|gT0C$h7MsF_($wVyb*EUS5?0-Kr@BoG=J8iV83PdpB*zbxmlgsee{ z&Al4wumukZ1dP&l?&=qgCf5Qx;PSJrdQ2w-s68b#qZ?v5=x zx7S}=stw*aJ`k7Sg7E>kB zyLzplcG+L7A^^isLJrpwNyXZxK!l`n9V9>ifQ37Kg;mp=9aT zQ_xyQSa38?Jt-R7YFZ!N=vx741JuLAbqaQB1`RbeoW4+>Hf@arMNr&_00l9x+kVzb zRFlfq;Pfw#$S#2pE*sLUrIvprN(D4w!B1%=%*x!W-VrJ$s|B_F&H@@di+c*tqXJ3` zA?wH2yWD@hP;G1qu@o5=?N#|1Cnv{`miqUr3?97C_r^%T#SNWz9%sjfk())_!yvD) zxo;~@xT+PYihyNSYr!HNrqK7}d@7sF*p-a?DoX>a6T?Z5UbO($^1~@2KJ^)|#|6IZ zpCSpE4Z!q;a9Y38gccHYZ}e?<>*t`(j})I*dXb-Ev9#+XG6A>&SYO~AVe0z|?WPh;P>IMtGGpu}J z557=JW`;bM-7TDQ(gQdT7^@%(W9OdU-8eyn9pyj&NUY(ML+rDdnWdZMgj5u3Dlz37 z+}@H%bK}vgwt{J5rFEwaq_uaWujYeM!y7PE0y9ym?#lzfzS5e2eEmt5dVayp%EsB* zzT`JW=ne6&@w@v3$TEPvm0dntlQjZ8%JKE-RQ58Kj2?F%;|GweeiRWma>))>os z0!V>@aSpLgdBLQlg;?^DT<6yJSw?}u8^)U4+`W2s-*!Y$5do7cffPZPqOO~NTAN<# z&te)zm6|TPs>qkGfkVt1&}x08{G);+6tphrdIUD_;k1zihQJqtm5Z%S zBVfa2BAQT8&Uh{=3f)`ChFGuJ`zg2^bi8;;I5EHcNN*CLN(Az*2BxJ?#J?U-nDFp5 zd^9Vf8+`cXxHAPLFNLF*`?JBIbAsIuc8O_+yq(~Axr+q)F@EpsXJ8J4=Lk=v{V(V5f#YeNw^RT)9xLav{A!<`j```74k)kzNN# zk0;M@vT;gOnGFDPayT#>%vyPulC^Ma26aUIgfv3j#RRY zzoCOl=7HKwz8{J1gD*n(>RT;I&xfiWe3&A{{^rya+}mpe9n=MM3@XVO;`Af-#Nc`b zP(cXCW(ZIw_l-cu6hLw2pZy^J2xVDa<20|Lr_cP#IkHuyPzltk6N2=+vaf-c^K_Fe z8-hL}i8*T01|OMOq*IB#(P6_b$jbf8My2KbXh@bU58@d4=r z_ti&lGjVZ5Npy|=jt`^}%5Jxcq##h{eoGM{QgmBCh9iBO`{Y+$nIatS%l9GRfhA6#VwW7o&er-gC}<3fSH|`iH4bPlqJL#`JRFYmI+;`YPr2npA9s z>qP_=(m0(i(4%^}+G^ZCIK(PUIJ#(j7e$&FYB!xkU0vROqQArod5&eD#Hg1Wm-)}; z$1n0d8d)1i^W5d8t_uuwYU=R-vqYf2%ZvLl4l-d%%2#*@;0>&Q4S58%D`C;mNRV;6 z;jC5^N7G-ZY4M%u-zlV(} zcsoHmFn0#s5}45aQ=5PZry+LJ4sgMT_}@d%nm-A|JK^fGyn>)W%5;?Pm@=`5qkQk7 zTTnAwrFCwyrdk+O158HYAwa=i$V;%e*(V(j09xFcnVIX0WPR10UVlxH2Vp=r5OV$j z#uPTQ)otSzW2zg@_k+Ka^4p0(6~?UF6aoXP0qO^Az*g&STK)i1tu~k4q-J|LfAvdP{;2`UpH$lJz28~w0Cw#cDYW23ocj1Fb*#qDh>NL1wKq_q4 zBvs3Fv=l|-n+Jzn-^$kNH`>FsiHHQ~fSYDCAP~?#B8vT)?|Ty(3IyFIT7VI9xX^?q zTv?s^rMcNlD`!9U72Ys~MkbPyE~o}hE)oilFAM4V;a_aWYHJs6Jbyn?q&Bi1hy{Fi zqJ$=rP$HwFJ7H*ufkD^I_s8=k(dkK3@|N8X&hi=c?u zM`;N~-L;n#1!XS4)CHEUg3q?pirIjX3Q#l?eVheS(*ZoVSui74sx*?w&CT6@uKE<> z=)na*eDyNDKv=~ONJk;)xBOF)h({5ijhqxiTzs9{ z3XmYeF>U4yR<9iZsWlX&7r@*hp}Z1hd%Qv_cCdw?`TDvbTHeQJ+Djqf?Wj#5C z_b=71T_-XiBz+z2Ggu z0HA0^N3RCU2>V@qp{TV*5*}gR`6sm`ZJr+Yp=H5ihpac$AhO6k>^NTB3myMm6 zpo~_8_Ow3w+_^K&6m0#1l?~e0N<5&bJt}UZB_J$tAO4`ZYsXg9!j>DoJ5gNh>kAaE zM&rog3F9bRMXIGmxAn?-+*rZodK2Gfb?JC`j^L877K^{%0ycy0v*gbydztK-!+>O? zu6|2WK`(Ey6Om?sYdoOUc8Wt#tm!E$&78cZ=Ka8736y}vzJp)3eBb5Rf$LpG{9ABqEi{^#lw@sEWTjkq)Nv zu}nGOf}w-)tLJu~)4qN!LRMG!#uEcjAxsq&6-K?^=-hz;Y#V+{7L4g7SnVhbzb)r~ zvB7}JaPa_$pC1UcMBDUljMm?wQ+#)ibX}aUC+_=oxKxKF@-{Go!tai4FoQ2tyRA*L z)(GjaNT6SZf^uLci^Hr9AIg|dW1x9>KQcQ7vb4>0>}ZFg#m zUaiPrJPiA|ND1L$Z{p9T%^c+QEinw_%5s)RZFK)_X8r2O85ZIqPLS6i9Ds$7Xs|fu=NFLjAb^pl)_km=KN!)*19_*Gc7p}z z$)*-c6crv9GF6%J1iFKGpifW};x2Dx^C9N2qye;>Ffevn>%AbEuC(F?AuC}k(Ag(F zbE1gucKzy9i(TXGGjmJJqRQOQUmTYiS$ajR#Qt#m1^!n6OT!E#a6GL#MF_q7yH%a&6mtq zfUFlpuThu{LVL zc|Lv1yk1K&W6gC`S^T<;R$$AzenIR@0+Vq~ImiIkPf7S4e|PsClN}_acHGoD_|EQ-Pky z7&1P~)m&**Ow7qIw6bsZJD>3tdw zTt|w566s*EMix}Py*MRqG|6dc^>lx|#21@xy7nSau~crt?A2mQ3)BbFEVcu&@OxA? zC068^*HXP+*~>kGG1HF**Yq(m_|_hhmE|#w`sU2Z^N9VCAl6rEzFy-mK(SKXb+& z+IsYYt%j<5N_P97=PH6S7nW0_7)@nU1y_q_X3*aEwp$@dic__TD)%=*W6rrlUniZZQwP++fgCYHcyf!xdZ!}=o;pSKq(rMhQzc2kk4Od9gBf`XzB z4r(;@wzJ-Xrplk}JP&88q|AphE(B?3V7WqN3EIo=kp4E<%`Ej*>49qlcb|-mqol|8 zzXji9<3fTrbh2MLA%7jpm!FVj;m<7OY>0e6ocugrAzfWZ2T!e3T~{)PZ7R*-3otOj zZn~K5D^jJCHy`|_E<@hSsaCEu25oxvqP*a3y8J)}r)-t^fbu;<`S|^nP!^@zLSA>K zyQs}vty+18z)wV9GC}8eLyucRu#+>9Kg2}*Fl}tP*ciO|a2=0~v7K2ecN~m}VvcBQ z1~fMRFg+-)95R$!&1*q`U+@}Q0FiiPneS-)&mVHNOl@1GhRcJAdSfXv#%1x+1+zX4 zt>8Vci&1EfBpoZOB6yb3s>g>bB!t}z=#ZcD(*0H6iv4zthW>?_?`a~K6uU{qj5knA znQ1*-<0`y!d|z?6*u*D0*ZEwM$XbUuBZ@Rxd2_!=fuD%iMvu{F zinr0+H$J6b9$~TK0>p|T9#{Uc_Xtb-j$CQ)fkmpare;c=b^Q9RHOz9@=RT3)?2A+y zm(9%K3wJ6#wbB6t^8 zb~GVN5q0wpw810bGOUz5Kand1g~@5uk++$#vdTB78%;COIJjsJ4+5ySv$9_sGh)q~ z5%~b?yZQ0b%Elr2X~Sm_BU)CvNbtzWN~_1mt&Iz%KGr*;Vqs0`x-G3?V8-cm7xfd> zM)c;*OQN0K!qdi@&qXx1*3wE>R+gc&dd$@FcSivq=RK_}v3CS2&%23w9@nI`oahFn z9Dh3Z7%h0t*;vlimYNNudha-z5rv%JH{&sWk@)SXcJB!gv(QKb2~_VmgB=)| zzp>hs^SRhazP*GVUF$!Q$ z{D%29={d7JlFz@TM7>GsF2C#H^p74~p`-=dxV>B4v}C?1y>eh>cc*uBg+a`vDk|EJ)PhRvuBlV|TP0DO5r3jIEv}T78#7ca z6pNx)ML3;?({4oOi}UsIcPgLRH{5e|He(zLLV1`6b30(j1nyj};dR^DoqPYKSbWHB z$u~!yY}RTu=mb=Ho?Z6|wd<%)j-Q~SpZjKNT@b&`S6u?N(wDnMEDk=0)gZ}O;=H7R zue;?!kE+hj)rWq^B1^WuRkJ0{k<3L$2X$8GC={ZFqSQT)wNFnsF zMSo{!$MdeT+YzIn?>$H}&UFnP(@{hmcjTd`XXHxf{7_Xz#X)HN$Vb%)`ZD9;JZI2) z+gX(3`|kgNULMBNOcW)0^_0)|vQ8fy4!umSl^ZW!*ch5lC6M6s^|-EzeXKH# zTqY}f0A1EGvO_gUtZ;S=pv@K;KFiBtE^+4~MFTcDj-&#Ws+`9&LtorAhRxBHI zS@QH>&m0tXrrZ{Z3XwG?hfb_o$?j>Sxfh+|d(D3v?maaa=<`*2Mr%mYG<|_2lfTfQ zGp7zZ#h)glL;a+r`%KBc-$y;kZ|e2VuXxs2{9<3d)`=vj4_N(B)7+I-dN@T2@3^+M zR$~lx?Nlo(Vb=W(Zq85#r(;Y=yY||(30(0Wv%TnbI2o|yJMp;aqX7p8_w~)qSS0f2 zB(uHA-{itvsdBsXZ})0M%&^dXRGB{1s4wv$7Z~P9HV=H!!Fu3wN`@}}v~bGU8bF;p zG45`}|E~0>l#f)b@b3UBa%2O?0!@PpL_g1vJ zW4Lwb!=?H6mmWC0E^ymfVSp*8^pi(snyT2BO}RTxGUz! zZc3O0fW(eLVl*_+r!VgUZ!5>J<)%Qt3!W|!1(2^OEV6p z-MH`ruB_zJ6r%@E*@>;_=`zDT*M6nBX=^R%?=nWMN?>t+dYh=wJNIP60D|u@;Yw zZ~RvmmRo{$+h-LWST9>Xyf>ICt!mr;4o2))EcMfc>4xivi0)~oPa##FHu{;e#+|E5 zW^Vz~=T>hEKwa6E5Gehsg4-=--9DIGIGnnc2}c=j9FhU$5hF+cY%UBdpLVQ*^FgF% zHGTqDDWR^fUr>#ru#IkgPe$pR)rrE!j0Sw0NY#BXQq2>w(LYPnE71?YOxgMtr6aI02!roBQl@tSeU* zQ3hUpa2`|x?y?Pnvcb9rw~Jv;yAcEeQaPYM7nT~*8axE|p=ie%WHO=*hrfO%GA`6K zD%4afHj%#wqGQh*Z{l9RJ^%-T$7|w|?R3r7zDN`yn~uQ@1#u4ap$j^p4|m%1jMO4x zc`VmXEA?6xxMJ)RH)_;`wL~q9I+DY+fIegISylN+fE>R&fmi z4@?K8U2^&qJZxX^&7CfVsexScL)q0ucMkzHiXSVf9Cop*GqAL=CleBBZERyaZz=vs zSucDt3bNw^ypt5-PVV(ypzt82mZd_c=Q@NS6>%%UoNSP*KM7OTW})Fyfov6WD0OIR z8annP+v#?h&XOKTFB)HU+YaKd@!al6Lh0Ti7je_Pc8$as3O)~bJ(^Ur)!KQrYAjI- zK@{9FpoWM-CJ2Ed8a|{}s?ODVK;2N*w#aswWU&|;cBcv)S`2AHZ!&NfZITNYOdoqH zUx#>LkfTn`$|_eONi;8{#VF!lZ%F(eQCxTWv+H{Netr{kxRMp2@8V5oP2hS6dLETv zUcSuX_GDuE)S+i()Lt;b0)|*uPU-GlVPn^=Py+qx=+Ph3DE)q`iBP-5iLxiHa%@_s zg%%&CJkj#q2_oFR5}6vjW{VJcW5n0( z6{E_a#bll-;E8?M@z@ud>G8SGVvm4Smv>alQZ+C;iPS;Ci)lr$S! z!^~D=dF#4IyJA)ay)8$J(zFd6f)p)#PDFa1A5JHo2qZ=jMITADLqx_RDyk2_^Rqd-ae@5O2ujA_V$G$RqqO_4$KK;j9r)-dj(3NR08_^lZbcgaDB0gt}e2kyWV@@@5#!RTMf(N zo=<--7@;)TsOMp0E{mC;*9wPGyR~k|?92r;T#G+mTssGw zGo)f`uh!j!T-FA|ngeRZy!lUYY7h6u;jX-JTR&AkT8cKXkAEJT3K-Yvdi}ba_nFaF z2C0xu4XD}Xik44&_opIB@1qLtD@&+$9O&jZ)h;#?iVjT%0?_j?q)q?q_qp*CyTJ25o-CtT`i_=rILgi^F!VKIVl@yDKv=NNk9W!6!~lmi)xsNmIc1XKw;#a^ZJv-tTpzf_(c zKhAOwNt`kU-i#Uq5Ve;mDWPCk)ku+AW?altEG;pzx+jd|(xjG~No?TOUY)eFII22O zcgi<@aTh~pnQyx{;_<&hdB1G>XyuvVd7KCG(*m|h3yJOu!2Re43jEIa&kt^!Y0+v> zyQ2{G(A=MNF-Yu;c$1ouHW&LWpB6ne<2LDvs;`;j13h$}mBQN=U;P=HIyEwrGm<>@ zOVNY7?A1sI4Lk}y;c;horqeo$NLrNhtb4JLu&{1^?V5M8iZaRW*|ChYG;jv=cuiJX zwYb)vt5~JUkREM3(87GG!D@hndUmH7&vHsgt1*+j4PV@Di;nG5M-G>ag-MxnH)&d0 zIx{n~%>D`5Kx-^eGG*!wdR4b`er}=kh}&5Pxgw^Jp^C^+2VRF>O{d6b%ag4QQ}XcC z{b_eavf=#b2E$+BiXv%qEE*PTHLg?pf)`=>%R_tH^F$H%<#k@m67$ZxY$Hl#uNnD+Qxpa#aT+d-1J5W&h`CZ;cEzQWXrS-wnzL%R?E1vo#i~ zphG1Hk^yxYh7pl2QDMD_uj);8+1p%O!XZ+f5zxKZe@GhsjVaL*O`W-J{Jta~Bdit1 zV{>w4=(VX)n65LH8zF3x2x)g|-jmt?#9N0@0Sviw?R>7#mL zeI@^3E#DX8rMCIe`gWz~>ys|qgass2RQcux-gMGOe{=GO@^toDR}(#FrjFNpizbq0 z0wW5==I#zI_im<^z_cZ`gsNTplWgtMSj@|MN&X8St=rzd4ar+X%$d%sf}_JZs^$8~ zw;LZ`d=k>pD_@(8j1Buf*XfX`ap+oye$hWwtH-|yDdX4ujtdm|c)eO9LorDmh;BQO z?HoBX5s>5i&-WzWZ{Jn=U3(KBp_G2w_G*h^retq@D0cI-dl{SHA;09Zm84_xMtvgVxA_G|$e1f; z2N1dfoDk%zL>8)-Ey^&`C5t)GGT;=XTFYCa(8X=B%|bELYwJ;JF`fB;iGD%vPx zXXiH4U0%e>asv!{HgJD=ZTg?)*PXdVS#S`ss1LsXlr&q38Q8jzq==A_`HZaii(7j( zAE(um&!V22`6)@RW7lPVe_b~|Nl(9*>Uxz(@(yFJWxLqxSe+Mm)bYup00RtRZml#@*XvEUgY&< z)|1(ghJmd4GQ`Km5AW?94rXar5AX6AL1@zwOqPGM#Um94lrJy#J%BJv8Bi`YIk~`| zc!3lReXsW8b=iI$+ZyB&w+TeUrvNGFL6ejUgizga3+^Ihg2{G~D_gGjkzQD3BlHZg5j~@|)3cT=b1VksAVJ#{2gr zV65vPs9x@Lmzc}Q$ZV~8DMx3|%18joJ!fCulU5q^CQ)NU-dU;(Hn{lL)XycJ>}+lK z>OXY&Deq~cT4_H=D-HBDmFCZdRoN0xhO%@NVVaj#9%v zG#8nZKR%^O^N6P2bWSudRx_X{GRu4*J}H=8;Q|P_yg!+2 zk`SOKW`y3%(_T8g^&8(Mg%2Y@Q6itZ zSPOEsa7chww7BP(EEA`<10hb(;;7px0`h;Ui){^{@D{^0k4r6v!W#elayUOL=g&-e zxZk^wbS?&%uRM$k863kSD>dFWp`)kIc1{4Uf8qCB^_&Yqs639;z~&E!02}t(i&EaY zmE7Pm#UvfOjQ_Pd6zqIjw1Mlh3n&hRdh&+6PtzdEL0_co7h#?}|8(vY|3ot6wXk`J zEN#TyfM?}VqhRd}Gg2GgMs7Ouv1&!6c zs{YH|Y;JfiRN}I(UmwhnCLf;OJvfVrB7(CCjS&0TDDa_9^>yXoFyqs7J?*rMj0(@3 zraj>-9L+5x6&syFfwRo*omvzt(;KA(+KbN^a>Miaw8wt!g%ZL=+;nzu>N0JUHkFP? zR${YC%4<3GIFh+}>5CK<>Y(sdL~N{GPaRC%_dJVXQ5r{;T93Q?j)aGY?XH$g6j$8! z(=J6Xe!Bf&XDcVa-K2PFuss}dzRy{jeeP$cy-{p#iw!tMxzS1Jr_vWMc^rnVc+EzX zSkzCEK;&oK^!U!)(vl7FhTD4m`H+G48Pig~{*1v2DQ_`{SW-50E6AU&E#`wUHJ_?+ z)f(e4YTlX~E3r#K+DvE$M6;o~NVp@w2}6dw+!ANg4>A)7c2-u|hu#tt!f(Vw#P+_5 zQi|y}Qn~B;Vozs59?q~vS`dBiJQU)q3hX|f{q)>emBX|HwhRlMp7Di z4Sy%I*2Bp>J$iApL(Wn<`;T8s5L*br8l_aK5OiG0>`AD8)0>8kSEmYy>wHf_3UqQD z?d&PO(3i#c{0%Jh^I|CWr?QQgSwcQ{k!g-(egPzTXEcIolroepGa$(B!{HeqDn5UI z8w^TwYM!E~j(SA0!ee7;&{#IVXcNUaq{jewBxv=FSm=LzxO;Yfma%7@KLmW_U07T& zrEr0iz!$^C+J$XgZh){R>U7qBX*%asby@7A7d6hSV`<>Z>FDUp!CD`!3#~7X4d>a* z(bapOdpXr1!$lK#q^0nw)Io3{m|QfMDV!lkHY50G%RysoKmJjIg2-_f_wrD&f8EL7 z>lYa-n3|$ds|&9MBU6y3Nv@JWKiSnQeJb>3!{_X*llPK3fVsP5j~;g7*?JG{pc&dZ+1C z<4~;*$^$EAuE|2am+M7*98BQPh8aA>rxq(-Do%U3TBBq3M{d-rEgw(@?(%r~RWcgG zIT@DPrTxDpe0f~^Q$1=?FyBfmFKsYQ>B`tx&pRJu23ypoLKa#20bSuOaMFbvS6d;OvpdVo< z>xuhCynj(h0`)FLii!N`Q76ap;J4bcvu(wwvzQy{1&N4PUvhP>MlEMce|O+ws`yo%3YnGWW5UeRO?sKcr?^#Kn>0X}4*-xs=ys!qP563m=1F147^{Oq#PzF#c2(S9C z&en{`P6g9}PAH%5**cut7oPb885Wcvn0R>9z@V$4hf!@NrOVq{szcxObUeA)9*jSJ zv6ciwQAl4)iCqMu+NJhs7gP{n-!ZeXAq>1WKM0ms#;v9!BnScAHkau`^5Rs>4u)digWe;pPGy1ZTr(GDzdc>lJ~={uf$Zu#eL|#1?gn> zR*PnHdc_73Cz0Ysu^NN@DIsE6U%!49tu4ZR7&CaBF1jqXr~s}I$R+Y;M)Bo5Cd!9! zV0Zey-Yh-JuXmhndl7m4x+(;O2_o+50f5sIgy5l^D1>G!C=T2c7^Pc7C{&|+P)mpB zCsNR%rEX>>FqEg!8#!m&Lw*VxK~r_nN2KSEQJFEG@cdx@piC4i@JbSSDMz4i)T-*R zg^Xvpc0VF2Djj$j%YR-pssZs;vr!MC#VM}^irtkM6k}N>PB<<5=7$4?Y-#a2TZ!1dOdH-gr$3Lm#XJ#rjH-tDYYt~q{AfZ4zq(P z+iOq8S@J{FjMP$raG%__UYmnU^nG__o1?>w2Uu%FM{DTsp7xZkE~rTtG&m0PKR>am zPSrIwF5{-thP+C1)$PdDE?pLM-wW)irfRCVmBJ~$FZxg|2QA$= z>d)fYp3FpQ@cvpo#c?ao0}mlj&Oc1{)jy04un--Wm5baDx!$MeeYWXuOZ+_ck$KqB zWS>EP-Byug{dt|OLyU4%xqm=H<2SPj_i0Zz+d;E`Eci5sdzlmj92j)DCzd8s!A9OP zebJ3CE?{>L;*`K*?Ezl%pRH~?n+#BQPdU=iPb1cMds2V86%KV4`@TCr0QpWPv#A?$ zC-?=y9-2dR23w!W;mqS5z;xS)vQpZ@aloua8(i$N3Sj~uOwnY9>Xi-E!{-TrYJ6BU zlkNvqdiHx@+d&Z*k%6wtv?#T3TN>gg)Mi(cbXl6h6ENDi(h(LW7#z80$5eb7N0*Ld z`{$nm%Z}M=RqJp4hc4Rxni0xC50R$1jPcud+YW=#1NvqAKpM@1*t8f5;j0s62$xf| zSBxCeycQ3QS^}Z#xwiwIPqnqPTfBF^VdGUwv1ym7i2F#3AlLKwP-O!(mBl4Ty<(69 zrihkLA|*BW_mD2oC*aBT!s@Lo!S{oUK@ULX`5Y3$p?XQJEvfT`yV*oV46}x_oQIUYH#ePX+a?K<^7;bmWDpIwRJcH3X&AIv|eF17FsV*Pe^ zw{q3lX?;`&J$#xcPsV2yCx=wt#w|4)672kN_=%u(XQ}C$EAHQ??Jvv6o!I~6{`^TJ zW0jr}P^e`MYkVJN|2|Cuo=EiEDs0WuFcT9~Zpx<$Cg*zcG3|#XQHu2>00>}_0~|2i zkdGVe=c@}zC7#E_aw2bwGH8Qe8NbkFzFOU#&J^B)e*3LaE&nWXYA%l7n2im~2QGyi zP)VQwsjNJQ$gmNaHhHGe#rQ=NVgZQDOe|_EwqiP@k8Gxm#Psp!ovSZF`8(=+PW{oCU4*=`V59gt3oN3 znTFs3ILRz080RvoPD1q~*$X4O<7X;@LLr*B!T(?mU|Xa&OUtN|w!D1p3!;wRy>iLOb< z(cZ>5huFe__|q4%iscq)vFP6T8Ni0i|L(8!afqGgHpy+50I){7+u)zAQkt!zqQW!d zzZ5f!35y&`BH_fi%V(pR4|Ae(EJM&vPBZjc^fx`}80aj~!))3`8~pV$Kff8t3VZ9D zXPM((yQUmEx-zc&9iVO{Yq;Gm3rB8Z-2APph(u$M)QU+d*Gzv5`1CE|jnt!^hWUIqJXn=vBAfd8u4` zv`Z%qu5)_{D>+rbc_mXcPFNX{gU~3aMCIsK+S_+z;aLtZ?oVszmuY3nrtC`vsjmt; zsnts24drTG)E;k6c_#t2$+P+|*J}amn_}lYy)L(L8-_IahXK1}^l$tIjWbKL?cop# zSd1jU1?^&^Qf*$3kq3gn5LwTL#le`kn*AguG%W19Yq6=t)JjaY(tSz0$Qi=Bcaiol zUdYJG4;^kVID#LTyaEZxN1J_v?+azz74;}Yc(MigW4`c zWLnnhX&GspF?iG(&78rU?3Wms<3mztAKA|qOi>(G0dMJBLBYf6dCX#MYv3m30H(Px zu0|g(=p+M(i~95DAD!1GvN)*%hr^n$e7&63+;I7LcXaksU4ZiE_fqfCV`bLH<)b@5 z20*WtPYr^6y=V0wu7*9IcSnYUj0wVakHL1T1;z3rU?k?~sxyU%n;Hy#{Z#?#SfD)T zsc}Id4E+Q_#h+m8i)HxVudu+n>;LqkChAgJ|Jc+|9mC0asuRgzzhfuk6@oDyo8>3e0X=!OJn2Z>q|sPnEAfg)M;nqKD0m|I{aOxHoR70W0v>vqe z`~%~?Sde6}pRK%>n3%{O*Nuea;o|>>;jX3=jz0($dsch#OO0ifLrCt-VEcr9d(Qr|A{Bh)J9MRZOE9 zM?vHAad>J*>CZX3h^+Q@EcTS9y{m+}$}34LapI#0!hfDCd6p@A6JNXs?&xPNIk^&= zpATrI&DB%-t=`%{x;&@mllrq)jX}UTR8P_uVG@1;ro;EOg*$+AOHcRw>-VQAq;()> znOd8>6%IOW%2|LmfBW{Ii|yT8pPU(Q=73%M!_;*e?n%ISjO)-9dXFC?LidBn)TK5E zF2p&nUA?NLo2H3{7^_&$}bwb?94& z)Fd2!gG23dW$03K6M<56go#R3ZM>~Rp&jG%_F?K#@=v&U_{#7I6vB=p5a?ZeiD%s+ zK}akuscYq_12=Nogjx}bB2eMzAISS0m>s%KrgE_?EP=2r+x9P&LPuF0lnQQ0rr6G; znLccz_LZYgF~U^~)v^~PmyuOOK^9K7Za(Q17j$Ir2x<*RN(W4Hr=zhL1{?u4V^2 zY~uVlmKXEl#kEU*6FI!uNfqeyEaf4b*vbc)_>3t8x~U2TK$Mu|-fXxe`ZYH?!Ut3CIEwUisa^6b47BPXXcfX{W7f9^btkt>S0uBuu2 z5Vn{r&X?$(8hP5gfJ9yqxKCLyaDVu)Xz&?_*UDNuzcwWQ5D%BTM2~gvvMz~ozlk(C*$!PqI-8}GbY(HX#L&$ z8)0RZ9NU;Oj@?bu=M)6uk=i>z-PkG-qOcd#!%>t@~fjhAYBN^8DVQZtD|M+e;dYhH{cd( z5)$YszeQv(>pp(hlPH=tYorkW&m}tJj=_us!^@7nMK@^?*-p4v{it_@l0!@~MH#Fx z7WSNXHIo{4`z^x=rXP%|hRN@I=`5=dOH1a+%2}0M>SI&8^*8`4Rl$-fBnUFab+3)b zr+obQ919C;8F<)fXSRrVu#=Bj=eBCCBc8&0k_1Vn(K6`w`yl&~)UW*1PG%$(C|8KS zzeQo8t-e1wl}c2VAsv6BrE>RQXFTy;unUI0loEx~d!Y6Ku`e|}|YX8Y^ zX#c77yS3vTHZE<{s88VoOQDlww-)d}7Yoh47MyLXnfMdYxO6lHyYS~V)}X+IwL-=d zXMaly4eCTo*ALo62zGj1wCU;nlu!z92Y&7erGA-I(IZ!?Aa zwc7+MM%K$D=0~zP7B&_$WUS`qUA07X(1(|ZGRP+#vV3ljSktVsis7@JnjPSNqNWz% zrZ+81^y(Fzbh~u>(QdiHMO{@8mQxj(z7*&)EX7Kjf+R;N(3To zME6iWqDx`=aeUPE_9FSapNaemc|SAK9zjQ!i28QF!nyJt^ynh!+ z-^`E{+AZyOKbe&qTsJ=c7p4No$(Pr-;*5E)8F_ir*`DH$8QahK0`3 zDYq#aw;HRmwoIR5ht9a&+S;U!4}NaZT94VP4(H=|U$xwXI-z0u)CLjx9qshXD&Qj^ z2v(uoL6-!HQ`51_L-g^SxlsXbfe-v&nC@YS-XOe&$640Mj%V2bar_y%~lP=BG zz}60$nkr3t6XKk-icJLVPToWrpJ^9bL|P1H{yBA>9k;byk)kqQwp)q}305{zb4?KT zl3VDZYcnasyjAo#$aA{Is!O?5XL-mc)yn4Cn5hJ zo283zMbC?NE;pS@E9J12zjMAz`)B?OP2=7C2^rMWp|A!$q91FHjG~9{>jX-)I~7*j z`l%Ri(5w0|w<44)Hy(b_W|dJaXNHgf2p}4dAHTD8A>`7?;tRmU)V;|X&6h47{y6Y1 zm;(c6hcD0apq2>;7l=FnIZSUETJ~VGKx4qV)cUy0D(P@22)Tznn0MqEsgNX?M=9dY z46!0gcR&*7rb2H&6$z$q7cMUIVGPZ6X2v$w>PdPQB7Jt2+uyKv&BI}UZt=aLa=p+x z-KH|7F+KK~Xt8@}j0iRG>d)E;e~&fCLx)xc`&T^V`3)pS^`yJY@~@(( z<(^5?6#NszDzU~&si8V|ZPlNP@8RIjJf`8TQPU0&70({_4o)tFa>2Vm|A! z2(~vkA09kofL--r3MrIuUV)v4xd|JBBK*U!^ z1(RZ}77Q0>!4x4V#DD9Fv+FrM56pFxB;odSmZO%nshqoc>EKGC{^%q`PNp2A*dK>UHoVLv^0+yfzcF-?v=~ ziCz(n)2ZW;@%6vMst53wQj=BAq_}c0(xW?w=@)HrV{Qo#*H6NzrqrkF`%vTU|Mmn2 zQGbRAOD!qkNlVLc9~TL`qlbR~AyT!`4-a|_b7OfeWbCoV?wcZ2S|q2N>14(&^ZTG! zjC|D^ycB%tiAUV&OCC}pBR&=pHcKV?j`WX8zBZe%9k)$5m&+`>k1Vc@KQ>2@ws3gM z$3IkuQ3^wCE@v5sVhiV0{ukaujSqR|qtZm6v+gLUd&wF*B_6qBkG$c4?Mv&s!sjn{ z=@Qo!QaTdd21iNX8y$@2%h%$!JzU?R0~3D>D^e#mFjkY>cQE-6EV;?-(h$5p1l~Nx z>3Z!xt#ry1%xSBx_m@=))v}AsS%#Uua4Be$*>NBUYM1^b^T<;he$LEG_iQQE{U4x- z@NI#QVXe|SwypT2<@kcdT#Vk-UVZP{P<#s7(K`sgiVgYUr(DBP#ipSarY^tWep-Bg z=eP;_wMEP27i2vYzdox9?RceJ%D$_jkJ7M8mY5*61+1ZHJkFo)XOo=YQf z?zpUsd^@P!6m(j=LRF%2_X5RH=4M3M;LU%Zk!?*(xD9c`jT(BlGbR^H;%1 z+w*KXgQ@1+SoeaKr)s65%AiBo^sthrSd&$|@?{L|5|mYk|1|o0x*fEVM<}O@aKJ~% z`9#oi#J=a|J?I}RVw$-A*9vr?c$2-woXn=7AF8>-rX2n2&x516=xH9)9$_tOzG(z* zkO1RX@o+BoAB@dW{1(p_;)@4eZ&dW;*1PDGo>%w=Iz|8L=ATa0FmTlZ$2pYT;CeHD z*X3l3(V(uzrgqLmZ=eb)+{oNtN&(Q6xcj#=-(s=~Z_4Wfr@}Ky$;EUsTO~Ms%Dc-$ zgm>k>ax-+iIhPjuO`fsV>5OVv{`VZXqZ@dqu0@ud@r@ozuME;VD z;`5<-^BkvUCyi|TZPFq-9pkHQgupj`Zpve1ROVn@v~5(_d5|#0=g*?q{^vE$Hc{Wx zG2r+wS6_{J+N!3e^4B#%DEjqiv`6i&MHJ= zsfAA_y#mE_D~WPF9t+1-eD)3w8=JdnCV3APl4R_tXs*7a{`YtEO4-Lp7K^3Vb85$ypMX^qlG&W>_cwJnNP0U6;ZZ7!$wxYQ8Yt` zH3a;VkH_ovAtPmlgGdU67ccHZL$on!P48rDJAY-Qa^UpVAJSjR5>IR@=kD&fS(At{ z34G$M&%58smgDWEPkHF-3L_yx52R>d15%(I@GacQadj-RK)du{X#v3~GdFx$?C{_L zvc67ed%kxe!DY%}-2|9xH!2S40f?#GOuw`?Sz1hec_BiYW&!t}qAZSg9p3 z4SLvkt>$n|@BCg$;npQ5C>-3VF~*<}qQ9k8jy!$oc!@zF{&%#2w{devr16;u6sX#3 zpRC_cce3>GJZF{h`xFzz&d#zgMiFVhcC7Qe=aNi~Dhy=Q-|+xT9PJ|Qu2 zCI5AVlA3N;zp*UILqiO&I7dw!cXu2ZqnE}4Xge2ov2)b}+@oK^bg8h9)~O6dQNe9W zF@oRjI9V=dQLv`uH0cQaQZyMOxP&oF$e3!xoN7G!C^F5Sd7$H)DxZQ$1m52~b`YUUf|%#< z3BE@0=Cm|=V|%;NiqB!?;2Q4M^{aSz5>c`;{Ti*pM7M7J=pr#7xOGdsu>GmMJ(qew zB)tDGq@M8VSTlEN4}Vu8H|q44#r=6fiCah>noNaTXP2^>&5bn?M6@N;0^+8FGl)hq z+2Ct&?Vqz5?|Ih#TH4LLTbi1iV{|h&yu?SK)mp26v=}wo+0e0vA*AJOlBtToLKH=N z<(a_VLtSvRR;yrpcefGM8=}h8uF=(QxV?DyhP&Y-7)e*NzZbVQIk)URfB|!0de-!W zv>qzzeB~w$59&u}GfUHSKS1!2OI zSd7pY9mao_R&8pLbqZtR`LTUH)HMQGpXRU!1yYF?3V5s;Tu}1KZ*ApiYJ8uwMD`(z z-1b(0F;^R)kkM#T46_oSiTj9k$ML7QZkxPubqz?avQ%pHQ=Z^@O)Yr*0R^K33V}q2 z%iY7oN2YUr5*{&2Xj8kZ?&0BKHe4eR##(GYCzIzUiB)DLJ$r<%9^ky+P_i14)fyZy281r!{xvjyO}H*l>?}_PoQv+>fQ$8d58+pO zC&mophUDeu^uL{D*N&&@S9i?Q6_a{KIA2{lu$&h4(mTx=XVj1ip`de-V1Ke+OY8$( zl|@cy^>XE*g~6-=%?_<3cJ?|!uFC?LK_a&aGqHxOr^4DS^A#P@dGRF!=8V}L=XHra z-=E1cG7ip{vnL2`wltwW1z5^PvnPxc*cFd|8IsCJ8E~TRzR!+3dM~!yD1-Tp{aJF7 z9DJj(kx2mz8MDPRX1nzoAifgAc}fNpeI-QX%8J9{t{W+@#ZwrQZ#McJtNuirYr$!0 zA_hnUc7JE3Z>vcS&F5p|Epxy4Y59gE$V14J9;l%i2bgK&Ij<5sy1VBZL&O@BQN=cs zZl)$e2@0(hy}30UARr@k63_xSp2RkdfGtp4w(TA%mD zVD_Iqr`g|e4W;dOrc;gAdu}*+%YrX2XllHZgf_!Ch2^jxbFt*ASG2P!MxwgCI%1{4 zX-zSkbb`+;wDV`L*pf^aCNbe183_qd`r@pgSV}&eAtDk9RbP6>KYusmiUD1_8^`Bk zQh%f5BlXFvC&1!mB3N$tBqt|ZT+3EP5QUEd0wOAL|J%hy{LkUebiO^M9Tg%{nWa{u zt&*y#8DAFuVps5sd5@{QNpsAC^Fq44iyqsL%x{X%Bi}72dd{0W3Q|}OBaKfEKF!Y0 zV=6(LX_fQp&#Bs>==SFoTs+`FE|uSST4wuMuhy-!l>|`7fv+N_d@fUV4A79s1Hpfs zZ5_;eR#&TFFQwzW?c;|>rjn!12Bd!UisfV#FW4(W!n=PL(4D&|0|WX@ z37^dY)f-T_Dlt|Jmm5_hGU+-l<2{UM zYX0I;-Rz7bk-YBHKDhQ%O#IpPOowZ%&K(BD)@9K4D^Ye98 z#m(uAM0@k`N(Y9^I1y~u|9pZ}+-|+#g=5v4pv8v|%1TP&7BaX%*L(nN(=;3$A@5E+ z_8U8#R+_FY&wXVCATvx=%{4q*Sf(?H|dFQm*uEYI@*vKK<{3;f^ENb zpsbemm!ctUZf;IRP4oSfAvHC%&k-J}QoY2*(0))RP^eo8V2!jpI}tGPIOdg1`7%4Z zthI4PiRgpFs1}da;Ct?+BblVk>;DsRJvM&Ru05Ycqce9_mgw!qA`nFbSH=**GWE-4 zIAY;MbVNx7x1gw|rUt~)Fbt1&*5fZZVZ_A5uxb?zx{@Wkm)m&2*sZPvp^*Ig!>IF< zg=ajd%(R zTkyaqn_bE{lLee)V{7aCc@Vz?Fm$3fHL6H?PnM?Z>$#I{=CUKnMb-Fx20A+f*b}O6 zk>B}w7{9$TRT=;q2+^DnCU(V%MOWiY%PT28l#k`1ePQ3Ih=FliDy?UU zqE5?%EE>p{EiT-Jnk7Ea1WVcOdvoHZcq2C6Nad@zZBc0WU7UEHGq7||_<-G}rcg{7 zkL>%v5{!d3M6HR`>`xuDr;)RnTnDH8=SyG8CvyVdZVNglffy}r(`uuE%6ql`#4f~a z`hTaM?o~SE8q~ja_nQdnHgPb)vLvPoNlM}q^Vpozu$n5u`t@#`mKJE3Qfg|1g@uJH zBZc9r843dH#XPpQ991ss*guws>MO52QGc30@Jiy!5F!J*tO>};hb ztVRmHZ67;~YP8f06`S6?I0$#yw13adJ%gE~V2eRphQwGV6Q)Fkn{>zaZC3R>mEvEh zR}_^7vnpWs_sWxXig~Uw9<3Y7Xo<^IoI)Iu2VkGA)ld)-H6PgJUkvd3A!J+M4F6&MIIlbN zw>A&aJFNeJk ztkumep3S+dw7`mIc{AMsdvLUsIx-?2VF$CobS(_^K)ho6E-RyI&u{xs+D~>ft=t|> zS80#ismuaCLg}i+d^`%83PP11NQEV=9tIaL!q8kZAg4}u$3D~i8s*x3f57(xqe~s{ zN#WP7ukvH;&lFGUobf*Cl;}MWOb8ySaGnrcbY30|N>yE8KdH0H8^4{ny(190(DtY3 zdQG$p0?|d!eK(wBn)GZov7QTPb^nQU-&;OGmVPw!rMl$Tk!SgpkfoE$xsu;NDY>Eb z&=WbdUF1d|{wY3Q7jPxBKANh2t);PYTPaZ7y^4!V19zi9`vs5fRN&@}J_8NSJ0{h1 z!B)~B$+{!^J0P*0ncV@G8p5!}MKkRZGl_Nm+I!r4oY4WX7!V-N4Je9!2g(zXy|STr6p9wqZ(Vhnkp5OXs|Nqz;J5F-65)qh_x(ce^GiQ1{RxPP1M2I=iWj=< zrfho?Mc(Wulyly@K}bmW8Zt`I4CwTUv;Dq~=lN!>lK8;Wb999SNQ-|Vs(4UjqsMyp zdUm$`Sp+P-`Pu|P=i&!r{N-za6`>yatln(6fV+5iuNvOB>_&fXD?zK4~``N3IyuKg8o!M-qa#^oS zuBq|p?^meiKVLoDPGX3^gpASB0$nM<2`*E5{Pwb0nNIrhfQo*I?T2c{KwrIqn7-$( zG5ExXaot4Nwly0k4ij%)dBb%7_OFE@hzbOxYb<->7tdSXU=HyRcAv z{zKv}t8UlcD)CLey02rUjpm~?q|XqCGriZNS9wW;YEI{`d{2ohrrW$Z^=4a-@Fr?5 zXKU=7$$Gq{zt~i9fBrhCy3ALvn^f={gew>^3JWrY^tK+TvJ|*oMvEG#x4pxgi^k5w zCo$zRlV|xJ$M3Rkf1B`LTYI=P#I;w&#KfFeMjEnI$0nRNd=?gP(w+?m%%1K~rAdXL zl?k5-EeI{R^|%yn|7@iq>->1Tu~0h?FcX5D=Eopk%~7*K4!G*?UAviteF9R_j;?i+ zTa=W3qgL}9e;ynh9Bll(-dnt$Umrii+&R$u+R>34LT!d%iVXE`C4JW=*OxD~|A5U` zQQ;C})&ALm5UZwAmo#3;>VN0!>$)3B97?w;oG#&ebm7(e7?QSUissfD^`N2u0Y~iy zt9rnPXnn7Q)8m^JH!B$xy%ivai4MP-P4M3P-Dh<_gz~Q?x3bu~dBCp#*w=Sz%27~MiNw`v0GgI654b(Y<=u+^}hA(RkOe@%PO z3|SQO3JU7!lJO0HHhmI)X900hcNl#+;mqw&912g2m^E_4~p&!If#PPhn_iaL) zU8=V8|0sG%P(~kdmycRmP46+_rF{PwU@HawECFOmglJ!nueyXKMzy5&iaHD3(RXtq zudA!`5V6K(2(D)TrNw&p-Me>7tgddb{+G1>M z;;e^7B8ncu9iYfZ%Z-m{S`6bpi88jg?+K5OX!=YQtxhwLC<7nl?7wm(6Z2+)D`Y2T zE9k01WEIcubr-KBlWc7tRQ!7VLZ6i6_6oP6Dg(_st>T4<_UH3R>2P{**kTcKL?aWEt&thUN3yOkx8i-T=y}B6>NuyxU}H}p z4gS>B)I}yGQ9ixYrPfa)7)!!kM<*;C2)=4_CS(k&{L*C`?BCw!$FceJigr^lRNROA zSA(59*gXgpp<%G~n95`E2BX_n`}xC_I`^1IcEXo!Db(l<*EU;Q!lI&DGW$XbtjC>q z+&oLIXikKlNlB@~=w=Lvp<03|=5SnTX&oI8D=)Pb1tayUIbGKF*;g?tD=Sa7I(u)B zzhQB!O{_aT+C1H-dmA_>J@N8pHaats1Dow22Y?786JxvCMP)#myOJf!`)b|!@3Nm< z^10%^glcLM)8!&pNZD(}ajr~D}- zWWmaWKEGD9$CU~{MM^|Y*NSzaH)&xhBgwc`f$dip3Kb17UsVw3o{Vh(gv_-Rz@dyF zg5>=D=1c`NkdQb}*GA%Iha2_!QZA$Ndvn**t4rw4HW@mjPTN}KywjEFvPJ z&F$X*!`@qlMY(=$(0-^%aiXcb|2na|RbjQ%0(hbsxgwoyJ%+Mj-(kb0Y4qZbH z`Cha4v-k6Rp8vQ1hxgO#p@?$`+;iR6y{@&+b*}S-(QC4u*ltX+egz;JrI6egWVAAJ zgO*9>1*k3n(>D~Ce3~63VLIvnJl4A1Ts+a z1m%Zr7}Ksdos_*s!woUX14>WXU&YE$9^^`|XJc~0pgncifhtJ&Dt6xOI4&!GKG&l( zs|C^_(j&=aoF4&glo_GL(VVLDp0enoQcE&x>O(& zr#~&XPe-(#RloJa^L!ZD{c9ip1-G>z_DMic(8>jO`O~-igdW#OBIEJNPD)CNFJGQ+ z5EBPIWsLxxCp0}hy*N&XGQ!_3mehueYbwS9LQp@fA>k=6 zLE2H=6u;}D^C~(%w`Y0PFiX=d3GovO1tf?|vr)m^k@P5pUDYcri|JplJ!Tou>iI3H zcpa5IK1M|P3*>qxyd`?%W2QcKBmd}5`lcd*kesY|v}g1&8%8`b&NeW72z~W|*4?AK zx1Xg?E4o^1U}&HGsU2RBC=2o_;LFK)mOiO}$>OeSGc#WJfSk=I{i7f7LR=X>ZEN)% z;P0G(6@R9cPXRJU5;eCRFmcIrKvCA0!Vw6njC3eH@c-7B$d9}j!U9v$Nv}q7qDf^j zr;8?ZYxQ6M!v%mI0^C2Zq-2`VZg7U^X%LZW)V@!Pj=@n}=^HZ&DMuwjKz;f2X>{>~ z7jp!5inH6sAXPkp7-|c(Mljv}QJ_p2*eCr8R=^rj~y3hF=8+SGT zt!cfj#ZJ~tTNsYrK78MI#F2;Ml7GuY>neR>Q=ewKg>`eWFafpz4%q2`zFr_r#<2L$ z1hGx4<3jnbCy8Y-_g9r8f%&9Jj3ICU+%a!*AF@DmyE^7#CK3uIaY)hD zZLW@|-~V~gYNrw8`1Z^G!$dACM^#ewQay|`!zwJiVhtS_wb+Athi7ODZiqtmG~9|| zyX*xSTxVxz$>b9Oxc-beCn(2o1W~ppnWabjhtW6s$0~_&nXg0`~8_}WJtwrGg%P`-)+7GU$yKA!C#00$vE370r zb50MHquT@$RjN`wWVVio%;xCr!*|F3vQ0*pl ze#vfpLteFj+dN&l1%QY&jCE9`FoYrxM^0B#4 zKPS4c!4wJt)A58B)lUmjfavtEbkk&)NH8!mE**4IWJ|!Mv$ApyK_d@hs#&jricC+0 zD zkrH8p%Zb76soj}nN7aL;)^;`U0D}A;-VOUu-e*5ehnpa0K39HjQ zy5EC_RB)_EfV@*iQEY9uQo(LpYkI(lW&QNi!T9*^OaMFEdYu%cXsB^VtDl&9v*fW&=>to ztG#>TyCKn?qO7K)^9=Lkrv0+UE~yxCPQeE@Mexz~oWEwBW0)rWg@z$e2M4BfoLMDl zUfku4%PZZFy<(=ApFJD0utzFF+70MCdbjqvztjEO#JqGh@8R#6bEtfl#!IynZ?6|T z^BrooNhEBZ7L)!NQIi>^6@K88LFdNdjD=WZ(dnA|RYD)PQI^9&;1A zPlR+kLy`gA&|m4~IB^&h2x5SX?TUb8H*1{?>AV@PFkwI0V`(ago09iu)A0U5y z(FbrbVY%R2B`Qo$5__8P{4X!vfb_cv5Kmi=8~O_LdTJd;yf?{O?0@|5)Zt9r7)s{@ z8E;qF_GQ&nnGkl7J+0UyP!)j=A+=bmUa8LOr$bu|PWe>S)Nu*vYWpfnl%BQ6F?-D| z-{K^TzTP#Kut;%;$}g}4*zpm#B>*Z2`=bL2_)gHeS)VG$L>-CSUl&1@1r#EBK=Dfa zW}P#E!>lLBs>yL)1o&90s;c_<`Neb(tf!4^R0A9l4XA*3&bwdC3TtSEG!qZef7K9u zuX_udi1Bg)V*s>)tNWxt9y=N`gs%VivF10K8)k>CaT_b!-x=AQL{{ZDxO7Z3G`{S{ z1G06F7HU5~w}ihC(KuHwJkM_(RLC7j{&FZFqf)ndJHkc?QEsaFXG_};cixv?WTrOw5 z{^aXQ5oM&H__FVn&dx4WyXkP$%51zucUc$(Ikq^>2}w#m0K=O>ZtKreT(2>3mD3}l zXyKTIfxgiUEcHk)UhC=(*J3~|d)WsL6`o%J<4>X+OK7Yp;1VAnz5FtjWv2UJI`!uk!d{!0k+86|8BfwGtWgV zHSf2bB;w8OtB}Lu2E0$SP1+X#v9jNqpUbvr2ePB+e}&{8b*sjW`R#DPq#Lf1 zp)?vy5HdBT2dgnVJInSehfnu42`d3n9hWQcQuFU}Ij*+be@Mb%=?#UNUz7*bz3VwZ zK%<$l$G1GSML7nu=@3ElMw!k zW8J|c>yv>Sq!Vh`DSUb00A*F5i_6m**o)0IBW`6D0>;tW9vtzcRwT`^;)a15JNWu= zHv8k3K~9w7DSU5x=eS*ELsC;I(Hc)~Zm-77^$swbVB_L~u-QGpTz9Lu-Y~b#AI}a5 zh5>1)rwv+ze_EVaPcOJHt)>-8rnzv@2e4yT`G|%*?#f=<)kI<4Rt~V3snRXQ%skp1 z3;fQrirKh5z3OsnM0aq$VOI)m{g}tH?wIrP$_%Y!XRvV6oIqRA!GPR+A)W8;x38eN z1CrNAk1LP!mX`Fui3h4%>gVaVcb1mJ4da0%NR9cOXv26=LFuhIv5U@@{Rk!`}nEKAu-e5m2!$*_IxKUMRBOh+u0VQa*&;i4R+}u1ESrKW6EgY$+m67 zQ9B{^lHtEd0-2l-(7KL{jTLbbzRRFgwA7uO(lRJ>;lykAwZGEcs`~5n$+j<~M;;U6 z;f@>99Djv*Qs;Dw<}3RW)nT;m(2mn1qJ{ZYv!OKJq$?Ub8*mhZk5dcr(eZ()p1Z2l zVjlny)S%9Fx{Ebs9vd?TdlT8c;x@oPA3Za=v$NA*XC;#bQUvq4pUK84?gtqYxBxCv zso69J_>T`b)A)NWZgx`#;KkymOL-%YhqoMPY_T9p7KLgtHQO4iRycWf z0A&KVD(?B|gVl6@inXEiwl|+;Qvvu)MoCF|y0{A6M7Drg$zCR;+O+Q)Ri`lvI1&AD z8#-4R_@x;fOy8Kk*Y)tAQFWI{eat%p-RJEG=!{a#$I18Y#KcYq^2bkILX{Hc6;iH~ita3Fh(0XRG;FKGcwb#leIEkZ zQC)sQt@Rq;V6+(f8tR73h0#od@MLj(D zLqjNbl?4?g-+SnwrY4|EDywh?kIWb#-S)L-D_#IG@cUi$mcKkp(}k;RD-|L}#}JvM31+ zUg9VCA`G5P&rJ2l@k5?`ksU8W=S&P0Zs${Qkm<4G%?boL z?kph}D)MK61Ra2Wc~WJZ-`k-*KY3sX9>dcK7YV#Ts7JkD_C9J<)U z;x7n-rcf%b+1aJD0yN3T$LIAyFqdk@=Tg_Iz}D6XL~?Vpps`@-H~q)}+IPuKCm@%E zLP0x=mX0nA0k=zXzx%Bv9Ks(AlDJ`zeRwA{59*U;icJ88nzmS#`4mj(vaA0l zK03QQA!rF)0bssX_( zE7Z6YlY^Vuo@*na0?%xEjZV{v97;Qx8=k2qyr>>hff`5{BF|$k--oBBDnmQjBdEE1 z;aLCH=pP(rYH;*}<<1YkAnF#sS(TZM^&YK^I34Ur@$Fib3p1+A|yoq@uaO$&DaE^##l; zR+rH>G%|j-U&tD!!p>v9Jndo%P-YJl9yJy6%4jXLzh!>OTUN2Mx*8bRl?_x_B3+Iv zJz2cYs?P$8rmhuErX(UAMd>bF(*f4*KD!(IT+xz z(tI6P`);-0fhcogtH!uX2aa&e)8tLMzpM>FXL)%AhH0fX;F0wsUH?fshv&`Y8=RKZn|S$dcny09NPAD7*PBW8BWWFp#oL*(;O`4b7Fp1&PagJf+kx1Mka=PH*67E8EG+h#-2a# zUO1^}AXZkzjSk&|XMJi)3>)M>{5&nt6x;n~NAV`tTPA>YQ ztm=$QQ84{MP$&Qk`{3ZXaG0taXuifDO?66MZDIrRTe5?h#|vJV?J5(Qfhu!(vsOZA zs7%dZzm2!$&%HM%KJD@mssnO48T6pA>YRwpFdd-y@9Oj(?jE_OP(;H6^QQf$eiM63 zoEf%i=M#&^YgK8HH0A+4TmCT-CPnAM{-k{uWl-oW!cdUviE6XesS_8X4^_$Djz=&;mx zh$JtjC8CQK(lCB=XBitD<3?2Arg`WfkiMr1J&k0G7q_PZJg@i^6vCjnd$xoaMA7y@1~J%l*2+Ep zK7!hB&WQyLI6@g7Z!XLVE2hvE7gJGL=eU7+ky-W?iVq(v7_HFeiknhM&!eJlHOe!p zR6i7wLm_*!_9MXqj-H;LTFyvAYO$r}ueY}sv^{>*1-vb5@i;+JgW6U^MdhhgBkS+g z)7f^FLc-88hMuy%7nve#p7V@K%-Vgxq*Zq}Y46PAsG)n2o*(H=MPOW3+v~;`qq!c(9D*+CJ`j^ad#!hN1(FK~ zQX5@phEC=6l_5VY5|l)9wb4mQ5$5XNIX0ihzHO3deGp8^P5E-ky0pCXnk0CD6BtcW zxEs7#T-2otXibq_er)a^A3M}&s(?PVyxid--b;9B}GV^|FB{Su*a- z??TtWASoRJi@7}Sl>s`_Nkc;k1BbHO?i}$W*_ zS-gy~9MHlVFAo{uXVB`KYh8Ou(LVt21C1t<%-^Es=IVgWF$Fk909(FY5rkxEIAQ}X zg!tbu7uuz`=0pLj8_4s60WFM%{dXp4Qq|xso*t8a z9xouizP>h}iugXIQTBV-sJs*aD=w#-?bQ?7#=y~J@`e2dJ_)Ed#c3TtDauQGtPO;36=y zdJX;7uD42c0nrqVki2l*VU80U)GOUzo7t<53f}^?$ROW^WWF2;Xi(Mdc{cCP8A>!c z0)B8uFzKz=R@dHGT+g+G+U1Y+dzbGe;fo*b&S55Ng-XdyHd>GZ5$Ie1a#xs-C4jug zZf!fd{GYYK>rE~%(YyQkkhtzMqq70_bdM5 z%ACicHpHKTq@}{-#*R{nIkM&{U}|sOCDJQZIa})Ow%?fj@tp^M6h`zTgN~XecfXU; zlg;WHk2$r|yY&NTE0PwfSJ`$CY*5NRVkCO_@XzIZvf_K|KcLO2T4IgwH0R7)+;mR$ zLYQAIA30@E@(f1DVgSZQw#nRVThMYZXK1YcvnMX|_6 zYwkgfaz`dW?ze-JS3Mr7|b!CPgR?+mm9ec-f}(R+jmRh`Lg~nSH=v!#_PC! zN9Q6W8O7R8E|LJvo*;1FblKuX`5XWM<5==nZxrIzFlbuIW_d~K#<#;TT@?zyzSz@8 z(PP_sszHVD7f^BgJw5h+H`{mF#K1EzNV6 zYpMMu*CK49%u!Ni{+IWNp#+sPn4|q+l{=W`e&GmmUOAYO6hH{LX?%eIe`I{Q5de)h zJ)R1+3kA7-c_MQSzYn10(9lpWe_V2-@$D%_?Z#Haf(*LL(|qIV<&c>ghd+WO!W@9} zXamYskMj-MH8+6?8c`@cA&ZtbV>hbcKZBYA91jgQAp*pe4-fQ6p zo?*Zw6~NQNphwtrU7G+d?N2j@#(Cu%*jP_Qwgl)33IJkRJ4oPocdH{uOiZ??YrX-z zEN!wki{}mo20kT`Os`Vm&{k#k4S;?#2DM<%NK3!WNXb8YB!~T& z%&$*XT2Hww(T&*#hEN1dJWt^1u5o>~jMovI+Du-B2i!;&nV0*G*!4U42S#LWVmVn^ zD@-1@0mbJeGaqj5ng?|^w{|HxgZSND9upJ)pcYHwaZezy+}ktFgsSurKIjOTAgiK& zdAM^#42T!c-Z3VDI=Ih>T~#&Se5UamC19V?v>)54tEhakv0)X?B=Yse08zBmy;B-c zK_$;IIP2yGBzxs!V`Do*WA|$Tc~!%&Qas%U@FjImhBMWxuEmyOn6{@Y1LZP>Zvn>h zHwOAV+&?oL>~HPYU!#b%fGcV;Ta8a_JWyiOCfsyeDp0r2vUWViU4@wosiGVY{3lV`meea<~+@jtE)IA7W0NGIrZ5 zPiL{bWZwwv-t8yKq7#pXcHdL>&nv;kY)|fyk88;Je)jUNOD9Q>RLamFt3JikDdWiX z`345m!GnnjFn!>tZUhoQ!1we55KLWADz6j8t?TPqmn}gs4$y~0a1R7^rvOwT)~XR1 z1L%Rar*q#-W^!;!OD#aM3KaIrtQS9oq`qAwO9XT~_cn?@rKS4ovo(*wG%O%XMRU!& z1wvpRddq$h1?ADJ-IuFjiHW_j+ES~%#W}T3HT(7{Jv}{ZDXx@^Bb@FXec~9++#2gP zBO~n9$e5YAL>AFL2k&PZKd5j1SRYJ8JkxmTKt%=8ja3cZhiDOuy3B8W*J``+%>Kqn zG+owEdI^N>!T75N?p|fp(tlLi%`7)X$o!fEAMpTzoLD+>P zfUoelJ;-_cKH!}iAj@c|EvL5UHT|f?f;{XQ!;d%hITNRDCip@A2Y6k8P}pJ4xwuE! zJTa1Ey>!NkmLO84GkLoWkOlx{=AkN}H=Z!QZ+U-qVOFOyUT_`F0W2NelCHUM(#)!M z0f#&i1JQ`t{Q1q{^cM@`%TCJrt=abF<*nYl-}-rm+HZKAm`P#n;WkJgz@+ zA~2W8kX^eFiUzo*Kti%k|4oefoBqMxWqUOe?iy}D^n3W|35wn=L5?93N&#vY?Ot;g z0;q6|;ic)QwN>LL!3td4KKWQ&VQdh-dS&x))LyN@>zJD5;ij*)Fd5?A_s*P< zl&670HMecuknVm#q{F%a)0Y8`W@+K^?ld%L!*+ow%ME?L+A?GbNOv<=xq~@3Ky!9I zjY;K`0=7j zjw4^8o*u|ag(9d242{cyIo#}GI+uz=$TkpVizW^27c=onVGg`+Zf2ODrE$8jJ2AxX+mx} zC^H03NdnfVoE#1a(5x?ngVKa?b`UT+ERosqCf}aYIH`4emsqc5Ghl;LTk!s6t3a`m zpjbzlLOiEY0rT2~e2YD9x3Ps}oMy8V%#dPx`D3vPlkTVQO+nH*eP0%Pj;-RG-u*qL zsrX-0no!eQ5NH6k*t$KBfmnx{dA14@D7w&Fy~7ORmy)QSzyjve+H~H8xzk5x?TG9j z9taBw#TYcp?GiLo=;TJ0sG8rIz|9uQllo&C2R%^!qqCpbCS4Hv2gG zLkT{(?&-py-5|fZsp1cQu34bU9b>p74lITRb>H7g=P(NoPw{KFJs5taEq&hCkpH2* zUFfpHmRq1uV|TtiLI_*6>~p%rO!_y>FRShFq$+sdd6A+OvZv0od}`ZPARB0Id8l7u zHx*vDH*94bx!eZdQcgt{j3#__1w(rO+*}P#p#a|>{;_t(pLi*t3*_1j;k2X+f=wmk zZuZ+mwf>y?qH}j1lqp$mskEqSahH5&3_QDlRKLT*!cu9x6am^ICgblC&cl!Q@$NNG zOc0e%eE=;0)p%oW`?H6@fSyWrlZ`cAva1ZYVR5smLa$PV^~WPK&%`m9r*2o6>;CDf zlhQpo2rAGCOAk0#{r+G`KtuolGZ**v?D%3}yz9F}Wn*bmnAnsaHzfGO!IiOK3c?vT zFxUOS*QOjhuC(_1d(C<=ZZp{a)5RXU!a?nnhjz)&?kShSZde4~S0_w9j(qi*cSsQ; z)S99zJ_PY##@dHKxu3Tg@Cx++<;u}tED3C~9)%Jl1!F*E_# zQg4DxBoQHn;WWg66Q@W(uv$h9?X8Htw69LL(w_IYusB2AjycZIRFl5qC2F*FgC`*nm(XOttEQ}ekM=^TrIC`Xr z=B&<2bNi4|W<%}DgAhSJRa$+}2#3dqDKe>()8~z)=7sRpIgQjgS;2R{f4}FU*^ofc z8w(gL;8N2ZBpK@A_px-v9=&9ngm#TW z;*>enjy*j`TPv%2-;)*ikK{H>1J#a+;=5m;KhH{*Zf6|k`|km^n>6>D+^02WJa}V! z0~YwD11Fgn#BMH^T)3;bu_R3QS}Ua?5EPVpa#BOjKCa576c89#Ax_`A(4)tR0QF}z z7j~>D1cHTqxPNj`XC(eAq5oxgrP#x3jH32`mde!n_^O@uo^p7E?|p)>iecDiunK#X ze_r3OkaQ@^41%q^y%Sbp?idji6qFSiMnfLK_*^2pY_{f7`$LRFSJ{JzfZyvvayIyc zFk)%~#S2Z|38@MzW{2m7E#4UKc#IwZn#sUVKrIQ))q)YTnx><0~SKMc?@n)uVg zyi;mp^Q)u1rUEDj+iXv=x}0pT4tr#G^>c@UA;1cyr)a(yNGkp0WH74@)+xQR^{pp! zqK4eL;6MBDeKk6mh|x~bX!9%hcvL{#-*Rd1!B?lP4zKYpSSa~geRi_j@BK`X9Rhhp zPyb8epmp8hSmO>?qU6nVM6nVKBeTV8N)K$#BK&qCj7f7PP})?Oy-Onv`6!jDnqXl(dcPV`k+NqUBed?gw;;M+eTpe9Hz80l&5 zIT3s-COp0|RAZckI%bK*;MIkOIV0WEU&JDYxJT7S_zu{xxLtPB#?q(*r2ziG47yo9gYT}fBfxOr%jYv|z`-q=Oylv| z?kh(d#VVGPcH{&D_9}%j61e8|YGM&ST2^3`GORi5;XrDy<8{z~b1@dhOS$%*xFV#1 zq=NT83$TwXQDFqL_fLbAEjKs=r@W`k&y|(?UdQ)=7gY+zJ$Fd9o4&T2x9V}~A02{& zxDe?1VC4mPcWVSq8DuDO-dTJk8sYPM-M8DoaS!^2)#{#SF3jQj&?j!|&iiT-i05eF zvwPAZkq)Y5Its^md0j5#s$#|^YE0`5+m!DKo+Ntfm8U}|ow#9n^lD1HWH(N3dzYax z2Lm>2Rsu>wLJ+hkiqD$Tyu2?p3>t#^^|IG*w&$Ge702c~4vb&MAAO+zD*K^$IPgd- zOB9HN%C&^()ooVB0%M0`=%jWp0e-gA9igZYEGod<*>GTE-=kFMN_sLZ7`A6zSdi_S z8tJ2O!X1xDTHsG+j_*&oASmxf#z?7NS6e4?*yR8Ngd8vv1_Kxp^eGXonRJMB3Qu-} z>&a&jQ#&95Ok7;bcmhXZMgwu_zq#h~P#zmRJZgZ{g|Zw%y=s*sDW{|qgK|g%gd6Nf zy9_MGGO6-KV^HyE7~N|+Q6Sqb?45YcTO)0Enjk)i(t=nv|P;3=g4 ztpH`Ni2vR>1BxRK1YH;y7!*{eRLfM{R=1Y7T#!@S3Ct^0c5f-wX0|z3r)>=@*Lsle z5v#?FaAP&ofYw$9x)f_C#~9nP@|7*K@Z#d)KK{nTgM)Cfm)%FoNpa5A zDaT-VdCH;&H0ha+ZGv0DiH*d(6Sbjw8;D>wO1NFp-|wgmgfgCrq6Ii^J@VwE4EH4N53#rxEW-AqGn3$hLBqTsd#$cq0hogH@dArcct+KSLw+96d3`y zA6aM;Icx8qiU5j{7J>Z0yqPi5|_PQs=8709#mCofo)edIk}!mp7Y z{3eH0Z=;eTG%OXGGPZ&IPjp07UR2g6eWJgX?{!+hy`I|;3oi*}=j2pw?kOI}qmm_< zVk9+?E(WT&_#PP7cY%?haREp)C&Jq>qa!0NGzxwJEnJPBo-K;|f{T3}chOe&0Adbs z4#g7BqD!~ocM8Sgws)7sFCgN(f|}s9vNAS@%~6wOs=t0HT5K?QJ6#5B4B)-;^YeFD zril`PXwmsXmcQrXQc_HO6#OKhnE8Z);w2cIi|;qu8{EF7!I`AXQ+|1QiFz4GP`>cT zi!u9+-hqP_n{n7Ef-d`-@}@b=I5-%sN83f%5B>Hf!IM8P%F7JP6IX}YZ)E!m$S~A~ zpR5}zD=FoKkPEbs0@FnB>ra_c`4rH|C%`ABDW4Llso{*?2>zsj58gJIVJ09WqXNA? zaz0y8;ti9IcJZKPe7ZVp2M=-7CY6tjBzX8V4`f|PB(m3>O~SUzsEU*b^LiW@szpac z=$SV%o~bfoJ-DYR`Z*7%iA1HuD*3~nw@ICUnluXAbK$=lh zf7jE?AfO;*7VG($5S?rmKBsGgvCaHToe4MIAacqe8icQFLU_NstvDOO=3noic|lyo z_Z|eQA%yF%xv{ZPrd9}caJ}q37GRVCeiH_^E6goU{%%`U8xvmoaz}hwFFDon>-+c6 zhxplHL$8q+7u^#RdK!0{Y3R8opxfJIz+#y0)j^+7;(3_O?P@pRh1@l1KUF;m9-5?k zW4AoN0*FyaF%JlYJky`Rhz$=<|Al(Ij7a`Vf1BCW!{a&tMpnF!MGzIK4*^SMYg-nr zUr9pLPS7=|2YUQXm$%VZ;Kp*c@)03m>nA0dFK4WJgT-wOboW3<^I{MwkFj8$ktIJB zZPxaeCEq71QvnP4z`n72X_+B1|B_)0gm7?xL?~%t= zxxV>ddei@PpXkbin+n-EZ_&L_`20!8zZAc@9e>?Q$+tuY;|@mmAd4)2BjG=>?XNHS zgJsZLNl#0wpb8EoaWQ41pL5msys&*xyLcbrK*!0W@mx2&OtsvwUplrwfhLhdf{i%# zKTRo=pZKrn-wz9=5hT3PL8@Fv$Ji>-%Fr^<#_HU%PR9qvJ!Sh3Dce7FirUiAzEJ%+ zYtBvP*uBU@P;>Gho6g$MF4tM|WxS*jI2L+Y=rkh4azPGfo4~X;jMfuhTzae7_c6s% zW&i=hD=yxT-0|IIGqw)9;`jd9py2N?l;T}m&TNw8l!X!!!w&`q86raP3vM$%D@T3( zB793$(msemHkP`spC0``H}s!Nva*?io^DBbOGiJw4E+_j#2Q+)EO;)6#LVrhsYOz- z{`0@1wHsHh($li5MzlqLM6-Sl?mDx#plA7qR;uX8_i2AW-G5(MRLWcoEGfvq*GGtc zD0Lmr`nk2yEu#0}j!YFym8}{DzS91WWf0upHt6k-=}#!c(rxLGMqBj)hbR6WaPJb5 znf===xBth@#`kYyHgl{+_x29bMC-Yg&hv+AAAubOZWDK&Jm!C_Oi$Nh7+pHZR{y!E1_>cVG z+VcM|CZVDI|BlpAfvMwrzo+{3Zg{HIA>;f)p6YM6Vkl*sdatp}|wqQEb#yE#bM{j$E$!Hh;ngxY|fR(qbDnoMd{6BSnc6P{Xbvy;KSzbcS0 z#Yz_(DdgdchT~244oftm_j7lH3CI=XezOvQ94D(U$bOls`h$?D7rp7l(3Pf}X}}g=VLahD2364JJAW|h&AmWO)J9Vz-5|`C=pL06mFECM zrA5(weGeM04nPB#d=nt;BO(CxdS zQT;J6rv*2;h&Nx(g8j0sxjzr(Feibvav}XkyT`2>MG?< zs9qZ3w_qK}1DZd@u&A<0`C9ae-x)pa5e^A`6`oOxiuT7Aak6KBonCS#;bN zVNwsx!tT_jV)7YIS0)BAfx?B%kC-Q$Ig1U7tVLzJDQ7;@j_Vnq8f-vx1SXu1b#_3g z#heyysx2uzQx`dc~j)vu4V}LPd%Fct3@X<`P`WMJ>3H*o3UBUeCL~ERRSX?g^Biv zd&bAnFZ`&*jJRCq%*cNLFJqu%Vo*PpGO@qjcj}h$r5t&5?KvGU6}i z(@vX3Tf%cWE;u9%)NdqdLn%iFdkIYr;gsur8Sk*^`;YMKu^sR zs8=ZmuJsR%7V|4fONZD*Qz6gQ?01GpN1d8qj}<7$TzlN&abC(BFHkGW*LE-Xc5zCg zd?1=9r`~2&Eu`$Uo)Z^f1Kz>-k7bdgPQT;xKRdC}2?=@{?SUYyD9@jNO0GK{JLhOx zZ>h67I=^~BmGR~<=U{WZJQY~7$Qc>=Ia(}afOc6?s)tG(oHtp&ROOA{(OXS+>o_RQ zs5~g&9d{<7#Z70jyj52w8ugRFBLu1lOIP2E%j4YPVW46Y&(D7~U4NkLe$ZV9{CKs4 zVWPGaGVYiU6v_!LAT{C~sCTqBdcRQnB9Pzt28Ue0Wzx(!vO8;F?&9Ze93tvkRzuagwM^Pn%r~8MsfUbITELdkEZjRroMiVp?C$_3O(c_ z_mkfoGQovYea9Y<_`%$BM^vDgil6w{3TP-mpp2yLX6 z@;70rW8|n1kLy}g(Z=wv>M!{rbF?X*niII>*(?I?Rn7T0*>>=H8 zR3kg#!-rP;^P~IZ-1dS^mldA^;WEndOH=O_x@Tx3;hWH$!lU`bo8j2hMzif0YR$2V zX#V(j%1SWERV}BSxNU?@xSO~wMT}8mFokREuIrfz-%0b^LRDm>W$miv@jAQg0R-A> z+W&i3bLNfyW~|yE=dGJH#`m_Aw?^>hWu>LB z%~W-3kGFGwgz^_xiyuT}DKA|2!4|&Y$qjFrzZWmtn*$qUx?-zW{9RpFS53$T5f?9(p9eF}eFzSYwpL+c>`sV^357bMzp zv3>)1H>YSex`Vn!|&5R#uq zKW4iAZP1wRC8sptFZEQe(sOSF*~o=*v*tG;hK(}?mlA$+<9dKS6B+c5geNriG+ z3CJH@4t=W(fXhlkLcv_!&sTJBKlQ8qgdmiZQO~K1{gQ>aj6^?TPMj8OV+q26;S|jo z8Zm^iC+x?~7isqkJf=5_6IC~_#fI?~1`$}JbEo_4Bzz~*z&@CKwh86&2fVm9klgJYrrXIR+%8GL*CCycw+e)J#mdb$Lk)QR`O=!MX02!80L)}7Qc45q zNW;OkvgvR^B^jf9le3%$D}PzgpPT&yg0sme7fb|ZWj!L%7Cj~LQbsiQKrpm zz@(Gk7KN3(MjbP9ze`<~S9614UqCUq0euK`%xpc~vyrZRs(`QV=hkTVGE}ZSgvVhk6Iat^^O{%KWX^PN!yB9# zM=fynmE~nv)~|BZg&ZOf%2&ct;E}`GoXn0D#@ksWC_uvPiZ`ayGYzU{DqZ19a+n4MyP6C3Mzr9J>D#?vm!6L za&;nBW*Fzznmy2OKg<>ve+T>C^|{hyBEPxBTGBizp~{pNJXpx`CJslqLX3XZ8}!@X zj=EQBpqf?b0D!D??NplDc7%i!L&ue!#gli;IzsFd9~zy4%4lnukO?3u5}cMbz+8bJvf?w+hc=TQ19W0Sq!4*>U_2mEfD%Iz>&GjtQYZI)>+e7qIQo4KG=9Q?+F0Bf|H%O?65Fdn$d#7mNpR> zNa{%JH22W=h=auKC>5jf;sQ2j8;Z3&mS2F=7}$hUdEN*n^EhinAQsNSc7Pcs;({GK z+{niZ+Ha6dB~7WzPP@%1xY``ArO$->S9R2;8{VSKS1-Qi@z@3nFkJ+~Kk7V2ZLfri z&zgT6DnO)t_ftYFSOCwMGa7X$Nkr9w`o!iu4mcP zl|CL5+ecEr0>LJPY&H`F;&#P?0;L_-eA}^v1di3)Vz|Y})cNw!cPe*gmGQ$%fr(dP zd2R>;BbB(#!To?h8QCwND#i;{wktzW33?G}aSy~y9Q0R`P(3WFOosf0A@vGfi)%PH znrsTF6_mYD>on6C2()S5>H2_eJGNfxl)sR+b#y($vIQRw$Ds~~f+k89{Zy}#1(8%>1RFs(_sUAW%Zo3>7($C8h_B3ZVkI(LuViiZb9rgq%A|gm!*2e|iOk`9$ru9Td`hgLNfI^aLs1GQ>z!YzS

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

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

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

d&{Q756}?O{>LlONFe#_2E?R+RC`e4UJJ}w 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 z zXj;B%jAD|^%;%<$_KySkD|*QWfi<%EsZ>|&mvepQ@OzHDoVuu^k=h zR|X~N1cW6zy@EY`ZxX^MN|Q30ty0v}eZ}C#3Kgwzt$c4-yn#g7<0d#nV@lb85}BK{ zc{FwB5_TP#jBqD2)bKm$v9(@qhbud9bWs)MQTg54rM)O%c%xNYCv2?^KB}(h;?HMd zVlwr>?M}FSWZT72S*J>iZ2wdZIA?3UD;+@^Y!QVI3%^MCyS@lCTy>yGg z=DQa3@lq-Qxw&qOd4RLPzfyv7nnUz5NqF(%L@!tQm?M8t=GUE`T?%5YXg`8c|G$rP z9#dIZnEzI@{+y6d$8Ai-M3-~ib~amSs5zjmy_l-uHjt*-@rjwJ)}fu&4Kri307=aM zRZk+XBo_}3)ra=A)%~3u&PR{l8asuyd!?ojav~ zgv84Xzw;n9b%nO~;9^_>+nM4#xC1H+Tz$(WCN?FUC$FZawvXv!a@{=hOft}4Tv}q) z780V=C5}r?Ep0hHv|GkXtrh4s29Z!d+Y4d(nwZD}ZbWZrXaLT)N+1∋^ty+@oIcuV^b;S*a#pA9Ww= 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 z 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 Z==&_}ETfNKYhnPG+*@VoQYpj0{{z$seOv$l literal 0 HcmV?d00001 From 9a4264257c515982c6ee65bb6b73dbf6c78177a4 Mon Sep 17 00:00:00 2001 From: Ember Date: Mon, 4 May 2026 20:24:18 +0200 Subject: [PATCH 223/356] Add caddy, add section in networking for reverse proxies (#636) I put the reverse proxy section at the start of networking because excluding the 'Networking' security tools would come after Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/636 Reviewed-by: Admin --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 7a9ef9a..e536026 100644 --- a/README.md +++ b/README.md @@ -857,6 +857,12 @@ This is a section for repos that are similar to this one either because they are ## Networking +### Reverse proxies + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [caddy](https://github.com/caddyserver/caddy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/caddyserver/caddy/blob/master/AGENTS.md), [2](https://github.com/caddyserver/caddy/pull/7666), [3](https://github.com/caddyserver/caddy/pull/7492)) | + ### Networking security tools | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| From 89ccfd8773cee6dc2cf86c77e81dba8f4ba6d47e Mon Sep 17 00:00:00 2001 From: matu6968 Date: Tue, 5 May 2026 08:43:47 +0200 Subject: [PATCH 224/356] add Mongoose as tainted (due to AI spec files in device dashboard examples) (#637) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/637 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e536026..1595083 100644 --- a/README.md +++ b/README.md @@ -1012,6 +1012,7 @@ This is a section for repos that are similar to this one either because they are | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | [GnuTLS] | +| [Mongoose](https://mongoose.ws) | [`7a21199`](https://github.com/cesanta/mongoose/commit/7a21199d4a64dc9d941417f3ddef12b89905af1f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cesanta/mongoose/commit/97c53ec5a6e36a7c9ab188314d96ac0772f6c793), [2](https://github.com/cesanta/mongoose/commit/c937144b651eff9c2d4396f1e1d5b43d43956b2e)) | [libmicrohttpd] | | [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | [GnuTLS] | | [raylib](https://github.com/raysan5/raylib) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/raysan5/raylib/discussions/5712#discussioncomment-16411612)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [sd-bus](https://www.freedesktop.org/software/systemd/man/latest/sd-bus.html) (via systemd) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [*See systemd section*](#system-services-and-daemons) | [basu](https://sr.ht/~emersion/basu/) | @@ -1546,6 +1547,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [iocraft]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java +[libmicrohttpd]: https://www.gnu.org/software/libmicrohttpd/ [LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ [LibreOffice Draw]: https://www.libreoffice.org/download/download-libreoffice/ [LibreTube]: https://libretube.dev From 8ff185d99390682cb7da42148e5e1de18159e378 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 5 May 2026 08:44:36 +0200 Subject: [PATCH 225/356] Add Benchmarking section with Hyperfine (#596) Part of #55 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/596 Reviewed-by: Admin --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 1595083..f9385ae 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Standalone Digital Mixer](#standalone-digital-mixer) * [Music Players](#music-players) * [Podcast Aggregators](#podcast-aggregators) + * [Benchmarking](#benchmarking) * [Blogging Software](#blogging-software) * [Content Management Systems](#content-management-systems) * [Static Site Generators](#static-site-generators) @@ -382,6 +383,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [AntennaPod](https://github.com/AntennaPod/AntennaPod) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/AntennaPod/AntennaPod/blob/develop/AGENTS.md), [2](https://forum.antennapod.org/t/proposal-to-change-expenses-policy-ai-subscriptions/8417)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## Benchmarking + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Hyperfine](https://github.com/sharkdp/hyperfine) | [`v1.19.0`](https://github.com/sharkdp/hyperfine/releases/tag/v1.19.0) | [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/sharkdp/hyperfine/blob/327d5f4d9107141929f67f062bf9ef59f98b7399/README.md#sponsors)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## Blogging Software ### Content Management Systems From 017b5528e8319c1e7a6f6316491b6a7725ebfc19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 16:49:47 +0200 Subject: [PATCH 226/356] Change "Notepad++ for Mac" to "Nextpad++", and put None as the last untainted version (#652) This PR renames Notepad++ for Mac to Nextpad++, since they changed their name, and changes the URLs to the website and GitHub repos (for the proof of permissive AI policy) to the new name as well. It also puts None as the last untainted version, since Notepad++ for Mac has been since the beginning a vibecoded port to macOS made without the involvement of the original Notepad++ project. I made a new PR because the old one (#650) used the same fork I used for the Modrinth PR (#401), and for some reason that added the Modrinth commits to this one too... Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/652 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9385ae..8c59541 100644 --- a/README.md +++ b/README.md @@ -649,7 +649,7 @@ This is a section for repos that are similar to this one either because they are | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Notepad++ for Mac](https://notepad-plus-plus-mac.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/notepad-plus-plus-mac/notepad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | From 656e428daaddab223cd19c377a006fe6eca9b2fd Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 6 May 2026 19:08:15 +0200 Subject: [PATCH 227/356] Add LVGL and cryptography as tainted to Programming Language-Specific Tooling section (#647) LVGL and cryptography are split into seperate commits as each commit modifies seperate sub sections Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/647 Reviewed-by: Admin --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8c59541..66db0b2 100644 --- a/README.md +++ b/README.md @@ -1018,6 +1018,7 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [MbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/Mbed-TLS/mbedtls/pull/10635), [2](https://github.com/Mbed-TLS/mbedtls/pull/10636), [3](https://github.com/Mbed-TLS/mbedtls/pull/10683)) | [GnuTLS] | | [Mongoose](https://mongoose.ws) | [`7a21199`](https://github.com/cesanta/mongoose/commit/7a21199d4a64dc9d941417f3ddef12b89905af1f) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cesanta/mongoose/commit/97c53ec5a6e36a7c9ab188314d96ac0772f6c793), [2](https://github.com/cesanta/mongoose/commit/c937144b651eff9c2d4396f1e1d5b43d43956b2e)) | [libmicrohttpd] | | [OpenSSL](https://openssl-library.org/) | [`3.5.0`](https://github.com/openssl/openssl/releases/tag/openssl-3.5.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/openssl/openssl/commit/4cf52a2feda838b99a9255417844fbd20420159d),[2](https://github.com/openssl/openssl/commit/44e453d0f9c765e14c4d1f5dcde9a616fc7d05df),[3](https://github.com/openssl/openssl/commit/e5ff85fd777aee8fd6bd1c8136d8041b5c4fbc78))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/openssl/openssl/pull/29150),[2](https://github.com/openssl/openssl/pull/29074),[3](https://github.com/openssl/openssl/pull/29074)) | [GnuTLS] | @@ -1097,6 +1098,7 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro |---|:---:|---|---| | [Black](https://github.com/psf/black) | [`25.9.0`](https://github.com/psf/black/releases/tag/25.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/black/commit/43dbc2f1ccbd74d4eea1c3615fe854961e6a07b7), [2](https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab), [3](https://github.com/psf/black/commit/8ab9719dcbeedccadf5d458d8139df38fcf84285))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/psf/black/pull/4790), [2](https://github.com/psf/black/pull/4804), [3](https://github.com/psf/black/pull/4825)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [charset\_normalizer](https://github.com/jawah/charset_normalizer/) | +| [`cryptography`](https://github.com/pyca/cryptography) | [`44.0.0`](https://github.com/pyca/cryptography/releases/tag/44.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pyca/cryptography/blob/main/AGENTS.md), [2](https://github.com/pyca/cryptography/commit/ce7f263d2b5492222497966e4132010caf650a70), [3](https://github.com/pyca/cryptography/commit/62d0783211a329c5d1d27b52c527a245e9bc842b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pyca/cryptography/pull/12976), [2](https://github.com/pyca/cryptography/pull/13137), [3](https://github.com/pyca/cryptography/pull/12937)) | [PyCryptodome](https://github.com/Legrandin/pycryptodome) | | [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/dac090ce4d9ee313d086e2e89ab1acb8c2664fa1/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) | | [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help)| From 5c2657fc94638acad8e1b9289dc9bf85e9e4b1b1 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 6 May 2026 19:44:14 +0200 Subject: [PATCH 228/356] Add Penlighter as an alternative to Penlight (#649) Teehee, self promotion :upside_down_face:. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/649 Reviewed-by: Admin --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66db0b2..621ba34 100644 --- a/README.md +++ b/README.md @@ -1088,7 +1088,7 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight) | +| [Penlight](https://lunarmodules.github.io/Penlight/) | [`8bf90ff`](https://github.com/lunarmodules/Penlight/commit/8bf90ff2bc8bfed8dfa238f3c600e51963cdc98d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lunarmodules/Penlight/pull/519)) | [Microlight](https://github.com/stevedonovan/Microlight)
[Penlighter](https://codeberg.org/slop-free/Penlighter) (fork, WIP) | ### Python From 539e0a35e7c49f7ba5a9c4190f9aa804c9741882 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Wed, 6 May 2026 19:55:32 +0200 Subject: [PATCH 229/356] Add Webiny as tainted, sort Content Managment Systems sub-category and add more evidence to Ghost (#654) Discovered Webiny in a YouTube ad while watching a video, so decided to take a look at it and sure enough it has slop Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/654 Reviewed-by: Admin --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 621ba34..6e00118 100644 --- a/README.md +++ b/README.md @@ -397,11 +397,12 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Backdrop CMS](https://backdropcms.org/) | [`1.33.2`](https://github.com/backdrop/backdrop/releases/tag/1.33.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/backdrop/backdrop-issues/issues/440#issuecomment-4357835721)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Banany blog](https://github.com/runawaydevil/banany-blog) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/runawaydevil/banany-blog/commit/5ee797556636dd43b1f476881e4a72878c2c021b)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Ghost](https://ghost.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/tree/main/.claude))
| [WriteFreely] | -| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | -| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | | [Bludit](https://www.bludit.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bludit/bludit/pull/1642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/bludit/bludit/pull/1642)) | [WriteFreely] | +| [Drupal](https://new.drupal.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://new.drupal.org/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([2](https://www.drupal.org/docs/develop/issues/issue-procedures-and-etiquette/policy-on-the-use-of-ai-when-contributing-to-drupal)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Ghost](https://ghost.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TryGhost/Ghost/blob/main/AGENTS.md), [2](https://github.com/TryGhost/Ghost/pull/27666), [3](https://github.com/TryGhost/Ghost/pull/27642))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/TryGhost/Ghost/pull/27667), [2](https://github.com/TryGhost/Ghost/pull/27211)) | [WriteFreely] | +| [Wagtail](https://wagtail.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wagtail/wagtail/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wagtail.org/wagtail-ai/)) | [WriteFreely] | +| [Webiny](https://www.webiny.com) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/webiny/webiny-js/blob/next/AGENTS.md), [2](https://github.com/webiny/webiny-js/pull/4954), [3](https://github.com/webiny/webiny-js/pull/5092))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.webiny.com/docs/build-with-ai/ai-assisted-development), [2](https://github.com/webiny/webiny-js/pull/4990))| [WriteFreely] | +| [WordPress](https://wordpress.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/WordPress/gutenberg/blob/trunk/AGENTS.md), [2](https://github.com/WordPress/gutenberg/pull/74449))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://wordpress.com/blog/2026/03/20/ai-agent-manage-content/)) | [WriteFreely] | ### Static Site Generators From 58cfbafb989342f034cb95483258e5fba20f834f Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 5 May 2026 14:53:43 -0800 Subject: [PATCH 230/356] Add Numbat --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6e00118..00032bb 100644 --- a/README.md +++ b/README.md @@ -989,6 +989,7 @@ This is a section for repos that are similar to this one either because they are | [Kotlin](https://github.com/JetBrains/kotlin) | [`v2.3.0`](https://github.com/JetBrains/kotlin/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JetBrains/kotlin/blob/master/.ai/guidelines.md), [2](https://github.com/JetBrains/kotlin/commit/65fee3c3cad8012a6aad5df7554a1dd20dfb8d22))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://kotlinlang.org/)) | See below | | [mruby](https://github.com/mruby/mruby/releases/tag/3.3.0) | [`v3.3.0`](https://github.com/mruby/mruby/releases/tag/3.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mruby/mruby/commit/b9a1a1fb2389e5b36dd0f0d9a6f95818f7f30af5))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/mruby/mruby/pull/6482), [2](https://github.com/mruby/mruby/pull/6572)) | See below | | [Nim](https://nim-lang.org/) | [`e2a3063`](https://github.com/nim-lang/Nim/commit/e2a306355ca179aa256a2cee7a0d3a809538c8b9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nim-lang/Nim/pull/24564), [2](https://github.com/nim-lang/Nim/pull/25429), [3](https://github.com/nim-lang/Nim/pull/25439)) | [Ada](https://www.adaic.org/)? | +| [Numbat](https://numbat.dev/) | [`18f81b1`](https://github.com/sharkdp/numbat/commit/18f81b19dc8698b29048ab0166a3a87dcadd34b7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/numbat/blob/88b2e81a35d06942101d74e9b368081f02555f4f/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [OCaml](https://ocaml.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ocaml/ocaml/blob/trunk/AI.md), [2](https://github.com/ocaml/ocaml/pull/14702#issue-4186687842)) | [SML](https://smlfamily.github.io/) | | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | From 1cf80b1fa06c63262493887466fbc58cdf728239 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Tue, 5 May 2026 15:08:07 -0800 Subject: [PATCH 231/356] Add Go --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 00032bb..04d19d1 100644 --- a/README.md +++ b/README.md @@ -983,6 +983,7 @@ This is a section for repos that are similar to this one either because they are | [Dart](https://dart.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/dart-lang/sdk/blob/main/CONTRIBUTING.md#ai-contribution-guidelines), [2](https://github.com/dart-lang/sdk/tree/6cd3938741d48681330363b3553da8eccf335407/.agents/skills), [3](https://github.com/dart-lang/core/tree/0def20c4bef2b242db15b38202a54735101f5791/.gemini)) | See below | | [Elixir](https://elixir-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/elixir-lang/elixir/blob/main/CONTRIBUTING.md#ai-contributions)) | See below | | [Gerbil Scheme](https://github.com/mighty-gerbils/gerbil) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mighty-gerbils/gerbil/pull/1397)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | +| [Go](https://go.dev) | [`go1.22.4`](https://github.com/golang/go/releases/tag/go1.22.4) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://go.dev/gopls/features/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/golang/go/commit/b8be5de81ee78f51fbd600498093b542e75a710e), [2](https://github.com/golang/go/commit/f8f87129646ca3821b3926e649c856a960d6bc9e), [3](https://github.com/golang/go/commit/26d5e160750b34a537cce0f1bfd47f663a110d27))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/golang/go/discussions/67901)) | See below | | [Haskell](https://www.haskell.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing/AI)) | [Idris] (attempts to refine Haskell; Bans AI)
[SML](https://smlfamily.github.io/) (several implementations; community is nearly dead) | | [Janet](https://janet-lang.org/) | [`517e40a`](https://github.com/janet-lang/janet/commit/517e40a17b8d42cfc1cae29f2d0b9015da84c9a9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/janet-lang/janet/blob/c6b802b082aa21b6e65e8c2729c85237b0cc8a24/CONTRIBUTING.md#llms-tool-usage-and-transparency), [2](https://github.com/janet-lang/janet/pull/1710))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/janet-lang/janet/pull/1710), [2](https://github.com/janet-lang/janet/pull/1721), [3](https://github.com/janet-lang/janet/pull/1731)) | See below | | [Julia](https://julialang.org/) | [`v1.11.4`](https://github.com/JuliaLang/julia/releases/tag/v1.11.4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JuliaLang/julia/blob/master/AGENTS.md)
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/JuliaLang/julia/pull/57995), [2](https://github.com/JuliaLang/julia/pull/59706)) | See below | From 766885f51dcd637a7099e439915f364635d25505 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Wed, 6 May 2026 00:27:08 -0800 Subject: [PATCH 232/356] Mention Go taint in Go libraries/tooling section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 04d19d1..6ca2acb 100644 --- a/README.md +++ b/README.md @@ -1054,6 +1054,8 @@ Note that Dart is itself tainted; see [the Programming Languages section](#progr ### Go +Note that Go is itself tainted; see [the Programming Languages section](#programming-languages). + | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | | [debugui](https://github.com/ebitengine/debugui) | [`f9c0b31a`](https://github.com/ebitengine/debugui/commit/f9c0b31aa2bf90cc0457c742605ac01f3daaefb5) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93), [2](https://github.com/ebitengine/debugui/commit/fe9b3065d06189c6bc9bfb9b3db32972e52bff93)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From a232dbca4136a0675b01c68c21ff04c5e47012aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 11:27:06 -0400 Subject: [PATCH 233/356] Removed CotEditor as a Nextpad++ alternative and added it as tainted --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ca2acb..85551bf 100644 --- a/README.md +++ b/README.md @@ -643,6 +643,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| +| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7)) ([2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | | [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | See note software below | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | See editors below | @@ -650,7 +651,7 @@ This is a section for repos that are similar to this one either because they are | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | [CotEditor](https://github.com/coteditor/CotEditor)
See editors below | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | | [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | | [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | From 0581684ed73e2afe25b800c5e4f60a5e04ffd778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 13:19:57 -0400 Subject: [PATCH 234/356] Fixed parenthese for the CotEditor evidence --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 85551bf..b83a22e 100644 --- a/README.md +++ b/README.md @@ -641,9 +641,9 @@ This is a section for repos that are similar to this one either because they are ## Editors -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |None Permissive AI policy (1, 2) See editors below |---|:---:|---|---| -| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7)) ([2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | +| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | | [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | See note software below | | [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | See editors below | From f0c86442f928a5f025d4a119b08b376616a58a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 13:22:33 -0400 Subject: [PATCH 235/356] Fixed the table that got broken accidentally --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b83a22e..85ef892 100644 --- a/README.md +++ b/README.md @@ -641,7 +641,7 @@ This is a section for repos that are similar to this one either because they are ## Editors -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) |None Permissive AI policy (1, 2) See editors below +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | | [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | From 0ebcdf774499e2d8a77271be077e5dc8116652b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Chagnon?= Date: Wed, 6 May 2026 22:24:26 +0200 Subject: [PATCH 236/356] Add ms-edit (#653) Unsurprisingly, Microsoft's TUI text editor is slop Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/653 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85ef892..5c4d9b0 100644 --- a/README.md +++ b/README.md @@ -650,6 +650,7 @@ This is a section for repos that are similar to this one either because they are | [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) [`v2.3.0`](https://github.com/lem-project/lem/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb)) | [Hemlock](https://phemlock.common-lisp.dev/) | | [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | | [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | +| [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | See editors below | | [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | | [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | | [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | From bf470ca4a68aa5599ab7b92618ea1331607eafe4 Mon Sep 17 00:00:00 2001 From: Lily Gruman Date: Wed, 6 May 2026 22:39:44 +0200 Subject: [PATCH 237/356] Add Slint (#603) Not surprising, I suppose. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/603 Reviewed-by: Admin --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c4d9b0..5eee660 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Lua](#lua) * [Python](#python) * [Rust](#rust) + * [Alternative GUI crates](#alternative-gui-crates) * [Search Engines](#search-engines) * [Service Monitoring](#service-monitoring) * [Social Media](#social-media) @@ -1123,17 +1124,25 @@ Note that Python is itself tainted; see [the Programming Languages section](#pro | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| | [c2rust](https://github.com/immunant/c2rust) | [`0.21.0`](https://github.com/immunant/c2rust/tree/v0.21.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/immunant/c2rust/issues/1653#issuecomment-4035773395),[2](https://github.com/immunant/c2rust/pull/1614))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/immunant/c2rust/tree/master/c2rust-postprocess))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/immunant/c2rust/pull/1664),[2](https://github.com/immunant/c2rust/pull/1595),[3](https://github.com/immunant/c2rust/pull/1587))| [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2),[2](https://github.com/emilk/egui/pull/8088),[3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948),[2](https://github.com/emilk/egui/pull/7617),[3](https://github.com/emilk/egui/pull/7577)) | [iced](https://github.com/iced-rs/iced),
[imgui](https://github.com/imgui-rs/imgui-rs),
[relm](https://github.com/antoyo/relm) | +| [egui](https://github.com/emilk/egui) | [`0.31.1`](https://github.com/emilk/egui/tree/0.31.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/emilk/egui/commit/f3611e3e5a448ba8a96cb880ea3a29245bb3a2d2), [2](https://github.com/emilk/egui/pull/8088), [3](https://github.com/emilk/egui/pull/8031))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/emilk/egui/pull/7948), [2](https://github.com/emilk/egui/pull/7617), [3](https://github.com/emilk/egui/pull/7577)) | See below | | [facet](https://github.com/facet-rs/facet) | [`cad0de9`](https://github.com/facet-rs/facet/commit/cad0de9b14ce6a4b9a24018260b28998b4dd18c9) as Shapely
(before the `facet-rs` rebrand) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://archive.ph/YhcOh),[2](https://github.com/facet-rs/facet/pull/1607),[3](https://github.com/facet-rs/facet/pull/1465))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/facet-rs/facet/pull/2170),[2](https://github.com/facet-rs/facet/pull/2127),[3](https://github.com/facet-rs/facet/pull/2109)) | [nanoserde](https://github.com/not-fl3/nanoserde)
See note below. | | [iocraft] | [`0.7.17`](https://github.com/ccbrown/iocraft/tree/iocraft-v0.7.17) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ccbrown/iocraft/commit/1daff8bdef6d6c0f0ceeb89d0308b1990a5fa428),[2](https://github.com/ccbrown/iocraft/commits?author=domenkozar))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ccbrown/iocraft/pull/98), [2](https://github.com/ccbrown/iocraft/pull/70)) | [console],
[cursive] | | [Matrix-rust-sdk](https://github.com/matrix-org/matrix-rust-sdk/) || [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/matrix-org/matrix-rust-sdk/pull/6162)), [2](https://github.com/matrix-org/matrix-rust-sdk/pull/6417)) | | [Nextest](https://github.com/nextest-rs/nextest) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextest-rs/nextest/commit/3853279b41cc4a81f82e26fd88fac3bf85054af5)) | `cargo test` | | [ratatui](https://github.com/ratatui/ratatui) | [`0.29.0`](https://github.com/ratatui/ratatui/tree/v0.29.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ratatui/ratatui/discussions/2201),[2](https://github.com/ratatui/ratatui/pull/2308))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/ratatui/ratatui/pull/1998),[2](https://github.com/ratatui/ratatui/pull/1490)) | [console],
[cursive] | | [rust-analyzer](https://github.com/rust-lang/rust-analyzer) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/rust-lang/rust-analyzer/pull/21314/changes),[2](https://github.com/rust-lang/rust-analyzer/blob/master/CLAUDE.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/rust-lang/rust-analyzer/pull/21968),[2](https://github.com/rust-lang/rust-analyzer/pull/21957),[3](https://github.com/rust-lang/rust-analyzer/pull/21750)) | cargo check | +| [Slint](https://github.com/slint-ui/slint) | [`1.14.1`](https://github.com/slint-ui/slint/tree/v1.14.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/slint-ui/slint/blob/master/AGENTS.md), [2](https://github.com/slint-ui/slint/commit/f479ae6d8ee24de17634e22e8079374222a4a8fd)) | See below | | [wgpu](https://github.com/gfx-rs/wgpu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/gfx-rs/wgpu?tab=contributing-ov-file#llms-ai), [2](https://github.com/gfx-rs/wgpu/commit/bed71efe59e2360c625163c28c70de598dee41b7), [3](https://github.com/gfx-rs/wgpu/pull/9141))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/gfx-rs/wgpu/pull/9364),[2](https://github.com/gfx-rs/wgpu/pull/9089),[3](https://github.com/gfx-rs/wgpu/pull/8821))| [ash](https://github.com/ash-rs/ash),
[glow](https://github.com/grovesnl/glow),
[vulcano](https://github.com/vulkano-rs/vulkano) | | [zbus](https://github.com/z-galaxy/zbus) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/z-galaxy/zbus/blob/78f786cad319f9027a9893f73aa862ed2f4b45cd/CLAUDE.md), [2](https://github.com/z-galaxy/zbus/pull/1761))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://github.com/z-galaxy/zbus/pull/1660)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [zerocopy](https://github.com/google/zerocopy) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/google/zerocopy/commits?author=google-labs-jules%5Bbot%5D),[2](https://github.com/google/zerocopy/blob/1834846b5aa8e2d95f9ec810f7b8e6e26909cb2e/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +> [!Note] +> #### Alternative GUI crates +> - [GTK](https://github.com/gtk-rs/gtk4-rs) +> - [iced](https://github.com/iced-rs/iced) +> - [imgui](https://github.com/imgui-rs/imgui-rs) +> - [relm](https://github.com/antoyo/relm) + > [!Note] > > Also, there is an advisory database of Rust slopware crates, which you can use in tools like From 9026500e5e2e5ceea9b6401920a5d8a1ed7f9c3f Mon Sep 17 00:00:00 2001 From: micdan5 Date: Thu, 7 May 2026 00:41:07 +0200 Subject: [PATCH 238/356] Add LogFox & Logcat Reader (#640) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/640 Reviewed-by: Admin --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 5eee660..dca5ec0 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,9 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Servers](#servers) * [Clients](#clients) * [System Base](#system-base) + * [System Logs Managers](#system-logs-managers) + * [Android](#android) + * [Alternatives for Android](#alternatives-for-android) * [System Services and Daemons](#system-services-and-daemons) * [Terminal](#terminal) * [Terminal Emulators](#terminal-emulators) @@ -1204,6 +1207,23 @@ This section is strictly for software implementing a core set of UNIX-like utili | [plan9port](https://9fans.github.io/plan9port/) | [`0155f29`](https://github.com/9fans/plan9port/commit/0155f29bdc3cf0cab017fd7b33bf9e93cb9af64c) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/9fans/plan9port/pull/748)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [uutils](https://uutils.github.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/uutils/coreutils/pull/11717), [2](https://github.com/uutils/coreutils/commit/6e18efb218dbd4d7ad7441d255d02fb0c1df4bf0) [3](https://github.com/uutils/coreutils/pull/11918#issuecomment-4284527284))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/uutils/coreutils/pull/7266), [2](https://github.com/uutils/coreutils/pull/10505), [3](https://github.com/uutils/coreutils/pulls?q=copilot)) | [Busybox](https://busybox.net/),
GNU coreutils | +## System Logs Managers + +### Android + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Logcat Reader](https://github.com/darshanparajuli/LogcatReader) | [`877cc0a`](https://github.com/darshanparajuli/LogcatReader/commit/877cc0a17be6d39c5797301eb0d5ff7e6dd4e341), version [2.3.1](https://github.com/darshanparajuli/LogcatReader/releases/tag/v2.3.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/darshanparajuli/LogcatReader/blob/main/AGENTS.md), [2](https://github.com/darshanparajuli/LogcatReader/commit/842bd4033c4e6332a77424866ee92383a6acafac), [3](https://github.com/darshanparajuli/LogcatReader/commit/5b891a0dcd2abda7ea7b8434e23282f4d6baaa13))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/darshanparajuli/LogcatReader/pull/118#pullrequestreview-3954825326)) | +| [LogFox](https://github.com/F0x1d/LogFox) | [`dd1405c`](https://github.com/F0x1d/LogFox/commit/dd1405c67737601b27530533feeebf73711fe47e), version [2.0.7](https://github.com/F0x1d/LogFox/releases/tag/v2.0.7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/F0x1d/LogFox/blob/master/AGENTS.md), [2](https://github.com/F0x1d/LogFox/tree/master/.claude), [3](https://github.com/F0x1d/LogFox/commit/c7953ec38f480c4d0a8ec5311e03ff2d562422b3)) | + +> [!note] +> +> #### Alternatives for Android +> +> - [Rootless Logcat](https://github.com/tananaev/rootless-logcat) +> - [aShell You](https://github.com/DP-Hridayan/aShellYou) or [aShell](https://gitlab.com/sunilpaulmathew/ashell) running the `logcat`command. +> - Direct use of the `logcat` command in the Android shell. + ## System Services and Daemons | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | From 2360bfaa77d22fe3a055a125d3870fc2819a7577 Mon Sep 17 00:00:00 2001 From: micdan5 Date: Thu, 7 May 2026 07:47:40 +0200 Subject: [PATCH 239/356] Add Scratch and TurboWarp (#581) Credits to [this YouTube video](https://www.youtube.com/watch?v=tKsA_i5vKeE) for the idea. Truly disappointing, especially since I started my coding journey with Scratch back in primary school. It's like a betrayal. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/581 Reviewed-by: Admin --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index dca5ec0..51923c8 100644 --- a/README.md +++ b/README.md @@ -1004,7 +1004,9 @@ This is a section for repos that are similar to this one either because they are | [Racket](https://racket-lang.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/racket/racket/issues/5466), [2](https://github.com/racket/racket/pull/5415)) | [Chez Scheme](https://cisco.github.io/ChezScheme/)
[Guile](https://www.gnu.org/software/guile/) | | [Ruby](https://www.ruby-lang.org) | [`v3.3.8`](https://github.com/ruby/ruby/releases/tag/v3_3_8) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc), [2](https://github.com/ruby/ruby/commit/a0fc03ef3717ad0aab363a53a6f6f178dab7b526))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ruby/ruby/commit/c76ba839b153805f0498229284fea1a809308dbc)) | See below | | [Scala](https://scala-lang.org/) | [`v3.7.1`](https://github.com/scala/scala3/releases/tag/3.7.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scala/scala3/blob/main/AGENTS.md), [2](https://github.com/scala/scala3/commit/a3a3fb8a907132a19181b5e76f0a3cf19e4f8cd3), [3](https://github.com/scala/scala3/commit/04dcaa43df3d4959114c7875a246f7f1bed09299)) | [Scala 2.13.18](https://github.com/scala/scala/releases/tag/v2.13.18),
[Scala 3.3 LTS](https://github.com/scala/scala3/releases/tag/3.3.7),
See below | +| [Scratch](https://scratch.mit.edu) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://medium.com/scratchteam-blog/introducing-creative-ai-at-scratch-bcdbd6c3efc9))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scratchfoundation/scratch-editor/blob/develop/AGENTS.md), [2](https://github.com/scratchfoundation/.github/blob/main/CONTRIBUTING.AI.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scratchfoundation/scratch-editor/pull/264#pullrequestreview-3019481549), [2](https://github.com/scratchfoundation/scratch-editor/pull/291#pullrequestreview-3109857889), [3](https://github.com/scratchfoundation/scratch-editor/pull/327#pullrequestreview-3263575779))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](#ai-databroker-usage) ([1](https://mitscratch.freshdesk.com/en/support/solutions/articles/4000219182-scratch-terms-of-service), [2](https://scratch.mit.edu/discuss/topic/862281/)) | [Scratch 1.4]
[Scratch 2] | | [TruffleRuby](https://truffleruby.dev/) | [`v33.0.0`](https://github.com/truffleruby/truffleruby/releases/tag/graal-33.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/truffleruby/truffleruby/commit/9f028ec178642bc71285a32c82b0a2761723b40b), [2](https://github.com/truffleruby/truffleruby/pull/4133))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/truffleruby/truffleruby/pull/4161)) | See below | +| [TurboWarp](https://turbowarp.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/TurboWarp/extensions/pull/2449#issuecomment-4150685173)) | [Scratch 1.4]
[Scratch 2] | | [Typescript](https://www.typescriptlang.org/) | [`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/TypeScript/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/TypeScript/commit/c9e7428bb76f0543a3555d0af87777e7db3a41e6), [3](https://github.com/microsoft/TypeScript/commit/ad04bf7488384a5dcdf7d250ccb8e5263021a8ff)) | See below | > [!Note] @@ -1605,6 +1607,8 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Rio Terminal]: https://github.com/raphamorim/rio [Servo]: https://servo.org/ [Schilytools]: https://codeberg.org/schilytools/schilytools +[Scratch 1.4]: https://scratch.mit.edu/scratch_1.4 +[Scratch 2]: https://scratch.mit.edu/download/scratch2 [Showtime]: https://apps.gnome.org/Showtime/ [SMPlayer]: https://www.smplayer.info/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden From 420c6c8db1bbc88bfe43259a4ac445c29da52a02 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 7 May 2026 13:18:50 +0200 Subject: [PATCH 240/356] Move explainshell and clean up cheat sheets section (#662) * Explainshell is now in the cheat sheets section. * The cheat sheets section has been sorted and the title is now in Title Case. Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/662 Reviewed-by: Admin --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 51923c8..4d2b810 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Desktop Browsers](#desktop-browsers) * [Headless Browsers](#headless-browsers) * [Mobile Browsers](#mobile-browsers) - * [Cheat sheets and documentation](#cheat-sheets-and-documentation) + * [Cheat Sheets and Documentation](#cheat-sheets-and-documentation) * [Command-Line Shells](#command-line-shells) * [Addons and Prompts](#addons-and-prompts) * [Computer Graphics](#computer-graphics) @@ -515,12 +515,13 @@ This is a section for repos that are similar to this one either because they are > * [IronFox] For Android, while not officially related to LibreWolf, some of the same developers work on it. > * [waterfox] For Android. -## Cheat sheets and documentation +## Cheat Sheets and Documentation | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | | --- |:---:| --- | --- | -| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | | [cheat](https://github.com/cheat/cheat) | [`v4.4.2`](https://github.com/cheat/cheat/releases/tag/4.4.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/cheat/cheat/blob/master/CLAUDE.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [tldr-pages](https://github.com/tldr-pages/tldr) | [`v2.3`](https://github.com/tldr-pages/tldr/releases/tag/v2.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/tldr-pages/tldr/blob/main/AGENTS.md), [2](https://github.com/tldr-pages/tldr/commit/b042736266e10cb026b678ba1d0fed362d5f579d)) | [ethical-tldr](https://codeberg.org/small-hack/ethical-tldr),
[ethical-tldr-client](https://codeberg.org/small-hack/ethical-tldr-client) | ## Command-Line Shells @@ -613,7 +614,6 @@ This is a section for repos that are similar to this one either because they are | [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | | [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | -| [explainshell](https://explainshell.com/) | [`1157256`](https://github.com/idank/explainshell/commit/1157256e3da70d4acdd239e8821e8f0a457b0fe3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/idank/explainshell/blob/master/AGENTS.md), [2](https://github.com/idank/explainshell/commit/f14b7d4f617678cfa95a4729991723bb7db31f4f), [3](https://github.com/idank/explainshell/commit/559cd91a5516950ddf27735b7cca5c9c16839129))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/idank/explainshell/commit/91e601916983d2447dc92d3cfb5d8d7afdf1f98d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | | [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 6763c855f898fb3e9a487c0ae61c9c93ce53fbd3 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 7 May 2026 13:20:25 +0200 Subject: [PATCH 241/356] =?UTF-8?q?Move=20Atuin=20to=20Shells=20=E2=80=94?= =?UTF-8?q?=20Addons=20and=20Prompts=20and=20clean=20up=20that=20section?= =?UTF-8?q?=20(#664)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *You can never take away my em-dashes :grin:!* * Moved Atuin to Shells — Addons and Prompts. * Sorted said section and fixed badges per discussion in #638. Part of #661 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/664 Reviewed-by: Admin --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4d2b810..f4fcb4c 100644 --- a/README.md +++ b/README.md @@ -552,11 +552,12 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696)) | Built-in shell history | | [oh-my-bash](https://github.com/ohmybash/oh-my-bash) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/ohmybash/oh-my-bash/pull/729)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +| [oh-my-posh](https://github.com/JanDeDobbeleer/oh-my-posh/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/JanDeDobbeleer/oh-my-posh/commit/0ca76357a608f2e4043e10fe9591709ca554d75d)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/ohmyzsh/ohmyzsh/pull/13222))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ohmyzsh/ohmyzsh/blob/master/CONTRIBUTING.md#a-note-on-ai-assisted-contributions), [2](https://github.com/ohmyzsh/ohmyzsh/commit/99b243b9a98576037c864ff115b1fe96621fec8a), [3](https://github.com/ohmyzsh/ohmyzsh/commit/8c5a60644a2a93fb6b7d76ec7a5598f99b426cf0)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [spaceship-prompt](https://spaceship-prompt.sh/) | [`v4.19.3`](https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v4.19.3) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1514), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1542))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/spaceship-prompt/spaceship-prompt/pull/1513), [2](https://github.com/spaceship-prompt/spaceship-prompt/pull/1532), [3](https://github.com/spaceship-prompt/spaceship-prompt/pull/1541)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234)) | [shmonad](https://github.com/matthunz/shmonad) | +| [Starship](https://starship.rs) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/starship/starship/pull/7234))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/starship/starship/commit/0d71065a6eb98ff00b42b2bc4ff78dad7b897a1e)) | [shmonad](https://github.com/matthunz/shmonad) | > [!NOTE] > #### Alternative Plugin Managers @@ -611,7 +612,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Atuin](https://github.com/atuinsh/atuin) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/atuinsh/atuin/blob/main/AGENTS.md), [2](https://github.com/atuinsh/atuin/pull/2777#issuecomment-2944105696))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/atuinsh/atuin/pull/3199)) | Built-in shell history | | [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 9793321f35a6fd0e836c6e278f9a7d7a42164dc1 Mon Sep 17 00:00:00 2001 From: yuli Date: Thu, 7 May 2026 13:21:34 +0200 Subject: [PATCH 242/356] add Odin (#658) Maybe also a good idea to reach out to them and ask about adding a no ai policy, since there seems to be very little ai generated code and [the core maintainer has called llms bullshitting engines](https://x.com/TheGingerBill/status/1886328090797760691) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/658 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4fcb4c..4dd3f37 100644 --- a/README.md +++ b/README.md @@ -998,6 +998,7 @@ This is a section for repos that are similar to this one either because they are | [Nim](https://nim-lang.org/) | [`e2a3063`](https://github.com/nim-lang/Nim/commit/e2a306355ca179aa256a2cee7a0d3a809538c8b9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nim-lang/Nim/pull/24564), [2](https://github.com/nim-lang/Nim/pull/25429), [3](https://github.com/nim-lang/Nim/pull/25439)) | [Ada](https://www.adaic.org/)? | | [Numbat](https://numbat.dev/) | [`18f81b1`](https://github.com/sharkdp/numbat/commit/18f81b19dc8698b29048ab0166a3a87dcadd34b7) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sharkdp/numbat/blob/88b2e81a35d06942101d74e9b368081f02555f4f/AGENTS.md)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [OCaml](https://ocaml.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ocaml/ocaml/blob/trunk/AI.md), [2](https://github.com/ocaml/ocaml/pull/14702#issue-4186687842)) | [SML](https://smlfamily.github.io/) | +| [Odin](https://odin-lang.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/odin-lang/Odin/commit/1a7f78b66578492103607628d2cd4a2de70b29ec), [2](https://github.com/odin-lang/Odin/commit/bd6148dd6b77920cf64fea8804b205e8257e8a66)) | See below | | [Python](https://python.org) | [`v3.14.0a4`](https://github.com/python/cpython/releases/tag/v3.14.0a4) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://devguide.python.org/getting-started/generative-ai/), [2](https://github.com/python/cpython/commit/f97e4098ff71a6488fd3411f9f9e6fa7a7bb4efe))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/python/cpython/pull/128399)) | See below | | [MicroPython](https://micropython.org) | [`1.26.1`](https://github.com/micropython/micropython/releases/1.26.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/micropython/micropython/wiki/ContributorGuidelines#generative-ai-policy), [2](https://github.com/micropython/micropython/pull/15592), [3](https://github.com/micropython/micropython/pull/17333)) | See below | | [CircuitPython](https://circuitpython.org) | [`9.2.9`](https://github.com/adafruit/circuitpython/releases/9.2.9) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/adafruit/circuitpython/pull/10872), [2](https://github.com/adafruit/circuitpython/pull/10794), [3](https://github.com/adafruit/circuitpython/pull/10703)) | See below | From e50e8af19666073c39db8f001880d42848135da4 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Thu, 7 May 2026 13:23:13 +0200 Subject: [PATCH 243/356] Add Expat (#660) Of course, THE XML library is tainted... Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/660 Reviewed-by: Admin --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4dd3f37..f6c3d51 100644 --- a/README.md +++ b/README.md @@ -1028,6 +1028,7 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence |Alternative(s) | |---|:---:|---|---| +| [Expat](https://libexpat.github.io/) | [`2.7.4`](https://github.com/libexpat/libexpat/releases/tag/R_2_7_4) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/libexpat/libexpat/pull/1147)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [goblint](https://github.com/bilelmoussaoui/goblint) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bilelmoussaoui/goblint/commit/d54da4dc2ac0036bf3864294f1ef9d0f9f3a1dca)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [harfbuzz](https://github.com/harfbuzz/harfbuzz) |[`12.3.2`](https://github.com/harfbuzz/harfbuzz/tree/12.3.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://typo.social/@behdad/116172838540880597),[2](https://github.com/harfbuzz/harfbuzz/commit/73616f9808dfc31f82877e842be87e4f4543d8ab),[3](https://github.com/harfbuzz/harfbuzz/commit/664085f0ae19bf101ef4c8cda94a590a0f253286)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [LVGL](https://lvgl.io) | [`9.2.2`](https://github.com/lvgl/lvgl/releases/tag/v9.2.2) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lvgl/lvgl/blob/master/.github/copilot-instructions.md), [2](https://github.com/lvgl/lvgl/pull/9432), [3](https://github.com/lvgl/lvgl/pull/9434))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/lvgl/lvgl/pull/10040), [2](https://github.com/lvgl/lvgl/pull/10042), [3](https://github.com/lvgl/lvgl/pull/10039)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From f189e88cd873894d6f0942f0b3fd78ca0dbfaf95 Mon Sep 17 00:00:00 2001 From: matu6968 Date: Fri, 8 May 2026 00:56:15 +0200 Subject: [PATCH 244/356] Add back Warp with it's fork aka OpenWarp and Waveterm (#665) Since Warp got open sourced, this commit reverts #26, while at it also sorted the terminal emulators list and added Waveterm Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/665 Reviewed-by: Admin --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f6c3d51..4f70cdb 100644 --- a/README.md +++ b/README.md @@ -1246,9 +1246,12 @@ This section is strictly for software implementing a core set of UNIX-like utili | Name | Last Untainted Version or Commit ID | Tags and Evidence | |---|:---:|---| -| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Ghostty](https://ghostty.org) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md)) | +| [iTerm2](https://iterm2.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://gitlab.com/gnachman/iterm2/-/issues/11470)) | | [Kitty](https://github.com/kovidgoyal/kitty) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/kovidgoyal/kitty/commit/551acca0e470cba9b43ab631d1a62fbfa3e6b56b), [2](https://github.com/kovidgoyal/kitty/commit/6b2a8b6a65c6aae7145d00bcf9836e222de3d404), [3](https://github.com/kovidgoyal/kitty/commit/74f817cd36a4d391c72453f666665e72e0bf86fa)) | +| [OpenWarp](https://openwarp.zerx.dev) | None | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://openwarp.zerx.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zerx-lab/warp/commit/8f4eef1fce88c17c2cf1af452ea2e7f348fc8406), [2](https://github.com/zerx-lab/warp/commit/0c6b5d37c5a65eba97abe01587b65d3db8427aa9), [3](https://github.com/zerx-lab/warp/commit/52f4e17905fba725b62738d882c65662532a347b))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/zerx-lab/warp/pull/48)) | +| [Warp](https://warp.dev) | None |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://warp.dev))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/warpdotdev/warp/commit/fc1157e066576bf0d577ab18426d66a5d5dcc3da), [2](https://github.com/warpdotdev/warp/commit/1d1c06db0fd7ccfea7e99ad938f7278a12cdf575), [3](https://github.com/warpdotdev/warp/commit/6ea1a52af1d02914ab43e2f2e4e37f1dedaa99fd))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/warpdotdev/warp/pull/10004), [2](https://github.com/warpdotdev/warp/pull/9956), [3](https://github.com/warpdotdev/warp/pull/9910))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](#ai-in-issue-tracker) ([1](https://github.com/warpdotdev/warp/issues/10359#issuecomment-4397177289), [2](https://github.com/warpdotdev/warp/issues/10358#issuecomment-4396700787), [3](https://github.com/warpdotdev/warp/issues/10355#issuecomment-4396359216))| +| [Waveterm](https://www.waveterm.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.waveterm.dev/waveai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wavetermdev/waveterm/pull/3122), [2](https://github.com/wavetermdev/waveterm/commit/57e4e27a291642406060c795d69c63450ee9229d), [3](https://github.com/wavetermdev/waveterm/commit/bda8421377f4abcf9c30cfc9a40bfa7190a1f72e))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/wavetermdev/waveterm/pull/3289), [2](https://github.com/wavetermdev/waveterm/pull/3247), [3](https://github.com/wavetermdev/waveterm/pull/3222)) | > [!NOTE] > #### Alternative terminal emulators From d32f472bd3f3b1ebc2d1279aa609befcbb397192 Mon Sep 17 00:00:00 2001 From: vleermuis-admin Date: Fri, 8 May 2026 15:43:36 +0200 Subject: [PATCH 245/356] update style guide with full tag examples and required ordering (#666) Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/666 --- STYLE.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/STYLE.md b/STYLE.md index 1ab3fde..fb41220 100644 --- a/STYLE.md +++ b/STYLE.md @@ -16,20 +16,23 @@ Make sure to format your table like below (note that it is alphabetized by softw | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [formallyCoolSoftware](https://linktocoolsoftware.com) | [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [coolSlopFreeProject] | -| [formallyOKSoftware](https://linktofinesoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [alrightSlopFreeProject] | +| [formallyCoolSoftware](https://linktocoolsoftware.tld) | [`ab12345`](linktolastgoodcommitid.tld/commit/ab12345) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) ([1](https://docs.linktocoolsoftware.tld/ai-assistant))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
[![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://linktocoolsoftware.tld/ai_logo.jpg))
[![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) ([1](https://linktocoolsoftware.tld/privacypolicy))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))
[![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) ([1](http://linktocoolsoftware.tld/issues/123))
[![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) ([1](https://linktocoolsoftware.tld/branch/main/ai_policy.md)) | [coolSlopFreeProject] | +| [formallyOKSoftware](https://linktofinesoftware.tld) | [`v2.0.0`](linktolastgoodversion.tld/v2.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://linktocoolsoftware.tld/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](https://linktocoolsoftware.tld/branch/main/README.md))| [alrightSlopFreeProject] | **Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): - [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) - [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) - [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) -- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) - [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) - [![AI Databroker Usage](./badges/ai-databroker-usage-pink.svg)](https://codeberg.org/small-hack/open-slopware#ai-databroker-usage) +- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) - [![AI In Issue Tracker](./badges/ai-in-issue-tracker-teel.svg)](https://codeberg.org/small-hack/open-slopware#ai-in-issue-tracker) - [![Permits LLM Ingestion](./badges/permits-llm-ingestion.svg)](https://codeberg.org/small-hack/open-slopware#permits-llm-ingestion) +> [!note] +> The above order is the official order you should add your tags in. + **Don't know what the alternative or last known good version is?** Use this badge in its place: - [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) @@ -89,6 +92,6 @@ The above "Alternative(s)" column is for software that has a 1:1 parity or is a > * [coolSlopFreeProject]: This can be a short description and [link to anti-AI policies](somelink.link). -[alternativeSoftware]: https://verygoodnotslopware.com "alternative software" -[coolSlopFreeProject]: https://verygoodnotslopware2.com "another alternative software" -[alrightSlopFreeProject]: https://veryoknotslopware3.com "another extra alternative software" +[alternativeSoftware]: https://verygoodnotslopware.tld "alternative software" +[coolSlopFreeProject]: https://verygoodnotslopware2.tld "another alternative software" +[alrightSlopFreeProject]: https://veryoknotslopware3.tld "another extra alternative software" From 8ffebe018f6e02d5082faa85abd89cd13cdca7f8 Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 15:50:34 +0200 Subject: [PATCH 246/356] Add Act and Woodpecker (#659) Pretty disappointing, as Woodpecker is one of Codeberg's CI systems, and easily the one I'm most familiar with. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/659 Reviewed-by: Admin --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 4f70cdb..29fd0b6 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Image Manipulation](#image-manipulation) * [Photography](#photography) * [Video](#video) + * [Continuous Integration](#continuous-integration) * [Developer Tools](#developer-tools) * [Compiler Tools And Related](#compiler-tools-and-related) * [Documents](#documents) @@ -605,6 +606,13 @@ This is a section for repos that are similar to this one either because they are | [PipePipe](https://pipepipe.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/InfinityLoop1308/PipePipeClient/blob/dev/CLAUDE.md)) | [LibreTube] | | [VLC](https://code.videolan.org/videolan/vlc) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://code.videolan.org/videolan/vlc/-/commit/bd7d103792c37f6a9883b40d099f008672e2ea39), [2](https://www.youtube.com/watch?v=25MwBEWxQG0&t=2987s))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://code.videolan.org/videolan/vlc/-/merge_requests/8927))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://nitter.net/videolan/status/1877072497146781946)) | [Showtime] (gstreamer-based)
[SMPlayer] (mplayer-based)
[ffplay] (ffmpeg+SDL-based) | +## Continuous Integration + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Act](https://nektosact.com/) | [`v0.2.85`](https://github.com/nektos/act/releases/tag/v0.2.85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nektos/act/blob/48822e4a7722a1c43621218a9d5ae705fc395679/CLAUDE.md)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | +| [Woodpecker](https://woodpecker-ci.org/) | [`v3.12.0`](https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.12.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/woodpecker-ci/woodpecker/pull/6501), [2](https://github.com/woodpecker-ci/woodpecker/commit/92b48f813aa3c6be5421fa9747acb33abdf9f192))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/woodpecker-ci/woodpecker/pull/5767), [2](https://github.com/woodpecker-ci/woodpecker/pull/5886), [3](https://github.com/woodpecker-ci/woodpecker/pull/6166)) | [Forgejo Actions](https://forgejo.org/docs/latest/user/actions/overview/) | + ## Developer Tools > [!WARNING] From 9c24a13b2e2ea677a0df82edb992a39f858a404c Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 16:14:45 +0200 Subject: [PATCH 247/356] Move ConnectBot to new SSH section (#675) Also fixed the name while I was at it. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/675 Reviewed-by: Admin --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 29fd0b6..9f94941 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Social Media](#social-media) * [Servers](#servers) * [Clients](#clients) + * [SSH](#ssh) * [System Base](#system-base) * [System Logs Managers](#system-logs-managers) * [Android](#android) @@ -620,7 +621,6 @@ This is a section for repos that are similar to this one either because they are | Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | |---|:---:|---|---| -| [Connectbot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [curl](https://curl.se/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/curl/curl/pull/20797), [2](https://github.com/curl/curl/pull/20798), [3](https://github.com/curl/curl/pull/20787))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://mastodon.social/@bagder/116204333476519757)) | [Wget](https://www.gnu.org/software/wget/) | | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | @@ -1210,6 +1210,12 @@ This is for both social media websites and apps. | [Bluesky Social App](https://github.com/bluesky-social/social-app) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bluesky-social/social-app/blob/177bdcd2b7807c9980dab32e7a5664fc006df40b/CLAUDE.md), [2](https://github.com/bluesky-social/social-app/commit/8c4fc087f8119de5c007b71baaaf02089a346b38), [3](https://github.com/bluesky-social/social-app/commit/612a778361edc0314f92a0451abb98843e7bef9a)) | [wafrn-rn] | | [FeurStagram](https://github.com/jean-voila/FeurStagram/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jean-voila/FeurStagram/issues/23#issuecomment-4331590472), [2](https://discuss.privacyguides.net/t/feurstagram/37476/16)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | +## SSH + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [ConnectBot](https://connectbot.org/) | [`f523c43`](https://github.com/connectbot/connectbot/commit/f523c43b03c54386212ea14d52181e5108c46b37) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/connectbot/connectbot/commit/6d88ec0fad958344650fba1e6f128ad181013e20), [2](https://github.com/connectbot/connectbot/commit/3d86df070b0d6337827034a1e6a2a2cf64e06df8), [3](https://github.com/connectbot/connectbot/commit/0104790456e6860a00cb321c3d4a3b1800ba2443))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/connectbot/connectbot/pull/1640), [2](https://github.com/connectbot/connectbot/pull/1685), [3](https://github.com/connectbot/connectbot/pull/1780)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## System Base This section is strictly for software implementing a core set of UNIX-like utilities and/or directly interfacing with several kernel subsystems. Think potential replacements for coreutils and util-linux. From 3a9394f0f16e3aaad80a3afa70f3ab19540dc6cb Mon Sep 17 00:00:00 2001 From: Pixelo789 Date: Fri, 8 May 2026 16:31:22 +0200 Subject: [PATCH 248/356] Move Scalar to new API Documentation section (#677) Also fixed the badges per discussion in #638 / #666 while I was at it. Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/677 Reviewed-by: Admin --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9f94941..89f3988 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Ready to fork a project to introduce a No AI policy? Check out our [**How to Slo * [Accessibility Tools](#accessibility-tools) * [Accounting and Budgeting](#accounting-and-budgeting) * [Accounting and Budgeting Alternatives](#accounting-and-budgeting-alternatives) + * [API Documentation](#api-documentation) * [App Launchers](#app-launchers) * [Mobile Launchers](#mobile-launchers) * [Mobile Launchers Alternatives](#mobile-launchers-alternatives) @@ -340,6 +341,12 @@ This is a section for repos that are similar to this one either because they are > - [Grisbi] > - [HomeBank] +## API Documentation + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) +|---|:---:|---|---| +| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | + ## App Launchers ### Mobile Launchers @@ -625,7 +632,6 @@ This is a section for repos that are similar to this one either because they are | [Golly](https://golly.sourceforge.io/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Gen AI 'Art'](./badges/gen-ai-art-dark-yellow.svg)](https://codeberg.org/small-hack/open-slopware#gen-ai-art) ([1](https://golly.sourceforge.io/Help/changes.html)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [Mold](https://github.com/rui314/mold) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rui314/mold/commit/dac20fa24373f35b5dec44e4740db85c3eb7b3dd)) | GNU ld | | [MTKClient](https://github.com/bkerler/mtkclient) | [`9f64e8e`](https://github.com/bkerler/mtkclient/commit/9f64e8e6212cc94db506339426dcf6b61f9027fa) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bkerler/mtkclient/commit/b74421a47d19a5eaf5929bf0daad7b9f03c0ef58)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | -| [Scalar](https://scalar.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/scalar/scalar/blob/main/AGENTS.md))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://scalar.com/products/docs/configuration/ask-ai))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/scalar/scalar/pull/8977#pullrequestreview-4167901335)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | | [watchexec](https://github.com/watchexec/watchexec) | [`2.3.2`](https://github.com/watchexec/watchexec/releases/tag/v2.3.2) *or* [`a17505e`](https://github.com/watchexec/watchexec/commit/a17505ecbe3abb2b1daacbd5e7051bfb74f4940d) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/watchexec/watchexec/commit/1715e7fc9d1f0cfd79ae23b96385df22deecc83a)) | [entr](https://github.com/eradman/entr), [watfs](https://codeberg.org/chjlsch/watfs) | | [Wild](https://github.com/wild-linker/wild) linker | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/wild-linker/wild/blob/9027437a8776afea1a1f0840fcda3fd6895f6f55/CONTRIBUTING.md), [2](https://github.com/wild-linker/wild/pull/1653#issuecomment-4017584459), [3](https://github.com/wild-linker/wild/pull/912)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | From 829c69f55a044ba4794c807a62036093d5a482e3 Mon Sep 17 00:00:00 2001 From: Fabio Henrique Date: Fri, 8 May 2026 21:27:47 +0200 Subject: [PATCH 249/356] 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 250/356] 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 251/356] 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 252/356] 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 253/356] 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 254/356] 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 255/356] 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 256/356] 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 257/356] =?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 258/356] 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 259/356] 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 260/356] 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 261/356] 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 262/356] 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 263/356] 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 264/356] 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 265/356] 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 266/356] 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 267/356] 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 268/356] 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 269/356] 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 270/356] 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 271/356] 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 272/356] 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 273/356] 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 274/356] 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 275/356] 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 276/356] 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 277/356] 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 278/356] 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 279/356] 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 280/356] 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 281/356] 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 282/356] 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 283/356] 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 284/356] 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 285/356] 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 286/356] 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 287/356] 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 288/356] 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 289/356] 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 290/356] 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 291/356] 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 292/356] 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 293/356] 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 294/356] 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 295/356] 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 296/356] 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 297/356] 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 298/356] 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 299/356] 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 300/356] 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 301/356] 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 302/356] 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 303/356] 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 304/356] 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 305/356] 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 306/356] 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 307/356] 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 308/356] 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 309/356] 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 310/356] 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 311/356] 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 312/356] 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 313/356] 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 314/356] 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 315/356] 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 316/356] 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 317/356] 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 318/356] 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 319/356] 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 320/356] 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 321/356] 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 322/356] 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 323/356] Tidy Editors (#667) - Remove the VS Code image evidence in favour of a link - Remove VSCodium as alternative as per #549 - Add Lapce, Gram and Hemlock to the Alternative Editors note, removing the alternatives column - Correct Lem's tag order as per #638 and !666, and remove the last untainted version (keeping the commit) - Alphabetize alternative editors and links at the end of the file - Separate Note Software - Change category name to "Text And Code Editors" Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/667 Reviewed-by: Admin --- README.md | 95 ++++++++++++++++++++++------------------ img/evidence/vscode.png | Bin 382280 -> 0 bytes 2 files changed, 53 insertions(+), 42 deletions(-) delete mode 100644 img/evidence/vscode.png diff --git a/README.md b/README.md index d6b9ff1..0341de5 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,6 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Documents](#documents) * [Document Converters](#document-converters) * [Document Viewers](#document-viewers) - * [Editors](#editors) - * [Note Software Alternatives](#note-software-alternatives) - * [Alternative TUI Code Editors](#alternative-tui-code-editors) * [E-Mail and Calendar](#e-mail-and-calendar) * [E-mail Desktop Clients](#e-mail-desktop-clients) * [E-mail Mobile Clients](#e-mail-mobile-clients) @@ -151,6 +148,10 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Terminal Emulators](#terminal-emulators) * [Terminal Multiplexers](#terminal-multiplexers) * [Terminal Multiplexer Alternatives](#terminal-multiplexers-alternatives) + * [Text and Code Editors](#text-and-code-editors) + * [Alternative Text And Code Editors](#alternative-text-and-code-editors) + * [Note Software](#note-software) + * [Note Software Alternatives](#note-software-alternatives) * [Unified Push Distributors](#unified-push-distributors) * [Alternative Unified Push Distributors](#alternative-unified-push-distributors) * [Version Control](#version-control) @@ -690,39 +691,6 @@ This is a section for repos that are similar to this one either because they are |---|:---:|---|---| | [Sumatra PDF](https://www.sumatrapdfreader.org/) | [`v3.5.2`](https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/3.5.2rel) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/sumatrapdfreader/sumatrapdf/commit/aad9f76790d2f44894d73e28620eac41aeb5eb5c))| [Xournal++](https://xournalpp.github.io/) | -## Editors - -| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | -|---|:---:|---|---| -| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | See editors below | -| [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | See editors below | -| [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | See note software below | -| [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | See editors below | -| [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) [`v2.3.0`](https://github.com/lem-project/lem/releases/tag/v2.3.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea))
[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb)) | [Hemlock](https://phemlock.common-lisp.dev/) | -| [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | See note software below | -| [Memos](Memos) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | See note software below | -| [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | See editors below | -| [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | See editors below | -| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | See editors below | -| [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | See editors below | -| [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | See editors below | -| [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | See editors below | -| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | See editors below | -| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](./img/evidence/vscode.png), [2](https://github.com/microsoft/vscode/pull/310226))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | [VSCodium](https://vscodium.com/)'s builds disable AI "features" | -| [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | [Lapce](https://lap.dev/lapce/)
[Gram](https://codeberg.org/GramEditor/gram) (fork)
Others (GNU Emacs, etc.) | - -> [!Note] -> ### Note Software Alternatives -> - [flatnotes](https://github.com/dullage/flatnotes) (Markdown-based) -> - [Zettlr](https://www.zettlr.com/) (Markdown-based) - -> [!NOTE] -> ### Alternative TUI Code Editors -> * [GNU Emacs] -> * [EVi] -> * [vim-classic] -> * Other forks of VIm prior to March 20th 2024, build [v9.1.0190](https://github.com/vim/vim/releases/tag/v9.1.0190) or commit [`8950bf7f8b85c1287d4e696965d88091fcc60594`](https://github.com/vim/vim/commit/8950bf7f8b85c1287d4e696965d88091fcc60594) - ## E-Mail and Calendar ### E-Mail Desktop Clients @@ -1469,6 +1437,45 @@ This section is strictly for software implementing a core set of UNIX-like utili > - [GNU Screen](https://www.gnu.org/software/screen/) > - [mtm](https://github.com/deadpixi/mtm) +## Text and Code Editors + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [CotEditor](https://github.com/coteditor/CotEditor) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/coteditor/CotEditor/commit/dcef4b2aa399aadb8c1c50f2139ca62eedb2cfc7), [2](https://github.com/coteditor/CotEditor/pull/2063)) | +| [Helix](https://github.com/helix-editor/helix) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/helix-editor/helix/commit/22d0d294bdb2e8f90fd6cb6f2546aefe2844e642)) | +| [Kakoune](https://kakoune.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/mawww/kakoune/commit/ca2c93470352e89cde62cecf2507110509d7be20)) | +| [Lem](http://lem-project.github.io/) | [`e039567`](https://github.com/lem-project/lem/tree/e039567bc8976d2d59920d91e865440068ea8097) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/lem-project/lem/commit/4f2713e0af6afda559d8aaa896285f18b4a969bb))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/lem-project/lem/blob/main/CLAUDE.md), [2](https://github.com/lem-project/lem/commit/bec98d7d0600f67e5f430cc3032970efeb24b80c), [3](https://github.com/lem-project/lem/commit/376601e2213ba7d1ef83a85e8dc37ddeb7a9f9ea)) | +| [Microsoft Edit](https://github.com/microsoft/edit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/edit/pull/72))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/microsoft/edit/pull/738)) | +| [Neovim](https://github.com/neovim/neovim/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/neovim/neovim/blob/b8a976afdaf0080498e85530fae65a3165f201d5/CONTRIBUTING.md#ai-assisted-work), [2](https://github.com/neovim/neovim/issues/38186#issuecomment-4018682912), [3](https://github.com/neovim/neovim/blob/master/AGENTS.md)) | +| [Nextpad++](https://nextpad.org/) | None | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/5420e8cf93dd7fdd4aa878035e203748b6aedabf), [2](https://github.com/nextpad-plus-plus/nextpad-plus-plus-macos/commit/9bb0503d758d7f5b9be166fc4b544344fdc9cfe7)) | +| [Ox](https://github.com/curlpipe/ox) | [`v0.7.5`](https://github.com/curlpipe/ox/releases/tag/0.7.5) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://github.com/curlpipe/ox/pull/190/commits/7b2addcfb8c14b5dcae9210b3d18e68dd57c9a93)) | +| [Qt Creator](https://www.qt.io/development/tools/qt-creator-ide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://www.qt.io/development/tools/qt-creator-ide)) | +| [RStudio](https://posit.co/products/open-source/rstudio) |[![Request for Help](./badges/request-for-help.svg)](#request-for-help) |[![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://docs.posit.co/ide/news/#rstudio))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/rstudio/rstudio/tree/main/.claude), [2](https://github.com/rstudio/rstudio/pull/17500)) | +| [VIm](https://www.vim.org/) | [`v9.1.0189`](https://github.com/vim/vim/releases/tag/v9.1.0189) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://hachyderm.io/@AndrewRadev/116175986749599825), [2](https://github.com/search?q=repo%3Avim%2Fvim+claude&type=commits&s=committer-date&o=desc), [3](https://github.com/vim/vim/issues/18800#issuecomment-3568099543)) | +| [VS Code](https://code.visualstudio.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://code.visualstudio.com/))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/microsoft/vscode/blob/main/.github/copilot-instructions.md), [2](https://github.com/microsoft/vscode/tree/main/.agents/skills/launch), [3](https://github.com/microsoft/vscode/commit/899cb3b5084400ff10d771c65023c32da2e704f6)) | +| [Zed](https://zed.dev) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality-yellow.svg)](#ai-functionality) ([1](https://zed.dev/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/zed-industries/zed/blob/e613b2c9d36f48248018d3684ddd034f2eade31e/.rules), [2](https://github.com/zed-industries/zed/tree/e613b2c9d36f48248018d3684ddd034f2eade31e/.factory), [3](https://github.com/zed-industries/zed/commit/beb0b028f11c341e2d59f71a3dae29abe41b3df4)) | + +> [!NOTE] +> ### Alternative Text and Code Editors +> * [EVi] (TUI) +> * [GNU Emacs] (TUI, GUI) +> * [Gram] (GUI) +> * [Hemlock] (TUI, GUI) +> * [Lapce] (GUI) +> * [Vim Classic] (TUI) + +### Note Software +| Name | Last Untainted Version or Commit ID | Tags and Evidence | +|---|:---:|---| +| [Joplin](https://joplinapp.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/laurent22/joplin/blob/dev/CLAUDE.md)) | +| [Logseq](https://logseq.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/logseq/logseq/blob/master/AGENTS.md)) | +| [Memos](https://usememos.com/) | [`v0.12.1`](https://github.com/usememos/memos/releases/tag/v0.12.1) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/usememos/memos/blob/main/AGENTS.md), [2](https://github.com/usememos/memos/pull/5794))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/usememos/memos/pull/5794))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/usememos/memos#-featured-sponsors)) | + +> [!Note] +> #### Note Software Alternatives +> - [flatnotes](https://github.com/dullage/flatnotes) (Markdown-based) +> - [Zettlr](https://www.zettlr.com/) (Markdown-based) + ## Unified Push Distributors | Name | Last Untainted Version or Commit ID | Tags and Evidence | @@ -1772,29 +1779,33 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [cursive]: https://github.com/gyscos/cursive [`dash`]: http://gondor.apana.org.au/~herbert/dash/ [Deepin Terminal]: https://github.com/linuxdeepin/deepin-terminal -[Eqonomize]: https://eqonomize.github.io/ -[GNU Emacs]: https://www.gnu.org/software/emacs/ [Epiphany]: https://apps.gnome.org/Epiphany +[Eqonomize]: https://eqonomize.github.io/ [EVi]: https://codeberg.org/NerdNextDoor/evi [ffplay]: https://ffmpeg.org/ffplay.html [foot]: https://codeberg.org/dnkl/foot [Game of Trees]: https://gameoftrees.org/ [Garage]: https://garagehq.deuxfleurs.fr/ -[Grisbi]: https://grisbi.org/ [GNOME Boxes]: https://gnomeboxes.org [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal +[GNU Emacs]: https://www.gnu.org/software/emacs/ +[GnuTLS]: https://www.gnutls.org/ [GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial +[Gram]: https://codeberg.org/GramEditor/gram +[Grisbi]: https://grisbi.org/ +[Hemlock]: https://phemlock.common-lisp.dev/ [HomeBank]: https://www.gethomebank.org/ [Idris]: https://www.idris-lang.org/ [iocraft]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [Java]: https://dev.java +[Konsole]: https://invent.kde.org/utilities/konsole +[Lapce]: https://lap.dev/lapce/ [libmicrohttpd]: https://www.gnu.org/software/libmicrohttpd/ [LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ [LibreOffice Draw]: https://www.libreoffice.org/download/download-libreoffice/ [LibreTube]: https://libretube.dev [Lua]: https://lua.org -[Konsole]: https://invent.kde.org/utilities/konsole [MATE Terminal]: https://wiki.mate-desktop.org/mate-desktop/applications/mate-terminal/ [matrix]: https://matrix.org [Pandemonium Engine]: https://pandemoniumengine.org/ @@ -1804,10 +1815,10 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [Schilytools]: https://codeberg.org/schilytools/schilytools [Scratch 1.4]: https://scratch.mit.edu/scratch_1.4 [Scratch 2]: https://scratch.mit.edu/download/scratch2 -[Showtime]: https://apps.gnome.org/Showtime/ [SMPlayer]: https://www.smplayer.info/ +[Showtime]: https://apps.gnome.org/Showtime/ [vaultwarden]: https://github.com/dani-garcia/vaultwarden -[vim-classic]: https://drewdevault.com/2026/03/25/2026-03-25-Forking-vim.html +[Vim Classic]: https://sr.ht/~sircmpwn/vim-classic/ [virt-manager]: https://virt-manager.org [wafrn-rn]: https://codeberg.org/wafrn/wafrn-rn [waterfox]: https://www.waterfox.com diff --git a/img/evidence/vscode.png b/img/evidence/vscode.png deleted file mode 100644 index 1ec022b7e0c8bfca586c35aa9026e52ee58bd787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382280 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%0D*CZ+dF2+fIkf~c}-K4Bb)gSVbml?ApG4r zb*G;ThS>)28mwFS0BZn>Q9{1`fQJ~g1jwVc1BVvNPq0$Xln~m{v1|TvVEt+5)jW$+Kyi2^LOs#(>@#0fA#_K zVy8k+LA>?Z(y*m}?FAjeFe>guhN9LlAAu7M_5Mh2@5->=$9W*`*agOfkyB-5WmW3x zkTJoKB@^1zGCrGtUHE+5MMv`>^PI(V@;tjycm9~N@C(=AsjrCX`@om({5}b5SFEDf ziY9F0KcpTu7zpY;B>JEXa{BR*VD$%21fGZZjUS-|^wiUGjXWG3;SyDLXNSfWw(`Xw zJw2c`Am0YqaG;FNtD}Pj!kmpJmMfnD*TpJi)&mAUez$gq3`oEREEw6K_ag9OHGw%V zB8(+=;Ssd5CRy+fSfZ>+Adn&Dbb@TJ6br9PpIpLX>0yIO4>+Q}sR;#H1MO)9gv%R5 z1}Xw$K>N}XoT5!c_~Qn*si$Z6eJ{cHmVKE%V6SOOt$mn?EoZbxdoMs{RzLYKEdlV# zW5z*Kle```hMe}Z{5J`Z#6UyiqNr9-E&416=;l#?SJ3Zd+KIdS@iJkm+3Q@hfA@$|7&@9hu@4CU8BH#12ELY!&kF!W5 zObO{Nf72>W*jW4op$-Z#VNU)_c?`3dz<_{u2JeZ^ZZ><|tp*8%DLNQ9=7`{tcimPU zn5W}!Qw)2nH{%a-eE61$ECBJ?zdh=*cMhyj=_y*W2g{c@wV1s{sYrnwALK7!`+x)? zqT#(j$p9hbkTE%>e?N}`?AejF!~G5$Wq)n5R^1$ZTxZ-pcupxc=S2{wvJ-ifqTlnN zl<+GC5{T+!nErl4^#r>_DuX>^jcTHf0meKaP`bWD+EanIQtEv+Vn$*LIi~v^h-a~% z+g(#E4J5W^+ai$8^9l;2rZ1*kKWRq?@4cqHYeIf(W3GLE6f+p7Tucr*KJ9>7V(5hN zbx!ghR$&yA81z)Fm4`y6TUFux_)9YS`BPy9{+#>2O(NExlo4k?886q8}c zNDgf={e;chbRfy5m*q~mhn4P(#3o9V5oEXWwJ-t}(EhW@!f7+$DNOcx5-0+eNmSC{ zw{+QO){t{f$H8TVcv{fS0T)9&Xi$5K0KTnF$On6?ddJ(_Z8%%iPPR$|Z9rEJJmRx$;|N@0^b$4%gkv4BcR}I8sy7dh@Zl4XHr!O?T%C{l zxwlGmQ5%eY^0!B_Q@gyBBOy&JaGu2=0U(guE?Ep(<3S`yV9-vS)EVgF9j()e0_${6 z(@9^3*6GMifpt1fz``)>Ep}>#u~r|6S98lF%fcmUC3=cze-xOG`y{BNu0DTqIiq=c zfoQS6)u-AzI(^~<6SkDl>CZu&-H4Bu@9Deg)OKy-`BF-Ja-!>U_CBjIHggbcDp4~@ zt#^1Q+@FpIeEg$(uVA_lByu=S*qTPbezXYi=9HcpzG$!6yqz6`J^yLC?MORW2}GH1 zQ)fNRS#b&ikAv_Kuy3SjoB)s!kQai*HFx+GG(5%y-dk<}Aa0{Z9cCbO?@LXpOV1*P8S+xu8ct#zj*+BQz00JvL!aq8#5eig7f+Ur_O-LJd(F)9@dSZuie%o3cZ5%=7GgYLg9+g&ZzXi+_hZz!aXL7NK|HmldJp6ELVe z2x4r^*y$qGG`~hr!yj~XxI7s9b#E>y60HOljPZ{I)}^IOpyzLv$N7Y-QBiK!GYGBoA9ud zn#H`q5fSs5u*l?O8>i_;R&Z(p;2q{9BIC%7gBWLkQ_v{wz3txaSEl(S# zlmIAU8AohK#NAIBUQ0iLa-R+e%cBY5AH(G3StcfDd@WE2xUi_+tuMCuO8g%B5QaXK zJJiRh7(s)XJYqpEr+*Xh9dDF^Q-g@{Z~Wjx({Et8JYgmOQs7t!JL+B#MC1+)a=HbHHm5~!|o*S)u)b~STp6-tbN zO`?~LwIm#-qViwH3@=QP&4(i2yg6|}=+m>EU@Hg0aSjfZ(Xo΢qg#)h#FBrHUy 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%0DNZasjkff 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 z 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 z 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
{sUyw4z|{~ulOjfVsELxRfx$mdH_31s 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

X6g@=0D?c~-N+?MFFz21q6qQ5v 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 B51Ie~ From 565a329a1dd3fbc5c89d9dc302071fe4a538d39b Mon Sep 17 00:00:00 2001 From: znmz Date: Sun, 24 May 2026 08:03:07 +0200 Subject: [PATCH 324/356] 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 325/356] 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 326/356] 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 327/356] 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 328/356] 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 329/356] 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 330/356] 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 331/356] 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 332/356] 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 333/356] 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 334/356] 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 335/356] 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 336/356] 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 337/356] 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 338/356] 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 339/356] 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 340/356] 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 341/356] 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 342/356] 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 343/356] 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 344/356] 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 345/356] 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 346/356] 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 347/356] 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 348/356] 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 349/356] 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 350/356] 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 351/356] 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 352/356] 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 353/356] 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 354/356] 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 355/356] 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 356/356] 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)) |