Addons synchronisation

TLDR : add ability to synchronize Addons between devices

I know that this is a subject that has been mentioned in this section before but I wanted to post it again since I do not understand why it is not present in the app, thus I would like to know if it was considered a bad suggestion or if it was because of the time it would take to integrate it.

Let me advocate for this suggestion by giving thoughts about it, hoping you’ll be convinced :

  • I use Anki on multiple devices (mobile, desktop and laptop) and I think the ability of syncing decks seamlessly is wonder since it allows the user to not care about doing it manually, which would be a pain considering the multiple states cards can be in. The only issue I have is that I am still limited in my use of Anki because I rely on multiple Addons, and without them, my sessions are much less efficient. Since part of these Addons are ones I made and update from time to time, propagating the updates between devices is a bit inconvenient when changing configurations.
  • I think that adding this feature is not a dealbreaker since in my sense it does not seem too complex. You’d only have to store Addons’ codes and link them to an account. Since Anki stores for free data that seems much larger for syncing decks (a thing I appreciate greatly Anki’s staff for), I suppose storage would not be an issue. Finally, config files of the Addons can also be synchronized to replicate each user’s configuration, as they are already a good way for developers to provide settings customization to a user, config synchronization would be a good argument to incite developers to use Anki’s configurations, because I already saw some Addons that need to be customized by editing manually their source code, a thing that obviously cannot be synced between devices.
  • I would willingly give any help I can provide to implement such a feature, but to my understanding Anki’s server’s synchronization code is not publicly available.
  • There could be an issue when making sure that the implementation of this feature is backward compatible, but I’m not sure of this since I’m not familiar with Anki’s code history.

Thank you to anyone who read that, if possible, I would love to hear others’ view on the question so feel free to comment and correct me if I made false assumptions.

Seems like a recipe for disaster if you accidentally install a malware add-on.

You could make an add-on which does something like this. This would be the one add-on you would need to install on each device. It could make an empty card with a list of all of the installed add-ons, and that would sync with your decks. On other devices, the list in the empty card would be read and installed.

Still seems like a recipe for disaster.

1 Like

Thank you for reading my post and giving me your thoughts about it.
I wasn’t aware that malware addons were a common issue but I guess that if you installed one without noticing it being malicious, the damage would already be done whether synced or not.
To address this issue you could prompt users to double check the addons for which they enable synchronization.
Moreover, I may be able to implement this feature through an addon, but it would probably need some dark sorcery which is in my sense always worse than having an official way of doing it.
I may have misunderstood your point so feel free to correct me

Maybe Google Drive (or something similar) could be used to sync the addons21 folder.

I think you’re underestimating the complexity required to implement file syncing robustly when folders are involved, and I’d rather the engineering time were spent in other areas that benefit a greater number of users. You should be able to keep that folder in sync using external tools, such as linking the folder into Google Drive/Dropbox/etc.


Thank you for reading and replying to my suggestion

Maybe I didn’t explain my idea enough but I am not talking about folders and files syncing. The feature I’m suggesting would be to sync the list of addons installed (represented by the code we use to install them), and the version of each addons for compatibility issues, and then, when connecting to a new device, installing one by one the addons present in the synced list through the regular Anki addons installation process (but doing it automatically on prompt). It wouldn’t need to sync more than one JSON file similar to a package.json dependency file if you’re familiar with NPM.

The additionnal feature I suggested was config files synchronization which is indeed a bit more complex if we want to do it properly (through something like a versioning system) but doesn’t involve at all any folders to sync. And if we’re talking about synchronization conflicts, the users could just be prompted to resolve the conflicts themselves by choosing which config to prefer in a similar way that synchronization conflicts are resolved for Anki decks when replacing AnkiWeb’s version or local Anki’s version.

I’d like to emphasize again that I am willing to try implementing this myself but that I would just like to be pointed in the right direction since the synchronization protocol, and AnkiWeb’s server internal details aren’t detailed in documentation as far as I know.

Looking further to your replies and thoughts about this

Just in case, the IDs of active AnkiWeb add-ons can be found via Help > About > Copy Debug Info.

===IDs of active AnkiWeb add-ons===

and used at Tools > Add-ons > Get Add-ons to install all of them at once.

You can paste multiple codes, separated by spaces.


Oh I didn’t know thank you for telling me but I think that my suggestion is still pertinent since it makes the process of using multiple devices at the same time (daily) smoother, and this doesn’t solve the config issue of addon synchronization. I know that Anki’s coding forces are maybe well used elsewhere but it doesn’t seem much of an issue to implement this since it only involves config files and a dependency tracking file.

Perhaps you’ve overlooked that user_files may contain arbitrary files and folders. I still think you’re underestimating the work required, and I neither have the free time to help you with it, nor want to be burdened with maintaining it if you decide to move on in the future. I’m afraid at this time, it’s a no.

1 Like

I understand your position and I do have overlooked the existence of the user_files folder.
You are probably right, it isn’t an insignificant change to implement this feature if it’s then necessary to maintain every complex part it involves. Thank you for explaining it to me.

1 Like

Just my 50 coppers - I think even the most basic sync in the form of a list of add-on codes, without automatic install or anything, would be insanely helpful in the case of a necessary new installation.

But I also understand that this is not trivial to implement.