Instance Assistant for Lemmy & Kbin v1.2.0 is now available on Chrome & Firefox!

cross-posted from: lemmy.ca/post/1418762

I’ve made a number of improvements since the last time I was posting about my extension. The update is now available on both Firefox and Chrome web stores.

For questions / support: !instance_assistant

TLDR: See the respective download pages on Firefox & Chrome. The screenshots and features list are mostly self-explanatory.

Note on versions:

  • Firefox has a more recent 1.2.1 version, because my build script missed some files while uploading v1.2.0. It doesn’t look like Chrome had this issue.
  • I’m uploading v1.2.2 to both stores today, which will bring the two missing features to Chrome as well. After 1.2.2, all browsers should have the same features. See below for details.

So how is this different from other similar extensions?

You may have noticed the extension’s name changed to be more generic (and include Kbin 🥳). I’m trying to make this a more well-rounded extension, and that means I’ve incorporated some features from the other extensions, in my own way.

Lemmy Links, Kbin Links, and the other forks:

This is a great extension that replaces links on your page with versions that go to your home instance. However, in order for this to work, it needs to recursively check every element on your page whenever DOM content (the stuff the browser is reading) changes. This is somewhat resource intensive, and while testing I ran into lag and freezing issues. As such, I decided to not include this functionality in the same way.

Instead, I’ve added a right click context menu that does the same thing. This way the user can pick which links they want the extension to convert, and it’s a lot more efficient resource wise. While it’s an extra click, I felt this was a reasonable compromise. However, I’m open to feedback!

NOTE: The context menu is available on Firefox, and it will be available in Chrome in about a week, depending on when they approve my update.

Lemmy Home Instance Helper

This is another extension which checks if you are logged in to an instance, and it creates a button to the search page if you are not. As my extension creates a button on any foreign instance, the search page is only helpful when a community hasn’t been loaded into your home instance yet (ex. because you’re the first one to try accessing it).

To deal with this, my extension modifies the “Community not found” pages with more instructions, as well as buttons to trigger the fetch process or to open the community elsewhere. See this screenshot for an example. Again, open to feedback!


As always, I’d love to collaborate with other people while building this. I’m still cleaning up my code, but feel free to look at the GitHub. If this extension gets popular, I will definitely need help for translations and for things like getting the extension on Safari (I don’t have a recent Apple device to sign the extension with).


Note on permissions:

  • The current versions request “Access to all sites”. This is because the extension needs access to any page that contains “/c/”, “/m/”, or “/post/” in order to create the sidebar buttons. While the extension only looks for those pages, it will show up as “Access to all sites” when installing. Once I have a proper welcome message and settings page, I plan on making this permission optional so you can just use the popup menu if you would like.

Summary of Recent Changes:

  • Added support for Kbin
  • Fixed issue where button wouldn’t load when navigating to a community within Lemmy (available on Firefox, should be on Chrome in a week).
  • (NEW) Right-click context menu on Lemmy/Kbin community links to let you open them directly. You can test them out here: lemmy.ca/post/1282303 (available on Firefox, should be on Chrome in a week)
  • (NEW) Information and buttons added to “Community Not Found” error pages to let you fetch the community or open it elsewhere.
  • Updates to sidebar button to state the current selected instance and provide more detailed instructions as a dropdownList
  • Refactored the code to remove more unnecessary permissions.
  • Another pile of bugfixes, UI improvements, and better wording for instructions.

Future Plans:

  • This is complete and will be in v1.2.2. Bringing over the new changes to Google Chrome. Since chrome requires Manifest 3, I still need to iron out some issues with the service workers. The missing features are all related to the background processes that are running on the Firefox version
  • Pushing to other browsers: Microsoft Edge & Opera are still reviewing v1.2.0. Unfortunately, I don’t have any immediate plans for Safari, as I don’t have a device that can sign the extension. I am looking into getting help for that.
  • Setting up a proper Welcome page, Settings page, and Options menu to allow users to turn off features that they don’t like. This will also let me make “access to all sites” optional.
  • Finishing the translations’ setup so that people can contribute other languages to the extension.
  • Adding an option to save your own instances to the popup, for those that have multiple home instances.
density ,
@density@kbin.social avatar

I really appreciate your work!

I would really like the option to choose between multiple instances (even accounts on same instance??), which I think is the very last line of your post. :)

On reddit I was very grateful to the RES account switcher, and mobile app that let you easily switch accounts. I would probably never have actually gotten into reddit without those. It let me use completely different parts of reddit to express and explore different interests I think one of the things that made reddit the best social media platform was how pseudonymous it was. Total opposite of facebook "real name policy" attitude.

In the lemmy/kbin situation I am not sure how the interface would be. Need 1) some kind of persistent switching interface, 2) reminders of what account you are in. In RES it showed you your account name at the top of the page in the selector, and optionally above every comment box so you didn't accidentally post as the wrong account.

In the meantime I guess I will eventually install every available extension that does this and assign each one an account lol. Or pick one and make several local forks and install separately. hmm

cynber OP ,
@cynber@lemmy.ca avatar

Hi there, sorry I responded to a lot of people but missed this one somehow.

It let me use completely different parts of reddit to express and explore different interests I think one of the things that made reddit the best social media platform was how pseudonymous it was. Total opposite of facebook “real name policy” attitude.

I did the exact same thing, and I’ve been trying to emulate this the best I can on Lemmy. The closest I’ve gotten is by using Firefox containers on the web, which lets me be signed in to multiple accounts. On mobile, there are a few apps that have multi-account support (I’m using Connect), but I haven’t seen one where I can choose which account to comment with.

As for the extension, I added the ability to customize the instance list, which should help with quick switching! It should be in the next update :)

density ,
@density@kbin.social avatar

Containers has this weird problem where it's impossible to delete them once you FF sync them.... you will always get new copies of very old containers over and over again. It's a giant mess. So I got discouraged from using them. Every year or 2 I have another look to see if anyone has solved the problem without having to make a new FF sync account which I don't want to do. Maybe I will have another look at the state of things because I have been wishing to have this ability recently with the threadiverse. Just warning you: do not sync the containers! You will regret it.

Mobile is sort of easier because you can repeatedly "install" the PWAs and they seem to have separate sessions. It's not as slick as using one of the reddit clients that allowed changing identities on a per-comment basis but also not bad. I guess they are using some sort of containers implementation which is hidden from the user. If I would get around to jumping through the hoops to install addons on FF mobile, I wonder if your addon would work and if the configurations would also be uniquely stored in the PWA sessions. I've hardly used addon in mobile. If it did function that way, it'd be like >60% of the way to a kbin client. Which doesn't otherwise exist AFAIK, but I could have missed something. And a lemmy client of course.

If it was possible to direct a "share" in android to a specific PWA it might be a close enough to switching per-comment. You could share the location to the other PWA and pick it up from there. But that sounds like something that wouldn't be allowed. If it would even be theoretically possible. About which I have no idea.

What is Connect? I have KDE Connect and there is something called Mozilla Connect but I guess you are referring to something different.

PriorProject ,

Why structure this as a browser extension rather than pull-requests to the Lemmy web-ui? With Reddit, there was no path to contribute an improvement to the web-UI, so an extension was the only viable path to fix anything. By my sense is that the Lemmy core devs have been very receptive to external contributions, and have welcomed improvements from UX/UI experts.

Have you considered trying to adapt this to the Lemmy codebase and getting it merge so it’s available to everyone without a having to seek out and install a browser extension?

cynber OP ,
@cynber@lemmy.ca avatar

I’ve thought about it, but it’s not something I’ll be able to do anytime soon. If it was something like making the extension “official” or having a way to expose web accessible resources for the sites to use, that would be something I could try. Doing away with the extension entirely is harder.

Unfortunately I don’t know much about having a persistent cookie (with the home instance) that different sites can get from the browser, and I don’t know about another way to generate the links. That’s also something which might have privacy concerns if implemented poorly, because any site will have access your home instance (and whatever other information is required). A browser extension was easier to implement because thats something that’s meant to work with many sites, and everything happens locally on your device, so I was more comfortable publishing it.

Some of the other features, like the “trigger a search” button on the community not found page, or even just more instructions on what “community not found” means, those are changes that I can more easily push to the codebase. If it’s not already being worked on, then I’ll look into doing it myself :)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • [email protected]
  • All magazines