notebrain-assistant

A read-only assistant for searching and exploring an Obsidian vault, which is a folder of linked Markdown notes. It uses semantic search, tags, backlinks, and connections between notes.

In plain words
What is it for?
Use it to search a personal knowledge base, retrieve notes, inspect tags and links, and discover unlinked or related information.
Why use it?
It helps find relevant notes and hidden relationships without manually browsing the vault. It does not change the notes.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/nmdra/notebrain-cli/notebrain
Any agent
npx skills add nmdra/notebrain-cli --skill notebrain
Clone the repo
git clone --depth 1 https://github.com/nmdra/notebrain-cli

Made for: Claude Code, Codex.

Per session 130 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,272 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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 $0.00130 $0.02272
Opus 5 $0.00065 $0.01136
Sonnet 5 $0.00026 $0.00454
Haiku 4.5 $0.00013 $0.00227

Measured 2d ago against content hash 3b6a654a5a29, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

notebrain-assistant scanned grade A with 0 findings 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 2d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/notebrain/SKILL.md · 114 lines

How it starts

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

NoteBrain Assistant Skill

NoteBrain indexes an Obsidian vault into local ChromaDB and answers read-only questions about it: semantic search, tag queries, graph structure, and note retrieval. It never mutates the vault — for writes, use standard file tools or obsidian-cli and keep NoteBrain for the discovery step.

References, read on demand:

Preflight (once per conversation)

notebrain stats --format=json
Result Do
chunks: 0 The vault is unindexed — tell the user to run notebrain ingest first. Do not try to read the vault another way.
Binary missing / errors Say NoteBrain isn't available and offer to check setup. Do not grep/find the vault instead.
chunks > 0 Proceed.

The config trap: ~/.notebrain/config/config.toml (or --config) overrides built-in flag defaults — include-text, context-window, min-score, limit, top-k all have config keys. If config enables text/context, every result carries text+context even without the flags. For lean output pass --include-text=false --context-window=0. If a query looks over-filtered, a configured min-score floor (e.g. 0.4) means low-score rows never appear — that's expected, not a bug. Details: flags.md.

Output format discipline

The CLI's default output format is text, but text is for humans — the agent always works from machine formats:

  • Every invocation passes --format json or --format tsv explicitly. Never rely on the default text.
  • json is the default choice — the structured envelope carries nested fields (text, context, heading_path, tags, matched_queries). Shape: schema.md.
  • tsv for wide, shallow scans where columns suffice: tags --list, backlinks, connections, refs audits, and --group-by-note note lists.
  • --jsonpath for single-field extraction (slugs, scores, tags) — the leanest output; combine with --limit/--show-file-path=false.
  • --format text only when the output is for the human: showing a note body (get "<slug>") or when the user asks to see the raw CLI output. Never parse text output, and never paste decorated text (headers, #-chips, "Did you mean" hints) into an answer — everything the agent reads or summarizes comes from json/tsv.

Read the full file on GitHub · 114 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 2d ago First seen · 114 lines · 130 tokens per session scan A 3b6a654a5a29

Subscribe to this mod's changes

notebrain-assistant is a skill published in the GitHub repository nmdra/notebrain-cli (27 stars, last pushed 11d ago), licensed MIT. It adds 130 tokens to every session and 2,272 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

vector-databases

Vector database operations — embed, store, search, and build RAG pipelines.

furkangonel/cowrangler · 21 tokens

commit

MUST invoke before creating any git commit. Provides commit message format and safety rules.

aviatesk/obsidian-sonar · 19 tokens

enzyme-sqlite-source

Connect an unfamiliar SQLite database to Enzyme without changing the source data. Inspect the database, decide which query columns represent identity, people, time, content, and folders, show real examples for approval, save the mapping in TOML, and verify init and refresh. Use for email, message, CRM, archive, or…

byenzyme/enzyme · 80 tokens

enzyme-workspace-setup

Enzyme workspace setup, re-setup, and repair. Use when the user asks to set up Enzyme, diagnose an existing setup, repair retrieval, or clean up an old setup before reinitializing. Existing .enzyme files or installed runtime instructions are not proof that setup is complete. Diagnoses read-only against what Enzyme…

byenzyme/enzyme · 119 tokens

mine

Mine a project or conversation into your MemPalace — extract and store memories for later retrieval.

MemPalace/mempalace · 21 tokens

mempalace-recall

Recall protocol for MemPalace — search the palace before answering about past work, people, projects, or prior decisions. Apply when the user asks what was decided, what happened before, who someone is, what was discussed last time, or anything that may already be filed in their memory palace; or when mempalace-recall…

MemPalace/mempalace · 94 tokens