---
name: list_obsidian_vaults
kind: function
lang: py
domain: obsidian
version: "1.0.0"
purity: impure
signature: "list_obsidian_vaults(base_dir: str) -> list"
description: "Devuelve los vaults de Obsidian que cuelgan directamente (1 nivel) de base_dir: subdirectorios que contienen un .obsidian/. Devuelve lista de {name, path} ordenada por name. Util para enumerar /home/enmanuel/Obsidian/."
tags: [obsidian, vault, list, discover, filesystem]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["os"]
params:
  - name: base_dir
    desc: "directorio que contiene vaults de Obsidian como subcarpetas (p.ej. /home/enmanuel/Obsidian)"
output: "lista de dicts {name, path} (uno por vault), ordenada por name; path es absoluto"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/obsidian/list_obsidian_vaults.py"
---

## Ejemplo

```python
from obsidian import list_obsidian_vaults

vaults = list_obsidian_vaults("/home/enmanuel/Obsidian")
for v in vaults:
    print(v["name"], "->", v["path"])
# NotasDeObsidian, AurgiObsidian, DataScientist, Finanzas, LLM_agentes
```

## Cuando usarla

Cuando necesites descubrir que vaults de Obsidian existen bajo una carpeta raiz (por ejemplo para construir un selector, iterar sobre todos los vaults, o validar que un nombre de vault existe) sin abrir Obsidian.

## Gotchas

- **Impura**: lee el filesystem. Lanza `FileNotFoundError` si `base_dir` no existe y `NotADirectoryError` si no es un directorio.
- **Solo 1 nivel**: inspecciona unicamente los hijos inmediatos de `base_dir`; no es recursivo, asi que un vault anidado dentro de otro vault no se detecta. Esto es intencional para evitar recorrer arboles pesados.
- **Criterio de vault**: una carpeta cuenta como vault solo si contiene un subdirectorio `.obsidian/` (la carpeta de config que crea Obsidian). Carpetas con solo notas `.md` pero sin `.obsidian/` no se consideran vaults.
- No abre las notas ni recorre su contenido, asi que es barato incluso cuando algun vault es enorme (`NotasDeObsidian` ~554M): solo mira la presencia de `.obsidian/`.
