headless-obsidian-mcp: Instructions file for Claude Code

CLAUDE.md

headless-obsidian-mcp CLAUDE.md is an instructions file for Claude Code from emguide/headless-obsidian-mcp. It costs 25,068 tokens per session, scanned A, original, MIT.

Project instructions for developing a headless Obsidian connector, which works with an Obsidian note vault without opening the Obsidian app. The instructions cover searching, reading, navigating links, and editing notes.

In plain words
What is it for?
Use them when modifying the headless Obsidian MCP project, preparing design records, or following its git-worktree and documentation conventions.
Why use it?
They give contributors the project’s required workflow, documentation locations, and development rules before making changes.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: mentions CLAUDE.md; mentions Claude Code.

This is emguide/headless-obsidian-mcp's own configuration. It tells Claude Code how to work on headless-obsidian-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything headless-obsidian-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to emguide/headless-obsidian-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/emguide/headless-obsidian-mcp/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/emguide/headless-obsidian-mcp

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for headless-obsidian-mcp CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/emguide/headless-obsidian-mcp/claude-md.svg)](https://agentmods.dev/instructions/emguide/headless-obsidian-mcp/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/emguide/headless-obsidian-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/emguide/headless-obsidian-mcp/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 25,068 This file is loaded in full into every session.
When invoked 25,068 The same file — it is already loaded in full.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.25068 $0.25068
Opus 5 $0.12534 $0.12534
Sonnet 5 $0.05014 $0.05014
Haiku 4.5 $0.02507 $0.02507

Measured 5d ago against content hash fbe6e6dae029, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

headless-obsidian-mcp CLAUDE.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

- Node's built-in `node:path`, `node:fs/promises`, and `node:child_process`
CLAUDE.md · 1,072 lines

How it starts

The opening of the file, as written. The whole thing — 1,072 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Headless Obsidian MCP

This is a headless MCP (Model Context Protocol) server for interacting with Obsidian vaults. It provides tools to search, read, navigate the link graph, and edit notes in an Obsidian vault — without the Obsidian GUI.

Development workflow

Anything beyond trivial work (a single-line fix or a pure question) should be done in a git worktree, so parallel development tasks stay isolated from each other and from the main checkout. Trivial changes may be made in place.

Design records

Design specs (brainstorming output) go in design/specs/, implementation plans (writing-plans output) in design/plans/not the superpowers skills' default docs/superpowers/, which this project does not use. Keep the skills' YYYY-MM-DD-<topic>-design.md / YYYY-MM-DD-<feature-name>.md filenames. docs/ is reserved for user-facing reference (docs/CLI.md, docs/TOOLS.md); design/ is contributor-facing.

These records are written before implementation and are not maintained afterwards — they capture why a decision was made, not what the code currently does. CLAUDE.md and README.md are the current source of truth; a spec that disagrees with them is stale, not authoritative.

Setup

  1. Set the OBSIDIAN_VAULT_PATH environment variable to point to your Obsidian vault directory
  2. Ensure ripgrep (rg) is installed on your system
  3. Install dependencies and build: npm install && npm run build
  4. Run with: npm start or mise run start (if using mise)

Tools

Naming conventions

Tool names follow a fixed verb taxonomy. A new tool reuses an existing verb; it does not coin a synonym. The verb encodes the tool's scope and addressing so an agent can predict behavior from the name alone.

  • get_ — return one addressed thing: a note by path (get_links, get_outline, get_frontmatter, get_property, get_related_notes), or the vault as a single object (get_vault_stats). A collection-valued return is fine when it is about one addressed note (get_related_notes); it is not get_ when it enumerates a vault-wide collection — that is list_.
  • list_ — enumerate a vault-wide collection, optionally scoped or parameterized: list_notes, list_files, list_folders, list_tags, list_properties, list_property_values, list_recent_notes, list_vault_issues. A required argument does not demote it to get_ (list_property_values(key), list_vault_issues(kind)).
  • search_ — text query over content (search_notes, search_notes_ranked). read_ — return body text from disk (read_notes, read_section). resolve_ — map a human name to a canonical path (resolve_note, resolve_daily_note — a date is a human-facing name too).
  • find_by_X — retrieval by one named criterion (find_by_tag). query_ — retrieval by a condition object (query_notes); where is the single condition language, anchored by query_notes, and reused verbatim by every tool that filters notes.
  • Writes name the mutation: write/append/prepend/delete/move, add/remove_tag, set_frontmatter, add/remove_property_values, rename_property, add/append_to/replace_section, patch_note, bulk_edit. The _property_values noun is per-note when prefixed add_/remove_ (writes) and vault-wide when prefixed list_ (read) — the verb, not the noun, carries the scope. create_ is the folder-only create verb (create_folder): write_ implies content, which a folder has none of, so a folder's creation is named for what it actually does. On folders the mutation verbs otherwise carry over unchanged (move_folder, delete_folder).

Read the full file on GitHub · 1,072 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 1,072 lines · 25,068 tokens per session scan A fbe6e6dae029

Subscribe to this mod's changes

headless-obsidian-mcp CLAUDE.md is an instructions file published in the GitHub repository emguide/headless-obsidian-mcp (0 stars, last pushed 1mo ago), licensed MIT. It adds 25,068 tokens to every session, about $0.1253 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,296 tokens

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,182 tokens

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 6,785 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,469 tokens

spec-kit AGENTS.md

AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,104 tokens