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

Silent Reflect

Xxchujiu233Xxchujiu2331 downloads

Silently tracks what you write and change in your vault, then generates daily and weekly reflections. Strictly read-only.

Add to Obsidian
Silent Reflect screenshot
  • Overview
  • Scorecard
  • Updates3

Passive writing trace & reflection for Obsidian

Silently records how you write, then hands you back what you couldn't see yourself. Read-only, non-intrusive, no note is ever modified.


Why Silent Reflect?

You write thousands of words in your vault, but you rarely look back at how your ideas actually evolved. You want a reflection habit, but it takes too much effort to keep up. You've tried AI note tools, but you're afraid they'll restructure your folders or rewrite your notes without asking.

Silent Reflect solves this by watching, not editing. It reads what you write, records how each note changes over time, and generates a structured daily or weekly reflection. Your original notes are never touched — the guarantee is enforced in code, not just in the docs.


What makes it different

Most AI note tools summarize what you wrote. That's an echo — you already knew it. Silent Reflect looks at behaviour: which section you kept rewriting, which task stayed unchecked for eleven days, which conclusion silently flipped.

Typical AI note plugin Silent Reflect
Input You feed it material Your writing behaviour
Your action required Write a prompt, run a command None
Original notes Re-tagged, restructured Read-only, guaranteed
Output A summary of content Behavioural insight, may be empty

An empty result is a valid result. If nothing is worth saying, the insight layer stays empty instead of padding.


Features

Feature Details
🤫 Fully passive capture File events only. No popups, no notifications, no interruption to your writing flow.
🔒 Strictly read-only Writes are hard-blocked to _Reflection/. A runtime path assertion throws before any write outside it.
🧩 Section-level change tracking Records which heading section changed, not just that the file changed. This is what makes real insight possible.
📅 Daily & weekly reflections 4 dimensions daily, 6 weekly (adds thinking trajectory and open loops).
🧠 Self-vetoing insight layer Each candidate is judged; unsupported claims are dropped with a stated reason.
👁️ Sidebar panel Three tabs (Today / Week / Insights), clickable [[wikilinks]] back to the source note, one-click regenerate.
🤖 Optional AI Works without a model for capture and screening. Model use is opt-in with your own API key.
🎨 Native theming Uses Obsidian CSS variables only — follows light/dark and custom themes.

How it works

Silent Reflect is built around one rule: observe, don't interfere.

  1. Capture — records file events and section-level diffs into _Reflection/_events/YYYY-MM-DD.jsonl. Append-only, never rewrites.
  2. Screen — deterministic rules (no model) surface candidates: stalled notes, repeated restarts, churn without closure, contradictions across time.
  3. Reflect — a model judges each candidate against your own evidence and may reject it.
  4. Read — the sidebar panel renders the results; links jump back to the original note.

The engine lives outside Obsidian (a Node CLI). The plugin is a thin shell that reads and displays.

Why the split: a plugin only exists while Obsidian is open. Passive capture has to keep working when you're away, so generation runs on a system scheduler.


Getting started

1. The engine

The plugin displays results; it does not generate them. Point it at an engine directory containing run.mjs, then run once:

node C:\path\to\engine\run.mjs --vault "C:\path\to\your\vault"

Output goes to <vault>/_Reflection/.

2. The plugin

Copy main.js, manifest.json and styles.css into:

<vault>/.obsidian/plugins/silent-reflect/

Then enable Silent Reflect in Settings → Community plugins.

3. Configure

Settings → Silent Reflect:

Setting Notes
Engine directory Where run.mjs lives
Node path Obsidian launched from the GUI usually has no node on PATH — use an absolute path
Regenerate scope Daily or weekly

Privacy

  • The plugin makes no network requests. It does not upload anything.
  • The engine reads .md files only; the sole writable directory is _Reflection/ (asserted at runtime).
  • When a model is used, only the candidate entry and its source excerpt are sent — never the whole vault.
  • No telemetry, no analytics, no hidden collection.

Permissions and why they are needed

Obsidian's automated review flags two capabilities. Both are deliberate, and both are required by the design described above.

Capability Why Scope
fs (filesystem) The plugin has to locate run.mjs and read the generated Markdown from _Reflection/. The Obsidian vault API cannot see files outside the vault, and the engine lives outside it by default. Reads only inside your vault and the engine directory you configure; the plugin itself never writes notes.
child_process The "Regenerate" button runs your local Node engine once, then reads its output. Generation must happen outside Obsidian so it can also run on a schedule while Obsidian is closed. Spawns only the run.mjs path you configure, with a fixed argument list. No arbitrary command input.

If you would rather not grant these, the plugin still works as a viewer: the engine can be run from a terminal or a scheduled task, and the panel only reads the results. You can also remove the ribbon entry point and use the panel read-only.

The plugin does not phone home, does not include an update checker, and does not bundle analytics.


Platform support

Component Windows macOS / Linux
Plugin ✅ ✅ (desktop only)
Engine (Node scripts) ✅ ✅
Scheduled generation ✅ (Task Scheduler) ⚠️ not packaged yet — use cron/launchd manually

Mobile is not supported: it has no adapter.basePath and cannot spawn a process.


Known limitations

  • Chinese UI only at the moment; reflection text follows your notes' language.
  • "Regenerate" blocks until finished (up to 5 minutes) and disables the button meanwhile.
  • No automatic catch-up: if the machine is off at 22:00, that day is not regenerated later.
  • One vault per engine instance.

Contributing

  • Bug reports: open an Issue.
  • Ideas: start a Discussion.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Capture silent, read-only traces of how your notes evolve and generate structured daily or weekly reflections. Track section-level edits and surface insights like rewritten sections, long-unchecked tasks, and flipped conclusions while keeping original notes untouched with hard write-blocks outside Reflection/.
ReviewWritingDates
Details
Current version
0.1.2
Last updated
7 hours ago
Created
10 hours ago
Updates
3 releases
Downloads
1
Compatible with
Obsidian 1.5.0+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
Xxchujiu233Xxchujiu233yutiao-xx
GitHubyutiao-xx
  1. Community
  2. Plugins
  3. Review
  4. Silent Reflect

Related plugins

Calendarium

Craft mind-bending fantasy and sci-fi calendars.

Journal Review

Review your daily notes on their anniversaries, like "what happened today last year".

Annotation Marker

Add colored highlights, inline comments and ruby (phonetic) annotations to notes while keeping original Markdown untouched

Yesterday

Transform your notes into a visually stunning diary, integrating dialogs, chat logs, and media content blocks for a seamless journaling experience.

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Tasks

Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering. Maintained by Clare Macrae and Ilyas Landikov, created by Martin Schenck.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.

Day Planner

Turn tasks from daily notes, the Tasks plugin, and calendars into time blocks on an editable timeline, with built-in time tracker.

Vault Todos

Collect all outstanding TODOs from your vault and presents them in lists Today, Scheduled, Inbox and Someday/Maybe.