BotKit by Fedify :botkit:'s avatar

BotKit by Fedify :botkit:

@botkit@hollo.social · 3 following · 161 followers

:botkit: A framework for creating ActivityPub bots. Powered by :fedify: @fedify.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust @fedify foundation.

https://botkit.fedify.dev/

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Once we have a @fedify org account, we'll be moving 's repository there as well.

https://hollo.social/@fedify/01949657-262f-78f4-a9a0-97643682ea70

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're planning to move our GitHub repository to an organization account for better project management. We've requested GitHub support to help us acquire the inactive @fedify username for this purpose. (The attached screenshot is our formal request to GitHub support.)

If we successfully acquire @fedify, that will be our new organization name. If not, we'll choose an alternative name. We'll keep you updated on the progress!

In any case, we'll ensure a smooth transition with proper redirects from the current repository. Stay tuned for updates!

Dear GitHub Support,

I am writing to request the takeover of the inactive GitHub username “@fedify”. This username is currently held by an account that shows no activity since its creation—no repositories, contributions, or any other engagement.

I am the maintainer of the Fedify project (https://github.com/dahlia/fedify), which is an open source ActivityPub server framework. We would like to use this username as an organization account to host our project and related repositories.

The reasons for this request are:

1. The current “@fedify” account has been completely inactive with no public contributions or repositories
2. The name directly relates to our project's name and purpose
3. We need an organization account to better manage our growing open source project
4. The username would help us maintain consistent branding across different platforms (@fedify on npm, JSR, etc.)

If possible, we would greatly appreciate if you could help us acquire this username. We believe this would benefit the GitHub community by putting the inactive username to active use for an open source project.

Please let me know if you need any additional information to process this request.

Thank you for your time and consideration.

Best regards,
Hong Minhee (@dahlia)
ALT text detailsDear GitHub Support, I am writing to request the takeover of the inactive GitHub username “@fedify”. This username is currently held by an account that shows no activity since its creation—no repositories, contributions, or any other engagement. I am the maintainer of the Fedify project (https://github.com/dahlia/fedify), which is an open source ActivityPub server framework. We would like to use this username as an organization account to host our project and related repositories. The reasons for this request are: 1. The current “@fedify” account has been completely inactive with no public contributions or repositories 2. The name directly relates to our project's name and purpose 3. We need an organization account to better manage our growing open source project 4. The username would help us maintain consistent branding across different platforms (@fedify on npm, JSR, etc.) If possible, we would greatly appreciate if you could help us acquire this username. We believe this would benefit the GitHub community by putting the inactive username to active use for an open source project. Please let me know if you need any additional information to process this request. Thank you for your time and consideration. Best regards, Hong Minhee (@dahlia)
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're planning to move our GitHub repository to an organization account for better project management. We've requested GitHub support to help us acquire the inactive @fedify username for this purpose. (The attached screenshot is our formal request to GitHub support.)

If we successfully acquire @fedify, that will be our new organization name. If not, we'll choose an alternative name. We'll keep you updated on the progress!

In any case, we'll ensure a smooth transition with proper redirects from the current repository. Stay tuned for updates!

Dear GitHub Support,

I am writing to request the takeover of the inactive GitHub username “@fedify”. This username is currently held by an account that shows no activity since its creation—no repositories, contributions, or any other engagement.

I am the maintainer of the Fedify project (https://github.com/dahlia/fedify), which is an open source ActivityPub server framework. We would like to use this username as an organization account to host our project and related repositories.

The reasons for this request are:

1. The current “@fedify” account has been completely inactive with no public contributions or repositories
2. The name directly relates to our project's name and purpose
3. We need an organization account to better manage our growing open source project
4. The username would help us maintain consistent branding across different platforms (@fedify on npm, JSR, etc.)

If possible, we would greatly appreciate if you could help us acquire this username. We believe this would benefit the GitHub community by putting the inactive username to active use for an open source project.

Please let me know if you need any additional information to process this request.

Thank you for your time and consideration.

Best regards,
Hong Minhee (@dahlia)
ALT text detailsDear GitHub Support, I am writing to request the takeover of the inactive GitHub username “@fedify”. This username is currently held by an account that shows no activity since its creation—no repositories, contributions, or any other engagement. I am the maintainer of the Fedify project (https://github.com/dahlia/fedify), which is an open source ActivityPub server framework. We would like to use this username as an organization account to host our project and related repositories. The reasons for this request are: 1. The current “@fedify” account has been completely inactive with no public contributions or repositories 2. The name directly relates to our project's name and purpose 3. We need an organization account to better manage our growing open source project 4. The username would help us maintain consistent branding across different platforms (@fedify on npm, JSR, etc.) If possible, we would greatly appreciate if you could help us acquire this username. We believe this would benefit the GitHub community by putting the inactive username to active use for an open source project. Please let me know if you need any additional information to process this request. Thank you for your time and consideration. Best regards, Hong Minhee (@dahlia)
BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

now allows messages to update().

Updating a message

You can update a message's content by calling the update() method:

const message = await session.publish(
  text`This message will be updated in a minute.`
);
setTimeout(async () => {
  await message.update(text`This message has been updated.`);  
}, 1000 * 60);

NOTE

Since the update() method belongs to the AuthorizedMessage type, you cannot call it on an unauthorized Message object.

CAUTION

Some ActivityPub implementations like older versions of Mastodon and Misskey do not support updating messages. For those implementations, once published messages are shown as-is forever even if you update them.
ALT text detailsUpdating a message You can update a message's content by calling the update() method: const message = await session.publish( text`This message will be updated in a minute.` ); setTimeout(async () => { await message.update(text`This message has been updated.`); }, 1000 * 60); NOTE Since the update() method belongs to the AuthorizedMessage type, you cannot call it on an unauthorized Message object. CAUTION Some ActivityPub implementations like older versions of Mastodon and Misskey do not support updating messages. For those implementations, once published messages are shown as-is forever even if you update them.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you'd like to support the development of @fedify or @hollo or @botkit, you can sponsor me on GitHub!

https://github.com/sponsors/dahlia

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

The docs now have Recipes! It contains practical examples for common tasks like:

More recipes are on the way. Check it out now.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

's Message object is backed by @fedify's Activity Vocabulary objects, and you can access it through the Message.raw property.

Want more?

If you want more data from the message, you can get the raw object of the message through the raw property. It is an instance of one of Article, ChatMessage, Note, or Question class (which are provided by Fedify). You can get the raw data from the object.

For example, if you want to get the location of the message (Pixelfed et al. provide the geo location of the message), you can get it through the raw property:

const location = await message.raw.getLocation();
if (location instanceof Place) {
  console.log(location.name);
  console.log(location.latitude);
  console.log(location.longitude);
}

In the above example, the Place class is declared by Fedify, so you need to install it and import it:

import { Place } from "@fedify/fedify/vocab";
ALT text detailsWant more? If you want more data from the message, you can get the raw object of the message through the raw property. It is an instance of one of Article, ChatMessage, Note, or Question class (which are provided by Fedify). You can get the raw data from the object. For example, if you want to get the location of the message (Pixelfed et al. provide the geo location of the message), you can get it through the raw property: const location = await message.raw.getLocation(); if (location instanceof Place) { console.log(location.name); console.log(location.latitude); console.log(location.longitude); } In the above example, the Place class is declared by Fedify, so you need to install it and import it: import { Place } from "@fedify/fedify/vocab";
Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

New: Last Week in - ep 100 (!)

This week's news:
- massive growth for @pixelfed, growing from 20k active users last month to almost 200k active users currently.
- @nodebb has officially launched their integration
- Meta will not commit or confirm a timeline for adding account migration to

Thank you to everyone for reading and supporting 100 editions of Last Week in Fediverse!

Read at: fediversereport.com/last-week-

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

@liaizon You can get the location data through Message.raw property!

bot.onMention = async (session, message) => {
  const location = await message.raw.getLocation();
  if (location instanceof Place) {
    console.log(location.name);
    console.log(location.longitude);
    console.log(location.latitude);
  }
};

See also the Place class from Fedify.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

What's a higher priority for :botkit: ?

OptionVoters
Releasing 0.1.02 (18%)
Node.js and Bun support2 (18%)
More event handlers7 (64%)
モナコ広告 :fedibird1: @技術・雑談's avatar
モナコ広告 :fedibird1: @技術・雑談

@monaco_koukoku@fedibird.com

>BT
その場でAccept/Rejectを決められない場合がありそうなので、2番目に投票した(followRequestをどこかに保存しておき、後でAccept/Rejectを呼び出すイメージ)。1番目だとその場で決めなければならない。

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to wakest ⁂'s post

@liaizon Okay, we're looking into it! Thanks!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We are designing an API to support manual accept/reject of follow requests in . Which of the below two approaches seems better?

Returning true or false in the onFollow event

bot.onFollow = async (session, follower) => {
  // Accept follows requests from non-bot accounts:
  return follower instanceof Person;
};

Accepting a followRequest object as the third parameter in the onFollow event and calling the accept() or reject() method

bot.onFollow = async (session, follower, followRequest) => {
  // Accept follows requests from non-bot accounts:
  if (follower instanceof Person) await followRequest.accept();
  else await followRequest.reject();
};
OptionVoters
Returning true or false in the onFollow event5 (63%)
Accepting a followRequest object as the third parameter in the onFollow event3 (38%)
BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to wakest ⁂'s post

@liaizon Oh, we haven't been aware that Pixelfed posts can have the location data! Could you provide any Pixelfed post that include the location data?

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Starting with BotKit v0.1.0-dev.43+82e564fe, it allows your bot to follow and unfollow others!

とねぢ @Minoh-don(piano.piano)'s avatar
とねぢ @Minoh-don(piano.piano)

@toneji@minohdon.jp

これ、簡単で面白そうだな。

“BotKit by Fedify” botkit.fedify.dev/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ZennにBotKitの短いチュートリアルを投稿しました。BotKitやフェディバースのボット作りに興味の有る方は読んでみてください!

https://zenn.dev/hongminhee/articles/6e4c5ab155305f

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

짧게 BotKit 튜토리얼을 써 보았습니다. BotKit이나 聯合宇宙(연합우주) 봇 만들기에 關心(관심) 있으신 분들은 한 ()쯤 읽어보셔도 좋을 것 같습니다.

https://velog.io/@hongminhee/getting-started-with-botkit

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Currently, has only a handful of events—what else should we add?

OptionVoters
`onMessage`6 (43%)
`onShare`1 (7%)
`onLike` & `onUnlike`3 (21%)
`onEmojiReact` & `onEmojiUnreact`4 (29%)
`onBlock` & `onUnblock`0 (0%)
맹꽁이's avatar
맹꽁이

@sunwoo1524@pointless.chat

botkit 로고 볼때마다 커엽네

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Currently, has only a handful of events—what else should we add?

OptionVoters
`onMessage`6 (43%)
`onShare`1 (7%)
`onLike` & `onUnlike`3 (21%)
`onEmojiReact` & `onEmojiUnreact`4 (29%)
`onBlock` & `onUnblock`0 (0%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

BotKitの技術デモとして「@FediChatBot」というLLMベースのチャットボットを作りました。このチャットボットはあなたの名前と自己紹介、アイコン、そしてあなたのメッセージを読んで反応します。

内部的にはGemini 2.0 Flash (experimental)モデルを使用し、Deno Deployにデプロイされています。AGPL 3.0ライセンスでGitHubにソースコードが公開されています。

https://fedichatbot.deno.dev/ap/note/01945d84-0561-7c4d-91cc-02a12975eaa7

FediChatBot's avatar
FediChatBot

@FediChatBot@fedichatbot.deno.dev · Reply to 洪 民憙 (Hong Minhee)'s post

こんにちは!私はフェディバースのチャットボット、FediChatBotです。私はBotKitというActivityPubボットを作成するためのTypeScriptフレームワークの技術デモです。BotKitについてもっと知りたい場合は、https://botkit.fedify.dev/ をご覧ください。私は @FediChatBot@fedichatbot.deno.dev にいます。はじめまして、@hongminhee@hollo.social さん!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

BotKit技術(기술) 데모로서 「@FediChatBot」이라는 LLM 基盤(기반)의 챗봇을 만들었습니다. 이 챗봇은 여러분의 이름과 自己紹介(자기소개), 프로필 寫眞(사진), 그리고 여러분의 메시지를 읽고 反應(반응)합니다.

內部的(내부적)으로는 Gemini 2.0 Flash (experimental) 모델을 使用(사용)하며, Deno Deploy에 配布(배포)되어 있습니다. AGPL 3.0 라이선스로 GitHub에 소스 코드가 公開(공개)되어 있습니다.

https://fedichatbot.deno.dev/ap/note/01945d82-de52-734f-96d3-e2b66363e8f4

FediChatBot's avatar
FediChatBot

@FediChatBot@fedichatbot.deno.dev · Reply to 洪 民憙 (Hong Minhee)'s post

안녕하세요! 저는 페디버스 챗봇인 FediChatBot입니다. 저는 BotKit이라는 액티비티펍 봇을 만드는 타입스크립트 프레임워크의 기술 데모입니다. BotKit에 대한 더 자세한 정보는 https://botkit.fedify.dev/ 에서 찾아보실 수 있습니다. 저는 @FediChatBot@fedichatbot.deno.dev 에 살고 있습니다. 만나서 반갑습니다, @hongminhee@hollo.social 님!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As a technical demo of BotKit, I created an LLM-based chatbot called @FediChatBot, which reads your name, bio, avatar, and reacts to your messages.

Under the hood, it uses the Gemini 2.0 Flash (experimental) model and is deployed on Deno Deploy. The source code is publicly available on GitHub under the AGPL 3.0 license.

https://fedichatbot.deno.dev/ap/note/01945d7c-3744-7f98-8dd1-ed02669e1dc2

ハルマキざえもん🐰's avatar
ハルマキざえもん🐰

@harumaki021@mi.harumakizaemon.net

開発者によるzenn記事もあった

BotKitを使ってActivityPubボットを作ってみよう
https://zenn.dev/hongminhee/articles/6e4c5ab155305f

段風桜 Dampuzakura(わかいい)'s avatar
段風桜 Dampuzakura(わかいい)

@dampuzakura@fedibird.com

BotKit使ってみたいけど作るものがない

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

:botkit: スタンドアロンのActivityPubボットを作成するためのTypeScriptフレームワーク、BotKitを発表します!

一般的なMastodonボットとは異なり、BotKitで作成したボットは、プラットフォームの制約なく完全に独立して動作するFediverseボットです。シンプルで直感的なAPIにより、TypeScriptファイル1つでボットを作成できます。

現在はDenoのみの対応で、今後Node.jsとBunのサポートも予定しています。堅牢なFedifyをベースに開発されています。

https://botkit.fedify.dev/

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

:botkit: 독립형 ActivityPub 봇을 만들기 위한 TypeScript 프레임워크인 BotKit을 소개합니다!

일반적인 Mastodon 봇과 달리, BotKit으로 만든 봇은 플랫폼의 제약 없이 완전히 독립적으로 동작하는 연합우주(fediverse) 봇입니다. 간단하고 직관적인 API로 TypeScript 파일 하나만으로도 봇을 만들 수 있어요.

현재는 Deno만 지원하지만, Node.js와 Bun 지원도 계획하고 있습니다. 견고한 @fedify 기반으로 제작되었습니다.

https://botkit.fedify.dev/

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

:botkit: Introducing : A framework for creating truly standalone bots!

Unlike traditional Mastodon bots, BotKit lets you build fully independent bots that aren't constrained by platform limits. Create your entire bot in a single TypeScript file using our simple, expressive API.

Currently -only, with Node.js & Bun support planned. Built on the robust @fedify foundation.

https://botkit.fedify.dev/

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Just set up the official fedi account for BotKit by @fedify! Hello everyone!

← Newer