Home Deep Dive - Firefish Groups

Deep Dive - Firefish Groups

Sharing my understanding of Firefish Groups Syndication

Groups are private conversations between multiple individuals on a Firefish instance. They are a separate feature from notes (posts) and do not appear in any timeline. Direct Chats (1-1) can occur across Misskey forked instances (Misskey, Firefish, Iceshrimp). Group Chats, however, are restricted to local users of your instance. Chat messages are not encrypted at this time (neither are Mastodon’s).

I’m sharing what I know about Firefish Groups. Hopefully, others can fill in the blanks with their knowledge and experiences as well. You can share your thoughts by responding to my post on your platform of choice.

Inconsistent terminology

Mastodon calls the concept of direct or group chat “Private mentions” on the website. These are just normal posts that have a visibility of “Mentioned people only” (identified as “direct” post on the backend).

Some apps use the terminology of “Conversations” (Elk). Trunks.social has them listed as “Alerts”, barely distinguishable from regular posts.

Phanpy and Ivory group them with public mentions in a “Mentions” page. Ice Cubes and Firefish calls them “Direct Messages”. Mona and Feditext call them “Messages”.

At the core, all of these are the same thing.

It’s no wonder users are confused about private chats on the Fediverse!

Encryption, Chat and the Fediverse

Right now, your chats aren’t encrypted. They aren’t on Mastodon either. Be aware that on most all Fediverse platforms, this is true. The Pixelfed creator is working on a new fediverse app called “Sup” that will have encrypted messaging.

Firefish Groups vs Firefish Channels

There is sometimes confusion between Groups and Channels, especially with the popularity of the Threadiverse lately. Firefish Groups are more like Mastodon private mentions or Twitter (X) direct messages.

Channels would better match what we understand of kbin or Lemmy groups. Currently channels are local only and are not federated, however. Visitors can still visit a channel and view the contents, but that content isn’t available to share outside of the instance.

Group chats are not posts with direct visibility

Group discussions never appear in timelines (Home, Social, Local, Federated) - they are treated as a completely separate feature. This is distinct from Mastodon, where DMs are just regular posts with a visibility of “only people mentioned”.

There IS a separate Mastodon API endpoint for “conversations” to read back only direct messages you have, but this is just a convenience endpoint - they are truly just regular old posts in a nicely packaged structure.

Some Mastodon apps will use this endpoint to place DMs in a separate area and then filter them out of your home timeline manually; but they are still just post objects returned in your home timeline by default, along with your normal public posts.

Mastodon direct visibility posts also run the risk of having replies marked with more public visibility by accident. This can’t happen with Firefish groups. 🎉

If you mention someone outside of the group (direct @user mention) in the chat, the mentioned user is not notified, nor are they invited into the group / conversation.

This is a real concern on Mastodon instances, where you can accidentally bring someone into a direct message thread by mentioning them! 🙈

Direct messages (private mentions) still exist on Firefish

You can still send and receive posts with a visibility set to “Direct”, meaning only those mentioned will be able to see it. Why have both?

Because posts with a “direct” visibility allow for messaging across instances. Remember, group chats are only between users of a specific instance, no outsiders!

These direct messages do NOT appear in the Firefish chat / group chat section, but you do get a notification about them. Mastodon just shows them directly in the Home timeline with a small header “Private mention” but otherwise they look exactly like other posts. There’s a callout to “Private mentions” for basically a direct message only timeline.

Thanks to @testing@blahaj.zone for pointing out that Direct Chats (1-1) can be made across Firefish and Calckey instances. I assume Iceshrimp as well, tho I don’t have an account on an Iceshrimp instance. Interesting note, Misskey (at last from what I can see) doesn’t have Chat.

Group management

Groups can be found as a separate section under “More!” called Groups. This is where you manage the basics of your groups, but you can’t start a conversation from here. Both your created groups and your member groups are listed. You can leave groups where you are NOT the owner.

Screenshot of the group management page

As an owner, you can:

  • Create a new group
  • Rename a group
  • Add users to the group
  • Remove users from a group
  • Transfer ownership of the group to someone else
  • Delete the group

Owners don’t have permission to delete chat messages of other group members, although everyone can delete their own.

If, for some reason, you really needed those messages gone, you’d have to delete your Group and then recreate a new one.

Group User management

As discussed previously, only local instance users can join the group.

Screenshot of the user management page

When you send an invite to someone to join the group, and they accept, they will be able to see all previous message history.

The owner is not notified when a user accepts or rejects the invitation.

The user is not notified if they are removed from the group.

You can invite and remove the same person over and over again.

Removed users’ previous chats remain in the chat, and there’s no way to delete them.

Having a conversation

It’s mostly just like any other group chat you’ve seen.

Screenshot of a group chat

Click on the chat icon, and the choose the Group tab. If you’re a part of a group, it will appear here and you can select it to start chatting.

You could also click on a notification about the chat and be taken directly into the mentioned chat.

You get an “X is typing…” notification when someone is typing a message, which is nice.

You can use emoji, add media, and even MFM - but note that the MFM reference guide isn’t included here for assistance.

For any media attached, note that the image does NOT appear in your public images listed on your profile. However, if you look in your Drive, the images/video/etc do appear there with no differentiation, so if you shared something privately, you shouldn’t panic.

You can’t edit a message, but you can delete it by hovering over the message - a tiny X appears on the message, just click it and it’s deleted. Only the original poster can delete their messages.

Group and Direct chat messages aren’t included as results in the global Firefish search.

Developer References

You can find the API documentation for Groups on any Firefish instance. I usually point people to firefish.social for the documentation, but they are on any instance at /api-doc.

Group Management

Message Management


Firefish Groups are a great addition to the current set of features, which are plentiful! It can provide a safer way to communicate with individuals over the current Mastodon implementation of direct person to person post visibility. There’s still work to be done, however.

Mentioned below will be any issues and requests I hear discussed over the next week.

Possible issues

If I create a chat message with images only, I can’t delete it, and that means no one can delete them.

When you upload media in a chat, you can’t add alt text.

When you create a new chat group (More > Groups), you have to refresh the screen to see it. You then have to jump over to a different area (Chat > Groups > Start a new chat) and then select the group to chat with, which is confusing.

Feature requests

Similar to how profile images are identified in Drive, identify Group attachments with a similar marking, showing it is not being shared publicly. Or place it in a Groups folder, etc.

Give owner the ability to remove or hide chat messages from other people.

Hide all chat messages from someone that has been removed?

Theming would be fun (per group - bubble colors, backgrounds, fonts, etc)

Special effects (slam, cheer, etc.)

Group Widgets (shared calendar, rss feed, etc.)

This post is licensed under CC BY 4.0 by the author.

Firefish Plugins - Final Thoughts

Mastodon Featured Profiles


Total Interactions: 23
13 Likes 1 Links 2 Posts 7 Re-posts 0 Bookmarks 0 Replies


Posts, Re-Posts and Bookmarks

  1. This test verifies that you accept a Webmention request that contains a valid source and target URL. To pass this test, your Webmention endpoint must return either HTTP 200, 201 or 202 along with the appropriate headers.

    If your endpoint returns HTTP 201, then it MUST also return a Location header. If it returns HTTP 200 or 202, then it MUST NOT include a Location header.


No webmentions were found.