We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as #BotKit now supports #Node.js alongside #Deno, making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred #JavaScript runtime while building #ActivityPub #bots with the same powerful BotKit APIs.
One of the most requested features has landed: poll support! You can now create interactive polls in your #bot messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question
objects with proper expiration times, and your bot can react to votes through the new onVote
event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major #fediverse platforms like Mastodon and Misskey.
// Create a poll with multiple choicesawait session.publish(textWhat's your favorite programming language?
, { class: Question, poll: { multiple: true, // Allow multiple selections options: ["JavaScript", "TypeScript", "Python", "Rust"], endTime: Temporal.Now.instant().add({ hours: 24 }), },});// Handle votesbot.onVote = async (session, vote) => { console.log(</span><span>${</span><span>vote</span><span>.</span><span>actor</span><span>}</span><span> voted for "</span><span>${</span><span>vote</span><span>.</span><span>option</span><span>}</span><span>"
);};
The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom)! The /followers
route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.
For developers looking for alternative storage backends, we've introduced the SqliteRepository
through the new @fedify/botkit-sqlite
package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository
module offers MemoryCachedRepository
for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.
This release also includes an important security update: we've upgraded to #Fedify 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions
, RepositoryGetFollowersOptions
, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls
option, providing more flexibility for custom implementations.
We're excited to announce the release of BotKit 0.3.0! This release marks a significant milestone as #BotKit now supports #Node.js alongside #Deno, making it accessible to a wider audience. The minimum required Node.js version is 22.0.0. This dual-runtime support means you can now choose your preferred #JavaScript runtime while building #ActivityPub #bots with the same powerful BotKit APIs.
One of the most requested features has landed: poll support! You can now create interactive polls in your #bot messages, allowing followers to vote on questions with single or multiple-choice options. Polls are represented as ActivityPub Question
objects with proper expiration times, and your bot can react to votes through the new onVote
event handler. This feature enhances engagement possibilities and brings BotKit to feature parity with major #fediverse platforms like Mastodon and Misskey.
// Create a poll with multiple choicesawait session.publish(textWhat's your favorite programming language?
, { class: Question, poll: { multiple: true, // Allow multiple selections options: ["JavaScript", "TypeScript", "Python", "Rust"], endTime: Temporal.Now.instant().add({ hours: 24 }), },});// Handle votesbot.onVote = async (session, vote) => { console.log(</span><span>${</span><span>vote</span><span>.</span><span>actor</span><span>}</span><span> voted for "</span><span>${</span><span>vote</span><span>.</span><span>option</span><span>}</span><span>"
);};
The web frontend has been enhanced with a new followers page, thanks to the contribution from Hyeonseo Kim (@gaebalgom)! The /followers
route now displays a paginated list of your bot's followers, and the follower count on the main profile page is now clickable, providing better visibility into your bot's audience. This improvement makes the web interface more complete and user-friendly.
For developers looking for alternative storage backends, we've introduced the SqliteRepository
through the new @fedify/botkit-sqlite
package. This provides a production-ready SQLite-based storage solution with ACID compliance, write-ahead logging (WAL) for optimal performance, and proper indexing. Additionally, the new @fedify/botkit/repository
module offers MemoryCachedRepository
for adding an in-memory cache layer on top of any repository implementation, improving read performance for frequently accessed data.
This release also includes an important security update: we've upgraded to #Fedify 1.8.8, ensuring your bots stay secure and compatible with the latest ActivityPub standards. The repository pattern has been expanded with new interfaces and types like RepositoryGetMessagesOptions
, RepositoryGetFollowersOptions
, and proper support for polls storage through the KvStoreRepositoryPrefixes.polls
option, providing more flexibility for custom implementations.
#RIP botsin.space, and bot hosting on Glitch (thanks Fastly);
https://botwiki.org/blog/a-decade-of-botwiki/
I discovered botwiki through a web search, after finding the tombstone on botsin.space. Thanks to @stefan for the blog posts there about all this, and the link to the detailed postmortem by the founder and admin of botsin.space;
https://muffinlabs.com/posts/2024/12/21/12-21-botsin-space-post-mortem/
Lots to think about in there.

No sé muy bien cómo comenzó mi afición por hacer #bots. Es verdad que son un buen ejercicio de #programación, y hay pocas cosas que me gusten más que programar. Además, sirven para divulgar las cosas que me gustan y denunciar las que no.
Cuando hablo de bots, me refiero a cuentas automatizadas que postean regularmente sobre un tema en concreto. Algunos también responden cuando se les menciona.
Voy a hacer un hilo repasando todos mis bots, ordenados según el número de seguidores.
¡Dentro hilo! 👇
No sé muy bien cómo comenzó mi afición por hacer #bots. Es verdad que son un buen ejercicio de #programación, y hay pocas cosas que me gusten más que programar. Además, sirven para divulgar las cosas que me gustan y denunciar las que no.
Cuando hablo de bots, me refiero a cuentas automatizadas que postean regularmente sobre un tema en concreto. Algunos también responden cuando se les menciona.
Voy a hacer un hilo repasando todos mis bots, ordenados según el número de seguidores.
¡Dentro hilo! 👇
The times we live in...
And it's not like people and espechally businesses are unwilling to pay for good tools, cuz not only is HootSuite still around, but @tapbots, who made the excellent TweetBot nowadays make @ivory, an excellent #ActivityPub client with focus on #Mastodon that people are willing to pay a #subscription for!
- And from what I could see from users who pay for it, they are not just happy, but it also looks and feels better than #TweetDeck in it's golden days...
Like: There's not much of a technical reason something similar to @zulip 's #TUI - based client could exit.
- Obviously #proprietary platforms - (just like #Shitter even before #ApartheidEmeraldBoy took over and speedrun it into becoming a #NaziBar) - will try to passive-aggressively stifle such #clients, but still...
If people can build #bots for shite like #discord, #Telegram, etc. then why not make an actually good client ???
![Mre. Dartigen [maker mode] Mre. Dartigen [maker mode]](https://mediacdn.aus.social/accounts/avatars/108/195/770/473/016/150/original/d5b937db377b2251.gif)
Attention server admins! Yesterday I've read a post by @simon_brooke how nasty AI scraper bots are attacking his self-hosted @forgejo instance. Soon after I'm seeing unusual, periodic traffic spikes on mine and again - dominated by OpenAI, but some other freeloaders too:
20.171.207.41 GPTBot/1.2
85.208.96.211 SemrushBot/7~bl
54.36.148.64 AhrefsBot/7.0
114.119.139.53 PetalBot
With GPTBot
and SemrushBot
attacking hardest
They've been hammering my little server periodically today as well, slowing down my instance dramatically as if I was experiencing malicious DDoS attack Well, in a sense it is one
Watch out - it seems corporate AI techbros learned to scrape content and starts doing it on a massive scale
Remember when @Codeberg was (and repeatedly is) hit?
For now blocked IP ranges and User-Agent
combinations, not sure for how long that will be enough
Please boost for visibility and be prepared!
#forgejo #developerlife #coding #attack #techbros #aislop #openai #bots #ddos
🫠 Brave new goo
「 Google is essentially training bots to communicate with each other and execute tasks, including financial transactions. As Semafor notes, that protocol will likely be the first step in building a brave new ad industry where AI agents become the consumer, since humans have delegated such menial tasks like "buying stuff" to them 」
Attention server admins! Yesterday I've read a post by @simon_brooke how nasty AI scraper bots are attacking his self-hosted @forgejo instance. Soon after I'm seeing unusual, periodic traffic spikes on mine and again - dominated by OpenAI, but some other freeloaders too:
20.171.207.41 GPTBot/1.2
85.208.96.211 SemrushBot/7~bl
54.36.148.64 AhrefsBot/7.0
114.119.139.53 PetalBot
With GPTBot
and SemrushBot
attacking hardest
They've been hammering my little server periodically today as well, slowing down my instance dramatically as if I was experiencing malicious DDoS attack Well, in a sense it is one
Watch out - it seems corporate AI techbros learned to scrape content and starts doing it on a massive scale
Remember when @Codeberg was (and repeatedly is) hit?
For now blocked IP ranges and User-Agent
combinations, not sure for how long that will be enough
Please boost for visibility and be prepared!
#forgejo #developerlife #coding #attack #techbros #aislop #openai #bots #ddos
I noticed that a lot of the crawlers/bots we see on www.bbc.co.uk & www.bbc.com are spoofed e.g. a "Meta" crawler coming from 10s of different small ISPs across the world (the real one comes from a Meta ASN).
I deployed a change this morning which adds source ASN validation (alongside user-agent string analysis) to our "known crawlers/bots" classifier & well, the results speak for themselves. Attached graphs show RPS from "known crawlers/bots" to www.bbc.co.uk & www.bbc.com.
#WebDev#BBC#Bots


There's a lot that could still be improved in #swad, but I don't get that "proof of work" idea out of my mind, so I started a branch to work on it:
https://github.com/Zirias/swad/pull/1
I really think it makes sense when you want some publicly known "guest login" which is still protected against #bots. Not sure yet whether this will succeed, we will see!
It certainly won't be as "fancy" as #anubis, but do the same thing functionally: Require the client to find a #nonce that, combined with a server-provided #challenge, hashes to something with 'n' leading zeros using #sha256. In contrast to anubis, swad won't have to proxy everything (but rely on nginx' auth_request), and no challenge will be issued when the user logs in with credentials some other credentials checker accepts.
I want you to meet Anubis
This is a wonderful tool, a powerful program designed against artificial intelligence large language models theft of resources.
It's not perfect, it's not finished this is an ongoing onslaught by the LLM Bots
#DDoS#LLM #bots #infosec#OpenAI#Linux#KDE#GitHub#GitLab #sh#AI
🖋️ #bash#MX #mxLinux #sh #zsh #ksh #csh #tksh #fish #distro#Linux#POSIX #fresh #programming
I want you to meet Anubis
This is a wonderful tool, a powerful program designed against artificial intelligence large language models theft of resources.
It's not perfect, it's not finished this is an ongoing onslaught by the LLM Bots
#DDoS#LLM #bots #infosec#OpenAI#Linux#KDE#GitHub#GitLab #sh#AI
🖋️ #bash#MX #mxLinux #sh #zsh #ksh #csh #tksh #fish #distro#Linux#POSIX #fresh #programming
I have just taken the time to thoroughly read the following article
This article has led me to the conclusion that an Open{source} War will have to be waged against LLM large language model abusers of data collection.
The work of these bots is pure DDoS denial of service. An interesting set of offensive tools have been programmed and are already implemented. They have proven to be quite effective and are being refined into sophistication to literally work to knock these networks of bots offline, in a DOT MMORPG approach.
It is unthinkable that LLM bots steal our Open Source resources servers bandwidth and financial cashflow without serious repercussions!
WTF are LLM companies thinking? Even Meta has waged war against us!
LLM has waged a brutal war.
The Open Source Community is responding; even those at The Dark Side of the internet are making tools to assist everyone against Artificial Intelligence LLM DDoS attacks, which knock whole Open Source Networks offline, as we speak.
It doesn't matter if in the end it looks like a Terminator landscape globally on the IT scale. Open source will win. LLM will disappear...
#DDoS#LLM #bots #infosec#OpenAI#Linux#KDE#GitHub#GitLab#Bash #sh #programming#AI