A Chrome/Firefox extension that simplifies follow and post interactions on Mastodon instances other than your own.
Features:
- Supports Mastodon v3 + v4 (some features v4 only)
- Follow, boost, bookmark, reply, fav, vote polls and mute/block on external instances while only being logged in to your home instance
- Show following status and toot status (boosted, faved, bookmarked) on external instances
- Single click to execute action only, double click to redirect to content on home instance
- Reply button on external instances always redirects to home instance and enters reply-mode
- Hide muted content on external instances if enabled
- Customizable
Supported browsers:
- All up-to-date Chromium browsers, including Kiwi and Yandex browsers on Android
- Up-to-date Firefox (v107+), including Firefox Nightly on Android, Orion on iOS (untested)
Important notes:
- Data is processed locally only
- Performance depends on your home instance and to some degree on the external instance you are browsing (read more below)
- Some toots cannot be resolved to your home (in cases where searching for the post manually would not work either)
- Installation
- Setup
- FAQ
- Screenshots / GIFs
- Manual installation
- Additional notes
- Todos / Planned features
- Contributing
including Nightly for Android, Orion on iOS (untested)
Note
- If webstore release is outdated, use the manual installation method to install the latest version
- Special installation steps for Firefox on Android
If you like this addon, please consider donating: paypal.me/lartsch
- Make sure you are logged in to your home instance
- Click the extension icon or open its settings page
- Set your home instance (required)
- Check out the other settings (optional)
- Click the "Submit" button to save
If you have set your home instance correctly, you can now interact on other Mastodon instances.
Redirect settings
- Enable (default: on): Set if redirects (when replying or double-clicking) should be performed at all
- Prompt (default: off): Set if a prompt should be displayed before redirecting, including the URL
- Open in (default: same tab): Set if redirects should happen in the same or a new tab
Other
- Actions (default: on): Set if actions (following, boosting, etc.) should be performed when clicking or double clicking - Usage tip: Disable this if you only want redirects on double click or when replying without automatically performing the action
- Hide muted/blocked (default: off): If enabled, your blocked/muted users/instances will be synched every 60 seconds and all matching toots, boosts and toots with mentions will be hidden - Note: There are cases where hiding can fail and this is disabled by default because it can decrease performance
- API delay (default: on): If enabled, there can only be one API request to your home instance per 500ms - Note: Disabling this will likely result in the extension not working because your home instance uses rate limiting if too many requests come from your IP. 500ms has proven to prevent error 429 for the instances I have tested
Mode
- Run if logged in (default: off): Enable FediAct on external instances if you are logged in there as well
- Blacklist (default) / Whitelist: Run the extension on all domains except those on the blacklist / Run the extension on no domains except those on the whitelist
Why does it need permission for all websites?
The addon needs to determine whether or not the site you are currently browsing is a Mastodon instance. For that to work, it requires access to all sites. Otherwise, each existing Mastodon instance would have to be explicitly added.
Can I use this on Android?
Yes! There are three options that I am aware of: Kiwi Browser (Chromium with add-on support), Yandex Browser and Firefox Nightly (see below)
Can I use this on iOS?
There is only one untested way to use FediAct on iOS: Orion Browser. I can not test it myself as I own no Apple devices and this is not guaranteed to work - I can't give support for this. As of now, this addon does not support Safari. Safari support will not happen at this time since Apple wants 99$ per year for the Developer Program membership, which is a requirement.
Can you add feature XY?
Feel free to create an issue here on GitHub and I will look into it.
v0.8.0
- Download the latest GitHub release for your browser (Chrome or Firefox)
- Unzip the downloaded file somewhere
- Go to your Chrome extension page (URL: chrome://extensions) and enable developer mode
- Click the "Load unpacked" button and then select the unzipped folder
Note: Some Chromium browsers allow you to directly load a .zip file - you can use it if available
- Open the debugging page (URL: about:debugging)
- Select "This Firefox"
- Click the "Load Temporary Add-on" button and then select the downloaded Firefox ZIP file
For a while now, Firefox on Android has only allowed installing from a curated list of addons, preventing installation of anything else. The following instructions will guide you through installing it from the webstore anyway.
Requirements:
- Firefox Nightly for Android
Steps:
- In Firefox, go to Settings > About Firefox Nightly
- Click the Firefox logo 5 times to enable Developer options
- Go back to Settings > Custom Add-on Collection
- Enter the following data:
- ID: 17665294
- Name: FediAct
- Click OK, Firefox will close - reopen it
- FediAct will now be available in the Add-ons menu of Firefox Nightly
To update the addon instantly, simply remove and re-install it. I don't know if or when auto-update triggers in Firefox.
I included all of the default add-ons in the custom collection, so you will not miss out on any of those. Of course, you can create your own collection as well.
- Support for other Fedi software is planned
- There are several reasons why resolving/interacting might not work including:
- Not being logged in to your home instance
- Element identifiers have changed / the instance uses an unsupported flavour
- The external instance you are browsing or the originating instance of a toot is not Mastodon
- Your home instance has strong rate limiting and limited your IP
- Your home instance / the external instance / the original instance of a toot have defederated / are moderated
- The toot has not yet federated to your home instace (follow the account and toots should start federating)
- The instance you are browsing does not use 302 redirects for external toots
- The network conditions of your home instance or the external instance are bad (slow speed)
- That a toot is set to unlisted on its original instance may play a role
- There can be delays because API calls have to be made and it is tries to avoid error 429 (too many requests). Especially if a page has many toots or you are scrolling through a feed really fast.
- If the extension fails to resolve content, the affected buttons will behave as if the extension weren't active (popup modal) and a notice ("Unresolved") is added to the toot
Check out the GitHub project to see planned features and todos. They are sorted from most important to least important.
Feel free to create issues for bugs and feature suggestions. Even better: Create pull requests for whatever improvements you can make! :)
@raikasdev because I stole his fix for cross-browser storage API support
@rosemarydotworld because I customized and use his awesome jQuery.DOMNodeAppear where MutationObservers and delegation failed