Brain Vault — the free, community-built Karpathy LLM-Wiki for Obsidian. CLI + MCP-ready, Claude Code skill pack included.
Strong foundation with 19 well-defined tools using Zod schemas and clear descriptions. Most tools follow verb_noun naming (obs_read_note, obs_create_note, obs_search). Descriptions are substantive (100-250 chars typical), explaining WHAT and WHEN. Parameters have types and descriptions. However, output schemas are not explicitly documented in the visible code, handlers return objects but no formal schema definitions are visible. Error handling is minimal; most tools lack recovery guidance. Some parameter relationships undocumented (e.g., obs_manage_properties 'action' enum determines which params apply). Tool composition is strong, tools chain well (search → read → write). Security: no secrets in params, but no explicit permission gates or audit trail declarations visible.
Create a new note. Fails if the file already exists.
Create or read a daily note
List typed edges for one note (or vault-wide counts by type). Edge types: works_at, founded, invested_in, advises, related_to, derived_from, mentions.
Traverse the typed-edge knowledge graph from a note (edges from frontmatter like org/founded/related plus body wikilinks). Answers "what is connected to X and how".
Answer a question from the compiled wiki via LLM. Saves a cited answer note to outputs/answers/ and reports gaps the wiki cannot cover.
Compile new raw/ sources into compiled/ concept pages via LLM. Bounded per call (default limit 3 sources); call again to continue.
Output schemas not explicitly documented. Handlers return objects (e.g., obs_search returns {start, reachable, hits}) but no formal schema definitions visible in code. LLMs cannot reliably parse response structure without documented schemas.
Parameter dependencies undocumented. obs_manage_properties and obs_manage_tags have 'action' enums that determine which other params are required/optional (e.g., 'tag' required for add/remove but not list). LLMs cannot infer these constraints.
Error handling lacks recovery guidance. No visible error responses that tell LLMs what to do next (e.g., 'Note not found. Try obs_search() to find it.'). Handlers throw generic errors without actionable context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Ingest a URL as an article into raw/articles/ (fetch → clean markdown → log). Does not touch compiled/.
Health-check the KB: broken wikilinks, orphans, missing frontmatter, duplicate concepts, staleness. Writes a report to outputs/lint/.
List files in the vault matching a glob pattern
Read or set frontmatter properties on a note
List, add, or remove tags from a note's frontmatter
Read a note from the vault. Returns frontmatter and body content.
Search vault content. Modes: content (substring), path (glob), regex, keyword (BM25 relevance), semantic (embeddings), hybrid (BM25 + embeddings fused — best for meaning-based queries)
Atomically claim a pending task: sets status in-progress, assigned_to, claimed_at. Exactly one concurrent claimer wins. Read the returned contextFiles before working.
Mark a task done or failed and archive it to tasks/done/ or tasks/failed/ with a timestamp and optional notes.
Create a structured task file in tasks/agent (AI may pick up autonomously) or tasks/human (needs a person).
List structured tasks from tasks/agent and tasks/human. Each task is a markdown file with status/priority/context_files frontmatter.
Get vault information: name, path, file count, enabled plugins, and stats
Write content to an existing note (overwrites)
No explicit permission gates or audit trail declarations. Tools like obs_write_note and obs_tasks_claim modify state but lack visible permission checks or logging declarations. No scope declarations (e.g., 'read:vault', 'write:tasks').
Destructive operations lack confirmation/dry-run patterns. obs_write_note overwrites without confirmation; obs_tasks_complete archives without preview. No dry-run option visible for irreversible operations.