{"slug": "a-more-nuanced-view-of-llms", "title": "A more nuanced view of LLMs", "summary": "Debian developer Anarcat published a blog post offering a nuanced view of LLMs ahead of Debian's 2026 vote on AI usage, acknowledging his own maintenance of LLM-related packages such as llm, llm-anthropic, and anthropic-sdk-python, while criticizing the vote's framing with 8 ballot options and duplicates. He describes his practical use of LLMs and calls for a more balanced debate within the Debian community.", "body_md": "# A more nuanced view of LLMs\n\nAlso in this series:\n\nAfter ranting and railing about LLMs or \"AI\" as the optimists (or\n[accelerationists](https://en.wikipedia.org/wiki/Accelerationism)?) call it, I figured it might be important to\nbe a little more honest about my use of LLMs and how I think about it\nmore practically in the world.\n\n# The Debian vote context\n\nThis is not a coming out. I am not using LLMs on a daily basis, and\nthis blog is, again, written out of my cold dead hands in a dying\nworld, with over-engineered hardware and (to a certain extent, hi\nEmacs!) software, powered by 100% green energy built on [stolen land](https://en.wikipedia.org/wiki/James_Bay_Cree_hydroelectric_conflict).\n\nThere is a [vote going on in Debian](https://www.debian.org/vote/2026/vote_002). If you're unfamiliar with it,\nyou can [catch up at LWN](https://lwn.net/SubscriberLink/1087134/77bf350b3d40bc95/). So far I've essentially said \"LLM is\nbad\" which is not a very balanced or useful opinion. Obviously, people\nare using LLMs, sometimes unknowing or unwillingly, and we need to\ntake that into account. Furthermore, there has been many different\nblog posts on Debian planet about this. Some that I found\n[balanced](https://grep.be/blog//en/computer/debian/Programming_and_GR_2026_002/), [good summaries](https://diziet.dreamwidth.org/20998.html), even if I [didn't fully agree with\nthem](https://changelog.complete.org/archives/44740-ai-in-debian-the-vote-proposals-and-nuance), at least some did the basic civil service of being\n[short](http://blog.fai-project.org/posts/llm-usage-gr/). But others were just not only [Wrong](https://k1024.org/posts/2026/2026-08-23-another-optimistic-take-on-ai/) but also [so long\nthat I couldn't finish](http://aigarius.com/blog/2026/08/22/optimistic-take-on-ai/) that I just *had* to write *something*.[1](#fn:1)\n\nThis is not an explanation of the ballots, nor how I will vote. This vote is Debian's failure of framing that debate in a reasonable way: we have 8 options on the ballot with many duplicates. We have failed to do the hard work of summarizing and aggregating options into a meaningful set. I doubt the final vote will represent a readable position we can rally around.\n\nI have not read the [two](https://lists.debian.org/debian-vote/2026/07/threads.html) [months](https://lists.debian.org/debian-vote/2026/08/threads.html) of debates on the topic\neither. Normally, before voting, I take a cursory look at the debate\nto see points of view I might have missed. But in this case, it will\njust make me sad, add noise, and I'm already pretty sure on where I\nstand on this.\n\nSo let me describe how I use LLMs and how I think they fit in our work, as computer engineers and hobbyists.\n\n# My LLM use\n\n## Debian Packaging\n\nAn astute reader has [pointed out](https://piaille.fr/@TurboTrain/117067460922413248) that I maintain a package in\nDebian made to use Anthropic. It's actually multiple packages:\n\n: a`llm`\n\n[CLI utility and Python library for interacting with Large Language Models](https://llm.datasette.io/en/stable/), with OpenAI as its default API backend: a plugin for`llm-anthropic`\n\n`llm`\n\nwhich allows me to talk to Anthropic's API instead of OpenAI: the SDK`anthropic-sdk-python`\n\n`llm-anthropic`\n\nrequires to do its work\n\nAs I previously [explained in response](https://kolektiva.social/@Anarcat/117071797145506717), I am not entirely\ncomfortable with this work: it's a compromise. In fact, I first\nuploaded `llm`\n\nto the `contrib`\n\nsection of Debian, where we keep\nsoftware that depends on other non-free software, but I was told that,\nsince [ yt-dlp](https://tracker.debian.org/pkg/yt-dlp) was in\n\n`main`\n\n, `llm`\n\nbelonged there as well.So I [moved it to main](https://tracker.debian.org/news/1718613/accepted-llm-028-2-source-all-into-unstable/), alongside similarly controversial tools\nlike [ llama.cpp](https://tracker.debian.org/pkg/llama.cpp) or the\n\n[library.](https://tracker.debian.org/pkg/python-openai)\n\n`python-openai`\n\n## OpenAI and Anthropic usage\n\nAn important part of my work is technology watch. I keep tabs on\nthousands of (new and old) software projects, follow news, and\ngenerally try to keep my skills up to date. It's a [pretty impossible\nrace](https://anarc.at/blog/2018-05-26-kubecon-rant/), especially as I grow older, but I still think I'm doing the\nright choices in my job.\n\nTesting large language models is part of that work. At first, I was using ChatGPT's web interface, but it was annoying to copy-paste things into a browser, so I looked for different interfaces.\n\nFor a while I tried [ gptel](https://github.com/karthink/gptel), a \"simple, extensible LLM client for\nEmacs\" but I found it kind of terrifying. Giving a LLM control over an\nEmacs buffer seems like a security nightmare, so I\n\n[stopped doing that](https://gitlab.com/anarcat/emacs-d/-/commit/57fb1c13e63b58142ece426fc32f4ebdb325a6c3).\n\nSo I use the `llm`\n\ncommand-line tool to talk to Anthropic's API. I\nstarted that in the summer of 2025, when I bought 20$USD of API\ncredits. Before that, I paid for a ChatGPT subscription and then\nOpenAI credits, which expired and sent me over to Anthropic, which\n*seemed* then to have better ethics.\n\nAs it turns out, Anthropic is also happy to work for the US military\n(which is a big red line for me). Anthropic also won't let you [talk\nabout the genocide in Gaza](https://evanp.me/2026/07/23/claude-wont-let-me-talk-about-the-gaza-genocide/), it is [destroying physical books](https://annas-archive.gl/blog/physical-destruction.html),\nand is [blackmailing us to use their product for security\ncoverage](https://www.flyingpenguin.com/mythos-grading-mythos-got-patches-yet/).\n\nNeedless to say, Anthropic and \"Claude\" are not my friends, but they seem like the lesser evil in current \"frontier models\". So I have renewed, a couple of weeks ago, another 20$USD of API credits with Anthropic.\n\n## Actual prompts and responses\n\nSo what does 20$ give you at Anthropic anyways? What *am* I using LLMs\nfor and how?\n\nThe neat thing with `llm`\n\nis that everything is logged in a `sqlite`\n\ndatabase, so there are some answers that are easy to get:\n\n```\n> llm logs status\nLogging is ON for all prompts\nFound log database at /home/anarcat/.config/io.datasette.llm/logs.db\nNumber of threads logged:   7\nNumber of turns logged:     12\nNumber of legacy conversations: 543\nNumber of legacy responses: 970\nDatabase file size:         9.61MB\n```\n\nThat is 10MB of logs, with about a thousand prompts.\n\nMy logs go back to 2024-03-07, a little over two years ago, and include a mix of Anthropic and OpenAI responses. I used it more in 2024 than 2025, and if the trend continues, I will have used it less in 2026 again:\n\n```\n> llm logs list -n 0  --json | jq -r .[].datetime_utc | sed 's/-.*//' | sort | uniq -c \n    527 2024\n    357 2025\n     98 2026\n```\n\nIt looks like about 10 prompts per month right now, down from a peak\nof about 60 per month in 2024. It's pretty difficult to analyze those\nactual logs to get more patterns and I won't run the prompts through a\nmodel *again* to process them.\n\n## How I'm using models now\n\nAt first, I was using it partly for benchmarking model's capabilities,\nlike [Simon Willison](https://simonwillison.net/) does with his pelicans, clearly not trusting\nits output. But I was impressed by the capacities of the Claude Opus\n4.5 model when it [wrote this script in January](https://gitlab.com/anarcat/scripts/-/blob/main/transmodify.py?ref_type=heads). Impressed, but\nalso scared: it's the first time I felt I could delegate the entirety\nof my programming to a model. Just run the code, if it works, it\nworks, right?\n\nSo what do I use it now? As an example, here are the 10 last prompts in my history:\n\n- there is now Claude 5, and a fable model, maybe you know about it?\n- impress me\n- not impressive, i already know all of this\n- chat\n- in postfix, i have a 300k mailing that happens regularly here. normally, it delivers within about...\n- is there a way i could have drained the maildrop queue faster without removing the milter?\n- the problem was that rspamd was timing out on the FUZZY_CALLBACK check. how do i disable that?\n- how do i disable all spam checks? i just want rspamd to add dkim signatures\n- how do the default_destination_concurrency_limit and initial_destination_concurrency settings int...\n- mic check\n\nThe first one was me trying to confirm which model I am using, which\nis not always obvious when going through the whole `llm`\n\nstack I've\nbeen using. The following two are an attempt at seeing what the model\nis capable of and I was \"not impressed\", to which Claude answered that\nI have a \"high bar\", which, fair enough.\n\nThe `chat`\n\nis me failing to use a command line, which shows that\nperhaps I need to readjust that \"high bar\", again.\n\nThe next five are a rather embarrassing debacle in a large Postfix\nmailing that went sideways, and where I couldn't find an actual\nPostfix expert of my level to help. The fabled Claude Fable 5 answered\nrather correctly, but dangerously, that I could empty the queue by\ndisabling the `non_smtpd_milters`\n\n. What Fable (and myself) did not\nrealize is that the milter was also adding DKIM signatures, so while the\nmailing was expedited, it was done without those precious signatures,\nwhich got us promptly blocked at Gmail. We have recovered since, and,\nthanks to the model and reading the [Postfix manual](https://www.postfix.org/pickup.8.html) for the\nhundredth time, that [pickup(8)](https://www.postfix.org/pickup.8.html) is single-threaded and that we\nneeded to review the architecture of that mailing (and our spam\nfilters) a bit. Many tickets ensued.\n\nThe last one is a test I did to make sure my last uploads of\n`llm-anthropic`\n\nand its dependency worked correctly.\n\nNote that the above excludes 5 questions I asked Anthropic while writing this article, where I asked for synonyms and \"what nanometer scale are arduino processors built from? how is an arduino CPU printed?\", a question which Wikipedia furiously evades providing a good answer.\n\nThose prompts are pretty typical of my LLM use: I'm testing the models to see if they work at all, but also, out of desperation, I fire off a prompt after I fire off questions to colleagues or search engines (in that order). It's often weird edge cases like the Prometheus query language, Python's matplotlib, LaTeX, Elisp, optimizations, and so on.\n\nI use models for translation a lot. Being fully bilingual, it is\ncommon for me to think of a word in French or English and fail to find\nexactly the right word for that in the other language. Models help\nwith that, and are also useful to find synonyms. Those are low-token\nuses that seem pretty innocuous to me, but I realize the irony of this\nafter writing about the [tower of\nBabel](../2026-05-16-four-horsemen/#the-tower-of-babel).\n\n## What I am not using models for\n\nI am not using models to write prose.\n\nI am not using models to *read* prose. If it's generated with LLMs, I\nstop reading.\n\nI am not using models to write code, with the exception of that single Python script above.\n\nI am generally not using models to *review* code, with exceptions. If\nI get stuck on a hard problem, I might feed a piece of code to the\nmodel. I repeatedly fed [ asncounter](https://gitlab.com/anarcat/asncounter/) into Claude to try to fix a\nperformance regression I had introduced. It found micro-optimizations\nthat taught me a thing or two about Python's internal implementations,\nbut overall, it was mostly a waste of time. This was in June 2025, so\nperhaps now models would fare better. I have not tried again.\n\nI am not using LLMs to do Debian packaging. When I can, I manually review the diffs of packages I upload into Debian, still, by hand.\n\nI do this for the reasons outlined in [The Four Horsemen of the LLM\nApocalypse](../2026-05-16-four-horsemen/), because I refuse to be\ncomplicit in the:\n\n- aggressive and illegal scraping of the servers I steward\n- world-wide computer hardware shortage (making it, by the way,\nnearly impossible to run presumably clean local models) and the\nattack on our job conditions (also discussed in\n[The people vs the AI overlords](../2026-08-18-people-vs-ai-overlords/)) - death of copyright and free software\n- complication and enshifitication of everything, and the destruction of our communities\n- the imperialist\n[Nerd Reich](https://www.thenerdreich.com/)that wants to take over the world\n\nLike I reluctantly use Intel computers, I *do* fire off a prompt. But\nI still hold on to the dream that we can build [communities of\npractice](https://en.wikipedia.org/wiki/Community_of_practice) that hold human knowledge collectively and not [offload\nthat as a utility](https://gizmodo.com/sam-altman-says-intelligence-will-be-a-utility-and-hes-just-the-man-to-collect-the-bills-2000732953) to some megalomaniac billionaire.\n\n# Their LLM use I am forced into\n\nSo that's me. Clearly, I'm going against the grain here. Everywhere I look, I see LLM-generated code and projects. Slop and botnets have flooded the web.\n\nI use [Wadamesh](https://wadamesh.com/), clearly [vibe-coded](https://github.com/ALLFATHER-BV/wadamesh/graphs/contributors?from=2026-05-23), because it's the best\ngraphical interface for MeshCore that runs on portable devices. I wish\nit was made by a human, in a community I could participate in, but it\nisn't, and I don't.\n\nI package the above `llm`\n\ntoolset, which is [more and more\nvibe-coded](https://simonwillison.net/2026/Aug/24/llm-anthropic/), but I still review the diffs. And I have to say: I\ntrust Simon here. The code is verbose as hell, feels overengineered,\nand `llm`\n\nfeels slow, but it generally works, and Simon is still at\nthe gate.\n\nThe Anthropic SDK is another thing entirely. The [0.91.0 to 0.120\nupload](https://salsa.debian.org/python-team/packages/anthropic-sdk-python/-/commit/a3087b3cef63ae239a1f558a6b46565ce0485b7d), for example, was nuts:\n\n```\n 806 files changed, 72281 insertions(+), 1478 deletions(-)\n```\n\nI explicitly did not review that entire diff. It feels like there's a lot of garbage there to just have a shim between a proprietary API and Python. But this is the hand I've been dealt.\n\n# Larger projects LLM use\n\nLLMs are being used in the Linux kernel, Firefox, `rsync`\n\n, Rust, and\nother places. I don't feel good about this, particularly in Rust, but\nthey at least made a decent [policy](https://forge.rust-lang.org/policies/llm-usage.html). I am glad GCC made a [policy\nagainst LLM contributions](https://lwn.net/Articles/1086041/) and I support the [human Emacs](https://human-emacs.org/)\nproject.\n\nWe need to have a set of foundational tools that are \"clean\" in the sense that they are built upon a community of people that understand how they are built.\n\nMaybe that's naive or even impossible. The Linux kernel and GCC, in\nparticular, are massive projects that have long grown past the scale\nof a single person's understanding. But the theory was that a\n*community* of humans can understand *collectively*.\n\nNow we seem to be throwing up our hands and giving up on\nthat community. That LLMs will just fix the problem, whatever it\nis. But we're all just one rug pull away from being completely\nincapable of managing those projects. The argument there is that we'll\njust switch to local models, but no one is actually doing that.\nAll I see is people use local models [as a corner case](https://micahflee.com/agentic-coding-techniques/)\n(for privacy) or as in [theory](https://changelog.complete.org/archives/44740-ai-in-debian-the-vote-proposals-and-nuance), but in reality, everyone uses the\ncentralized frontier models right now. We just can't fallback.\n\nWe're in the same situation we were, a decade or two ago, when Microsoft decided it would kill free office alternatives by making Office free for non-profits. It worked: thousands, if not millions of schools, community groups and individuals stopped looking for alternatives (including free software but also \"piracy\") for Office and embraced what seemed like a generous offer.\n\nNow Microsoft pulled the plug and [Over 170,000 Nonprofits Lost All\nTheir Data](https://slate.com/technology/2026/08/microsoft-software-nonprofit-data-delete.html).\n\nI'm afraid the rug pull on LLMs will be much worse: never mind that\nLinus won't be able to use his [tireless helper](https://github.com/torvalds/linux/commit/818bebeb63dd6bf5f4e07e145f6cdbace520a34c) to fix obscure kernel\nbugs; we're looking at a collapse of the economy so large that we are\nalready [talking about bailing out the companies responsible](https://prospect.org/2026/08/03/ai-bailout-could-be-baked-into-bubble-private-equity-life-insurers-loans/).\n\nIn a sense, the most striking thing about the Debian vote is it has actually no option to completely refuse upstream LLM contributions. It seems the community has taken it for granted that it's now impossible to build Debian entirely without LLMs. We lost the battle even without a fight, it seems.\n\n# A plea for small\n\nIf it has really become impossible for us to manage the complexity we\nhave built, maybe it's time to stop and think about what we're doing\nin the first place. We're struggling to even [bootstrap](https://bootstrappable.org/) our\ncurrent toolchain!\n\nThis is one of the things I like the most about working on the mesh:\nit's low tech, small Arduino devices that is built with decades-old\n[semiconductor processes](https://en.wikipedia.org/wiki/Semiconductor_device_fabrication) that is understandable by human\nbeings.\n\nMaybe the answer lies more in single-purpose devices like those\ncommunicators and simpler multi-purpose computers than what we have\nnow, which is what the [permacomputing](https://en.wikipedia.org/wiki/Permacomputing) movement is about.\n\nSmall is beautiful, let's scale it down.\n\n-\nand yes, I'm sorry this has gotten this long, I hope you will\nforgive those 3000 words.\n[↩](#fnref:1)\n\nYou can use your Mastodon account to reply to this [post](https://kolektiva.social/@Anarcat/117158193599177078).\n\n[Edited .](https://gitlab.com/anarcat/anarc.at/-/commits/main/blog/2026-08-25-llm-nuance.md)", "url": "https://wpnews.pro/news/a-more-nuanced-view-of-llms", "canonical_source": "https://anarc.at/blog/2026-08-25-llm-nuance/", "published_at": "2026-08-26 07:09:51+00:00", "updated_at": "2026-08-26 07:44:12.018680+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-policy"], "entities": ["Anarcat", "Debian", "Anthropic", "OpenAI", "llm", "llm-anthropic", "anthropic-sdk-python"], "alternates": {"html": "https://wpnews.pro/news/a-more-nuanced-view-of-llms", "markdown": "https://wpnews.pro/news/a-more-nuanced-view-of-llms.md", "text": "https://wpnews.pro/news/a-more-nuanced-view-of-llms.txt", "jsonld": "https://wpnews.pro/news/a-more-nuanced-view-of-llms.jsonld"}}