Post Your Build Ideas
Launch

How to Launch an Obsidian Plugin for Free: GitHub Release, Directory, Forum

Launch an Obsidian plugin by putting it on GitHub with a README, a LICENSE and a manifest.json, publishing a release whose tag matches the manifest version with main.js and manifest.json attached, and adding it at community.obsidian.md after linking your GitHub account. An automated review runs first and tells you what to fix. Once it is published, users install it inside Obsidian and later versions come straight from your GitHub releases.

Which files does the directory read from your repository?

Obsidian’s developer documentation for submitting a plugin (read on 13 November 2026 from its public docs repository) asks for three files in the root of the repository. The README says what the plugin does and how to use it, and an excerpt of it is shown on your listing, with relative image links rewritten to resolve against the repository, so screenshots committed to the repo will display. The LICENSE says how others may use the code. The manifest describes the plugin.

The directory reads the manifest at the head of your default branch, so what you commit is what it processes. Two rules in it matter on day one: the plugin id must be unique among all published plugins, and it cannot contain the word “obsidian”. Pick an id you will not want to change later.

If you started from one of Obsidian’s template repositories, the guide says you can skip the step of publishing to GitHub. Otherwise the reviewers need the source to be public, which is the whole premise of the directory.

Why does the release tag have to match the manifest?

Because that is how installation works. When someone installs your plugin, Obsidian downloads main.js, manifest.json and, if you have one, styles.css from the GitHub release whose tag equals the version in your manifest. A mismatch leaves the directory entry with nothing valid to download, and it is an easy stumble on this route.

  1. Set version in manifest.json to a semantic version in the form x.y.z, such as 1.0.0 for the first release.
  2. Create a GitHub release whose tag is exactly that version.
  3. Attach main.js and manifest.json, plus styles.css if the plugin has styles, as binary files on the release.
  4. Only then add the plugin to the directory.

The docs include a page on releasing with GitHub Actions, which turns the tag-and-attach routine into one push. It is worth setting up before your second release, when you will be tired of doing it by hand.

What does the automated review ask you to fix?

After you submit, the guide says the plugin is reviewed automatically and that the directory shows guidance for anything to correct. Your plugin will not be installable from inside Obsidian until errors from that review are resolved. You fix them by updating the repository and publishing a new release with a higher version number. You can edit the description and press Publish at any time.

The plugin guidelines show what reviewers look for, and they are specific enough to check yourself in an hour.

  • No `innerHTML`, `outerHTML` or `insertAdjacentHTML` with user-supplied text. Build elements with the DOM helpers instead.
  • Clean up on unload. Event listeners and other resources your plugin creates must be released when it is disabled.
  • Sentence case in the interface. “Template folder location”, not “Template Folder Location”, and no word “settings” in section headings inside the settings tab.
  • Quiet console. By default the developer console should show errors only.
  • Rename the placeholders. The sample plugin’s MyPlugin and SampleSettingTab class names should become yours.
  • Mobile. The guidelines include sections on Node and Electron APIs and on lookbehind in regular expressions, so check how the plugin behaves on mobile before you claim it works there.

What happens to updates after the first approval?

You only submit the first version. After it is published, users download new releases directly from GitHub inside Obsidian, so an update is a new tag and attached files, not another review of the listing. That removes the usual fear of shipping fixes in launch week, and it shifts the care onto your release routine: a broken main.js on a fresh tag reaches users at once.

Keep a short changelog in the release notes so the people who update can see what changed. If you want a ready structure, the changelog template has one.

A one-week plan

Seven days from working plugin to announcement
DayJobDone when
1Rename the sample classes; write the README with two screenshotsA stranger can follow it without asking you
2Add the LICENSE; choose the plugin idId is unique and has no “obsidian” in it
3Check the guidelines list against your codeNo unsafe HTML, listeners cleaned up
4Publish release 1.0.0 with the right files attachedThe tag equals the manifest version
5Link GitHub on your Obsidian profile; add the pluginThe directory accepts the manifest
6Fix review feedback with release 1.0.1The automated review is clean
7AnnounceForum post and Discord message sent

Where do Obsidian users hear about a plugin?

The guide names two places for announcements: the Share and showcase category of the Obsidian forum, and the #updates channel on Obsidian’s Discord, which needs the developer role to post in. Lead with the problem in note-taking terms, such as “find notes you forgot linking to”, and attach a short clip of the plugin working on a real vault.

Add a public page that points to the repository by choosing to launch your plugin on this board. It costs nothing, takes one verified email, and gives you a followed link to the repository or the listing. Note-taking tools sit close to the productivity ideas other builders post, and where to launch Obsidian plugins lists more venues. If you want your first ten testers to be honest, feedback on an MVP explains how to ask without leading them.

Frequently asked questions

How do I submit an Obsidian plugin?

Add a README, LICENSE and manifest.json to a public GitHub repository, publish a release whose tag matches the manifest version with main.js and manifest.json attached, then sign in at community.obsidian.md, link your GitHub account and add the plugin. An automated review follows.

Why can’t I install my plugin from the directory yet?

Obsidian’s submission guide says a plugin is not installable until errors from the automated review are fixed. Read the guidance the directory shows, update your repository, and publish a new GitHub release with a higher version number. Also confirm that the release tag equals the version in your manifest.

Do I need to resubmit for every update?

No. The guide says you only submit the initial version. Once the plugin is published, users download new releases from GitHub inside Obsidian, so publish a new tag with updated files and keep your manifest version in step with it.

Can my plugin id include the word obsidian?

No. The submission guide says the id must be unique across all published plugins and cannot contain obsidian. Choose a short id based on what the plugin does and keep it stable.

Written by Post your build ideas with AI assistance and edited for this site. Where a page names another product, the facts came from that product’s own pages on the date shown above; terms change, so check them before you rely on them. About the publisher.