Saltar al contenido
← Volver a proyectos

Obsidian Claude Notes

Obsidian plugin: sidebar, generate-note command, and live refresh for notes written by the Claude Code obsidian-notes CLI.

Claude Notes

#Claude Notes (Obsidian plugin)

Buy Me A Coffee

Latest Release License

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.

#Requirements

  • Obsidian >= 1.13.0
  • Desktop only (see below)

#Features

  • Sidebar — lists every note with 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.
  • "Generate note here" command — spawns the CLI with the current selection (or, if nothing's selected, the whole active note) piped in as the body. Desktop only: it spawns a child process, which isn't available on Obsidian mobile. Set the CLI binary path in settings first, or the command shows a Notice telling you to.
  • Live refresh — if the local bridge is enabled, the CLI pings 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.

#Settings

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.

#How it works

  • Reading — no polling, no file watcher of its own: the sidebar is a live view over Obsidian's MetadataCache, so it's as current as Obsidian's index already is.
  • Writing (the CLI's job) — this plugin never writes note content itself. The "Generate note here" command spawns the external CLI binary and lets it do the actual write + frontmatter; the plugin's role there is purely to invoke it with the right arguments and stdin.
  • The bridge (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.

#Disclosed capabilities

Obsidian's plugin review surfaces what a plugin can technically do, for transparency:

  • Vault read/write/enumeration — the sidebar reads every Markdown file's cached frontmatter (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).
  • Shell execution (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.

#Install

From Obsidian: Settings → Community plugins → Browse, search for "Claude Notes", install and enable. Or view it directly on the community plugin list.

#Manual install

  1. npm install && npm run build.
  2. Copy manifest.json, main.js, styles.css into <vault>/.obsidian/plugins/claude-notes/.
  3. Enable "Claude Notes" in Obsidian's Community Plugins settings.

Or grab the built main.js/manifest.json/styles.css straight from a release instead of building locally.

#Development

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

#License

MIT.

Nueva versión disponible.