Jefferson Simão Gonçalves20 downloadsSidebar, generate-note command, and live refresh for Markdown notes written into this vault by the Claude Code obsidian-notes CLI.

Sidebar, generate-note command, and live refresh for Markdown notes written into your vault by the Claude Code obsidian-notes-cli. No custom note format, no lock-in — it reads plain Markdown with YAML frontmatter via Obsidian's own metadata cache.
Part of a 3-repo integration:
obsidian-notes-cli — writes the notes; this plugin reads them. Works fine without this plugin installed.obsidian-claude-notes (this repo, TypeScript).claude-code-obsidian-notes — Claude Code plugin that shells out to the CLI.source: claude-code frontmatter, grouped by project. Click to open. Read via Obsidian's own metadata cache (getMarkdownFiles() + metadataCache.getFileCache()) — the plugin keeps no index of its own.Notice telling you to.127.0.0.1:<port>/notes right after writing a file; the sidebar re-renders ~150ms later. With the bridge off, the sidebar still updates — just on Obsidian's normal file-watcher cadence instead of instantly.| Setting | Notes |
|---|---|
| CLI binary path | Absolute path to obsidian-notes. Required for the command; not needed just to browse the sidebar. |
| Folder pattern | {project} {date} {slug} placeholders. Written to .claude-notes.json at the vault root — the CLI reads the same file, so changing it here also changes where the CLI writes. |
| Enable local bridge | Off by default. An always-open local port is unnecessary attack surface for most setups; without it, Obsidian still picks up new notes natively on focus, just not instantly. |
| Bridge port | Default 27124. Toggle the bridge off/on (or restart Obsidian) after changing this for it to take effect. |
On load, the plugin reads .claude-notes.json if one already exists (e.g. from obsidian-notes vault:init) and uses its folderPattern/bridgePort — that file is the shared source of truth, not the plugin's own settings storage.
MetadataCache, so it's as current as Obsidian's index already is.src/bridge.ts) — an opt-in, loopback-only (127.0.0.1) HTTP server. It does not write or read vault content over the network; the POST body from the CLI is informational only, used solely to time a sidebar refresh shortly after a write. Nothing is exposed beyond localhost.Obsidian's plugin review surfaces what a plugin can technically do, for transparency:
getMarkdownFiles) to find source: claude-code notes, and the settings tab reads/writes .claude-notes.json directly via the vault adapter (needed because Obsidian doesn't index dotfiles through the normal Vault API).child_process.spawn) — only from the explicit "Generate note here" command, only to run the CLI binary path you configured in settings. Never triggered automatically.From Obsidian: Settings → Community plugins → Browse, search for "Claude Notes", install and enable. Or view it directly on the community plugin list.
npm install && npm run build.manifest.json, main.js, styles.css into <vault>/.obsidian/plugins/claude-notes/.Or grab the built main.js/manifest.json/styles.css straight from a release instead of building locally.
npm install
npm run dev # esbuild watch — rebuilds main.js on change
npm run build # type-check (tsc) + production build
npm run lint # eslint-plugin-obsidianmd, same checks as the plugin review
MIT.