obsidian-llm-hub: Instructions file for Claude Code

CLAUDE.md

obsidian-llm-hub CLAUDE.md is an instructions file for Claude Code from takeshy/obsidian-llm-hub. It costs 2,259 tokens per session, scanned A, original, MIT.

Project instructions for an Obsidian plugin that connects chats and workflows to several language-model services. Obsidian is a note-taking application that supports plugins.

In plain words
What is it for?
Use them when building, developing, linting, reloading, or versioning this plugin, including changes to its API clients, search features, or plugin files.
Why use it?
They give an agent the repository context, build commands, architecture, and versioning rules needed to make safer changes.

Instructions file for Claude Code

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

This is takeshy/obsidian-llm-hub's own configuration. It tells Claude Code how to work on obsidian-llm-hub 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 obsidian-llm-hub configures →

Reuse

Borrowing it

Nothing to install: this file belongs to takeshy/obsidian-llm-hub. 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/takeshy/obsidian-llm-hub/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/takeshy/obsidian-llm-hub

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 obsidian-llm-hub CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/takeshy/obsidian-llm-hub/claude-md/github.svg)](https://agentmods.dev/instructions/takeshy/obsidian-llm-hub/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/takeshy/obsidian-llm-hub/claude-md"><img src="https://agentmods.dev/badge/instructions/takeshy/obsidian-llm-hub/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for obsidian-llm-hub CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/takeshy/obsidian-llm-hub/claude-md"><img src="https://agentmods.dev/badge/instructions/takeshy/obsidian-llm-hub/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,259 This file is loaded in full into every session.
When invoked 2,259 The same file — it is already loaded in full.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
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.02259 $0.02259
Opus 5 $0.01130 $0.01130
Sonnet 5 $0.00452 $0.00452
Haiku 4.5 $0.00226 $0.00226

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

Security

Grade A, and why

obsidian-llm-hub 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 10d 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.

- Prefers `child_process.spawn` with `shell: false` everywhere. On Windows, auto-detects the npm-global `.js` script (via `findWindowsNpmScript`) and runs it through `node`, or the standalone `claude.exe`. Only falls bac
CLAUDE.md · 174 lines

How it starts

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

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

Obsidian plugin for multi-provider LLM Chat, Workflow Automation, and Semantic Search (RAG). Supports Gemini, OpenAI, Anthropic, OpenRouter, Grok via API, plus CLI backends (Gemini CLI, Claude CLI, Codex CLI) and local LLM servers (Ollama, LM Studio, vLLM).

Build Commands

npm run build    # Production build (tsc + esbuild) -> outputs main.js
npm run dev      # Development build with watch mode
npm run lint     # ESLint check

After building, reload the plugin in Obsidian to test changes.

Version Bumping

Use npm's built-in version command which automatically updates all version files:

npm version patch   # 1.2.3 -> 1.2.4
npm version minor   # 1.2.3 -> 1.3.0
npm version major   # 1.2.3 -> 2.0.0

This runs version-bump.mjs which updates package.json, manifest.json, and versions.json together.

Architecture

Core Layer (src/core/)

  • gemini.ts - Gemini API client wrapper
    • GeminiClient class with streaming chat, function calling, and RAG integration
    • chatWithToolsStream() - Main method for chat with tools and optional RAG
    • messagesToContents() - Converts Message[] to Gemini Content[] format (private)
  • localRagStore.ts - Local RAG store with cosine-similarity search
    • LocalRagStore - Manages in-memory index/vectors, sync, and search
    • searchLocalRag() - Entry point for RAG context injection
    • Supports external pre-built index via externalIndexPath
  • localRagStorage.ts - Persistence for local RAG index (index.json + vectors.bin)
  • embeddingProvider.ts - Embedding generation via OpenAI-compatible API
    • generateEmbeddings() - Batch embedding generation
    • fetchEmbeddingModels() - Fetches available models (Ollama /api/tags or /v1/models)
  • openaiProvider.ts - OpenAI-compatible API provider (chat, image generation)
  • anthropicProvider.ts - Anthropic API provider (chat with tools)
  • tools.ts - Function calling tool definitions (15 tools for vault operations)
  • cliProvider.ts - CLI backend abstraction for Gemini/Claude/Codex CLIs
    • CliProviderManager - Manages CLI provider instances
    • Prefers child_process.spawn with shell: false everywhere. On Windows, auto-detects the npm-global .js script (via findWindowsNpmScript) and runs it through node, or the standalone claude.exe. Only falls back to shell: true + command name when no .js/.exe is found, so .cmd wrappers from PATH still work (with the documented cmd.exe-metacharacter caveat for user prompts).
    • findNodeBinary() - Resolves node path from version managers (nodenv, nvm, volta, fnm, asdf, mise)
    • Custom CLI paths dispatch by extension on Windows (.js → node, .exe → direct, .cmd/.bat → shell). On macOS/Linux always run via node <path>.
  • mcpClient.ts - MCP (Model Context Protocol) client for external tool servers
    • Implements Streamable HTTP transport with JSON-RPC

Read the full file on GitHub · 174 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. 10d ago First seen · 174 lines · 2,259 tokens per session scan A 52fd4411b4c9

Subscribe to this mod's changes

obsidian-llm-hub CLAUDE.md is an instructions file published in the GitHub repository takeshy/obsidian-llm-hub (32 stars, last pushed today), licensed MIT. It adds 2,259 tokens to every session, about $0.0113 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-30.

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,153 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

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

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