Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Privacy Veil

Mouiz LANIKPEKOUNMouiz LANIKPEKOUN1 downloads

Conceals Dataview, Bases and chart blocks behind a per-block reveal button, in the folders, tags or notes you choose.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

Conceals the dynamic blocks of chosen notes behind a blur and a reveal button: Dataview queries, DataviewJS scripts, Bases (code blocks and embeds), charts, and any other element you point a CSS selector at. Each block has its own button, and an eye in the note header reveals or hides the whole note.

It is meant for dashboards over finance, health or other personal data that you open in public: a note opens concealed, and you reveal only what you need.

This is a visual veil, not protection

The veil only hides pixels from someone looking over your shoulder. The data is still there: search results, hover previews, source mode, exported files and the notes themselves show the values in clear. Do not use it to protect anything from a person or a program with access to your vault.

Choosing what is veiled

A note is veiled when any of these applies (Settings, Privacy Veil):

Rule Example
Folder Finance/ (a folder ends with a slash)
Note Finance/Budget.md (its full path)
Tag private (no hash; a parent tag covers its children)
Frontmatter property privacy-veil: true

Setting the property to false leaves a note out of every other rule.

Nothing is veiled until you configure at least one rule.

What is veiled

Switches for Dataview queries, DataviewJS scripts, Bases code blocks, embedded Bases and charts. Custom selectors add any other element: one CSS selector per line, and the matched element itself is veiled (for example a card class of your own dashboard). Where a veiled element contains another, only the outer one gets a veil.

Notes with custom selectors only lists notes where just the custom selectors are veiled, never the block types. It suits a dashboard where only some cards are private.

Behavior

Option Effect
State when a note opens Concealed, revealed, or remembered per note
Conceal again after Seconds after the last reveal before everything is concealed again; 0 keeps it revealed
Conceal when the window loses focus Conceals everything when you switch to another app

Appearance

Blur strength, how much of the concealed content stays visible, icon-only or icon-and-text buttons, and the button texts. The settings tab shows a live sample. The stylesheet uses theme variables only.

Commands

Available when the active note is veiled; assign hotkeys as you like.

  • Show all blocks in this note
  • Hide all blocks in this note
  • Toggle all blocks in this note
  • Hide all blocks in every open note (available everywhere)

Limits

  • The plugin finds blocks through Obsidian's rendered classes (.block-language-*, .internal-embed). An Obsidian update that renames them can break detection.
  • A window that is not being painted (minimized, hidden) pauses the browser's animation frames, so a block rendered at that moment is veiled on the next frame.
  • Concealing on window blur relies on the window's blur event; it does not cover pop-out windows.

Install

Not in the community directory yet. To install by hand, build it (below) and copy main.js, manifest.json and styles.css into <vault>/.obsidian/plugins/privacy-veil/, then enable the plugin.

Development

npm install
npm test          # logic and DOM behavior, under jsdom
npm run lint      # the official Obsidian ESLint rules
npm run build     # type-check, then bundle main.js
npm run deploy -- <vault>/.obsidian/plugins/privacy-veil

src/settings.ts and src/scope.ts are pure and hold the settings model and the scope rules. src/veil.ts is the DOM engine for one open note and has no Obsidian import, which is what lets the tests run it. src/main.ts and src/settings-tab.ts are the Obsidian side.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Conceal dynamic blocks like Dataview queries/JS, Bases, charts and any element matched by CSS selectors behind a blur with per-block reveal buttons and an eye in the note header to reveal or hide the whole note. Treat as a visual veil only; do not rely on it for protection, as data remains visible in source, exports, search results and previews.
CSSAppearance
Details
Current version
0.2.0
Last updated
6 hours ago
Created
6 hours ago
Updates
1 release
Downloads
1
Compatible with
Obsidian 1.6.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Mouiz LANIKPEKOUNMouiz LANIKPEKOUNml9373
GitHubml9373
  1. Community
  2. Plugins
  3. CSS
  4. Privacy Veil

Related plugins

Style Settings

Adjust theme, plugin, and snippet CSS variables.

Custom Font Loader

Customize your vault with any font you want (+ Support for Android and iOS).

Lapel

Show the heading levels in the gutter of the editor.

Snippetor

Create and tweak common snippets.

Show Whitespace

CSS styles and CM6 extensions to highlight whitespace in Source and Live Preview modes.

Focus Mode

Add a toggle to hide interface elements so you can focus on your note.

Fontsource

Load custom fonts from Fontsource into your notes.

Animated Cursor

Simple yet smooth animated cursor.

Better Bullets

Improves readability of bulleted notes.

Contextual Typography

Add a data-tag-name attribute to all top-level divs in preview mode containing the child's tag name, allowing contextual typography styling.