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.
npx skills add isorensen/lox-brain --skill obsidian-ingestgit clone --depth 1 https://github.com/isorensen/lox-brainWrote 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.
[](https://agentmods.dev/skills/isorensen/lox-brain/obsidian-ingest)<a href="https://agentmods.dev/skills/isorensen/lox-brain/obsidian-ingest"><img src="https://agentmods.dev/badge/skills/isorensen/lox-brain/obsidian-ingest/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.
<a href="https://agentmods.dev/skills/isorensen/lox-brain/obsidian-ingest"><img src="https://agentmods.dev/badge/skills/isorensen/lox-brain/obsidian-ingest.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00040 | $0.02537 |
| Opus 5 | $0.00020 | $0.01269 |
| Sonnet 5 | $0.00008 | $0.00507 |
| Haiku 4.5 | $0.00004 | $0.00254 |
Grade A, and why
obsidian-ingest 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 12d 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.
result = subprocess.run(['python3', '-c', How it starts
The opening of the file, as written. The whole thing — 240 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Obsidian Ingest — Knowledge Base Pipeline
Configuration
This skill reads your Lox configuration from ~/.lox/config.json:
vault.preset: determines folder structure (zettelkastenorpara)vault.local_path: path to your Obsidian vault (default:~/Obsidian/Lox)
The skill adapts folder routing based on your preset. See the folder mapping table below.
Folder Mapping by Preset
| Folder role | zettelkasten |
para |
|---|---|---|
| Atomic notes | 6 - Atomic Notes/ |
4 - Resources/Notes/ |
| Source material | 2 - Source Material/ |
4 - Resources/Sources/ |
| Meeting notes | 7 - Meeting Notes/ |
2 - Projects/Meetings/ |
| Fleeting notes | 1 - Fleeting Notes/ |
1 - Inbox/ |
| Tags (MOCs) | 3 - Tags/ |
4 - Resources/Tags/ |
| Attachments | attachments/ |
attachments/ |
| Clippings | Clippings/ |
1 - Inbox/Clippings/ |
Vault Access
The primary interface is the lox-brain MCP server, which already knows the vault path and provides safe read/write/search operations. Use MCP tools for everything except binary files (images, PDFs).
MCP Tools (primary)
| Tool | Use for |
|---|---|
mcp__lox-brain__write_note |
Write/overwrite a note. Pass file_path (relative, e.g. 6 - Atomic Notes/My Note.md) and content with the full formatted note. Do NOT pass tags — the vault uses inline tags, not YAML frontmatter. |
mcp__lox-brain__search_semantic |
Check for duplicates before creating notes (superior to text search) |
mcp__lox-brain__search_text |
Find existing tags, specific terms, or exact matches |
mcp__lox-brain__read_note |
Read an existing note's content |
mcp__lox-brain__list_recent |
See recently modified notes for context |
Filesystem (fallback only)
Use direct filesystem access (read vault.local_path from ~/.lox/config.json) only for:
- Copying binary files (images, PDFs) to
attachments/ - Listing directory contents when MCP doesn't cover it
- Bulk operations where MCP would be too slow
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.
- 12d ago First seen · 240 lines · 40 tokens per session scan A ffaac584af87
obsidian-ingest is a skill published in the GitHub repository isorensen/lox-brain (2 stars, last pushed 5d ago), licensed MIT. It adds 40 tokens to every session and 2,537 once invoked, about $0.0002 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.
Other skills, from other repositories
setup-vault-types
Use when configuring which document types a vault tracks: after installing ai-brain-starter, when a new kind of note appears (journals, books, meetings, clients, podcasts, travel, WhatsApp/Slack/iMessage exports), when extraction skips files because no extractor matches their type, or to add, list, or remove a custom…
ingest-health
Use when the user says /ingest-health, asks to import, sync, ingest, or load Apple Health / Apple Watch / HealthKit data, has a fresh export.zip from the iPhone Health app, a Simple Health Export CSV folder, or a Health Auto Export TCP live feed, or when health-mcp queries return empty because no data was ever…
wiki-ingest
File a new source into the LLM Wiki — create its Sources page, append a log entry, apply the proposed cross-reference edits. Use when the user says "ingest this", "file this source", "add this to the wiki", drops a URL/PDF/clipped article, or pastes notes they want captured. Never auto-applies cross-refs without…
granola-sync
Pull fresh meetings from Granola (summaries, transcripts, participants) into an Obsidian vault over the official API. Incremental and idempotent by note id and updatedat, so re-runs make no duplicates. Triggers: "/granola-sync", "pull granola", "refresh meetings".
query
Interactive knowledge assistant via Telegram. Can read, create, and modify documents. Destructive actions require user approval.
google-workspace
Gmail, Calendar, Drive, Contacts, Sheets, and Docs — through Hermes-managed OAuth and a thin CLI wrapper. When gws is installed, the skill uses it as the execution backend for broader Google Workspace coverage; otherwise it falls back to the bundled Python client implementation.