Robert Fleming74 downloadsLock notes against editing until unlocked, with a frontmatter-synced lock that blocks the editor and other plugins.
Lock a note so it cannot be edited until you unlock it — like Notion's "lock page", but for Obsidian. A locked note shows a lock icon in the view header and an optional slim banner; unlock with a click, a command, or the file menu.
Page Lock is deliberately small and local-first. It does not collect telemetry or make network requests. The only thing it ever writes to a note is the lock property itself.
locked: true by default), so it syncs to your
other devices along with the note itself.Keep a routine protected against accidental edits, with the lock available in the note header.
The header lock remains visible below the status area, with the optional banner hidden.
Show a visible unlock reminder above the note when you want it.
Hide the banner while keeping protection active, and require confirmation before unlocking.
The lock lives in the note's frontmatter (default property: locked). While it is set:
Unlocking simply removes the property. Because the lock is a plain frontmatter property, it travels with the note through sync, backups, and vault moves.
Markdown notes only. The lock applies wherever the note is edited — tabs, split panes, popout windows, and embedded editors. Canvas files and other non-markdown files are not affected.
Show locked-note banner — Turn off to remove the banner and use only the header lock icon. Editing protection stays active. This applies immediately to open notes.
Lock property name — the frontmatter property that marks a note as locked
(default locked).
Confirm before unlocking — ask before unlocking, preventing accidental unlocks from a stray tap (default off).
Page Lock replaces this project's former note-lock plugin ID. Disable the old plugin before installing this version; do not enable both copies. Preserve its data.json in the new page-lock folder and update command hotkeys to the new prefix. The locked frontmatter property is unchanged, so existing locked notes stay locked.
For an existing installation of Robert Fleming's Note Lock, close Obsidian and run python3 scripts/migrate-install.py /path/to/vault from the source repository before deploying Page Lock. The script backs up the old installation and preserves settings, enabled state, and command hotkeys. Restart Obsidian afterward. This migration is not for the unrelated community plugin also named Note Lock.
The screenshots were captured before the rename and still show the former name; the locking interface is unchanged.
Once accepted, install Page Lock from Settings → Community plugins → Browse.
Copy main.js, manifest.json, and styles.css from a release into:
<vault>/.obsidian/plugins/page-lock/
Then reload Obsidian and enable Page Lock under Community plugins.
Requires Node.js 20 or newer.
npm install
npm run dev # esbuild watch mode
npm run build # type-check + production build
npm run lint
npm run build and npm run lint.npm version patch, npm version minor, or npm version major. The version script keeps
manifest.json and versions.json in sync.1.0.1). GitHub Actions builds the plugin and
attaches main.js, manifest.json, and styles.css to the GitHub Release.On the maintainer workstation, use the USA OS plugin release command. It pushes the exact
main commit to private Forgejo and public GitHub, verifies both tips, and atomically updates
the primary vault's runtime copy while preserving its settings.
Bug reports and pull requests are welcome. Please keep the plugin focused: it should remain a
simple, dependable note lock that respects local-first Obsidian workflows. Before opening a
pull request, run npm run build and npm run lint.
If Page Lock improves your workflow, you can support its continued development on Buy Me a Coffee.
Robert Fleming directed and reviewed this work. Recent refinements, documentation, and screenshot preparation were developed in collaboration with OpenAI Codex, powered by GPT-6. Thank you to the AI collaborators who helped bring these ideas into a usable community plugin.
MIT
A ready-to-use screenshot kit includes demo notes and capture instructions.
Bug reports are welcome in this repository’s issue tracker when available. Include your Obsidian and plugin versions, desktop or mobile, a short reproduction, and expected versus actual behavior. Use a small sample note without personal content. This is a spare-time project; fixes and replies have no guaranteed schedule. Contributions and forks are welcome; donations are optional.