CLI de Obsidian
Usa la CLI para comportamientos que dependen de la aplicación en ejecución de Obsidian, sus índices, configuración, registro de comandos o tiempo de ejecución del desarrollador. Usa herramientas normales del sistema de archivos para operaciones comunes de archivos.
Resolver y probar la CLI
No asumas un único nombre de ejecutable. El registro y empaquetado de Obsidian varían
según la plataforma y la versión, y binarios de terceros no relacionados pueden usar el mismo
nombre. Selecciona un candidato solo cuando su prueba de version sea exitosa.
En macOS/Linux:
resolve_obsidian_cli() {
local candidate
for candidate in \
"${COPILOT_OBSIDIAN_CLI:-}" \
/Applications/Obsidian.app/Contents/MacOS/obsidian-cli \
"$(command -v obsidian 2>/dev/null || true)" \
"$(command -v obsidian-cli 2>/dev/null || true)"
do
[[ -n "$candidate" && -x "$candidate" ]] || continue
if "$candidate" version >/dev/null 2>&1; then
printf '%s\n' "$candidate"
return 0
fi
done
return 1
}
OBSIDIAN_CLI=$(resolve_obsidian_cli) || {
echo "CLI de Obsidian no disponible" >&2
exit 1
}
"$OBSIDIAN_CLI" version
En PowerShell:
$candidates = @(
$env:COPILOT_OBSIDIAN_CLI,
(Get-Command obsidian -ErrorAction SilentlyContinue).Source,
(Get-Command obsidian-cli -ErrorAction SilentlyContinue).Source
) | Where-Object { $_ }
$OBSIDIAN_CLI = $candidates | Where-Object {
try { & $_ version *> $null; $LASTEXITCODE -eq 0 } catch { $false }
} | Select-Object -First 1
if (-not $OBSIDIAN_CLI) { throw "CLI de Obsidian no disponible" }
& $OBSIDIAN_CLI version
Si la prueba falla, pide al usuario que abra una versión compatible de Obsidian, active Configuración > General > Interfaz de línea de comandos, complete su registro y reinicie la terminal. No instales Obsidian, cambies PATH ni registres la CLI sin la intención explícita del usuario.
Usa el ejecutable resuelto en lugar de obsidian en todos los ejemplos de referencia:
"$OBSIDIAN_CLI" vaults
"$OBSIDIAN_CLI" help search
Apuntar con precisión a la bóveda
Usa vault="<nombre-o-id>" siempre que se conozca el destino. Nunca incorpores un nombre
personal de bóveda o una ruta de máquina en este skill.
"$OBSIDIAN_CLI" vault="<nombre-boveda>" search query="fecha límite proyecto" format=json
"$OBSIDIAN_CLI" vault="<nombre-boveda>" backlinks path="Proyectos/Plan.md" format=json
Usa path= para una ruta exacta relativa a la bóveda. Usa file= solo cuando se desee la
resolución de nombres al estilo de wikilinks de Obsidian. Pon entre comillas los valores que
contengan espacios o caracteres especiales del shell. Inspecciona la ayuda en vivo antes de
confiar en una sintaxis que no muestre la versión instalada:
"$OBSIDIAN_CLI" help <comando>
Operaciones principales
# Leer y escribir
"$OBSIDIAN_CLI" vault="<nombre-boveda>" read path="Proyectos/Roadmap.md"
"$OBSIDIAN_CLI" vault="<nombre-boveda>" append path="Diario.md" content="- Nueva entrada"
# Búsqueda y metadatos
"$OBSIDIAN_CLI" vault="<nombre-boveda>" search query="API" limit=10 format=json
"$OBSIDIAN_CLI" vault="<nombre-boveda>" properties path="Proyectos/Roadmap.md"
# Nota diaria configurada y tareas indexadas
"$OBSIDIAN_CLI" vault="<nombre-boveda>" daily:append content="- 14:00 Llamada" silent
"$OBSIDIAN_CLI" vault="<nombre-boveda>" tasks all todo
# Espacio de trabajo en vivo
"$OBSIDIAN_CLI" vault="<nombre-boveda>" tabs ids
"$OBSIDIAN_CLI" vault="<nombre-boveda>" workspace ids
Preservar la sesión del host
Nunca recargues ni reinicies la aplicación/ventana de Obsidian desde una sesión de agente. Nunca recargues, deshabilites o desinstales el plugin que aloja la sesión actual del agente. Evita acciones equivalentes mediante comandos, JavaScript o herramientas de desarrollador. Estas pueden terminar la sesión y descartar el trabajo en curso.
Requiere la intención explícita del usuario antes de eliminaciones permanentes, restauración del historial local o Sync, publicar o despublicar, instalación o eliminación de plugins/temas, cambios en el modo restringido, o llamadas mutantes a JavaScript/desarrollador. Prefiere operaciones reversibles. Las referencias de comandos describen capacidades; no autorizan mutaciones.
Guías de referencia
Lee solo la guía relevante para la tarea. Trata a obsidian en sus ejemplos como el
ejecutable resuelto $OBSIDIAN_CLI y agrega vault="<nombre-o-id>" cuando se conozca el
destino.
| Tarea | Referencia |
|---|---|
| Operaciones con notas, esquema, conteo de palabras, notas únicas | references/note-operations.md |
| Búsqueda, etiquetas, propiedades, backlinks, huérfanos, enlaces no resueltos | references/search-metadata.md |
| Notas diarias, tareas, plantillas | references/daily-tasks-templates.md |
| Bóvedas, espacio de trabajo, marcadores, plugins, temas, Sync, Publish, Bases, herramientas de desarrollo | references/vault-management.md |