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
- 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.
- 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).
- Licensing: a LICENSE file, compliance with upstream licenses (README attribution if required), and no use of "Obsidian" that suggests a first-party product.
- 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.
- 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.



