Emanuell147 downloadsContinuous indexing and fast search (note graph + Markdown sections, BM25 ranking) for AI agents via AI Ecosystem.
Fast in-memory search (note graph + Markdown sections, ranked with BM25 over an index kept up to date by Obsidian events) over the Obsidian vault and over any folder on the computer, for AI agents, exposed as MCP tools through the AI Ecosystem core: search, find, get_section, get_note, read_table, list_folders, list_files, list_tags and recent_notes.
The pasta and arquivo parameters accept absolute paths anywhere on the computer (for example C:/Users/you/Documents/project) or paths relative to the vault.
Supported formats:
.ts, .py, .txt).md).csv, .tsv and .xlsx.docx and .pdfWhen scanning the disk, these folders are skipped: node_modules, dist, build, .git, AppData, Windows, Program Files and similar.
Size limits: 5 MB for text files and 50 MB for binary files.
Examples:
{ "termos": ["soma"], "pasta": "C:/Users/you/Documents/project", "extensoes": ["ts", "py"] }
{ "query": "Plano de implementação", "pasta": "Projetos" }
{ "arquivo": "C:/Users/you/Documents/project/src/a.ts", "secao": "soma" }
{ "arquivo": "C:/Users/you/Documents/project/dados.xlsx", "aba": "Planilha1", "linha_inicio": 2, "linha_fim": 20, "formato": "markdown" }
compacto: true): search and find return ripgrep-style text (caminho:linha:trecho). Empty results show 0 resultados with hints; +N means there is more.compacto: false returns the lean JSON (path, line, a 120-character snippet and the section). detalhe: true returns the long JSON response and ler: true also falls back to JSON, since compact text cannot carry those fields.ler: true: the first result also returns the section where the term matched.offset to get the next page; the restantes field tells how many results remain.truncado is set and hints explain how to continue.sinonimos (off by default) adds synonyms; exato matches whole words only.arvore lists the notes below a root note (following up:), limited by profundidade. prop takes several conditions; a list means all of them must match.get_section accepts pedidos to read up to 10 sections per call.get_note returns frontmatter, outline, outgoing links and body. list_tags lists tags and recent_notes lists the latest changed notes..env*, .credentials*, *.pem, SSH keys, .ssh, .aws, .npmrc and .obsidian/plugins/*/data.json are never read or listed. Tokens (sk-ant-, ghp_, Bearer) are redacted as [REDIGIDO] in the output.The AI Ecosystem core can install Claude Code hooks and a setup skill for this module in the vault's .claude/ folder:
.claude/skills/configurar-ai-vault-search/, hook entries in .claude/settings.local.json (or settings.json), state in .claude/ai-ecosystem/, and a block in GEMINI.md for Antigravity..claude/ entries is overwritten.Protection hook: Grep or Glob inside the vault is redirected to the plugin's search tools (search, find, list_files or get_section). The universal search and find tools also work in any folder on the computer. Folders outside the index and tool-note folders stay allowed.
Folders outside the index: a new setting, applied to every search, listing and section read. It is set through the guided setup (key pastas_fora_do_indice, a list of vault-relative folders); there is no settings tab for it yet. The plugin also tells the core these folders so the hook leaves them alone.