← Back to the Obsidian Plugin Review Checker

Obsidian Plugin Review Checker vs. eslint-plugin-obsidianmd

eslint-plugin-obsidianmd is the official Obsidian team's ESLint plugin -- maintained under the obsidianmd GitHub organization, with around 40 rules that check a plugin's TypeScript/JavaScript source against the full range of Obsidian's developer guidelines. It is the deeper, broader tool, and it is meant to live inside a plugin's own project as a permanent lint step, not to be run once from a browser tab. This checker is a narrower, zero-install pre-flight pass for the specific patterns that most commonly delay a first community-plugin review.

What actually differs

Setup eslint-plugin-obsidianmd is installed with npm install eslint-plugin-obsidianmd --save-dev into an existing project, plus ESLint itself and an eslint.config.mjs; its type-checked rules also need a TypeScript-aware parser configuration. This checker needs none of that: open index.html and pick your plugin's folder, or run node check.mjs . from the plugin's directory with no config file at all.
versions.json cross-check eslint-plugin-obsidianmd's validate-manifest rule checks manifest.json's own structure, but none of its ~40 rules cross-check the current manifest version against versions.json's own entries -- versions.json is a separate file that ESLint, which lints source and config files, has no reason to open. This checker reads both files and reports it directly.
Breadth eslint-plugin-obsidianmd's ~40 rules cover command naming, settings-tab patterns, sentence case in UI strings, API-version compatibility, and a long list of DOM and platform API preferences -- far more than this checker looks at. This checker covers five things: required manifest fields, sample-plugin template leftovers, the versions.json entry, and innerHTML/outerHTML/insertAdjacentHTML usage.
When you'd reach for each eslint-plugin-obsidianmd running on every commit in CI, for a project already set up with ESLint and TypeScript. This checker for a quick pass before a first submission, or when you just want an answer without touching the project's own lint configuration.

What does not differ

Both tools exist because Obsidian's own published developer guidelines name these as review blockers, and both read from the same public documentation. Neither is the review process, and a clean report from either is not a guarantee of approval -- see this checker's own disclaimer on index.html, and verify against Obsidian's current plugin guidelines before you submit either way.

Common questions

Does eslint-plugin-obsidianmd already check my versions.json against manifest.json?

No. Its validate-manifest rule checks the structure of manifest.json on its own, and its sample-names and no-sample-code rules catch leftover sample-plugin template code, but none of its rules cross-check manifest.json's current version against versions.json's own entries. That specific cross-file check is what this tool's versions.json entry check does.

Do I need to set up ESLint to use this checker?

No. eslint-plugin-obsidianmd is installed with npm into an existing project and needs an eslint.config.mjs, plus a TypeScript-aware parser configuration for its type-checked rules. This checker needs none of that: open index.html and pick your plugin's folder, or run node check.mjs . from the plugin's own directory with no config file at all.

Should I use this tool or eslint-plugin-obsidianmd?

Both, for different jobs. eslint-plugin-obsidianmd is the deeper tool: around 40 rules covering the full range of Obsidian's developer guidelines -- command naming, settings-tab patterns, sentence case in UI strings, API version compatibility, and more -- wired into your project's own lint step so it runs on every change. This tool is a narrower, five-check pre-flight pass with zero setup: required manifest fields, sample-plugin template leftovers, the versions.json entry, and innerHTML/outerHTML/insertAdjacentHTML usage. Running this tool once before a first submission does not require touching your project's ESLint configuration at all.

Is this page affiliated with Obsidian or the eslint-plugin-obsidianmd maintainers?

No. This page is not affiliated with, endorsed by, or sponsored by Obsidian or Dynalist Inc. eslint-plugin-obsidianmd is maintained under the obsidianmd GitHub organization; it is named here only to describe what it is and is not, based on its own public repository and README.

← Back to the checker to pick your plugin's folder, or read fixing a missing versions.json entry for the mechanism this checker's own versions.json check is built on.