Johannes Kaindl105 downloadsInstall and update plugins from any git forge (GitHub, Forgejo, Gitea, raw URLs) with subscribable catalogs.

Install and update Obsidian plugins from any git forge — GitHub, Forgejo, Gitea, or raw URLs — including subscribable plugin catalogs, without waiting on the Community Store.
Auch auf Deutsch verfügbar: README.de.md.
Not every plugin you want to use is in the Community Store: your own plugins, an organisation's internal plugins in a private repository, and plugins that live on a self-hosted forge such as Forgejo or Gitea. AnySource Sideloader installs and updates these straight from their release pages, and keeps them up to date the way the Store does for its own plugins — with a visible check, release notes and a confirmation before anything is applied. It is a complement to the Store, not a replacement: plugins you already have from the Store are left alone unless you choose to track them.
It also removes a single point of failure. The Store depends on GitHub, and when a maintainer's account is flagged, their plugins can become uninstallable overnight — one such flag made 21 plugins disappear in a single day, none of them with a code problem. A plugin whose release also lives on another forge stays installable.
The full trade-off, including what a single self-hosted channel costs, is in Why there is only one distribution channel.
Because this plugin's whole purpose is working without the Community Store, its own first install is manual. It is the only one — from then on the plugin installs and updates everything else, including itself.
The steps are the same on macOS, Linux and Windows. You do not need to find your vault on disk and you do not need to unhide hidden folders.
main.js, manifest.json and styles.css. Those links always point at the newest release.<vault>/.obsidian/plugins/.anysource-sideloader there and put the three files directly into it.Longer version with the folder layout and what to do if something does not load: Install by hand.
Add a plugin. Run the command Install plugin from URL and paste a repository URL — the front page of the repo, not a release or file link:
https://github.com/user/repo
https://git.jkaindl.de/jkaindl/some-plugin
The forge type is detected automatically. → Add sources and catalogs
![]()
Click the preview for the full-size dialog
Subscribe to a catalog. A catalog is one JSON file listing several plugins, subscribable by URL under Catalogs in the plugin's settings. One is subscribed out of the box so the browse list is not empty; the plugins maintained by this repo's author are published as:
https://git.jkaindl.de/jkaindl/obsidian-catalog/raw/branch/main/catalog.json
It lives in its own repository rather than in this one: a catalog lists what exists, and that is not tied to this client's release cycle. → Catalog format
Already have plugins installed? They are recognised, not ignored. A catalog entry whose plugin is already present offers Track for updates instead of Install, and Track all N installed does the whole set. This matters because update checks only cover tracked plugins. → Adopt existing plugins
Check and update. Check now, the check-updates command, or once on startup. Each row
carries its own button — Check while nothing is pending, Update to <version> once a
newer release is known. Release notes are shown before anything is applied, and nothing is
applied without confirmation. The Sideloader updates itself the same way. → Keep plugins up to
date
Private repositories. Tokens are stored per forge host in Obsidian's keychain — never in
data.json, never in plain text. → Private
repositories
Two things are configurable, both in the plugin's settings tab:
SecretComponent — never into data.json,
never in plain text. A token is sent to every source on the host it belongs to, and to no
other host. This is what makes the organisation case work: a private Forgejo/Gitea instance
with internal plugins and one catalog, and members authenticating with a host-scoped token.Full list of settings, commands and what is written to data.json: Settings and
commands.
checksums.sha256 file, every downloaded asset is verified against
it before installation; a mismatch blocks the install.What checksums do and do not prove is set out in the security model — worth reading before installing anything you did not write.
Installing a plugin runs third-party code with full Obsidian API access, and the install
dialog is the only gate; checksums prove transport integrity, not authenticity. Private
GitHub sources are experimental for a measured reason, and the raw fallback only knows the
branch names main and master.
The complete list, with what is measured and what is not, is in Known limitations and the security model.
LICENSE).obsidian-kit/code-kit carry their provenance headers in src/vendor/.