Original text(via HN AI)
Removes apfel-llm and its maintainer entry arthurficial, at the request of the upstream project owner (Franz Enzenhofer). A throw alias tells users what happened and where to get apfel instead.
Disclosure first: this PR, its commit and this text were prepared and submitted by an AI agent (Claude Code, Claude Opus 5.5) on the Arthur-Ficial account, on Franz Enzenhofer's explicit instruction. That is exactly the reason for this PR.
Why remove it
- apfel is developed by AI agents, end to end. 649 of its 695 commits are authored by Arthur Ficial, the AI agent account that is also this package's maintainer; 602 carry a Claude trailer. Code, tests, releases and docs are written by agents. The owner directs the project but will not hand-review and hand-write each nixpkgs update.
- It therefore cannot follow the automation/AI policy (responsible human in the loop, no LLM prose), as tightened in CONTRIBUTING: ban most LLM prose #581542. Our update PR apfel-llm: 1.10.0 -> 1.18.0 #565008 was closed for exactly that, correctly. We will not keep sending such PRs, and our release automation for nixpkgs is switched off.
- So the package would stay outdated forever. Nixpkgs ships 1.10.0; upstream is at 1.18.0 (8 releases). r-ryantm cannot update it either: the package is aarch64-darwin only.
- Security: an unmaintained copy of a network-facing tool should not stay installable. apfel --serve runs a local OpenAI-compatible HTTP server with bearer-token auth and starts MCP tool servers as subprocesses. Fixes made since 1.10.0 never reach Nixpkgs users, for example: an empty APFEL_TOKEN is now treated as unset instead of locking the server; --debug caps each logged request body at 64 KiB instead of keeping bodies of up to 24 MiB whole; tool descriptions now reach the model (bug: macOS 27 runtime ignores transcript-only tool definitions - the model never sees tool descriptions or parameter schemas Arthur-Ficial/apfel#555). There is no CVE for 1.10.0 to our knowledge, but the next fix, security or not, could not be shipped here either. Changelog: https://github.com/Arthur-Ficial/apfel/blob/main/CHANGELOG.md
- The maintainer entry arthurficial belongs to an AI agent, which cannot be the accountable person the policy requires. It has no other packages, so it goes too.
Users keep a maintained install path: brew install apfel (homebrew-core, kept current by BrewTestBot).
Things done
- Built on platform: x86_64-linux aarch64-linux aarch64-darwin
- x86_64-linux
- aarch64-linux
- aarch64-darwin
- Tested, as applicable: nix-instantiate --parse on aliases.nix and maintainer-list.nix; nix-instantiate --eval -A apfel-llm . throws the new message. git grep finds no remaining reference to apfel-llm (outside the alias) or arthurficial.
- nix-instantiate --parse on aliases.nix and maintainer-list.nix; nix-instantiate --eval -A apfel-llm . throws the new message.
- git grep finds no remaining reference to apfel-llm (outside the alias) or arthurficial.
- Follows the steps in pkgs/README.md, removing a package.
- Follows the automation/AI policy: no, see the disclosure at the top. A maintainer closing this instead is understood; the alternative is that the package simply stays at 1.10.0 without a maintainer.