Skip to main content

Command Palette

Search for a command to run...

Charging for an Obsidian plugin: the README disclosures that keep you in the Community directory

Updated
•4 min read•View as Markdown
Charging for an Obsidian plugin: the README disclosures that keep you in the Community directory

Charging for an Obsidian plugin: the README disclosures that keep you in the Community directory

Not legal advice. Rules come from Obsidian's "Developer policies" page (docs.obsidian.md/community-directory/developer-policies, source text archived 2026-10-15, Asia/Shanghai). Re-read it before you submit. This article links no plugin.

You can put a paywall, a login, or a banner in an Obsidian plugin and still stay listed. The condition: say so in the README. A few things are banned outright, and no README wording fixes those.

1) Lead answer

  1. Banned outright: obfuscated code, dynamic ads loaded over the internet, static ads outside your own UI, client-side telemetry, self-installing or self-updating code/dependencies, and themes loading network assets.
  2. Allowed only if "clearly indicated in your README": payment for full access, account for full access, network use (which services, and why), file access outside vaults (why), static ads inside your own UI, server-side telemetry (with a privacy-policy link), closed source (case by case).
  3. Licensing: a LICENSE file, compliance with upstream licenses (README attribution if required), and no use of "Obsidian" that suggests a first-party product.
  4. Forks: only with the original author's public written approval, or after 6+ months of inactivity plus a 30-day notice. The original author must be credited.
  5. Enforcement: users open an issue first and escalate after 7 days. Obsidian may give you "a reasonable timeframe" or remove you immediately (malicious, uncooperative, repeat).

2) Map your monetization to the policy

What your plugin does Status README must say
Pro features behind a license key Disclosure "Payment is required for full access", and that the key check calls
Sync via your server, sign-in required Disclosure Account required; network use: which host, what is sent, why
"Upgrade" banner in your settings tab Disclosure Static ads in plugin's own interface
Banner injected into the editor or status bar of other views Not allowed: outside your own interface n/a, remove it
Ads fetched from an ad network Not allowed: dynamic ads n/a
Usage analytics sent from the app Not allowed: client-side telemetry n/a
Server logs of your own API calls, analysed Disclosure Server-side telemetry + privacy policy link
Minified bundle with readable source in repo Fine n/a
Obfuscated license check Not allowed n/a
Auto-downloading a newer binary Not allowed: self-update n/a

Not verified: where the line between a license-key check and "telemetry" falls. The page does not define it. Disclose the call as network use either way.

3) A README block you can adapt

## Disclosures
- Payment: core features are free; <features> need a paid license.
- Account: not required / required for <feature>.
- Network: contacts <host> to <purpose>. Sends <data>. Nothing else.
- Files outside the vault: none / <path>, because <reason>.
- Ads: an upgrade notice appears only in this plugin's settings tab.
- Telemetry: no client-side telemetry. Server logs: <what>, see <privacy policy URL>.
- License: <SPDX id>. Third-party code: <list + attribution>.

4) Forks and "Pro" clones

Re-publishing a popular free plugin with a paywall is a fork. It needs public written approval, or proof of 6 months of silence followed by a 30-day public notice. If you only borrowed the idea, the policy says to start a fresh repo that inherits no code without permission.

5) Not verified

  • The length of the "reasonable timeframe" before removal.
  • Whether disclosures are checked at submission or only after a report.
  • Whether a plugin removed from the directory keeps working for existing installs.

6) Bottom line

Payment, accounts, and in-plugin upsells are allowed if you disclose them. Hidden behaviour is what gets plugins removed: ads outside your view, client analytics, obfuscation. Write the disclosure block before the paywall code.

More from this blog

K

Kendeepp

30 posts